리눅스 nmcli 프로그램
리눅스 네트워크는 네트워크 매니저라는 서비스를 통해 관리된다. cli로는 nmcli가 있다. 네트워크 매니저는 네트워크를 프로파일별로 관리한다. nmcli는 다양한 sub-command 트리로 이루어져있기 때문에 탭을 잘 사용해 sub-commnad를 활용하는 것이 좋다.
리눅스 네트워크 프로파일 정보 조회
`nmcli con show`를 사용하면 프로파일들을 조회할 수 있다. 이때 con은 connection의 약자이다.
[root@localhost /]# nmcli con show
NAME UUID TYPE DEVICE
ens160 5caab0b2-ddf9-43fc-81f6-8959e6a48cbc ethernet ens160
ens160이라는 프로파일이 있고, 이 프로파일의 UUID를 볼 수 있다. 이 프로파일은 이더넷 기반이며 ens160이라는 장치 파일(device file)을 사용한다. `nmcli con show 프로파일명` 명령어를 사용하면 해당 프로파일의 디테일을 조회할 수 있다.
리눅스 네트워크 프로파일 추가
`nmcli con add <속성명> <속성값>` 명령어를 통해 특정 속성을 명시하여 네트워크 프로파일을 추가할 수 있다.
[root@localhost /]# nmcli con add con-name static-connection type ethernet ifname ens160
Connection 'static-connection' (42f1a126-b333-4bcc-80d9-8547c090abef) successfully added.
[root@localhost /]# nmcli con show
NAME UUID TYPE DEVICE
ens160 5caab0b2-ddf9-43fc-81f6-8959e6a48cbc ethernet ens160
static-connection 42f1a126-b333-4bcc-80d9-8547c090abef ethernet --
[root@localhost /]# nmcli con show --active
NAME UUID TYPE DEVICE
ens160 5caab0b2-ddf9-43fc-81f6-8959e6a48cbc ethernet ens160
위 명령어는 다음과 같은 속성으로 네트워크 프로필을 추가하는 것이다.
- 프로파일명 : static-connection
- 타입 : 이더넷
- 디바이스명 : ens160
두 개의 프로파일이 하나의 디바이스를 사용할 수 없기 때문에 `ens160` 하나만 활성화된 상태이다.
리눅스 네트워크 프로파일 수정 - 덮어쓰기
`nmcli con mod <속성명> <속성값>`명령어를 통해 속성들의 값을 바꿀 수 있다. 이때 각 속성 값은 덮어쓰기 된다.
[root@localhost /]# nmcli con mod static-connection ipv4.addresses 10.0.0.1/24 ipv4.gateway 10.0.0.254 ipv4.dns 10.0.0.254
[root@localhost /]# nmcli con show static-connection
(생략)
ipv4.dns: 10.0.0.254
(생략)
ipv4.addresses: 10.0.0.1/24
ipv4.gateway: 10.0.0.254
리눅스 네트워크 프로파일 삭제
`nmcli con delete <프로파일명>` 명령어를 통해 프로파일을 삭제할 수 있다.
[root@localhost /]# nmcli con delete static-connection
Connection 'static-connection' (42f1a126-b333-4bcc-80d9-8547c090abef) successfully deleted.
리눅스 네트워크 프로파일 수정 - 값 추가하기
`nmcli con mod +<속성명> <속성값>`와 같이 속성명 앞에 + 사인을 붙이면 속성들의 값을 추가할 수 있다.
[root@localhost /]# nmcli con mod ens160 +ipv4.addresses 10.0.0.1/24 +ipv4.dns 8.8.8.8
[root@localhost /]# nmcli con show ens160
(생략)
ipv4.dns: 192.168.8.2,8.8.8.8
(생략)
ipv4.addresses: 192.168.8.129/24, 10.0.0.1/24
두 개의 속성 값이 콤마로 연결되어 있는 것을 확인할 수 있다.
네트워크 설정 반영
`nmcli con up <프로파일명>`을 수행해주면 비로소 변경한 설정들이 반영된다. `ip a s <프로파일명>`과 `/etc/resolv.conf` 파일을 출력해보면 변경이 잘 되었음을 확인할 수 있다.
[root@localhost ~]$ nmcli con up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@localhost ~]$ ip a s ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:02:35:d3 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.8.129/24 brd 192.168.8.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 10.0.0.1/24 brd 10.0.0.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe02:35d3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]$ cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.8.2
nameserver 8.8.8.8
본 포스트 시리즈는 「 RH024 Red Hat Enterprise Linux Technical Overview 」 강좌를 요약한 내용입니다.