본문 바로가기
IT/linux

Redhat Linux 8 bonding 구성

by 방구석꼰머 2022. 10. 1.
반응형

Redhat Linux 8 서버에서 nmcli 명령을 통해 network bonding 설정을 하는 방법에 대해 알아보도록 하겠습니다.

 

이 포스팅은 아래의 버전에서 테스트한 내용을 기반으로 작성하였습니다
Linux : Red Hat Enterprise Linux release 8.6

 

 

1. nmcli 이용한 network bonding 설정

먼저 현재 linux 서버의 네트워크 연결 정보를 확인합니다.

# nmcli dev

# nmcli dev
DEVICE  TYPE      STATE                   CONNECTION
ens160  ethernet  connected               ens160
ens256  ethernet  connected               ens256
virbr0  bridge    connected (externally)  virbr0
ens224  ethernet  connected               ens224

 

현재 서버에서 ens224, ens256 디바이스를 active-backup 모드로 bonding 하는 작업을 진행하도록 하겠습니다.

아래의 명령을 수행하여 “bond0” 라는 이름으로 bond 디바이스를 active-backup 모드로 생성합니다.

# nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"

# nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"
Connection 'bond0' (8253a02c-5205-447c-bc9b-824403a45813) successfully added.

 

nmcli con add -h 를 수행하여 nmcli connection add 에 대한 도움말을 확인할 수 있습니다.

# nmcli con add -h

# nmcli con add -h	
COMMON_OPTIONS:
                  type <type>
                  ifname <interface name> | "*"
                  [con-name <connection name>]
                  [autoconnect yes|no]
                  [save yes|no]
                  [master <master (ifname, or connection UUID or name)>]
                  [slave-type <master connection type>]
…
bond:         [mode balance-rr (0) | active-backup (1) | balance-xor (2) | broadcast (3) |
                        802.3ad    (4) | balance-tlb   (5) | balance-alb (6)]
                  [primary <ifname>]
                  [miimon <num>]
                  [downdelay <num>]
                  [updelay <num>]
                  [arp-interval <num>]
                  [arp-ip-target <num>]
                  [lacp-rate slow (0) | fast (1)]

 

생성된 bond0 디바이스의 정보를 확인합니다.

# nmcli dev

# nmcli dev
DEVICE  TYPE      STATE                                  CONNECTION
ens160  ethernet  connected                              ens160
ens256  ethernet  connected                              ens256
virbr0  bridge    connected (externally)                 virbr0
ens224  ethernet  connected                              ens224
bond0   bond      connecting (getting IP configuration)  bond0

 

생성된 bond0 디바이스에 ens224, ens225 디바이스를 연결합니다.

# nmcli con mod ens224 master bond0

# nmcli con mod ens256 master bond0

 

ens224, ens256 디바이스의 설정 정보가 bond0의 slave로 변경된 것을 확인합니다.

# cat /etc/sysconfig/network-scripts/ifcfg-ens224

# cat /etc/sysconfig/network-scripts/ifcfg-ens256

# cat /etc/sysconfig/network-scripts/ifcfg-ens224
TYPE=Ethernet
NAME=ens224
UUID=ba2e1c06-696e-396d-a4a6-1d702d4de246
DEVICE=ens224
ONBOOT=yes
AUTOCONNECT_PRIORITY=-999
MASTER=bond0
SLAVE=yes

# cat /etc/sysconfig/network-scripts/ifcfg-ens256
TYPE=Ethernet
NAME=ens256
UUID=d31c9264-717b-3a54-a969-fee639944f33
DEVICE=ens256
ONBOOT=yes
AUTOCONNECT_PRIORITY=-999
MASTER=bond0
SLAVE=yes

 

반응형

 

변경된 ens224, ens256 디바이스의 설정 정보를 적용하기 위해 네트워크 디바이스를 다시 활성화시킵니다.

# nmcli con up ens224

# nmcli con up ens256

# nmcli con up ens224
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/16)
# nmcli con up ens256
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/17)

 

생성된 bond0 디바이스에 ip정보를 설정합니다.

# nmcli con mod bond0 ipv4.method manual ipv4.addresses '192.168.240.199/24' ipv4.gateway '192.168.240.2' ipv4.dns '192.168.240.2'
# nmcli con mod bond0 ipv6.method disable

 

bond0의 디바이스의 설정 정보를 적용하기 위해 네트워크 디바이스를 다시 활성화시킵니다.

# nmcli con up bond0

# nmcli con up bond0
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/18)

 

지금까지 설정한 네트워크 정보를 확인합니다.

네트워크 디바이스 정보 확인

# nmcli dev

nmcli dev
bonding 디바이스 확인

 

 

ip 정보 확인

# ip addr | grep bond0

# ip addr | grep bond0
3: ens224: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
5: ens256: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
7: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet 192.168.240.199/24 brd 192.168.240.255 scope global noprefixroute bond0

 

bonding 정보 확인

# cat /proc/net/bonding/bond0

# 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: ens224
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0

Slave Interface: ens224
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:1f:a4:e8
Slave queue ID: 0

Slave Interface: ens256
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:1f:a4:f2
Slave queue ID: 0

 

지금까지 nmcli를 이용한 network bonding 설정 방법에 대해 알아봤습니다.

 

감사합니다.

반응형

댓글