Aaron's Blog logo Aaron's Blog

CISCO(시스코)에서는 “Etherchannel”, Sun에서는 “Trunking”, 리눅스에서는 “Bonding”
이라고 칭하는 여러개의 이더넷 어댑터를 하나로 묶어 네트워크 대역폭을 늘리고, 한개의
이더넷이 죽었을경우 Redendency 할수있는 방법입니다.

허브는 EtherChannel을 지원하는 스위치 가 필요하고, 리눅스 커널에서 Bonding 을지원
이더넷 어댑터가 2개이상 필요합니다. 

같은 랜카드2개와 터널링지원 스위치가 필요하나 집에서 사용중인 SK21G 베어본의 내장
PHY VIA VT6103, D-Link  DGE-530T PCI, 3COM 3C16791A 스위치, 페도라코어5 로
Redendency를 구성해보겠습니다.

1) 네트웍설정 확인

ifconfig

eth0      Link encap:Ethernet  HWaddr 00:30:1B:BB:xx:xx
          inet6 addr: fe80::213:46ff:fe78:3fce/64 Scope:Link
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
          RX packets:1526 errors:0 dropped:0 overruns:0 frame:0
          TX packets:156 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:132508 (129.4 KiB)  TX bytes:23797 (23.2 KiB)
          Interrupt:18

eth1      Link encap:Ethernet  HWaddr 00:13:46:78:xx:xx
          inet6 addr: fe80::213:46ff:fe78:3fce/64 Scope:Link
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:1540 errors:0 dropped:0 overruns:0 frame:0
          TX packets:160 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:127427 (124.4 KiB)  TX bytes:21098 (20.6 KiB)
          Interrupt:19 Base address:0xc000

2) /etc/modprobe.conf 수정

alias bond0 bonding   <- 본딩모듈을 올려줍니다.
alias eth0 via-rhine  <- VIA 내장 100M
alias eth1 skge       <- 추가장착 D-Link  DGE-530T
alias eth1 skgealias scsi_hostadapter sata_via
alias scsi_hostadapter1 usb-storage

2-1) /etc/sysconfig/network 파일

NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.0.1
GATEDEV=bond0

3) /etc/sysconfig/network-scripts/ 의 설정파일수정

vim ifcfg-bond0 새로생성 (ifcfg-eth0 복사)

DEVICE=bond0 <- 수정
BOOTPROTO=static
BROADCAST=192.168.10.255
#HWADDR=00:30:1B:BB:xx:xx <-MAC 어드래스는 빼버립니다.
IPADDR=192.168.10.4
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=192.168.10.1

vim ifcfg-eth0

VIA Technologies, Inc. VT6102 [Rhine-II]

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
TYPE=Ethernet

vim ifcfg-eth1

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
TYPE=Ethernet

4) bond0 활성화 

  커널 2.6.XX
/etc/modprobe.conf
modprobe bonding

위와같이 모듈을 인식시켜 줍니다.

ifconfig eth0 up 0.0.0.0
ifconfig eth1 up 0.0.0.0

위 방법은 안될때 하는 방법입니다. 

ifup bond0 <- bond0 활성화

ifenslave bond0 eth0 <- eth0 를 bond0 에 슬레이브
ifenslave bond0 eth1 <- eth1 를 bond0 에 슬레이브

혹은 /etc/rc.d/init.d/network restart 로 네트웍 디바이스들을 재시작해줍니다.

ifconfig

bond0     Link encap:Ethernet  HWaddr 00:13:46:78:xx:xx
          inet addr:192.168.10.4  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::213:46ff:fe78:3fce/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:5184302 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4937025 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:279838452 (266.8 MiB)  TX bytes:138131145 (131.7 MiB)

eth0      Link encap:Ethernet  HWaddr 00:13:46:78:xx:xx
          inet6 addr: fe80::213:46ff:fe78:3fce/64 Scope:Link
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:1803934 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2468511 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2221561120 (2.0 GiB)  TX bytes:2224359808 (2.0 GiB)
          Interrupt:19

eth1      Link encap:Ethernet  HWaddr 00:13:46:78:xx:xx
          inet6 addr: fe80::213:46ff:fe78:3fce/64 Scope:Link
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:3380368 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2468517 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2353244628 (2.1 GiB)  TX bytes:2208739115 (2.0 GiB)
          Interrupt:21 Base address:0x8000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:30 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5690 (5.5 KiB)  TX bytes:5690 (5.5 KiB)