/etc/networking/interfaces
"예측 가능한 네트워크 인터페이스 이름"을 사용할 때 어떻게 재설정 합니까?
15.10 이전의 Ubuntu 버전은 다음과 같은 네트워크 어댑터 이름을 사용합니다.
eth0
eth1
eth2
네트워크 카드를 교체하거나 vm을 새 하이퍼 바이저로 이동하면 Linux가 인터페이스 번호를 증가시킵니다. 삭제 /etc/udev/rules.d/70-peristent-net.rules
하면 Linux를 재사용 할 수 eth0
있습니다.
우분투 15.10 이상은 ' 예측 가능한 네트워크 인터페이스 이름 '을 사용합니다. 네트워크 어댑터 이름은 mac 주소에서 파생됩니다.
ens3
ens32
ens192
vm을 마이그레이션 할 때 /etc/network/interfaces
기존의 존재하지 않는 네트워크 어댑터를 계속 참조 하므로 네트워킹이 시작되지 않습니다 .
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto ens32
iface ens32 inet dhcp
pre-up sleep 2
/ etc / network / interfaces 파일을 재설정하는 가장 좋은 방법은 무엇입니까?
Chef / Bento 골든 이미지를 기반으로 패커 를 사용하여 자동 골든 이미지를 만들기 때문에 vm을 종료하고 새 하이퍼 바이저로 마이그레이션 하기 전에이 작업을 수행해야합니다 .
마이그레이션 후 다음 부팅시 파일이 자동으로 재생성되지 않기 때문에 / etc / network / interfaces 삭제가 작동하지 않는 것을 발견했습니다.
grub 파일을 편집하여 'eth0'명명 규칙으로 되돌 렸습니다. / etc / network / interfaces는 이전 이름 (eth0)을 참조하지만 vm은 IP를 얻지 않으며 재부팅하면 vm은 새로운 이름 지정 규칙을 사용합니다. 또한 biosdevname=0
grub config에 영구적으로 남아 있음을 보장 할 수 없다면 systemd가 항상 우선 합니다. 이것을 영구적으로 적용하는 방법을 모르겠습니다
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 bios.devname=0"
가능한 경우 골든 이미지를 최대한 깨끗하게 유지하기 때문에 클라우드 초기화를 사용하거나 시작 스크립트를 사용하지 않을 것입니다.
분명히 이것은 클라우드 공급자 (Azure, AWS, RackSpace, Openstack)가 vms를 가져올 때 이미 해결 한 문제입니다. 예측 가능한 네트워크 인터페이스 이름을 사용하여 vm을 시도하고 마이그레이션 한 첫 번째 사람이 될 수는 없습니다.
VM을 종료하고 마이그레이션하기 전에 이러한 명령을 실행하려고했습니다.
apt-get remove biosdevname -y;
ln -s /dev/null /etc/systemd/network/99-default.link;
VM을 마이그레이션 할 때 /etc/network/interfaces
, ip address
여전히 참조ens32