[리눅스] 네트워크 인터페이스 bonding 설정
리눅스 운영 체제에서 네트워크 인터페이스 본딩(bonding)은 고가용성 및 부하 분산을 위해 두 개 이상의 네트워크 인터페이스를 결합하는 프로세스입니다. 본딩된 인터페이스는 하나의 가상 인터페이스로 간주되어, 고장 허용성을 향상시키고 대역폭을 확장하는 데 도움이 됩니다.
본딩 모드
리눅스에서 사용 가능한 세 가지 본딩 모드는 다음과 같습니다.
- mode 0 (balance-rr): 패킷을 라운드 로빈 방식으로 전송하여 부하를 분산합니다.
- mode 1 (active-backup): 하나의 인터페이스가 활성화되고 나머지는 대기 상태로, 활성화된 인터페이스에 고장이 발생하면 다른 인터페이스로 전환됩니다.
- mode 6 (balance-alb): 전송된 패킷에 기반하여 부하를 분산하고, 맥 주소가 변경됨으로써 서버 측에서는 패킷을 전송하는 인터페이스를 전환할 필요가 없게 됩니다.
본딩 구성
본딩된 네트워크 인터페이스를 설정하기 위해서는 다음과 같은 단계를 따릅니다.
-
/etc/sysconfig/network-scripts/
디렉토리 내에ifcfg-bond0
와 같이 본딩 인터페이스의 설정 파일을 생성합니다.DEVICE=bond0 NAME=bond0 TYPE=Bond BONDING_OPTS="mode=1 miimon=100" BOOTPROTO=none ONBOOT=yes IPADDR=192.168.1.10 NETMASK=255.255.255.0
-
/etc/sysconfig/network-scripts/
디렉토리 내에 본딩 인터페이스를 구성하기 위한 실제 네트워크 인터페이스 설정 파일을 생성합니다. 예를 들어,ifcfg-eth0
,ifcfg-eth1
등입니다.DEVICE=eth0 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes
DEVICE=eth1 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes
-
네트워크 설정을 다시 로드하거나, 네트워크 서비스를 다시 시작하여 설정을 적용합니다.
systemctl restart network
마치며
이렇게 하면 두 개 이상의 네트워크 인터페이스를 본딩하여 네트워크 고가용성과 부하 분산을 구현할 수 있습니다. 각 모드의 장단점을 고려하여 적절한 본딩 모드를 선택하여 시스템의 네트워크 성능을 향상시킬 수 있습니다.
참고: Red Hat Enterprise Linux Documentation