Ubuntu, systemd-networkd 전환하기

Ubuntu 16.04 로 넘어오면서 SysV 의 Init 이 Systemd 로 변경되었다. 이런 변화에는 Network 관리에도 적용되고 있는데, 이에 대해서 알아보자.

기존의 Network 관련된, 정확하게는 Network Interface 와 관련된 일은 NetworkManager 가 담당했다. Network Interface 가 무엇인지, 아이피는 DHCP 혹은 Static 인지 등이 그것이다.

하지만 Ubuntu 16.04 로 넘어오면서 시스템에 관련된 일체가 systemd 로 통합되면서 네트워크 관련 작업도 systemd 로 통합되어지게 되는데, 이것이 systemd-networkd 이 이다.

하지만 Ubuntu 18.04 로 넘어온 시점에서도 NetworkManger 는 이전과 호환을 위해서 살려뒀고 살려둔김에 지금도 기본적인 네트워크 설정 프로그램으로 활약(?) 하고 있다.

Network Manager

Network Manager 의 동작은 다음의 명령어로 이루어진다.

]# systemctl start/stop/status NetworkManger

관련 설정은 /etc/NetworkManger/NetworkManger.conf 파일이다. 위 프로그램을 실행하게 되면 기본적으로 이 파일을 읽게 되어 있다.

그리고 netplan 설정에서도 NetworkManager 를 기본으로 지정하도록 되어 있다.

# 1-network-manager-all.yaml
network:
  version: 2
  renderer: NetworkManager

Network Manager 비활성화

비활성화는 다음과 같이 하면 된다.

]# systemctl stop NetworkManager
]# systemctl disable NetworkManager
]# systemctl mask NetworkManager

이렇게 하면 네트워크가 비활성화 됨으로 절대로 원격지 서버에서 하면 안된다.

systemd-networkd 활성화

]# systemctl unmask systemd-networkd.service
]# systemctl enable systemd-networkd.service
]# systemctl start systemd-networkd.service

netplan

systemd-networkd 를 활성화하면 이제 네트워크 작업은 netplan 명령어를 통해서 이루어진다. 이 netplan 명령어는 기본적으로 ‘/etc/netplan’ 디렉토리에 파일을 읽어서 네트워크 설정을 적용해 준다.

‘/etc/netplan’ 디렉토리에 설정파일은 기본적으로 yaml 파일형식을 가진다. 예를 들면 다음과 같다.

# 1-network-manager-all.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
   enp4s0:
    dhcp4: yes

파일을 수정한 후에는 다음과 같이 명령어만 주면 적용이 된다.

/etc/netplan# netplan --debug apply
** (generate:6597): DEBUG: 01:21:41.764: Processing input file /etc/netplan/1-network-manager-all.yaml..
** (generate:6597): DEBUG: 01:21:41.764: starting new processing pass
** (generate:6597): DEBUG: 01:21:41.764: enp4s0: setting default backend to 1
** (generate:6597): DEBUG: 01:21:41.765: Configuration is valid
** (generate:6597): DEBUG: 01:21:41.765: Generating output files..
** (generate:6597): DEBUG: 01:21:41.765: NetworkManager: definition enp4s0 is not for us (backend 1)
DEBUG:netplan generated networkd configuration changed, restarting networkd
DEBUG:no netplan generated NM configuration exists
DEBUG:enp4s0 not found in {}
DEBUG:Merged config:
network:
  bonds: {}
  bridges: {}
  ethernets:
    enp4s0:
      dhcp4: true
  vlans: {}
  wifis: {}

DEBUG:Skipping non-physical interface: lo
DEBUG:device enp4s0 operstate is up, not changing
DEBUG:{}
DEBUG:netplan triggering .link rules for lo
DEBUG:netplan triggering .link rules for enp4s0

‘–debug’ 는 제외해도 된다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다