[Linux] NIC Bonding

1. Bonding이란

  • Linux Kernel에 내장된 기술로 복수의 NIC를 논리적으로 하나의 interface로 묶어서 NIC의 물리적 장애에 대응하거나 처리량을 늘리는 기술이다.
  • bonded된 NIC의 동작 방식은 mode의 설정에 달려 있다.
  • bonding kernel module을 이용하여 bonding 된 NIC는 channel bonding interface라고 불리운다.
  • 기본 round-robbin 방식으로 구성(수신은 2배지만, 발신은 번갈아가며)
  • Active - Standby 구성 가능
  • 반드시 NetworkManager.Service를 stop 후 설정하여야 한다.
  • Windows의 Teaming과 동일한 개념

2. Bonding 설정

  • 2개의 Network 확인
    • ip a
  • NetworkManager Disable
    • systemctl stop NetworkManager.service
    • systemctl disable NetworkManager.service
  • channel bonding interface 설정
    • vi /etc/sysconfig/network-scripts/ifcfg-bondN
DEVICE=bond0
BONDING\_OPTS='mode=1 miimon=100'
BRIDGE=INT\_1
ONBOOT=yes
MTU=1500
DEFROUTE=no
NM\_CONTROLLED=no
IPV6INIT=no
  • BONGDING_OPTS 설정은 bonding이 정상적으로 구성된 후에 설정

    • mode값 0 : round-robbin, 1 : active-backup, default : round-robbin
    • miimon : active-backup인 환경에서 active 노드의 상태를 체크하는 인터벌
  • 실제 bonding을 수행할 NIC를 bonding interface에 바인딩 해야 한다.

    • ifcfg-eht0, ifcfg-eth1 등 바인딩 할 인터페이스의 파일 아래와 같이 수정
      MASTER=bond0
      SLAVE=yes
  • /etc/modprobe.d/bonding.conf 파일을 생성

    • bonding kernel module이 로딩 되도록 modprobe 설정을 변경한다.
  • 확인

    • ip a
      • bond에 IP, MASTER 적혀 있는 것 확인, 개별 NIC에 SLAVE 있는 것 확인
    • cat /proc/net/bonding/bond0
      • Bonding Mode, Active node 확인

3. Fail-over 테스트

  • ping -I bond0 [DSTADDR]
    • 원하는 IP로 bond0을 통해 ping 가는지 확인
  • cat /sys/class/net/bond0/bonding/active_slave
    • 현재 Active 인터페이스를 확인
  • ip link set [인터페이스명] down
    • Active 인터페이스를 다운
  • cat /sys/class/net/bond0/bonding/active_slave
    • Active 인터페이스가 변경되었는지 확인
  • ping -I bond0 [DSTADDR]
    • 변경된 인터페이스로 ping 가는지 확인

'Server > Linux' 카테고리의 다른 글

[Linux] SMTP  (0) 2021.05.14