리눅스에서 본딩 구성하는 방법 (Redhat 계열)
아래와 같은 시나리오로 본딩을 구성해보자.
반복되는 부분 때문에 조금 길지만... 아래와 같이 구성해 보았다.
일단 파란색으로 표기한 공통 부분에 대해 알아보자.
ONBOOT=yes
=> 부팅시 자동으로 활성화
BOOTPROTO=none
=> bootp나 dhcp를 사용하지 않음 (static으로 구성)
USERCTL=no
=> 일반 유저가 컨트롤 할 수 없음 (root 권한 필요)
NM_CONTROLLED=no
=> NetworkManager가 컨트롤 할 수 없음
다음은 녹색으로 표시한 본딩 옵션에 대해 알아보자.
BONDING_OPTS="mode=1 miimon=100"
=> 본딩 모드를 Active-Backup으로 설정하고 MII 링크 모니터링 주기를 100ms (0.1초) 로 설정
본딩 모드는 아래와 같다. 보통 mode 1 또는 5를 많이 사용하는 듯.
Static Route는 특정 대역을 Default Gateway가 아닌 bond1로 보내기 위해 /etc/sysconfig/network-scripts/route-bond1 파일에 설정하였고, 아래와 같이 route 명령어로 잘 설정되었음을 확인할 수 있다.
network-scripts 설정이 완료되면 service network restart 한번 해주고, 아래와 같이 bonding 상태를 확인할 수 있다.
아래와 같은 시나리오로 본딩을 구성해보자.
1. NIC는 총 4개
2. eth0, eth2를 bond0으로 묶고, eth1, eth3을 bond1로 묶음
3. bond0을 Default Gateway로 잡고 필요한 Static Route는 bond1에 설정
2. eth0, eth2를 bond0으로 묶고, eth1, eth3을 bond1로 묶음
3. bond0을 Default Gateway로 잡고 필요한 Static Route는 bond1에 설정
반복되는 부분 때문에 조금 길지만... 아래와 같이 구성해 보았다.
# /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.0.101
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=168.126.63.1
DNS2=168.126.63.2
BONDING_OPTS="mode=1 miimon=100"
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
DEVICE=bond0
IPADDR=192.168.0.101
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=168.126.63.1
DNS2=168.126.63.2
BONDING_OPTS="mode=1 miimon=100"
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
MASTER=bond0
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
DEVICE=eth0
MASTER=bond0
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
# /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
MASTER=bond0
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
DEVICE=eth2
MASTER=bond0
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
# /etc/sysconfig/network-scripts/ifcfg-bond1
DEVICE=bond1
IPADDR=10.10.0.101
NETMASK=255.255.255.0
BONDING_OPTS="mode=1 miimon=100"
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
DEVICE=bond1
IPADDR=10.10.0.101
NETMASK=255.255.255.0
BONDING_OPTS="mode=1 miimon=100"
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
# /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
MASTER=bond1
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
DEVICE=eth1
MASTER=bond1
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
# /etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE=eth3
MASTER=bond1
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
DEVICE=eth3
MASTER=bond1
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
# /etc/sysconfig/network-scripts/route-bond1
10.10.0.0/16 via 10.10.0.1 dev bond1
10.10.0.0/16 via 10.10.0.1 dev bond1
일단 파란색으로 표기한 공통 부분에 대해 알아보자.
ONBOOT=yes
=> 부팅시 자동으로 활성화
BOOTPROTO=none
=> bootp나 dhcp를 사용하지 않음 (static으로 구성)
USERCTL=no
=> 일반 유저가 컨트롤 할 수 없음 (root 권한 필요)
NM_CONTROLLED=no
=> NetworkManager가 컨트롤 할 수 없음
다음은 녹색으로 표시한 본딩 옵션에 대해 알아보자.
BONDING_OPTS="mode=1 miimon=100"
=> 본딩 모드를 Active-Backup으로 설정하고 MII 링크 모니터링 주기를 100ms (0.1초) 로 설정
본딩 모드는 아래와 같다. 보통 mode 1 또는 5를 많이 사용하는 듯.
mode=0 (round-robin)
mode=1 (active-backup)
mode=2 (balance-xor)
mode=3 (broadcast)
mode=4 (802.3ad)
mode=5 (balance-tlb)
mode=6 (balance-alb)
Static Route는 특정 대역을 Default Gateway가 아닌 bond1로 보내기 위해 /etc/sysconfig/network-scripts/route-bond1 파일에 설정하였고, 아래와 같이 route 명령어로 잘 설정되었음을 확인할 수 있다.
[root@CentOS ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.0.0 0.0.0.0 255.255.255.0 U 0 0 0 bond1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0
10.10.0.0 10.10.0.1 255.255.0.0 UG 0 0 0 bond1
169.254.0.0 0.0.0.0 255.255.0.0 U 1006 0 0 bond0
169.254.0.0 0.0.0.0 255.255.0.0 U 1007 0 0 bond1
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 bond0
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.0.0 0.0.0.0 255.255.255.0 U 0 0 0 bond1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0
10.10.0.0 10.10.0.1 255.255.0.0 UG 0 0 0 bond1
169.254.0.0 0.0.0.0 255.255.0.0 U 1006 0 0 bond0
169.254.0.0 0.0.0.0 255.255.0.0 U 1007 0 0 bond1
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 bond0
network-scripts 설정이 완료되면 service network restart 한번 해주고, 아래와 같이 bonding 상태를 확인할 수 있다.
[root@CentOS ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:15:5d:00:02:00
Slave queue ID: 0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:15:5d:00:02:00
Slave queue ID: 0
Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:15:5d:00:02:25
Slave queue ID: 0
[root@CentOS ~]# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:15:5d:00:02:25
Slave queue ID: 0
[root@CentOS ~]# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:15:5d:00:02:24
Slave queue ID: 0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:15:5d:00:02:24
Slave queue ID: 0
Slave Interface: eth3
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:15:5d:00:02:26
Slave queue ID: 0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:15:5d:00:02:26
Slave queue ID: 0
'리눅스' 카테고리의 다른 글
리눅스 하이퍼쓰레딩(Hyper Threading) 활성화 확인 방법 (3) | 2014.06.15 |
---|---|
리눅스 SSL 인증서 만료일 확인 (3) | 2014.05.28 |
리눅스 SSL 사설 인증서 생성하기 (1) | 2014.05.22 |
리눅스 SSH RSA 비대칭키로 패스워드 없이 접속 (4) | 2014.05.20 |
리눅스 본딩 구성 (4) | 2014.02.18 |
리눅스 IP를 변수로 (0) | 2014.02.04 |
우분투 서비스 컨트롤 방법 (7) | 2014.01.01 |
우분투 apt 미러 서버 구성 (2) | 2013.12.18 |
리눅스 ipv6 끄기 (0) | 2013.12.10 |
2014.02.19 13:42
4개의 랜카드중에 2개만 연결되어 있어서(eth0, eth2) CentOS 6.5 설치 후 두개만 bond0로 설정 했는데
network restart 시키면
bond0 인터페이스 활성화중 입니다: Determining if ip address 172.27.200.95 is already in use for device bond0...
이렇게 나옵니다. 구글해봐도 딱히 해결 방법을 못찾겠네요.
그렇다고 인터넷이 안되는건 아닙니다만...
resolv.conf 에 DNS 설정한게 재부팅하면 리셋이 되는데 이거 해결 방법이 없을까요?
구글링해서 이거저거 다 해봤는데도 안되네요.
2014.02.19 23:16 신고
ifcfg-bond0 파일에 ARPCHECK=no를 추가해보세요.
그리고 DNS도 resolv.conf에 직접 설정하지 마시고
ifcfg-bond0 파일에 DNS1=168.126.63.1 처럼 설정하세요.
2014.02.20 16:11
ARPCHECK=no 추가하니 에러는 사라졌는데
DSN1을 추가해도 설정이 안되네요. ifcfg 붙은 파일들에다가 전부다 써줘봐야 하나...
ps. NetworkManager 구동안되게 해뒀더니 괜찮아졌네요.
2014.04.14 15:53
음... RHEL6 버전대에서는 이 부분이 생략되어도 되는지는 모르겠지만
/etc/modprobe.conf에 "alias bond0 bonding" 기입 내용이 없는 것 같은데...
요즘 버전에서는 모듈 올리지 않아도 정상 동작하나요?
아, 그리고 서버 관리하면서 겪었던 일인데 일부 서버, 또는 일부 NIC장치, 드라이버에 따라서 본딩 구성 시 간헐적으로 아무런 이유 없이 NIC 링크가 업/다운을 반복하는 경우가 있습니다.
주로 브로드컴 네트워크 장치에서 문제가 발생되더군요.
RHEL5 버전대에서 발생했던 커널과 NIC 드라이버 관련 버그였는데요,
/etc/modprobe.conf 내용에 options "NIC 드라이버 모듈명" disable_msi=1을 추가하여
MSI, MSI-X 기능을 해제함으로써 해결이 가능합니다.
예) options bnx2 disable_msi=1
RHEL5.5 이상 버전에서 부터 이 문제가 해결되었다고는 하네요.
그냥 여기 방문하시는 분들이 참고하시면 좋을 것 같아서요~ ㅎㅎ