디지털 라이프 電子的生活 My Digital Life/잡다한 기술 관련 것들

ifcfg-ethX를 쓸 이유가 없네... nmcli

미친도사 2021. 5. 14. 21:00

그냥 내가 편하려고 남기는 포스트...

 

리눅스에서 IP 설정을 수동으로 바꿀 때엔 /etc/sysconfig/network-scripts/ifcfg-ethX 파일을 수정하곤 했다.

실제로 3년 전에 N사의 서비스용으로 개발한 어플라이언스에 이 방법으로 설정을 반영하느라 구현이 꽤 복잡했었다.

이후에 nmcli에 조금씩 익숙해지면서, 이젠 ifcfg-ethX를 손댈 일이 거의 없어 보인다.

 

1. DHCP로 설정된 eno2를 고정 IP로 수정하기

[root@dtdev ~]# nmcli con mod eno2 ipv4.addresses 10.10.50.51/24
[root@dtdev ~]# nmcli con mod eno2 ipv4.gateway 10.10.50.1
[root@dtdev ~]# nmcli con mod eno2 ipv4.method manual
[root@dtdev ~]# nmcli con up eno2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/14)

 

2. 고정IP로 된 eno2를 DHCP로 바꾸기

[root@dtdev ~]# nmcli con mod eno2 ipv4.method auto
[root@dtdev ~]# nmcli con mod eno2 ipv4.addresses ""
[root@dtdev ~]# nmcli con mod eno2 ipv4.gateway ""
[root@dtdev ~]# nmcli con up eno2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/15)

그냥 ipv4.method를 auto로 바꾸고 바로 적용하면 수동으로 설정했던 IP 주소와 Gateway 정보가 남아서 IP가 두 개가 된다. 그래서 ipv4 주소와 gate 정보를 공백으로 지정해서 삭제해야 한다.

 

3. 네트워크 인터페이스에 IP 추가하기

이전 같으면 ifcfg-eno2:1 같이 alias로 구현해야 할 텐데, 굳이 그렇게 안하고도 IP 추가 가능하다.

[root@dtdev ~]# nmcli con mod eno2 +ipv4.addresses 10.10.50.51/24
[root@dtdev ~]# nmcli con up eno2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/18)
[root@dtdev ~]# ip -4 a show dev eno2
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 10.10.50.51/24 brd 10.10.50.255 scope global noprefixroute eno2
       valid_lft forever preferred_lft forever
    inet 10.10.40.51/24 brd 10.10.40.255 scope global noprefixroute dynamic eno2
       valid_lft 259197sec preferred_lft 259197sec

추가한 IP를 지울 때엔 -ipv4.address 옵션으로 바꾸면 된다

[root@dtdev ~]# nmcli con mod eno2 -ipv4.addresses 10.10.50.51/24
[root@dtdev ~]# nmcli con up eno2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/20)
[root@dtdev ~]# ip -4 a show dev eno2
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 10.10.40.51/24 brd 10.10.40.255 scope global noprefixroute dynamic eno2
       valid_lft 259198sec preferred_lft 259198sec

 

bonding 같은 것도 훨씬 간단한데, 그건 나중에 덧붙이는 걸로...

반응형