
1. Bonding이란?
리눅스에서 여러 네트워크 인터페이스를 하나의 채널로 만들어,
안정성 혹은 대역폭 이득을 얻는 기능.
2. Bonding의 종류
# 0: Balance-round robine 정책 : 2개의 NIC를 통한 분배, 프로세스들 간의 우선순위 X
Round Robin Scheduling : https://ccclog.tistory.com/118
# 1: Active-Standby :
- Active 상태의 NIC에 문재발생시 Unactive 상태의 NIC를 활성화.
- 안정성 확보의 기술. 평상시에는 1개의 인터페이스를 사용하다 해당 인터페이스 문제발생시에 Backup 인터페이스로 사용하여 안정성 확보,
- 성능향상과는 무관한 기술
# 4: 802.3ad(link aggregation)
- NIC병합하여 대역폭확장.
3. Ubuntu 22.04에서 실제 구성.
# NMCLI로는 진행불가.
-------------------------------------------------------------------------
>>root@user:~# nmcli
eno1: unmanaged
"Intel I350"
ethernet (igb), 7C:C2:55:29:F3:38, hw, mtu 1500
eno2: unmanaged
"Intel I350"
ethernet (igb), 7C:C2:55:29:F3:39, hw, mtu 1500
usb0: unmanaged
"Insyde Software RNDIS/Ethernet Gadget"
ethernet (rndis_host), 4A:D2:70:25:04:FE, hw, mtu 1500
lo: unmanaged
"lo"
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.
Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.
>> root@user:~# nmcli con del eno1
Error: unknown connection 'eno1'.
Error: cannot delete unknown connection(s): 'eno1'.
root@user:~# nmcli dev
DEVICE TYPE STATE CONNECTION
eno1 ethernet unmanaged --
eno2 ethernet unmanaged --
usb0 ethernet unmanaged --
lo loopback unmanaged --
-------------------------------------------------------------------------------
# ifenslave, ethtool 설치.
Ubuntu 18.04 이후에 network는 netplan에 의해서 조정됨.
netplan에서 본딩 구성시 Ifenslave, ethtool 설치 필요.
-------------------------------------------------------------------------------
>> root@user:~# apt install -y ifenslave ethtool
>> root@user:~# dpkg -l |grep "ifenslave\|ethtool"
ii ethtool 1:5.16-1 amd64 display or change Ethernet device settings
ii ifenslave 2.10ubuntu3 all configure network interfaces for parallel routing (bonding)
-------------------------------------------------------------------------------
# bonding module 추가.
-------------------------------------------------------------------------------
## bonding 모듈 확인.
** 해당 테스트시에는 설치 이후에 lsmod에서 bonding 바로 확인 가능했음.
>>root@user:~# lsmod|grep bonding
bonding 200704 0
tls 114688 1 bonding
** 재부팅 이후에는 lsmod에서 bonding 확인되지 않음.
>>root@user:~# lsmod|grep bonding
** 해당 경우에는 modprobe bonding 명령어 이용함.
>>root@user:~# modprobe bonding
>>root@user:~# lsmod|grep bonding
bonding 200704 0
tls 114688 1 bonding
## bonding 시작 모듈에 추가.
재부팅시마다, bonding modprobe를 통해 추가해주기는 불편함.
그로 인해 시작모듈에 올려주기위해선 해당 작업을 추가함.
>>root@user:~# vim /etc/modules
![[Pasted image 20231017111442.png]]
:wq
** 재부팅 이후에 lsmod를 통해서 bonding 확인 가능
>>root@user:~# lsmod |grep bonding
bonding 200704 0
tls 114688 1 bonding
# Netplan.yalm 작성.
## dhcp 설정
>> vim /etc/netplan/netpaln-*.yalm
>>root@user:~# vim /etc/netplan/00-installer-config.yaml
This is the network config written by 'subiquity'
network:
ethernets:
eno1:
dhcp4: no
# addresses:
# - 192.168.10.200/24
# nameservers:
# addresses:
# - 8.8.8.8
# routes:
# - to: default
# via: 192.168.10.1
eno2:
dhcp4: no
# addresses:
# - 192.168.10.201/24
# nameservers:
# addresses:
# - 8.8.8.8
bonds:
bond0:
dhcp4: true
interfaces: [eno1, eno2]
parameters:
mode: balance-rr
mii-monitor-interval: 1
version: 2
## Static 설정
>>root@user:~# vim /etc/netplan/00-installer-config.yaml
This is the network config written by 'subiquity'
network:
ethernets:
eno1:
dhcp4: no
# addresses:
# - 192.168.10.200/24
# nameservers:
# addresses:
# - 8.8.8.8
# routes:
# - to: default
# via: 192.168.10.1
eno2:
dhcp4: no
# addresses:
# - 192.168.10.201/24
# nameservers:
# addresses:
# - 8.8.8.8
bonds:
bond0:
dhcp4: no
interfaces: [eno1, eno2]
addresses :
- 192.168.10.200/24
nameservers:
addresses:
- 8.8.8.8
routes:
- to: default
via: 192.168.10.1
parameters:
mode: balance-rr
mii-monitor-interval: 1
# bonding설정 후 확인.
>>root@user:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether 76:46:ce:a9:34:ec brd ff:ff:ff:ff:ff:ff permaddr 7c:c2:55:29:f3:38
altname enp229s0f0
3: eno2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether 76:46:ce:a9:34:ec brd ff:ff:ff:ff:ff:ff permaddr 7c:c2:55:29:f3:39
altname enp229s0f1
4: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 92:86:75:e1:fd:01 brd ff:ff:ff:ff:ff:ff
5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 76:46:ce:a9:34:ec brd ff:ff:ff:ff:ff:ff
inet 192.168.10.31/24 metric 100 brd 192.168.10.255 scope global dynamic bond0
valid_lft 7128sec preferred_lft 7128sec
inet6 fe80::7446:ceff:fea9:34ec/64 scope link
valid_lft forever preferred_lft forever
>>root@user:~# ethtool bond0
Settings for bond0:
Supported ports: [ ]
Supported link modes: Not reported
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 2000Mb/s
Duplex: Full
Auto-negotiation: off
Port: Other
PHYAD: 0
Transceiver: internal
Link detected: yes
'Linux > Ubuntu' 카테고리의 다른 글
Ubuntu 18.04.6 desktop : GUI network 설정 (0) | 2024.01.23 |
---|---|
Ubuntu 22.04 : pciutils-dev 설치. (0) | 2024.01.21 |
Ubuntu 22.04: Network static 설정. (0) | 2023.10.13 |
UBUNTU: apt-get 명령어 모음 (0) | 2023.09.12 |
Ubuntu 23.04 : netplan apply시 발생한 에러문구 (1) | 2023.09.11 |