드레스룸 시스템행거 인테리어

반응형

linux centos 본딩(bonding) 종류 및 설정하기

 

 

 

 

서버를 사용하다 보면 여러 가지 이유로 본딩을 묶게 된다.

 

본딩을 묶는 이유는 본딩모드에 따라 여러 가지가 될 수 있다.

 

빨리 쓰고 싶은사람도 있고 또한 안전하게 사용하고 싶은 사람도 있다.

 

물론 빠르고 안전하게 쓰려면 1Gb 대신 10Gb 두 개로 raid 1처럼 사용하면 된다.

 

그럼 본딩 종류에 대해 알아 보도록 하겠다.

 

 

 

 

본딩(bondig) 종류

 

  • Mode 0 : round-robin



    0으로 묶인 네트워크 인터페이스의 트래픽을 같이 사용하여 대역폭을 분산시킨다.

    또한 가장 중요한 failover기능이 제공

  • Mode1 : active-backup



    active상태의 network에 문제가 발생 시 standby로 동작하는 network가 active로 활성화된다.


  • Mode2 : balance-xor



    xor 방식에 따라 패킷을 전송하며 mode0과 비슷하지만 mac -> mac으로 비트 연산을 통하여 분배

이외에도 mode3,4,5,6 도 있다.

 

솔직히 모르겠다. 나는 여태껏 본 바로는 mode 1의 비중이 95%는 된다.

 

이제 이론은 그만 보구 본딩을 한번 구성해 보자~!!

 

 

 

 

본딩(bonding) 구성

 

[root@master ~]# ifconfig 
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.6.150  netmask 255.255.255.0  broadcast 192.168.6.255
        inet6 fe80::3b9e:3583:c96b:daa3  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:4c:0d:be  txqueuelen 1000  (Ethernet)
        RX packets 1001  bytes 807311 (788.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 373  bytes 52811 (51.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.6.154  netmask 255.255.255.0  broadcast 192.168.6.255
        inet6 fe80::cd5b:b6f1:ccef:1e27  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:4c:0d:c8  txqueuelen 1000  (Ethernet)
        RX packets 256  bytes 48774 (47.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 36  bytes 5352 (5.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

network interface ens32와 ens36을 지금부터 mode1 active-backup으로 bonding구성을 하겠다.

 

시작 전 혹시 모르니 backup파일을 생성해두자.

 

[root@master ~]# cd /etc/sysconfig/network-scripts/
[root@master network-scripts]# ls
ifcfg-ens32  ifdown-eth   ifdown-isdn    ifdown-sit       ifup          ifup-ib    ifup-plip   ifup-routes    ifup-tunnel        network-functions-ipv6
ifcfg-lo     ifdown-ib    ifdown-post    ifdown-Team      ifup-aliases  ifup-ippp  ifup-plusb  ifup-sit       ifup-wireless
ifdown       ifdown-ippp  ifdown-ppp     ifdown-TeamPort  ifup-bnep     ifup-ipv6  ifup-post   ifup-Team      init.ipv6-global
ifdown-bnep  ifdown-ipv6  ifdown-routes  ifdown-tunnel    ifup-eth      ifup-isdn  ifup-ppp    ifup-TeamPort  network-functions
[root@master network-scripts]# cp ifcfg-ens32 ifcfg-ens32.bak

 

가상 환경에 갑작스레 네트워크 인터페이스를 추가한 거라 network-scripts에 ifcfg-ens36이 보이지 않는다.

 

신경 쓰지 말고 작업하겠다.

 

ifcfg-ens32 파일 안을 텍스트를 싹 비우고 아래와 같이 기입하자.

 

[root@master network-scripts]# vim ifcfg-ens32

DEVICE=ens32
MASTER=bond0
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no

[root@master network-scripts]# vim ifcfg-ens36

DEVICE=ens36
MASTER=bond0
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no

 

네트워크 인터페이스 2개다 동일하게 진행하면 된다. 복수 붙여 넣기 할 때 device명만 주의하도록!!

 

그리고 bond파일을 생성하면 된다.

 

[root@master network-scripts]# vim ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=No
ONBOOT=yes
IPADDR=192.168.6.150
NETMASK=255.255.255.0
GATEWAY=192.168.6.2
DNS1=168.126.63.1
DNS2=8.8.8.8
BONDING_OPTS="mode=1 miimon=100"

 

위와 같이 bond0 파일을 생성하자.

 

위에서 볼 점은 bonding_opts에서 본딩 모드와 miimon=100이다. 

 

miimon은 링크 감시 설정 모드로 ms단위로 사용된다. 기본적으로 100을 사용한다.

[root@master network-scripts]# systemctl restart network
[root@master network-scripts]# ifconfig 
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet 192.168.6.150  netmask 255.255.255.0  broadcast 192.168.6.255
        inet6 fe80::20c:29ff:fe4c:dbe  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:4c:0d:be  txqueuelen 1000  (Ethernet)
        RX packets 18  bytes 1478 (1.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 32  bytes 3544 (3.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

위와 같이 network restart 후에 bond0 장치가 올라와 있은 것을 확인할 수 있다.

 

[root@master network-scripts]# ping kr.yahoo.com
PING src.san1.g01.yahoodns.net (212.82.100.151) 56(84) bytes of data.
64 bytes from w2.src1.vip.ir2.yahoo.com (212.82.100.151): icmp_seq=1 ttl=128 time=283 ms
^C
--- src.san1.g01.yahoodns.net ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 283.102/283.102/283.102/0.000 ms
[root@master network-scripts]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=46.8 ms
^C
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 46.808/46.808/46.808/0.000 ms
[root@master network-scripts]# ping node01
PING node01 (192.168.6.151) 56(84) bytes of data.
64 bytes from node01 (192.168.6.151): icmp_seq=1 ttl=64 time=0.418 ms

 

ping 역시 여기저기 다 잘 나간다~

 

마지막으로 bonding 상태를 확인하기 위해서는

 

[root@master network-scripts]# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens32
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: ens32
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:4c:0d:be
Slave queue ID: 0

Slave Interface: ens36
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:4c:0d:c8
Slave queue ID: 0

 

위와 같은 명령어를 사용하여 본딩 모드 및 status를 확인할 수 있다!

 

 

2020/07/29 - [linux] - linux - ssh 접속하기 및 포트 변경

2020/07/27 - [linux] - 리눅스(linux) - 기본 명령어 사용법

2020/07/21 - [linux] - linux path 설정 - bashrc ? /etc/bashrc ?

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band