딜미의 잡다한 IT 이야기...

CentOS8 Bonding 본문

Server/Linux

CentOS8 Bonding

딜미 2020. 9. 10. 13:24

Linux에서 Bonding ?

 

두개의 물리적인 네트워크(Port)를 하나의 논리적인 네트워크로 구성하여, 장애대응 or 대역폭확장 용도로 사용하는 기능? 이라고 할 수 있다.

 

주로 사용하는 Bonding 옵션은 3가지

 

1.     Round Robin(라운드 로빈)

Bonding으로 구성된 네트워크에 대해 균등하게 패킷통신을 한다.

패킷균등분배 및 장애에 대한 기능이 지원된다.

해당 기능을 활성화 하기 위해서는 스위치에서 Lacp같은 기능이 지원되야 한다.

Mode = 0

 

2.     Active Backup(액티브-백업)

Bonding으로 구성된 네트워크 중 하나만 사용하는 기능으로 남은 하나는

Slave 모드로 동작을 하다 Primary 네트워크에 장애가 발생하면 Failover이 발생하는 구조

해당 기능 사용으로 포트장애에 대한 대응이 가능하다. (기본적으로 많이 사용)

           Mode = 1

 

3.     802.3ad(LACP)

1번 라운드로빈과 동작방식은 거의 동일하나 패킷통신을 할 때 LACP를 사용

           Mode = 4


스위치 구성 요구사항

Bonding mode

Configuration on the switch

0 – balance-rr

Static LAG

1 – active-backup

설정 X

2 – balance-xor

Static LAG

3 – broadcat

Static LAG

4 – 802.3ad

LACP

5 – balance-tlb

설정 X

6 – balance-alb

설정 X

 

CentOS 8버전에서는 nmcli를 사용하여 bonding 구성.


nmcli를 사용한 bonding 구성 방법


1)bond 인터페이스 생성

nmcli connection add type (bond) con-name (bond0) ifname (bond0) bond.options "mode=(0~6),miimon=(1000 milliseconds)"


type = bond <= 추가하는 type 지정

con-name = bond0 <= 연결명 기본적으로 사용하는 bond0 

ifname = 인터페이스이름 <= 기본적으로 사용하는 bond0 


mode = bonding mode <= 0~6까지 선택하여 사용 주로 사용하는 옵션은 0 or 1이며 LACP 구성이면 4

miimon = milliseconds <= 기본적으로 1000으로 설정하여 사용


[root@localhost ~]# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=1,miimon=1000"

Connection 'bond0' (0b92a057-db9c-40f1-b603-683ff47f17d0) successfully added.


[root@localhost ~]# nmcli device show bond0

GENERAL.DEVICE:                         bond0

GENERAL.TYPE:                           bond

GENERAL.HWADDR:                         CA:D5:85:7D:77:3E

GENERAL.MTU:                            1500

GENERAL.STATE:                          70 (connecting (getting IP configuration))

GENERAL.CONNECTION:                     bond0

GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/5

[root@localhost ~]#


2)bond 설정에 들어가는 인터페이스 구성

[root@localhost ~]# nmcli device status

DEVICE      TYPE      STATE                                  CONNECTION

ens192      ethernet  connected                              ens192

virbr0      bridge    connected                              virbr0

bond0       bond      connecting (getting IP configuration)  bond0

ens224      ethernet  disconnected                           --

lo          loopback  unmanaged                              --

virbr0-nic  tun       unmanaged                              --


Slave로 사용할 인터페이스 지정
nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname ens192 master bond0

nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname ens224 master bond0


[root@localhost ~]# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname ens192 master bond0

Connection 'bond0-port1' (553f59fa-c59c-4785-9dd8-f8d7de1511e8) successfully added.

[root@localhost ~]# nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname ens224 master bond0

Connection 'bond0-port2' (d0d453f4-ba94-4e77-9f2c-11c9bfdcbb82) successfully added.

[root@localhost ~]#


3)bond 인터페이스 IP 설정
[root@localhost ~]# nmcli connection modify bond0 ipv4.addresses '192.168.0.124/24' <= 사용할 IP 및 Mask 지정

[root@localhost ~]# nmcli connection modify bond0 ipv4.gateway '192.168.0.1' <= Default GW 지정

[root@localhost ~]# nmcli connection modify bond0 ipv4.dns '8.8.8.8' <= DNS 서버 IP 지정

[root@localhost ~]# nmcli connection modify bond0 ipv4.method manual <= BOOTPROTO DHCP 해제
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
BONDING_OPTS=mode=active-backup
TYPE=Bond
BONDING_MASTER=yes
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=bond0
UUID=0b92a057-db9c-40f1-b603-683ff47f17d0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.0.123
PREFIX=24
GATEWAY=192.168.0.1
DNS1=8.8.8.8
[root@localhost ~]# 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: ens192
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: ens192
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:50:56:b0:32:c0
Slave queue ID: 0

Slave Interface: ens224
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:50:56:b0:67:65
Slave queue ID: 0
[root@localhost ~]#







'Server > Linux' 카테고리의 다른 글

CentOS8 신규 원격 도구 Web Console  (0) 2020.09.10
Local Repository 설정  (0) 2019.09.24
FIREWALL 설정 관리  (0) 2019.09.23
SELINUX 설정 방법  (0) 2019.09.10
Parted & Gdisk 사용법  (0) 2019.09.09
Comments