본문으로 바로가기

Netplan - 우분투(리눅스) 네트워크 설정

category Linux/Ubuntu 2018.11.05 16:03

안녕하세요. 블로그에 글을 쓴지 어느 덧 3개월이 되어 가네요. 많은 정보들을 남기고 공유하고자 블로그 활동을 시작하게 되었지만 공교롭게도 모자른 시간 덕택에 이제는 이 활동도 점차 줄어가고 있네요. 하지만 블로그 활동의 중단 계획은 없으니, 앞으로도 계속 많은 정보를 공유하려고 노력하겠습니다.

저는 데스크톱과 서버 모두 CentOS가 아닌 Ubuntu Server OS를 사용하고 있습니다. 물론 아예 CentOS를 배제하는 것은 아니지만 아무래도 PC 운영체제를 Ubuntu로 사용하다보니 CentOS에 비해서 더 편한 느낌이 있다고 해야 할까요.. 그래서 이번에 우분투 18.04 서버를 설치하게 되었는데, 네트워크 설정이 조금 바뀐 것을 알게 되었습니다.


우분투 네트워크 설정

보통 리눅스에서 네트워크 환경을 구성하고 설정할 때 아래와 같은 방법을 사용하곤 합니다.

1. ip route 명령어를 사용한 네트워크 설정

2. /etc/network/interfaces 파일에서 네트워크 설정

3. NetworkManager 렌더러를 사용한 네트워크 설정

4. Networkd 렌더러를 사용한 네트워크 설정

3번 방법의 경우 최근에 제가 우분투를 사용하면서 썼던 방법이었습니다. 보통 X-Window (xorg, wayland) 환경에서 주로 사용하는 방법이고, CLI와 같은 서버 환경에서는 4번 방법을 많이 사용하죠. 이번엔 3, 4번 방법보다 더 쉬운 yaml을 사용한 설정 방법이 등장하였습니다.

Ubuntu Netplan


Netplan

Netplan은 리눅스 환경에서 Systemd 이후로 새로이 바뀐 네트워크 환경 설정 데몬입니다. 이 데몬에서는 기존의 NetworkManager 렌더러와 networkd 렌더러 중 하나를 사용할 수 있도록 해주는 통합 환경입니다.

위 버튼을 클릭해보면, DHCP, VLAN, Bonding 등을 yml 형식으로 쉽게 구현할 수 있으며 갈수록 우분투도 Spring boot, Node.js처럼 더 쉽고 간단한 설정 스타일로 가고 있음을 알려주고 있습니다.

데스크톱 환경에서는 간단하게 NetworkManager로 렌더러만 설정해준다면, Gnome 환경에서 제공하는 네트워크 설정 툴로 자유롭게 설정하실 수 있습니다.


하지만 서버 환경에서는 Networkd 렌더러를 사용함과 더불어 설정을 CLI에서 하여야 하기 때문에 여기 yaml 파일에서 모든 것을 설정해줘야 합니다. 

그럼 이제 상세한 설정 방법에 대한 것을 예제를 보면서 한 번 보도록 하겠습니다.


Example

예제를 참고하기 전에: 이 예제는 네트워크를 설정하기 위한 단순한 참고 사항입니다. 여러분들이 설정하시는 네트워크 설정과 다를 수 있으며 반드시 설정을 진행하시기 전에 여러분들이 사용하고 계신 네트워크 설정을 정확하게 파악하신 뒤에 설정을 진행해주시기 바랍니다. 만약 위 사항을 따르지 않고 진행할 경우, 특히 실 서버를 운영하실 때는 네트워크 장애 및 서비스 장애를 초래할 수 있음을 항상 기억하시기 바랍니다.


1. 기본 네트워크 장치 한 개 설정

보통 수동 IP를 설정할 때 위 방법을 사용합니다. 수동 IP를 사용할 때는 해당 장비에 부여 받은 IP와 게이트웨이를 적으셔야 합니다. 윈도우 운영체제에서는 서브넷 마스크를 적었다면 리눅스에서는 서브넷 마스크를 따로 입력하지 않고, IP 주소를 적으실 때 클래스를 같이 기입하셔야 합니다. 

혹은 수동으로 IP를 설정하지 않고, 자동으로 IP를 부여하실 경우에는 다른 내용은 주석 혹은 제거하시고, dhcp4 플래그를 true로 설정하시면 됩니다. 개별적으로 DNS 주소만 수동으로 설정하시는 경우에는 nameservers 란은 남겨두시면 됩니다.


2. 여러 개 네트워크 장치 설정

여러 개 장치를 설정할 때는 메트릭이 중요합니다. 네트워크 장치 중 이 서버에서 어떤 걸 우선 순위로 놓고 잡을지를 결정하기 때문입니다. 만약 외부망을 이용해 인터넷을 사용하고자 한다면 이 과정 중에서 인터넷이 사용 가능한 망이 우선 순위가 높아야 합니다.

위 예제는 네트워크 장치가 3개 있을 경우를 예로 들어, 한 개는 DHCP, 두 개는 정적 IP인데, 한 개는 외부망, 다른 한 개는 내부망임을 예시로 들었습니다. 설정 방법은 1번과 비슷하나 routes 옵션을 주어 범위를 설정해야 하는 부분이 존재합니다.


3. 무선 네트워크(Wireless) 설정

설정 방법은 크게 다르지 않습니다. 보통 무선 네트워크에서 DHCP 없이 사용하는 경우는 없겠지만 일단 설명의 디테일을 위해서 무선 환경 또한 수동으로 IP 설정한다고 적어봤습니다. 물론 DHCP를 사용한다면 true로 설정하면 됩니다. access_points에서 SSID_NAME을 반드시 여러분들이 설정하신 SSID 이름과 비밀번호를 적으셔야 합니다. 한 가지 주의할 점은 무선 네트워크 설정시 패스워드는 평문으로 저장되기 때문에 반드시 권한에 유의하시기 바랍니다.


마치며..

여기까지 아주 간단한 우분투의 네트워크 설정에 대해 알아봤습니다. 이전 설정 방법보다 매우 깔끔해지고 더 가독성이 좋아진 Netplan 이라고 말씀드리고 싶습니다. 여러 장치가 구성된 서버에서도 쉽게 설정할 수 있다는 점이 돋보였습니다.

덧붙여서 Gist에 올린 코드에는 cloud-init 이라는 파일 이름이 붙어 있는데, 이는 그렇게 크게 신경쓰지 않으셔도 됩니다. 우분투 서버 OS의 배포판이 일반 서버판과 클라우드판으로 나누어졌는데, 클라우드 버전의 경우 cloud-init.yaml 파일을 사용하고, 일반 서버 버전은 netcfg.yaml 파일의 이름을 가지고 있습니다. 파일 이름만 다를 뿐 똑같이 동작하기 때문에 크게 신경쓰지 않으셔도 됩니다. ^^;


comments powered by Disqus