네트워크 설정 · 2 min read · Oct 30, 2025
NIC Bonding/Teaming - Debian Sarge
요약:
더 읽기 쉬운 버전은 여기에서 찾을 수 있습니다: 5dollarwhitebox.org
NIC Bonding(또는 NIC Teaming이라고도 함)의 개념은 두 개의 NIC를 결합하여 동일한 물리적 장치처럼 보이게 하는 것입니다. 즉, 두 NIC 모두 동일한 하드웨어(MAC) 주소를 제공합니다. 이는 ifenslave 유틸리티를 통해 달성되며, 커널이 하나의 장치만 보고/사용하도록 하면서 두 개의 슬레이브 장치를 통해 패킷을 라운드 로빈 스케줄러를 사용하여 전송합니다.
시스템: Debian Sarge 3.1 (바닐라 커널 2.6.12.4)
관련 모듈: bonding, mii, nic_module (이 예제에서는 e100)
유틸리티: ifenslave, mii-tool
준비:
두 개의 NIC를 결합하기 전에 각 NIC의 무결성과 기능을 독립적으로 확인하는 것이 강력히 권장됩니다. 이 문서는 이미 그렇게 했다고 가정합니다. ‘mii-tool’을 사용하면 다음과 같은 결과를 볼 수 있어야 합니다:
testbox:/# mii-tool
eth0: negotiated 100baseTx-FD, link ok
eth1: negotiated 100baseTx-FD, link ok
이 작업이 수행되려면 커널이 결합 장치에 대한 지원을 가져야 합니다. 확인하는 몇 가지 방법은 다음과 같습니다:
testbox:/# modprobe –list | grep* bonding /lib/modules/2.6.12.4-vs2.0/kernel/drivers/net/bonding/bonding.ko
- testbox:/# cat /boot/config-2.6.12.4-vs2.0 | grep -i bonding
CONFIG_BONDING=m
우리는 mii-tool(mii.o 모듈)을 사용하여 인터페이스의 장애 조치를 모니터링합니다… 대부분의 이더넷 어댑터가 링크 속도를 자동 협상하기 위해 MII(미디어 독립 인터페이스)를 사용하므로, 이를 갖추는 것이 꽤 표준입니다.
testbox:/# cat /boot/config-2.6.12.4-vs2.0 | grep -i mii ** *# CONFIG_MPENTIUMII는 설정되지 않음
CONFIG_MII=y ** *
testbox:/# modprobe –list | grep -i mii
/lib/modules/2.4.26-2-686/kernel/drivers/net/mii.ko
두 번째로, ifenslave 유틸리티를 설치해야 합니다.
testbox:/# apt-get update && apt-get install ifenslave
………. 표준 출력 제거(흥미로운 내용 없음)
여기에는 구성 설정이 없으므로, 그게 전부입니다. 이제 구성 파일을 준비할 수 있습니다.
구성 파일:
이것에는 여러 가지 변형이 있지만, 지금은… 내가 작동하게 하기 위해 한 방법은 다음과 같습니다.
vi /etc/modutils/aliases를 열고 다음을 추가/편집합니다:
alias bond0 bonding
alias eth0 e100
alias eth1 e100
options bonding mode=0 miimon=100
vi /etc/modutils/actions를 열고 다음을 추가/편집합니다:
probeall bond0 eth0 eth1 bonding
modprobe 구성 파일을 편집한 후 다음 명령을 실행해야 합니다:
testbox# update-modules
vi /etc/network/interfaces를 열고 다음을 추가/편집합니다:
auto bond0
iface bond0 inet static
address 10.1.100.63
netmask 255.255.255.0
hwaddress ether 00:02:B3:48:50:2C
gateway 10.1.100.1
up ifenslave bond0 eth0 eth1
down ifenslave -d bond0 eth0 eth1
‘eth0’ 또는 ‘eth1’에 대한 항목은 위의 ‘bond0’ 항목 외부에 설정하지 않아야 합니다. 이제 bond0가 커널이 작업하는 인터페이스가 됩니다. ‘ifconfig’를 실행하면 세 개의 인터페이스(bond0, eth0, eth1)가 모두 동일한 MAC 및 IP 주소를 가지고 표시됩니다.
그리고 그게 기본적으로 전부입니다. 이제 ‘bonding’ 모듈을 로드하고 네트워킹을 중지/시작하면 적절한 모듈이 자동으로 로드됩니다:
testbox:/# modprobe bonding
testbox:/# /etc/init.d/networking stop testbox:/# /etc/init.d/networking start
이 부분은 조금 조정해야 할 수도 있습니다. 저 같은 경우 bond0 장치를 수동으로 ifconfig up해야 했습니다:
testbox:/# ifconfig bond0 10.1.15.63 netmask 255.255.255.0 up
오류가 없었다면, 이를 테스트할 수 있어야 합니다. 다른 박스에서 IP 주소에 ping을 시도해 보세요. 두 NIC가 ping 요청에 대해 서로 응답하는 것을 알 수 있습니다(라운드 로빈). eth0의 플러그를 뽑으면 콘솔에 “eth0가 실패했습니다. eth1이 기본으로 설정됩니다”와 같은 오류가 발생합니다(eth1의 플러그를 뽑으면 그 반대가 됩니다). 그러나 이제는 중복 네트워크 연결이 있으므로 ping 요청이 드롭되지 않아야 합니다(아니면 몇 개 이상은 드롭되지 않아야 합니다).
고급 환경에서는 각 NIC를 별도의 스위치에 연결하고(같은 VLAN에 유지) 고가용성 구성을 더욱 개선할 수 있습니다… 등등.
BJ Dierkes, RHCE4-LPIC1
wdierkes [at] 5dollarwhitebox [dot] org
텍사스, 미국
리소스:
Debian GNU/Linux: https://www.debian.org
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.