Ubuntu 26.04 강좌 / Netplan·NetworkManager·systemd-networkd 구분하기

Netplan은 네트워크 설정을 표현하고 NetworkManager나 systemd-networkd에 전달하는 계층입니다. Ubuntu 네트워크를 수정하기 전에는 이미지 이름만으로 판단하지 말고 해당 인터페이스의 실제 renderer와 원본 설정 파일을 확인해야 합니다.

세 구성 요소의 역할

구성 요소 역할과 일반적인 환경
Netplan YAML 설정을 읽고 백엔드 설정을 생성
NetworkManager 연결 프로필·Wi-Fi 등을 관리하는 선택 가능한 백엔드
systemd-networkd Server의 인터페이스 구성에 흔히 사용
systemd-resolved 이름 확인을 담당하며 IP 설정 주체와 별개

업그레이드한 시스템·클라우드 이미지·사용자가 바꾼 VM은 기본 설치와 다를 수 있습니다. 두 네트워크 서비스가 동시에 실행 중이어도 인터페이스별 담당이 나뉘었을 수 있으므로 프로세스 유무만으로 충돌을 단정하지 않습니다.

Ubuntu의 Netplan 설명에서 YAML과 renderer의 관계를 확인할 수 있습니다.

현재 주소와 관리 주체 조회하기

ip -br link
ip -br address
ip route
systemctl is-active NetworkManager systemd-networkd
sudo netplan status --all

인터페이스 이름과 주소·기본 경로를 기록하고 netplan status의 백엔드 정보를 비교합니다. 설치된 도구에 따라 nmcli connection show --active 또는 networkctl status도 확인합니다. 다른 백엔드의 unmanaged 표시가 현재 연결 자체의 실패를 뜻하지는 않습니다.

원본 설정과 생성 파일 구분하기

find /etc/netplan -maxdepth 1 -type f -name '*.yaml' -print
sudo netplan get
resolvectl status

Netplan YAML은 여러 파일을 합쳐 처리하며 파일 순서와 같은 인터페이스의 중복 정의가 영향을 줄 수 있습니다. netplan get은 병합 결과를 읽는 데 도움이 됩니다. Wi-Fi 암호 같은 값이 포함될 수 있으므로 출력 전체를 공개하지 않습니다.

/run 아래 생성된 백엔드 파일은 재부팅이나 설정 재생성 때 바뀔 수 있습니다. Server에서도 이미지·설치 이력에 따라 관리 주체가 다를 수 있으므로 현재 서비스 상태와 Netplan의 renderer를 확인하고, 생성 파일보다 이를 만든 원본을 찾습니다.

cloud-init과 외부 자동화 확인하기

50-cloud-init.yaml 같은 이름이나 파일 머리말이 보이면 cloud-init 또는 공급자의 네트워크 관리 여부를 확인합니다. 파일을 고친 뒤 되돌아온다면 적용 명령을 반복하기보다 누가 다시 쓰는지 조사합니다. 클라우드 관리 설정을 비활성화하는 작업은 별도 복구·공급자 절차 없이 진행하지 않습니다.

수정 경로를 한 가지로 정하기

이 강좌의 Server 실습은 systemd-networkd가 관리하는 Netplan YAML을 기준으로 합니다. 기존 환경에서 NetworkManager가 실제 소유자라면 그 프로필과 관리 절차를 보존하고 networkd로 임의 전환하지 않습니다. 인터페이스·담당 백엔드·원본·주소·복구 콘솔을 기록합니다.

이 글의 조회 단계에서는 설정을 적용하거나 서비스를 재시작하지 않습니다. 현재 상태를 설명할 수 있어야 고정 IP를 바꾸거나 장애를 복구할 때 변경 대상을 좁힐 수 있습니다.