[리눅스] NetworkManager 네트워크 관리자 사용하기 - nmcli 명령어

728x90
728x90

네트워크 관리자(Network Manager)란?

  • 네트워크와 관련된 모든 설정을 관리하고 모니터링 하는 서비스
  • 서비스 이름은 NetworkManager이며, systemd 유닛의 일부이기 때문에 systemctl로 제어함
  • 네트워크 별칭, IP 주소, 정적 라우팅, DNS 정보, VPN 연결과 다시 연결 매개 변수를 구성할 수 있음
  • D-Bus APIP를 제공해 어플리케이션 간의 네트워크 통신을 원활하게 해주는 데 도움을 줌
  • /etc/sysconfig/network-scripts 디렉토리에 설정파일을 저장함
  • 리눅스 네트워크 관리자가 제공하는 커맨드 라인 도구로는 nmcli가 있음

네트워크 관리자 설치하기

[root@master ~]# yum -y install NetworkManager
[root@master ~]# systemctl status NetworkManager

 

네트워크 관리자(NetworkManager) 도구 활용하기

nmcli(Network Manager Command Line Interface)는 리눅스 네트워크 관리자가 제공하는 커멘드 라인 도구이다.

1. 네트워크 연결(Connection) 목록 확인

# 명령어 형식
nmcli connection show [option] [connection-name]

목록 설명
NAME ifcfg 파일의 NAME 속성 값과 같으며, 연결의 이름을 나타낸다.
UUID ifcfg 파일의 UUID 속성 값과 같으며, 연결의 고유 ID 값을 나타낸다.
TYPE ifcfg 파일의 TYPE 속성 값과 같으며, 연결의 통신 방식을 말한다.
DEVICE ifcfg 파일의 DEVICE 속상 값과 같으며, 연결과 mapping된 인터페이스의 이름이다.

 

2. 연결 생성하기

  • 연결을 생성하기 위해서는 nmcli 명령의 connection add 서브커맨드를 사용한다.
  • 이 명령을 통해 연결을 구성하면 /etc/sysconfig/network-scripts에 ifcfg 파일이 생성된다. (연결 생성 시 입력한 con-name인자 값이 ‘ifcfg-’뒤에 추가되어 파일이 생성된다.)
# 명령어 형식
nmcli connection add [subcommand1] [argument1] [subcommand2] [argument2] ...
연결 생성 예시 1
[root@master ~]# nmcli connection add \
> type ethernet \
> con-name dynamic \
> ifname ens33 \
> autoconnect yes

 

  • type ethernet: 연결의 유형을 지정한다. 기본 네트워크 통신 유형은 ethernet이다.
  • con-name dynamic: 연결의 이름을 지정한다. /etc/sysconfig/network-scripts 디렉토리에 ifcfg-dynamic 파일이 생성된다.
  • ifname ens33: 연결과 매핑되는 인터페이스를 지정한다.
  • autoconnect yes: 부팅 시 연결이 인터페이스와 자동으로 매핑될 지를 결정한다. 기본 설정 값은 yes이고, 값이 no로 세팅될 경우 부팅 시 이 연결과 인터페이스의 연결은 끊어진다.
연결 생성 예시 2
[root@master ~]# nmcli conn add \
> type ethernet \
> con-name static \
> ifname ens33 \
> ip4 172.16.91.120/24 \
> gw4 172.16.91.2
  • ipv4 172.16.91.120/24: 설정할 IP 주소와 넷마스크의 접두사(prefix)
  • gw4 172.16.91.2: 게이트웨이의 주소

3. 연결 설정 삭제하기

# 명령어 형식
nmcli connection delete connection-name

# 예시: dynamic 이름의 연결을 삭제하기
[root@master ~]# nmcli conncetion delete dynamic

4. 연결 설정 수정하기

# 명령어 형식
nmcli connection modify connection-name subcommand argument
연결 설정 수정 예시
  • 위에서 생성한 static 연결에는 DNS 주소가 설정되어 있지 않다.
  • 따라서 nmcli conneciton modify 명령을 수행하여 연결에 DNS를 추가한다.
[root@master ~]# nmcli conn modify static ipv4.dns 8.8.8.8
[root@master ~]# nmcli conn reload
[root@master ~]# nmcli conn up static
  • modify로 수정을 한 후 connection reload 서브커맨드로 네트워크 관리자 설정을 다시 읽으면 ifcfg-static 파일에도 반영이 된다.
  • connection up 서브커맨드는 바로 아래에서 설명할 활성화 커맨드이다.

5. 설정 활성화 및 비활성화 하기

  • 연결을 활성화하거나 비활성화 하기 위해서는 nmcli 명령의 connection up 및 connection down 서브커맨드를 사용한다.
  • 명령어 마지막 부분에 연결 이름을 인자로 입력하여 원하는 연결을 활성화하거나 비활성화 할 수 있다. (주의: 하나의 인터페이스 당 하나의 연결만 활성화 할 수 있다.)
# 명령어 형식
nmcli connection { up | down } connection-name

 

6. 동적 연결을 정적 연결로 변경하기

  • 동적 연결을 정적으로 연결하기 위해서는 IP 주소, 넷마스크, 게이트웨이, DNS 주소 이 4가지 정보는 반드시 지정해야 한다.
  • 이때 4번에서 사용한 modify 서브커맨드를 이용해 지정해준다.
사용 예시

 

1. 아래처럼 현재 ens33 연결은 동적으로 IP 주소를 할당받는 방식이다. 따라서 DNS 주소와, IP 주소, 넷마스크, 게이트웨이 정보가 존재하지 않는다.

[root@master ~]# nmcli conn show ens33
...
ipv4.method:                    auto
ipv4.dns:
ipv4.dns-search:
ipv4.dns-options:               (default)
ipv4.dns-priority:              0
ipv4.addresses:
ipv4.gateway:                   --
...

 

2. nmcli connection modify 명령을 사용해 하나씩 수정한다.

[root@master ~]# nmcli connection modify ens33 ipv4.addresses 172.16.91.110/24
[root@master ~]# nmcli connection modify ens33 ipv4.gateway 172.16.91.2
[root@master ~]# nmcli connection modify ens33 ipv4.dns 8.8.8.8
[root@master ~]# nmcli connection modify ens33 ipv4.method manual
[root@master ~]# nmcli connection reload
[root@master ~]# nmcli connection up ens33
  • 여기서 ipv4.method를 manual로 지정할 때는 반드시 ipv4.addresses 값이 설정되어야 한다.
반응형