IT/Tips

Linux Bonding 구성

싸후이 2010. 3. 19. 14:32
출처 : http://community.plusonnet.co.kr/?p=16

1. Bonding 개요

=> 본딩이란 여러개의 NIC를 논리적으로 하나로 묶어 NIC의 갯수만큼의 대역폭을 확장하는 기술이다. 예를들어 100Mbps NIC 두개를 묶어 200Mbps의 대역폭으로 구성 할 수 있다.

또한 NIC가 두개 이기 때문에 물리적인 경로또한 두개가 생긴다. 이것은 곧, 네트웍의 이중화라고 말할 수 있다. 하나의 NIC 장애시 남은 하나의 NIC로 통신이 가능하여  Fau lt Tolerance의 역할을 한다.

또한 두개의 경로에서 패킷을 적절히 분배할 수 있는 로드밸런싱 기능까지 구현할 수 있다.

2. 테스트 환경

- Machine : VMWARE

- OS : CentOS 5.2 i386 2.6.18-92.el5 #1 SMP

3. Bonding 구성

3.1 네트웍 환경 구성 파일 설정

#cd /etc/sysconfig/network-script

#vi ifcfg-bond0  => ifcfg-bond파일은 존재하지 않으며 새롭게 생성하여 아래의 값을 등록.

네트웍 주소부분은 환경에 맞게 설정해주면 된다.

DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.2.100
NETMASK=255.255.255.0
NETWORK=10.100.100.0

#vi ifcfg-eth0 => 해당 파일을 열어 아래의 값을 등록하고 남은 부분은 삭제한다.

DEVICE=eth0
USERCTL=no => root가 아닌 일반계정이 해당 인터페이스를 비활성화 가능 여부
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

#vi ifcfg-eth1 => ifcfg-eth0의 설정과 같에 등록한다. ifcfg-eth0파일을 복사하면 편리하다.

DEVICE=eth0
USERCTL=no => root가 아닌 일반계정이 해당 인터페이스를 비활성화 가능 여부
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

#cd /etc/sysconfig

#vi network => 기존내용에서 GATEDEV항목만 새롭게 추가해 준다. 또한 호스트네임 및 게이

트웨이 주소는 자신의 환경에 맞게 설정한다.

NETWORKING=yes
HOSTNAME=test-test
GATEWAY=192.168.2.100
GATEDEV=bond0  => 새롭게 추가되는 항목

3.2 모듈 구성

#vi /etc/modprobe.conf => 해당 파일을 열어 아래의 값을 추가해 준다.

alias bond0 bonding
options bonding mode=1  => bonding 모드 지정
options bond0 miimon=100  =>  NIC 상태 체크 시간(1/100 sec)

[Bonding 모드 종류]

0 : balance-round robine ( 2개의 NIC를 통한 분배 +  Fault Tolerance )
1 : active-standby ( Active상태의 NIC에 문제 발생시 Fault Tolerance )
2 : balance-xor ( 0과 비슷하지만 xor연산을 이용한 목적지 Mac과 근원지 Mac을 이용한

분배 +    Fault tolerance)

3 : broadcast ( 2개의 NIC에 어떤 규칙 없이 데이터 통신 +  Fault Tolerace)
4 : 802.3ad (link aggregation) – switch 에 aggregation 그룹생성이 필요

#modprobe bonding

#lsmod |grpe bonding

bonding                81197  0

#service network restart

#ifconfig => 모두 3개의 인터페이스가 활성화 되었으며, 실제 인터페이스에서는

“SLAVE”라는 상태 정보가 생성되어 있다.

bond0     Link encap:Ethernet  HWaddr 00:15:17:15:84:12
inet addr:192.168.2.100  Bcast:192.168.2.255  Mask:255.255.255.0
inet6 addr: fe80::215:17ff:fe15:8412/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
RX packets:139377078 errors:0 dropped:0 overruns:0 frame:0
TX packets:42875855 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:706627033 (673.8 MiB)  TX bytes:634182662 (604.8 MiB)

eth2    Link encap:Ethernet  HWaddr 00:15:17:15:84:12
inet6 addr: fe80::215:17ff:fe15:8412/64 Scope:Link
UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
RX packets:88307292 errors:0 dropped:0 overruns:0 frame:0
TX packets:42875850 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1545900323 (1.4 GiB)  TX bytes:634182264 (604.8 MiB)
Base address:0xece0 Memory:fc3e0000-fc400000

eth3      Link encap:Ethernet  HWaddr 00:15:17:15:84:12
inet6 addr: fe80::215:17ff:fe15:8412/64 Scope:Link
UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
RX packets:51069786 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3455694006 (3.2 GiB)  TX bytes:398 (398.0 b)
Base address:0xecc0 Memory:fc3a0000-fc3c0000

3.2 구성상태 확인 및 검증

#cd /proc/net/bonding
#cat bonding

Ethernet Channel Bonding Driver: v2.6.3 (June 8, 2005)  => Bonding의 버전정보
Bonding Mode: fault-tolerance (active-backup)   => 구성된 Bonding 모드 정보

Primary Slave: None
Currently Active Slave: eth2
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth2
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:15:17:15:84:12

Slave Interface: eth3
MII Status: up
Link Failure Count: 1
Permanent HW addr: 00:15:17:15:84:13

'IT > Tips' 카테고리의 다른 글

ubuntu setting  (0) 2010.06.07
find 팁  (0) 2010.06.07
ubuntu 9.10 설정  (0) 2010.01.27
자료형 최소값,최대값  (0) 2009.12.02
gdb fork  (0) 2009.11.27