본문 바로가기

KITRI/네트워크 기초

Bonding 종류

@ Bonding의 개념.


Bonding 이란 송수신 데이터를 처리 할 수 있는 능력을 가진 네트워크 장비에서 네트워크의 안정성과 대역폭을 늘리는 용도로 한 네트워크에 인터페이스를 여러개 묶어 한마디로 포트 이중화를 말하며, 다른말로 Etherchannel 이라고도 함.


@ Bonding의 종류

1. mode 0 (balance-rr) balace-round robin(2개의 NIC 순차적으로 분배 + fault tolerance)회선이 2회선일 경우 트래픽을 같이 사용할수 있어 대역폭을 분산시키는데 효율적

( A nic -> B nic -> A nic -> B nic)으로 패킷을 분산시키는 방법.

또한, 장애허용으로 인하여, 한쪽 네트워크에 단절이 오더라도 이를 보안하는 기능이 존재.

 

2. Mode 2 (active-backup) 일반 기업들이 많이 쓰고, 흔히들 말하는 네트워크 이중화에 대한 부분으로 사용. 실제 사용시에는 2개의 백본에 2개의 NIC 연결이 되며, 활성화 되어있는 NIC 문제발생시 예비 NIC으로 이첩시키는 기능을 합니다.

보통 IDC같은 곳에서는 이중화보다는 같은 네트워크 스위치에 2회선으로 물려 사용하기도 .

 모드도 장애허용에 대하여 지원.

 

3. Mode 2 (balance-xor)XOR 방식에 따라 패킷을 전송 ( source MAC AddressTarget MAC Address 비트연산을 하여) 모드 0 비슷하지만 근원지 MAC에서 목적지 MAC으로 비트연산을 통하여 분배합니다. 보통 방화벽과 비슷한 방식이기는 하나 들어오는 리퀘스트에 MAC 연결하는 방식

 

4. Mode 3 (broadcast)모든 NIC 동일한 패킷을 brocast 발송합니다.

 

5. Mode 4 (802.3.ad) Dynamic Link Aggregation 정책으로 동작됩니다. speed duplex설정을 공유하는 aggregation group 스위칭 장비에서 설정하여야 한다.

, 802.3.ad 지원하는 스위치에서만 사용이 가능하며, 연결대수에 상관없이 그룹화에 따라 회선의 정책이 변경되어 무단절 인터넷 연결을 가능하게 만드는 방식이다.

 

6. Mode 5 (balance-tlb) 로드 밸런싱 정책으로 밖으로 내보내지는 트래픽은 분산되어 송출되며, 들어오는 트래픽은 Active되어있는 Nic으로 패킷을 받습니다. 만일 Active 되어있는 Nic 문제로 패킷을 받지못하면 또다른 NIC 실패한 NIC MAC Address 물려받게 됩니다.

 

 

7. Mode 6 (balance-alb) 들어오는 트래픽을 분산처리하여 받습니다.

bond에서 트래픽이 많이 존재하지 않는 NIC으로 분산됩니다. 로드 밸런싱은 ARP negotiation을통해서 수행됩니다.


@ 본딩 세부 기능

0-RR(RoundRobin)방식 로드밸런스, 인터페이스의 라운드로빈(대역폭 상승 +Failover)

1 - Active-standby ( NIC Failover만을 위한 모드)

한개는 Standby 기존 것이 무제 생기면 active 전환

2 - XOR방식 / 수신시에는 MAC어드레스로 매핑 , 송신시 1 NIC사용

3 - Broadcast 방식 / 모든 Slave NIC으로 통신 failover제공

 

4 - 802.3ad Dynamic Link aggregation

5 - 송신패킷만 로드밸런싱 / 동일 스위치에 물려있어야 

6 - 송수신 패킷 로드 밸런싱 / 동일 스위치에 물려있어야 

 

Miimon옵션은?

링크 감시 설정모드로 ms단위를 사용하며 디폴트값이 0(사용안함)

, 0으로 설정하면 Failover 비활설화되는 부분으로 사용하며,

기본적으로 리눅스에서는 100ms 사용합니다.

 

본딩하기

 

지금부터는 CentOS 이용하여 본딩하는 방법을 알려드리도록 합니다.이는 Redhat계열에서는 많이 이용되며, 주로 많이 협업에서 많이 사용되는 것은 모드 1(Active&Standby) 사용합니다.

 

 

1.etc/sysconfig/network설정 ( 기본 Gateway 설정)  밑줄에 GATEDEV=bond0 추가

2./etc/sysconfig/network-scripts/ifcfg-bond0설정

 

DEVICE=bond0   #연결 디바이스명

BOOTPROTO=none   # Static (고정), DHCP, none, bootp형식등이 있음

ONBOOT=yes    #부팅시 동작

USERCTL=no    #사용자컨트롤 금지

TYPE=Ethernet # 타입은 이더넷

IPADDR=10.0.1.101    #IP

NETMASK=255.255.255.0  # Netmask

GATEWAY=10.0.1.1        # Gateway

BONDING_OPTS='mode=1 miimon=100 use_carrier=0 primary=eth0'

 

 

3./etc/sysconfig/network-scripts/ifcfg-eth(x) 설정 x=(ex:eth0,1)

 

DEVICE=ethX #연결 디바이스명( eth0,1)

BOOTPROTO=none   # Static (고정), DHCP, none, bootp형식등이 있음

ONBOOT=yes    #부팅시 동작

USERCTL=no    #사용자컨트롤 금지

TYPE=Ethernet # 타입은 이더넷

MASTER=bond0 # MASTER Bonding

SLAVE=yes  #대비책으로 구성(Master  bond0이므로 Slave그룹에 가입)

 

4./etc/modprobe.conf설정내에 아랭의 사항을 추가

alias bond0 bonding

options bond0 mode=1 miimon=100

 

#만일 두개의 본딩을 구성하셔야 한다면 아래부부능로 이용하시기 바람

alias bond0 bonding

alias bond1 bonding

options bonding max_bonds=2

options bondig miimon=100 mode=1

 

5.모듈 로딩  네트워크 재시작

 

modprobe bonding # 본딩 모듈 로딩

 

/etc/init.d/network restart 혹은 service network restart

 

 

6./proc/net/bonding/bond0에서 본딩 확인





출처: http://hellojapan.tistory.com/6 [JapanLife]


'KITRI > 네트워크 기초' 카테고리의 다른 글

SDN  (0) 2017.09.25
L4 스위치의 가상IP 설정 및 로드밸런싱  (0) 2017.09.11
2~ 4계층 헤더 구조  (0) 2017.08.31
스터디 Cacti SNMP 연동 실습 2  (0) 2017.07.31
스터디 HTTP 헤더 분류  (0) 2017.07.07