linux bonding(본딩)

Standard

눅스 bonding 은 윈도우의 티밍, AIX의 Etherchannel 과 같습니다.

아래의 설명은 제가 직접 필드에서 해봤으며, 검증된 자료입니다.

참고로  Active – Standby 방식입니다.

그외 다른 방식을 mode 값만 바꾸어 주면 됩니다.

 

0. 설정 방법
root로 로그인해서 아래 내용을 그대로 실행하시면 됩니다.
“#” 라인에 있는것이 실행명령이이며
그 아래 내용대로 내용전부를 고치거나 추가 하시면 됩니다.
 
1. bonding Device 생성(전체 내용을 아래와 같이 수정해 주십시요 또는 없다면 아래내용을 IP등에
내용을 알맞은 내용으로 수정 후 적어주시면 됩니다.)
 
# vi /etc/sysconfig/network-scripts/ifcfg-bond0
 
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=none
IPADDR=x.x.x.x
NETMASK=x.x.x.x
GATEWAY=x.x.x.x
USERCTL=no
 
2. eth0를 bond0에 연결(전체 내용을 아래와 같이 수정해 주십시요.)
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
 
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
 
3. eth1를 bond0에 연결(전체 내용을 아래와 같이 수정해 주십시요.)
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
 
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
 
4. modprobe.conf에 bond0등록(아래 내용을 추가해 주십시요.)
# vi /etc/modprobe.conf
 
alias bond0 bonding
options
bonding miimon=100 mode=1 primary=eth0   //현재 failover로 설정한상태(제가 테스트한결과
failover로 설정한부분에 primary를 설정하지 않으면 failback이 이루어지지 않습니다. 참고하세요)

[기본 bonding설정 – 본딩디바이스 1개일때]

          본딩 모드에 대한 부분은 맨페이지 확인하여 적용하시면 됩니다.

1.         /etc/modprobe.conf 설정

alias bond0 bonding

 

2.         /etc/sysconfig/network-scripts/ifcfg-bondX 설정 (bonding Master Device Set up)

DEVICE=bondX
IPADDR= 해당 IP
NETMASK= 해당 Netmask
GATEWAY= 해당 Gateway
ONBOOT=yes
BOOTPROTO=none
USERCTL=no

3.         /etc/sysconfig/network-scripts/ifcfg-ethX 설정 (bonding Slave Device Set up)

DEVICE=ethX
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

위와 같이 설정 후 현재 상태의 네트워크 환경 확인,

4.         lsmod를 이용하여 bonding모듈설정 확인

5.         /etc/init.d/network stop

6.         modprobe -r bonding

7.         /etc/init.d/network start

8.         cat /proc/net/bonding/bondX 명령을 이용하여 현재 설정된 본딩 적용내용 확인 (설정 내용을 정확히 확인 바랍니다.)

 

[bonding설정 – 본딩디바이스 2개 이상일때]

1.         /etc/modprobe.conf 설정

alias bond0 bonding
alias bond1 bonding
options bonding max_bonds=2

2.         /etc/sysconfig/network-scritps/ifcfg-bond0

DEVICE=bond0
BOOTPROTO=none
IPADDR= 해당 IP
NETMASK= 해당 Netmask
ONBOOT=yes
TYPE=Ethernet
BONDING_OPTS=”mode=1 miimon=100 use_carrier=0 primary=ethX”

3.         /etc/sysconfig/network-scritps/ifcfg-bond1

DEVICE=bond1
BOOTPROTO=none
IPADDR= 해당 IP
NETMASK= 해당 Netmask
ONBOOT=yes
TYPE=Ethernet
BONDING_OPTS=”mode=1 miimon=100 use_carrier=0 primary=ethX”

4.         Bonding device route설정

보통 route add로 routing table를 올리게되면 부팅 후 network restart시
routing table가 지워짐니다. 이 부분을 아래와 같이 변경하여 적용 하시면
한결 편하실 것 입니다.

예>bond1에 route table추가
/etc/sysconfig/network-scripts/route-bond1
ADDRESS0=10.51.11.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.153.20
ADDRESS1=192.168.200.0
NETMASK1=255.255.255.0
GATEWAY1=192.168.153.12

또는 route명령을 이용한 route설정

route add -net 172.20.160.0 gw 172.20.161.1 netmask 255.255.255.0 dev bond0
route add -net 172.20.164.0 gw 172.20.161.1 netmask 255.255.255.0 dev bond1

           위와 같은 방법을 이용하여 route 설정을 합니다.

 

5.         lsmod를 이용하여 bonding모듈설정 확인

6.         /etc/init.d/network stop

7.         Modprobe -r bonding

8.         /etc/init.d/network start

9.         cat /proc/net/bonding/bondX 명령을 이용하여 현재 설정된 본딩 적용내용 확인 (설정 내용을 정확히 확인 바랍니다.)

 

 
5. bond0 사용(실행만 시켜주시면 됩니다.)
# /etc/rc.d/init.d/network restart
 
# /etc/rc.d/init.d/network restart
 
6. ifconfig를 이용한 확인(실행만 시켜주시면 됩니다.)
 
# ifconfig

출처 : http://xrodie.blog.me/10043856773