본문으로 건너뛰기

[Linux] CentOS 7 네트워크 Bonding 구성

CentOS 7에서 bonding 모듈을 로드하고 ifcfg-bond0와 slave 인터페이스 파일을 작성해 네트워크 Bonding을 구성하는 절차입니다.

요약

  • CentOS 7에서는 bonding 모듈이 기본으로 로드되지 않으므로 modprobe --first-time bonding으로 먼저 로드합니다.
  • ifcfg-bond0에 TYPE=Bond와 BONDING_OPTS="mode=1 miimon=100"을, slave 인터페이스 파일에 MASTER=bond0, SLAVE=yes를 지정합니다.
  • NetworkManager를 비활성화·중지하고 network 서비스를 재시작한 뒤 ip a로 bond0 구성을 확인합니다.

테스트 환경 CentOS 7

[Linux] CentOS 7 네트워크 Bonding 구성


CentOS 7 에서 bonding 구성을 위해서는 아래와 같은 절차가 필요합니다.

  1. CentOS 7 에서는 bonding 모듈이 기본적으로 로드가 되어 있지 않습니다. 아래 명령을 통해 boning 모듈을 로드합니다.
    # modprobe --first-time bonding
    
  2. Bond Interface 생성 Bond Interface 생성을 하기위해서는 /etc/sysconfig/network-scripts/ 의 ifcfg-bond0 파일을 생성해야됩니다.
    # cat  /etc/sysconfig/network-scripts/ifcfg-bond0
    DEVICE=bond0
    NAME=bond0
    TYPE=Bond
    IPADDR=10.0.0.1
    NETMASK=255.255.255.0
    ONBOOT=yes
    BOOTPROTO=none
    BONDING_OPTS="mode=1 miimon=100"
    
  3. SLAVE Interface 생성 bond Interface 의 SLAVE Interface 파일을 생성합니다.
    /etc/sysconfig/network-scripts/ 의 ifcfg-eth1 과 ifcfg-eth2 를 수정합니다.
    # cat ifcfg-eth1
    DEVICE=eth1
    NAME=eth1
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes
    # cat ifcfg-eth2
    DEVICE=eth2
    NAME=eth2
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes
    
  4. NetworkManager disable && network restart network 재시작을 합니다.
    # systemctl disable NetworkManager
    # systemctl stop NetworkManager
    # systemctl restart network
    # ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
     inet 127.0.0.1/8 scope host lo
        valid_lft forever preferred_lft forever
     inet6 ::1/128 scope host
        valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
     link/ether 00:2a:4a:16:01:5b brd ff:ff:ff:ff:ff:ff
     inet 192.168.13.63/16 brd 192.168.255.255 scope global eth0
        valid_lft forever preferred_lft forever
     inet6 fe80::22a:4aff:fe16:15b/64 scope link
        valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
     link/ether 00:2a:4a:16:01:63 brd ff:ff:ff:ff:ff:ff
    4: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
     link/ether 00:2a:4a:16:01:63 brd ff:ff:ff:ff:ff:ff
    5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
     link/ether 00:2a:4a:16:01:63 brd ff:ff:ff:ff:ff:ff
     inet 10.0.0.1/24 brd 10.0.0.255 scope global bond0
        valid_lft forever preferred_lft forever
     inet6 fe80::22a:4aff:fe16:163/64 scope link
        valid_lft forever preferred_lft forever
    

위와 같이 bonding 구성이 된것을 확인 할 수 있습니다.

참고자료


bonding Option : https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-using_channel_bonding

자주 묻는 질문

CentOS 7에서 bond 인터페이스 설정 파일은 어떻게 작성하나요?

/etc/sysconfig/network-scripts/ifcfg-bond0에 DEVICE=bond0, TYPE=Bond, IP 정보, BONDING_OPTS="mode=1 miimon=100"을 적습니다. 글에서는 BOOTPROTO=none, ONBOOT=yes로 고정 IP를 지정합니다.

bonding의 slave 인터페이스는 어떻게 설정하나요?

각 NIC의 ifcfg 파일(예: ifcfg-eth1, ifcfg-eth2)에 MASTER=bond0과 SLAVE=yes를 추가합니다.

bonding 설정을 적용하려면 어떻게 하나요?

systemctl disable NetworkManager, systemctl stop NetworkManager로 NetworkManager를 끈 뒤 systemctl restart network로 네트워크를 재시작합니다. ip a에서 eth1, eth2가 master bond0으로 표시되면 정상입니다.