NetworkManager 도구 중 하나로 네트워크 연결에 대한 생성, 표시, 수정 등 다양한 기능을 도와주는 도구입니다.
nmcli는 터미널 명령어 기반으로 조작하고 nmtui는 그래픽 환경에서 사용자가 값을 제어할 수 있습니다.
https://docs.rockylinux.org/gemstones/RL9_network_manager/
nmtui
그래픽 화면이 출력되며, 연결 생성, 편집, 활성화 등을 할 수 있습니다. nmtui로 생성한 연결은 Rocky 9 안에서 /etc/NetworkManager/system-connections/ 경로에 생성됩니다.
# ipv4 static IP 커넥션 생성 시
nmcli connection add type ethernet con-name CONNECTION_NAME ifname NIC_DEVICE_NAME ipv4.method manual ipv4.address "192.168.10.5/24" ipv4.gateway "192.168.10.1" ipv4.dns "8.8.8.8,114.114.114.114" ipv6.method disabled autoconnect yes
# ipv4 dhcp IP 커넥션 생성 시
Shell > nmcli connection add type ethernet con-name CONNECTION_NAME ifname NIC_DEVICE_NAME ipv4.method auto ipv6.method disabled autoconnect yes
# 커넥션 활성화
nmcli connection up NIC_DEVICE_NAME
# nmcli 메뉴로 진입하여 수정
nmcli connection edit CONNECTION_NAME
nmcli > help
# 명령어로 수정
nmcli connection modify CONNECTION_NAME autoconnect yes ipv6.method dhcp
systemctl restart NetworkManager
# bond0 마스터
nmcli connection add type bond con-name bond0 ifname BOND_NIC_DEVICE_NAME mode 0
# bond0 slave
nmcli connection add type bond-slave ifname NIC_DEVICE_NAME1 master BOND_NIC_DEVICE_NAME
nmcli connection add type bond-slave ifname NIC_DEVICE_NAME2 master BOND_NIC_DEVICE_NAME
# 재부팅 시 bond0 연결되도록 설정 후 활성화
nmcli con modify bond0 connect.autoconnect yes
nmcli con up bond0
nmcli로 bonding 설정 시 mode NUM 값에 bonding work mode 값이 필요합니다.
bonding work mode는 0부터 6단계까지 있으며, 각 단계 별 값은 아래와 같습니다.
| 단계 | status | 동작 상세 |
|---|---|---|
| 0 | Round-robin (balance-rr) | 각 slave에 패킷을 번갈아가며, 전달 |
| 1 | (active-backup) | 하나의 slave만 활성화 되어 있으며, 다른 slave는 대기 상태 |
| 2 | (balance-xor) | 송신 패킷의 소스 및 목적지 MAC 주소를 사용하여 각 슬레이브에 패킷을 분배 |
| 3 | (broadcast) | 패킷을 모든 슬레이브에 브로드캐스트 |
| 4 | (802.3ad) | IEEE 802.3ad 동작을 사용하여 여러 슬레이브 간의 링크 집계를 수행 |
| 5 | (balance-tlb) | 전송 시간을 기준으로 패킷을 분배하며, 수신은 하나의 슬레이브에 집중 |
| 6 | (balance-alb) | 송신 및 수신 패킷을 다른 슬레이브에게 동적으로 분배 |
nmcli con (show) 또는 nmcli connection (show)
===
NAME UUID TYPE DEVICE
enp4s0 ef9c4c45-eb02-3514-8ad1-91109383ac42 ethernet enp4s0
lo 1f2ee156-c500-4662-926b-b7f71da673d9 loopback lo
enp5s0 88ed7f6e-4258-4635-97be-79b6de5f8fc0 ethernet --
===
con show가 full 명령어지만 con까지만 쳐도 같은 결과가 출력됩니다.
show 뒤에 eth 장치명 혹은 bonding 명을 입력하여 지정된 정보만을 볼 수 있습니다.
본딩 정보는 /proc/net/bonding 하단에 파일로 저장되므로 해당 파일을 읽어서 확인할 수 있습니다.
cat /proc/net/bonding/bond0
===
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: enp3s0f0
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 6c:b3:11:3b:23:e4
Slave queue ID: 0
Slave Interface: enp3s0f1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 6c:b3:11:3b:23:e6
Slave queue ID: 0
===