12.4.0
방금 일반적인 Debian 이미지를 사용하여 Hyper-V 호스트에 새로운 Debian VM을 설치했습니다 debian-12.4.0-amd64-netinst.iso
.
네트워크 설정을 완료하기 위해 로그인한 후, 두 개의 가상화된 네트워크 카드가 다음 이름 eth0
대신 이름이 지정된 것을 보고 놀랐습니다.eth1
예측 가능한 네트워크 인터페이스 이름무늬. 이것이 의미하는 바는 가상 NIC에 일관되게 바인딩하지 못할 수 있다는 점입니다 eth0
. eth1
이로 인해 고정 IP 주소 할당이 엉망이 되고 트래픽이 잘못된 인터페이스로 라우팅되거나 잘못된 VLAN ID로 태그가 지정될 수 있습니다.
더반네트워크 인터페이스 이름 위키을 실행할 때 udevadm test-builtin net_id /sys/class/net/eth0 2>/dev/null
출력에는 항상 하나의 ID_NET_NAME_PATH
요소가 포함되어야 합니다.
ID_NET_NAME_PATH=항상 존재합니다. 일반적으로 wlp3s5 또는 enp1s3f0과 같이 잊어버릴 만큼 복잡한 것입니다. 모든 숫자는 16진수임을 참고하세요.
하지만 내가 본 건 그게 아니었어! 명령을 실행하면 다음과 같은 결과가 출력됩니다.
ID_NET_NAMING_SCHEME=v252
ID_NET_NAME_MAC=enx00155dddac06
ID_OUI_FROM_DATABASE=Microsoft Corporation
문제는 다음과 같습니다이러한 가상 머신 네트워크 인터페이스가 생성되지 않는 이유는 무엇입니까?ID_NET_NAME_PATH"예측 가능한 인터페이스 이름" 패턴 명명을 기반으로 이 문제를 어떻게 해결할 수 있습니까?
후속 질문:eth0
인터페이스 이름을 다음 과 같이 유지하면 인터페이스 이름 eth1
이 있습니까?실제이로 인해 네트워크 인터페이스 바인딩이 불안정해질 위험이 있습니까?
현재 시스템 구성에 대한 자세한 내용은 아래를 참조하세요.
데비안 설치 프로그램에서는 데스크톱 환경 없이 설치하기로 선택했지만그리고SSH 서버는 대화형 사용자가 필요 없는 기본 서버 애플리케이션 및 Docker 컨테이너 호스팅을 위한 원격 관리 서버입니다. 따라서 NetworkManager
존재하지 않습니다. 네트워크 구성이 관리된다고 생각합니다 systemd-networkd
.
새 시스템에는 파일이 없습니다 /etc/systemd/network
. 그래서 나는 그것이 주어진 기본 명명 전략 순서를 사용할 것이라고 믿습니다 /lib/systemd/network/99-default.link
. 파일 내용은 다음과 같습니다.
[Match]
OriginalName=*
[Link]
NamePolicy=keep kernel database onboard slot path
AlternativeNamesPolicy=database onboard slot path
MACAddressPolicy=persistent
출력에는 sudo sysctl -a
에 대한 참조가 포함되어 있지 않습니다 net.ifnames
.
리눅스 버전은 입니다 Linux [...] 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux
.systemd 252 (252.19-1~deb12u1)
연결된 Debian NetworkInterfaceNames 위키 페이지에서 "가상 머신" 설명을 확인했는데, 아래 파일 중 일부를 삭제 /etc/systemd/network
한 다음 다시 빌드하여 initrd
인터페이스 이름 재생성을 트리거하라는 내용이 나와 있습니다. 이 위치에는 파일이 없습니다. initrd를 다시 빌드하고 재부팅을 시도했습니다. 이는 인터페이스 이름에 영향을 주지 않으며 eth0
동일 하게 유지됩니다 eth1
.