
이것은 새로 설치된 Ubuntu 서버 20.04.04 시스템입니다. 네트워킹을 구성하기 위해 networkd 및 netplan을 사용하고 있습니다. 사용자 정의 설치 단계를 수행하지 않고 프롬프트를 통해 .iso를 로드하고 Ubuntu 서버를 설치했습니다.
이러한 시스템이 공급업체에서 배송되었을 때 Ubuntu는 이미 설치되어 있었고 네트워크 인터페이스 이름은 다음 ens1f0
과 같습니다 ens1f1
.
root@oldHost2:~# sudo lshw -C network |grep "logical name"
logical name: ens1f0
logical name: ens1f1
logical name: bond0
그러나 OS를 다시 설치한 후(netplan을 실행하기 전) 다음과 같은 문제가 발생합니다....
root@freshHost1:~# sudo lshw -C network |grep "logical name"
logical name: ens1f0np0
logical name: ens1f1np1
logical name: bond0
ens1f0
내 모든 사이트에서 우리는 및 를 가정하는 netplan 구성을 사용합니다 ens1f0
. 모든 인터페이스가 이에 일치하길 바랍니다.
set-name
netplan에서 인터페이스 이름을 설정할 수 있다는 것을 알고 있습니다 (에 정의된 대로).https://ubuntu.com/server/docs/network-configuration) 그러나 자동 프로비저닝을 악몽으로 만들 수 있는 인터페이스(Mac 주소 등을 사용하여)를 이미 일치시켜야 합니다(불가능하지는 않더라도). 닭고기/계란 시나리오. 프로비저닝할 시스템이 수백 대 있는데 Mac 주소를 모르고 netplan 구성을 템플릿으로 작성하고 싶습니다.
Netplan에서 인터페이스를 그룹화할 수도 있다는 것을 알고 있습니다.
ethernets:
eports:
match:
name: ens*
내 경우에는 효과가 있을 수 있지만 모든 시스템에 이와 같은 간단한 두 개의 NIC 설정이 있는 것은 아니므로 최선의 조치가 무엇인지 잘 모르겠습니다.
ServerFault에 대한 내 질문 ...
- 이 논리적 이름은 Netplan이 실행되기 전에 설정되므로 이 이름은 어떻게 결정됩니까? OS 설치/프로비저닝 중에 이를 어떻게 재정의할 수 있나요?
- 인터페이스 이름에서
np0
및 은(는) 무엇을 의미합니까?np1
답변1
이는 장치에 대한 정보를 기반으로 systemd에 의해 결정됩니다. 이름은 BIOS, 설치될 수 있는 기타 장치, Linux 버전 및 드라이버 버전을 포함한 여러 가지 요소의 영향을 받을 수 있습니다. 보다https://www.freedesktop.org/software/systemd/man/systemd.net-naming-scheme.htmlsystemd가 이름을 구성하는 방법에 대해 알아보세요.
예를 들어 슬롯 번호는 PCIe 슬롯과 연결될 수도 있고 연결되지 않을 수도 있습니다. 나는 이것이 적어도 BIOS/ACPI와 관련이 있다고 생각하지만 다른 요인이 있을 수 있습니다. 내 컴퓨터 중 하나에서 한 슬롯에 설치된 NIC는 enpN으로 열거되고, 다른 슬롯으로 이동하면 동일한 NIC가 ensN으로 열거됩니다.
부팅 중 Thunderbolt 장치가 존재하는 등 특정 조건에서 PCIe 버스 번호가 다르게 할당되는 경우가 있다고 들었습니다. 궁극적으로 이는 Thunderbolt 포트에 대해 PCIe 버스 번호를 올바르게 예약하지 않은 시스템 BIOS의 결함일 수 있습니다.
np0 및 np1에서 볼 수 있는 한 p0 및 p1은 devlink에서 오는 물리적 포트 이름입니다 __devlink_port_phys_port_name_get
. 아마도 devlink 지원이 NIC 드라이버에 추가되어 np0/np1이 나타나는 것으로 보입니다. 이전 시스템을 동일한 커널 버전으로 업데이트하는 경우 이름도 변경되어야 합니다.