본문 바로가기

Linux & Unix

Linux NetworkManager ( nmcli 를 활용한 bonding 구성)

## NetworkManager
- D-BUS 를 사용하여, cockpit 에서 제어가 가능 (기존 network 서비스는 cockpit 에서 제어가 안됨)
------------------------
1. nmcli connection? device?
2. bonding 구성 및 IP 설정
3. dns 설정
------------------------
1. connection? device?
device 는 실제 interface 이며, connection 이라는 설정을 만들어서
필요에 따라 여러 connection 을 만들고, interface 에 붙이는 듯 한 개념.
interface 는 그대로 있고 connection 을 바꿔 주면, 전혀 다른 설정의 네트워크...
2. bonding 구성
# ifcfg-<con-name> 식의 파일이 생성함
nmcli con add con-name bonding0 type bond ifname bond0 mode active-backup
nmcli con add con-name b0ens224 type ethernet ifname ens224 master bond0
nmcli con add con-name b0ens256 type ethernet ifname ens256 master bond0
# ifcfg-bonding0 ifcfg-b0ens224 ifcfg-b0ens256 이라는 파일 생성

# ip 설정 및 bootproto 설정 변경
nmcli con mod  bonding0 ipv4.address 10.0.0.100/24 ipv4.method manual
# ipv4.method 가 ifcfg-bonding0 파일의 bootproto=none 으로 변경시킴

# ifcfg-<con-name> 파일을 수정하는 경우 NM 이 알 수 있게 해야 함
nmcli con reload

# nmcli 로 변경하는 경우는 설정을 reload 할 필요는 없지만, interface 를 뗏다 다시 붙여야 함
# dev 에 설정을 적용시키는 듯...
nmcli con up bonding0​

3. dns 설정
- nmcli con mod 명령
nmcli con mod bonding0 ipv4.dns "8.8.8.8 8.8.4.4"
nmcli con up bonding0

# dns 설정 확인
nmcli dev show bond0
cat /etc/resolv.conf

- nmcli con edit 명령

nnmcli con edit bonding0

nmcli> print ipv4
nmcli> set ipv4.address x.x.x.x/24
nmcli> print ipv4
ipv4.dns:                               --

nmcli> set ipv4.dns 8.8.8.8 8.8.4.4
nmcli> print ipv4
ipv4.dns:                               8.8.8.8,8.8.4.4

nmcli> save
nmcli> quit

ls /etc/resolv.conf
# 파일 없음

# nmcli 로 수정한 것은 device 에 적용해 줄 필요가 있음. (아래 명령 실행)
nmcli con up bonding0

cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4
- ifcfg 파일을 변경한 경우 아래 명령을 사용해 적용
# 전체 설정 reload
nmcli con reload

# bonding0 만 reload
nmcli con reload bonding0​
 

# 위의 dns 설정 방법중 하나를 이용해서, ipv4.gateway 도 수정 적용 가능
# nmcli property 이름은 아래 명령으로 확인
nmcli con show bonding0

# 명령 문법이 생각나지 않는 경우 man page 활용
man nmcli-examples