RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR

리눅스 본딩 설정하기

Linux Bonding 설정하기

본딩이란?한대의 서버에 여러개의 랜카드를 이용하여 대역폭 또는 예비 회선으로 사용할 수 있도록 하는 전송 속도의 분배및 대비책으로 사용하기 위한 기술입니다. 윈도우에서는 티밍(teaming)이라고 불리우기도 하는 기술입니다.

Bonding 종류

  • Mode 0 (balance-rr) balance-round robine ( 2개의 NIC을 순차적으로 분배 + Fault Tolerance) 회선이 2회선일 경우 트래픽을 같이 사용할 수 있어 대역폭을 분산시키는데 효율적입니다. [ A nic -> B nic -> A nic -> B nic 순] 으로 패킷을 분산 시키는 방법입니다. 또한, 장애허용으로 인하여, 한쪽 네트워크에 단절이 오더라도 이를 보안하는 기능이 존재 합니다.
  • Mode 1 (active-backup) 일반 기업들이 많이 쓰고, 흔히들 말하는 네트워크 이중화에 대한 부분으로 사용되어집니다. 실제 사용시에는 2개의 백본에 2개의 NIC에 연결이 되며, 활성화 되어있는 NIC에 문제 발생시 예비 NIC으로 이첩시키는 기능을 합니다. 보통 IDC같은 곳에서는 이중화 보다는 같은 네트워크 스위치에 2회선으로 물려 사용하기도 합니다. 이 모드도 장애허용에 대하여 지원됩니다.
  • Mode 2 (balance-xor) XOR 방식에 따라 패킷을 전송합니다. (Source MAC Address가 Target MAC Address로 비트연산을 하여 ) 모드 0과 비슷하지만 근원지 MAC에서 목적지 MAC으로 비트 연산을 통하여 분배합니다. 보통 방화벽과 비슷한 방식이기는 하나 들어오는 리퀘스트에 MAC을 연결하는 방식입니다.
  • Mode 3 (broadcast) 모든 NIC에 동일한 패킷을 brocast로 발송합니다.
  • Mode 4 (802.3.ad) Dynamic Link Aggregation 정책으로 동작됩니다. speed와 duplex 설정을 공유하는 aggregation groups를 스위칭 장비에서 설정하여야 합니다. 단, 802.3.ad를 지원하는 스위치에서만 사용이 가능하며, 연결대수에 상관없이 그룹화에 따라 회선의 정책이 변경되어 무단절 인터넷 연결을 가능하게 만드는 방식입니다.
  • Mode 5 (balance-tlb) 로드 발랜싱 정책으로 밖으로 내보내지는 트래픽은 분산되어 송출되며, 들어오는 트래픽은 Active되어있는 NIC으로 패킷을 받습니다. 만일 Active 되어있는 NIC의 문제로 패킷을 받지 못하면 또다른 NIC이 실패한 NIC의 MAC Address를 물려받게 됩니다.
  • 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로 사용합니다.

Bonding 하기
지금부터는 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 bonding miimon=100 mode=1
  5. 모듈 로딩 및 네트워크 재시작.
    modprobe bonding # 본딩 모듈 로딩
    /etc/init.d/network restart 혹은 service network restart
    
  6. /proc/net/bonding/bond0 에서 bonding 확인
    Bonding Mode: fault-tolerance (active-backup) # 본딩 모드
    Primary Slave: None
    Currently Active Slave: eth0    # 현재 Active 디바이스명
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 0
    Down Delay (ms): 0
    Slave Interface: eth0
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 1x:xx:xx:xx:e1:40
    Slave Interface: eth1
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 1x:xx:xx:xx:e1:41
    

위와 같이 정상적으로 동작이 된다면 이상없이 마무리가 된 것입니다.
모드에 따라 설정법이 다르니 참고 하시기 바랍니다.

2016/09/19 10:09 2016/09/19 10:09
ZOSEL:Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
전체 (203)
리눅스시스템 (92)
윈도우시스템 (16)
프로그램 (7)
네트워크시스템 (7)
최근관심 (1)
«   2016/09   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
  1. Ugg Sito  2015
    Ugg Sito
  2. Ugg Online  2015
    Ugg Online
  3. Ugg Boots Outlet Italia  2015
    Ugg Boots Outlet Italia
  1. 2016/09 (1)
  2. 2016/07 (5)
  3. 2016/05 (2)