우분투 22.04에서 netplan을 이용하여 네트워크 설정을 하는 방법 입니다.
ubuntu는 크게보면 desktop버전과 server버전이 있는데, server버전에서 설정하는 방법입니다.
netplane
설정파일 확인
사용자 환경에따라 netplan파일이 다르게 확인 될 수 있으므로 확인이 필요합니다.
고정 IP설정 샘플
고정 IP 설정은 아래 와 같은 방식으로 설정 할 수 있습니다.
network:
ethernets:
enp1s0:
dhcp: false
addresses:
- 192.168.0.10/24
routes:
- to: default
via: 192.168.0.1
nameservers:
addresses:
- 8.8.8.8
version: 2
브리지모드 설정 샘플
브리지 모드는 아래와 같은 방식으로 설정 할 수 있습니다.
우분투 데스크탑 버전에서 기본적으로 사용되는 NetworkManager를 비활성하고 networkd로 변경하여 설정한 템플릿입니다.
network:
version: 2
renderer: networkd
#renderer: NetworkManager
bridges:
br-eth:
interfaces:
- enp3s0
dhcp4: false
addresses:
- 192.168.0.20/24
routes:
- to: default
via: 192.168.0.1
nameservers:
addresses:
- 192.168.0.10
ethernets:
enp3s0: {}
설정적용
sudo netplan apply
장애처리
우분투를 설치하고 패키지 업그레이드를 하지 않고 업데이트만 진행하였으나 일정시간이 흐른뒤 다시 netplan을 적용하면 아래와 같은 경고를 만날 수 있습니다.
특히 ovsdb-server.service경고가 불편하게 하는데 이것은 코드가 잘못된 버그로 확인 할 수 있습니다.
여러 커뮤니티나 웹자료에서 해당 패키를 설치하라고 하지만 해당 이슈의 근본적인 해결 방법은 아닙니다.
sudo vim /usr/share/netplan/netplan/cli/commands/apply.py
코드에 누락된 부분이 있어 발생하는 이슈입니다.
아래 내용으로 해당 부분을 확인하여 수정합니다.
@staticmethod
def process_ovs_cleanup(config_manager, ovs_old, ovs_current, exit_on_error=True): # pragma: nocover (autopkgtest)
try:
apply_ovs_cleanup(config_manager, ovs_old, ovs_current)
except (OSError, RuntimeError) as e:
logging.error(str(e))
if exit_on_error:
sys.exit(1)
except OvsDbServerNotRunning as e:
if utils.systemctl_is_active('ovsdb-server.service'):
logging.warning('Cannot call Open vSwitch: {}.'.format(e))
적용 후 netplane apply를 하면 권한 경고만 발생하고 ovsdb패키지 관련 이슈는 삭제됩니다.
의문의 업그레이드
그렇다면 업그레이드는 왜 발생한 것인지 확인이 필요합니다.
업그레이드 하지 않은 netplan.io가 최초 우분투 설치와 다르게 업그레이드를 하면서 ovsdb-server.service is not running오류가 발생하였기 때문입니다.
unattended-upgrades
unattended-upgrades패키지가 자동으로 업그레이드를 실행해서 발생하는 이슈입니다.
Ubuntu 서버에서 보안 업데이트와 패치를 자동으로 설치하도록 도와주는 유용한 패키지입니다. 서버의 안정성과 보안을 유지하기 위해 업데이트는 필요하지만, 사용자도 모르게 업그레이드를 해버리는…
cat /var/log/unattended-upgrades/unattended-upgrades.log | grep "netplan.io"
grep "upgrade" /var/log/dpkg.log | grep netplan.io
기본 설정 확인
cat /etc/apt/apt.conf.d/50unattended-upgrades
자동 업그레이드 항목 확인
cat /etc/apt/apt.conf.d/20auto-upgrades
자동 기능이 비활성된 서버의 정보
자동 기능이 활성된 서버의 정보
netplane설정과 자동업그레이드 이슈로 발생하는 버그에대해서 알아보았습니다.