# 차례
1. 본딩이란?
2. 본딩 설정 종류
3. 본딩 설정하기
3-1) redhat linux(centos포함)에서 본딩 설정하기
3-2) debian linux에서 본딩 설정하기
3-3) gentoo linux에서 본딩 설정하기
1. 본딩(bonding)이란?
여러개의 이더넷을 하나로 묶어 네트워크 대역폭을 늘리는 방법이다.
이와 비슷한 기술은 시스템에 따라 다양한 이름으로 명명된다.
HP-UX : APA
SUN : SunTrunking
Cisco : EtherChannel
Windows : Teaming
Linux : Bonding
이기술은 제한적인 인터페이스의 대역폭 향상을 목적으로 두고 있지만
개념적 특성으로 인해 클러스터링의 기본 기술로 사용 가능하다.
2. 본딩 설정 종류
mode는 해당 bonding 정책을 정의 한다.
Default는 0이다.
Mode의 정의는 다음과 같다.
0 : Round-robin 정책
첫 번째 가능한 슬레이브부터 마지막까지 순차적으로 전송한다.
이 모드는 부하분산과 failover를 제공한다.
(Active-Active, 이론상 슬레이브 수 만큼의 배수대로 대역폭을 확장가능하다.)
1 : Active-backup 정책
bond에서 하나의 슬레이브만 활성화된다.
다른 슬레이브는 활성화된 슬레이브가fail된 경우에만 활성화 된다.
(대역폭은 활성화 된 슬레이브 하나만큼의 대역폭을 갖는다.)
2 : XOR 정책
[(출발지 MAC 주소와 도착지 MAC 주소의 XOR) modula 슬레이브 개수] 에 기초하여 전송한다.
이것은 각 도착지 MAC 주소에 대해서 동일한 슬레이브를 선택하게 된다.
이 모드는 부하분산과 failover를 제공한다.
3 : Broadcast 정책
모든 슬레이브 인터페이스에 모든 것을 전송한다.
이것은 failover를 제공한다.(mirror, 하나의 슬레이브만큼의 대역폭을 갖는다)
3. 본딩 설정하기
3-1) redhat linux(centos포함)에서 본딩 설정하기
# /etc/modules.conf
# ================================================================================= #
alias bond0 bonding
alias eth0 3c59x ## <-- 현재 장착되어 있는 이더넷
alias eth1 3c59x ## <-- 새로 장착할 두번째 이더넷
bond0에서 0는 숫자 0입니다.
bonding은 커널 모듈을 의미합니다.
3c59x 는 모듈이름입니다(3Com 905B-TX 10/100M).
# ================================================================================= #
/etc/sysconfig/network-scripts/ifcfg-bond0
# ================================================================================= #
DEVICE=bond0
BOOTPROTO=none
USERCTL=no
ONBOOT=yes
NETWORK=xxx.xxx.xxx.96
NETMASK=255.255.255.0
GATEWAY=xxx.xxx.xxx.xxx
IPADDR=xxx.xxx.xxx.123
# ================================================================================= #
/etc/sysconfig/network-scripts/ifcfg-eth0
# ================================================================================= #
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
# ================================================================================= #
/etc/sysconfig/network-scripts/ifcfg-eth1
# ================================================================================= #
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
# ================================================================================= #
# bonding 모듈 삽입
insmod /lib/modules/{커널버전}/kernel/drivers/net/bonding/bonding.ko mode=1
# 설정 끝
각 네트워크 인터페이스 확인하기
[bond0 / eth0 / eth1 모두 같아야 할 부분]
- 이더넷 MAC Address : HWaddr 00:xx:C9:xx:E7:xx
즉, 첫번째 이더넷(eth0)의 MAC Address 를 모두 따른다.
- IP Address : inet addr:211.xxx.159.xxx
- Brocast Address : Bcast:211.xxx.159.xxx
- Net Mask : Mask:255.255.255.xxx
[서로 꼭 틀려야할 부분]
- MASTER / SLAVE(********꼭 확인********)
bond0 : ... RUNNING MASTER MULTICAST ...
eth0/eth1 : ... RUNNING SLAVE MULTICAST ...
- 이더넷 I/O Address(서로 다른 이더넷임을 확인)
eth0 : Base address:0x7000
eth1 : Base address:0x9000
- 기타 패킷 양
# /sbin/ifconfig
bond0 Link encap:Ethernet HWaddr 00:xx:C9:xx:E7:xx
inet addr:211.xxx.159.xxx Bcast:211.xxx.159.xxx Mask:255.255.255.xxx
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:1107 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
eth0 Link encap:Ethernet HWaddr 00:xx:C9:xx:E7:xx
inet addr:211.xxx.159.xxx Bcast:211.xxx.159.xxx Mask:255.255.255.xxx
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:1721 errors:0 dropped:0 overruns:0 frame:0
TX packets:554 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:9 Base address:0x7000
eth1 Link encap:Ethernet HWaddr 00:xx:C9:xx:E7:xx
inet addr:211.xxx.159.xxx Bcast:211.xxx.159.xxx Mask:255.255.255.xxx
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:1746 errors:0 dropped:0 overruns:0 frame:0
TX packets:553 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:10 Base address:0x9000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
# ls /proc/sys/net/ipv4/conf
all bond0 default eth0 eth1 lo
# 체크사항
게이트웨이나 네트워크 또는 외부 네트워크에 패킷을 보내고 받아본다.
네트워크 연결이 안되거나 속도가 현저하게 느리다면, 랜선이 허브와 이더넷에 올바르게
연결되어있는지 확인하거나 허브 장비에 해당 Link가 On되어 있는지 꼭 확인한다.
RX / TX 패킷 확인하기
# cat /proc/net/dev (또는 /sbin/ifconfig 의 결과에서 RX/TX 패킷 비교)
(행의 길이가 길어서 필요한 것만 옮겼음)
(단위 : 패킷 양)
Iface RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR
lo 340 0 0 0 340 0 0 0
bond0 0 0 0 0 3313 0 0 0
eth0 14711 0 0 0 1657 0 0 0
eth1 14746 0 0 0 1656 0 0 0
'IT > System Engineering' 카테고리의 다른 글
도메인 라이프 사이클 (0) | 2013.07.31 |
---|---|
리눅스 파일시스템 체크 (0) | 2013.05.20 |
MySQL Error Code (0) | 2013.03.22 |
[JAVA] JVM OutofMemory 발생시 자동 dump 생성 JVM 옵션 (0) | 2013.02.27 |
Apache Maxclients 설정 (0) | 2013.02.08 |
댓글