[Linux] 네트워크 본딩 [CentOS 7]
리눅스는 여러 물리적 ‘네트워크 인터페이스 카드(NIC)’를 묶어 하나의 본딩 된 채널로 만들 수 있습니다. 하나의 논리적 인터페이스처럼 사용할 수 있는 것을 네트워크 본딩이라고 합니다.
예를 들어 1기가(Gbps) 속도의 네트워크 포트 4개를 묶으면, 합쳐서 4기가 속도처럼 쓸 수 있어 더 빠릅니다.
또한, 하나의 포트나 케이블, 스위치에 문제가 생겨도 나머지가 대신해서 네트워크가 끊기지 않도록 안전하게 만들어 줍니다. 대역폭 확장보다는 장애 대비 목적으로 많이 사용됩니다.
네트워크 본딩은 여러 네트워크 장비와 운영체제에서 다양한 이름으로 불립니다.
- 이더넷 본딩 (Ethernet Bonding)
- 포트 트렁킹 (Port Trunking)
- 채널 티밍 (Channel Teaming)
- NIC 티밍 (NIC Teaming)
- 링크 통합 (Link Aggregation)
✅ 네트워크 스위치 이중화 구성
단순하게 구성 예스로 만든 네트워크 스위치 이중화 구성입니다.
네트워크 스위치, 회선, 포트 등에서 장애가 발생할 경우를 대비해 서버에서 본딩을 통해 이중화를 구성합니다.
CentOS에서는 본딩 설정 시 Active Backup (mode: 1) 방식을 많이 사용합니다. 예를 들어, Active Switch와 연결된 인터페이스가 eth0 Standby Switch와 연결된 인터페이스가 eth1일 때 eth0을 Primary로 지정해야 정상적으로 통신이 유지됩니다.
✅ 본딩 모드
본딩 모드는 본딩으로 묶일 예정인 여러 slave 장치들을 효율적으로 묶기 위한 여러가지 장치를 어떻게 묶고 동작 시킬지 결정하는 방식입니다.
보통 Round-robin 모드와 Active Backup 모드를 사용해서 네트워크 스위치가 802.3ad를 제공하고 스위치를 컨트롤이 가능한 경우 802.3ad를 사용합니다.
본딩의 여러 모드는 목적(속도 향상, 이중화 등)에 따라 다르게 작동합니다.
mode 36924_017225-a0> |
이름(방법) 36924_9943a1-44> |
설명 36924_4e7ffa-9c> |
---|---|---|
0 36924_be9f00-77> |
Round-robin 36924_472da3-94> |
· 기본값 |
1 36924_db335c-c7> |
Active-backup 36924_c586ea-8a> |
· 자주 사용됨 |
2 36924_2de235-56> |
XOR 36924_7febf1-18> |
· 해시 방식 |
3 36924_3f9c0b-f0> |
Broadcast 36924_ef02a7-33> |
모든 NIC에 동일 데이터 전송 36924_055ef4-a4> |
4 36924_f120b1-f0> |
802.3ad (LACP) 36924_b23264-6c> |
· 스위치 802.3ad 요구 |
5 36924_1416cf-e0> |
Adaptive transmit load balancing 36924_4a4de4-bc> |
송신 부하 분산 36924_1b7497-10> |
6 36924_439c9f-fc> |
Adaptive load balancing 36924_17044a-7e> |
송수신 부하 분산 36924_7ccf0b-7a> |
“802.3ad“는 IEEE(국제전기전자학회)에서 정한 이더넷 링크 집계(Link Aggregation) 표준입니다. 숫자 802.3은 이더넷 표준을 정의하는 IEEE 작업 그룹 번호, 그 뒤의 ad는 부가적인 기능(Amendment)을 뜻합니다.
- 802.3: 유선 이더넷 표준 전체를 의미
- ad: 링크 집계(Link Aggregation)를 다룬 확장 규약
802.3ad = LACP (Link Aggregation Control Protocol) 와 동일한 의미로 사용되며, 여러 개의 네트워크 인터페이스를 하나의 논리적 인터페이스로 묶어서 트래픽을 자동으로 분산·이중화해주는 표준입니다.
✅ CentOS 7 네트워크 본딩 설정: nmtui
nmtui 방식으로 네트워크 본딩 설정을 진행해 보겠습니다. (mode: 1)
CentOS
└── 네트워크 본딩 (bonding 1)
├── enp0s3(어댑터 1) → 스위치 A
└── enp0s8(어댑터 2) → 스위치 B
🔲 VirtualBox 본딩 환경 만들기
🔲 본딩 구성 원칙
nmcli d 명령으로 현재 네트워크 인터페이스를 확인 후 nmtui를 실행합니다.
기존 이더넷 인터페이스에 IP 설정이 남아 있으면 본딩 설정과 충돌하거나 중복 IP 문제가 생길 수 있습니다.
따라서 본딩 구성 전에는 기존 개별 이더넷 인터페이스의 IP 설정을 삭제 후 본딩 인터페이스에만 IP를 할당하는 것이 안전합니다.
항목 | 설정 방식 | 설명 |
---|---|---|
bond1 | 수동 IP (Static) 또는 DHCP | IP는 이 논리 인터페이스에만 설정 |
enp0s3, enp0s8 | “IPv4 없음”, “IPv6 없음” | 슬레이브이므로 IP를 직접 설정하지 않음 |
슬레이브 설정 | 본딩에 종속(slave)으로 지정 | 연결만 되게 해두고, IP는 받지 않음 |
🔲 본딩
[root@localhost ~]# nmcli d
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet 연결됨 enp0s3
enp0s8 ethernet 연결됨 유선 연결 1
lo loopback 관리되지 않음 --
[root@localhost ~]# nmtui
기존 유선 연결을 enp0s8로 변경했습니다.
프로파일 이름과 장치 이름을 설정합니다.
수동 네트워크를 설정합니다.
저장이 안되어 확인 해 보느 [프로파일 이름]과 [장치]의 입력 값이 동일하면 [OK]가 활성화 되지 않습니다.
✅ 본딩 확인
systemctl restart network
nmcli d