Ubuntu를 이용하여 IP를 설정하는 방법을 조사하면, 10 중 7~8은 /etc/network/interfaces 라는 파일을 수정하게 되어 있다. 내 기억에는 10여년 전에도 이 방식으로 설정했었고, 이렇게 설정하면 큰 문제 없이 적용되었다.

그런데, Ubuntu 17 그것도 서버에서 사용하려고 하니까, 저 위의 파일로 수정하고 난 뒤에 몇번 재 부팅이나, 업데이트를 하고 나면, 다시 DHCP로 변경되는 불상사가 발생되었다. 무언가 업데이트 되면서, 자동으로 설정 파일이 수정되는 것 같고, 그 결과 dhcp로 원상 복귀 되는 것 같았다.

그래서 이곳 저곳을 뒤지다 보니, Ubuntu 17에서는 yaml 이라는 확장자를 갖는 설정 파일에서 수정하게 끔 되어 있었다.


설정 파일 위치.

/etc/netplan/01-netcfg.yaml 

현재 네트워크 카드가 1장이라서 그런것 같고, 여러장이면 이 설정 파일도 여러개 만들어야 하지 않나... 라는 생각을 한다.


설정 방법

위의 위치의 yaml 파일을 열면 보통 아래와 같이 설정되어 있다.

network:
  version: 2
  renderer: networkd
  ethernets:
    ens192:
      dhcp4: no

이 내용을 고정 값으로 변경하려면 아래와 같이 구성하면 된다.


network:
  version: 2
  renderer: networkd
  ethernets:
    ens192:
      dhcp4: no
      addresses: [192.168.1.5/24]
      gateway4: 192.168.1.1
      nameservers:
              addresses: [8.8.8.8,168.126.63.1]

먼저 dhcp4 부분을 yes -> no로 변경한다. IPv6까지 지원한다면, dhcp4 뿐만 아니라, dhcp6도 있다.

addresses 에는 마치 배열처럼 구성한다. 하나의 IF에는 1개의 주소가 할당되긴 하지만, 여기서는 IPv6 값을 넣을 때도 사용하는 것 같다. 배열 처럼 [ ] 로 묶고 내부에 여러개의 값이 있다면, "," 로 구분한다. NETMASK는 Subnet Mask 비트수로 표현한다. gateway도 IPv4용과 IPv6용으로 나눠 적는다. 마지막으로 nameservers 에는 그 주소를 배열로 나열하면 된다.


위의 설정이 완료되었다면...

sudo netplan apply

해주면 끝.

728x90

+ Recent posts