내 이더넷 인터페이스 이름이 eth0 대신 enp0s10인 이유는 무엇입니까?

내 이더넷 인터페이스 이름이 eth0 대신 enp0s10인 이유는 무엇입니까?

내가 달릴 때 ifconfig -a, 나는 단지 얻는다루오그리고enp0s10클래식이 아닌 인터페이스이더넷 0

무엇인가요enp0s10의미는? 왜 안 돼이더넷 0?

답변1

"enp0s10은 무엇을 의미합니까?"라는 질문에 대답하려면 다음을 수행하십시오.

enp0s10:
| | |
v | |
en| |   --> ethernet
  v |
  p0|   --> bus number (0)
    v
    s10 --> slot number (10)

원천:GitHub의 udev-buildin-net_id.c

답변2

udevd가 이더넷 장치에 이름을 할당하는 방식이 변경되었습니다. 이제 귀하의 장치는 다음을 기반으로 하는 "예측 가능한 인터페이스 이름"을 사용합니다.그리고 출처를 인용하세요):

  1. 펌웨어/BIOS가 포함된 이름은 온보드 장치의 인덱스 번호를 제공합니다(예: eno1).
  2. 펌웨어/BIOS에서 제공하는 PCI Express 핫 플러그 ​​슬롯 인덱스 번호가 포함된 이름(예: ens1)
  3. 하드웨어 커넥터의 물리적/지리적 위치 이름을 포함합니다(예: enp2s0).
  4. 인터페이스 MAC 주소가 포함된 이름(예: enx78e7d1ea46da)
  5. 예측할 수 없는 고전적인 커널 기반 ethX 이름 지정(예: eth0)

이 변경이 발생한 이유는 다음 문서에 설명되어 있습니다.systemd freedesktop.org 페이지, 이 기능을 비활성화하는 방법:

ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

또는 이전 버전을 사용하는 경우:

ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

답변3

위에서 언급했듯이 enp0s10은 이더넷(en), 프리픽스 0(p0), 슬롯 10(s10)을 의미합니다.

버스 번호, 장치 번호 및 기능 번호는 PCI 장치의 BDF(버스 장치 기능) 표현에서 가져와 예측 가능한 네트워크 인터페이스 이름(PNIN)의 접두사, 슬롯 및 기능 부분을 만듭니다.

함수가 0인 경우 f0 부분이 생략되는 경우도 있습니다. 명확성을 위해 접두사를 p0에서 p4로 변경하고 함수를 f0에서 f1로 변경했습니다. BDF는 PNIN에서 10진수 값으로 변환되는 16진수 값을 사용합니다.

확장됨답변아나운서디곡신:

enp4s10f1                        pci 0000:04:0a.1
| | |  |                                |  |  | |
| | |  |                   domain <- 0000  |  | |
| | |  |                                   |  | |
en| |  |  --> ethernet                     |  | |
  | |  |                                   |  | |
  p4|  |  --> prefix/bus number (4)   <-- 04  | |
    |  |                                      | |
    s10|  --> slot/device number (10) <--    10 |
       |                                        |
       f1 --> function number (1)     <--       1

https://wiki.xen.org/wiki/Bus:Device.Function_(BDF)_Notation https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames

USB 포트용으로 끝에 u7이 있는 장치를 발견했습니다. 몇 가지 다른 라벨링 가능성이 포함되어 있습니다.이 문서는 예측 가능한 네트워크 인터페이스 장치 이름에 관한 것입니다..

PCI 도메인이 0이 아닌 경우의 두 번째 예(P는 PCI Geolocation을 나타냄):

P1enp4s10f1                        pci 0001:04:0a.1
| | | |  |                                |  |  | |
P1| | |  |  --> PCI geo loc/domain <-- 0001  |  | |
  | | |  |                                   |  | |
  en| |  |  --> ethernet                     |  | |
    | |  |                                   |  | |
    p4|  |  --> prefix/bus number (4)   <-- 04  | |
      |  |                                      | |
      s10|  --> slot/device number (10) <--    10 |
         |                                        |
         f1 --> function number (1)     <--       1

답변4

금지에 대한 전문 인용@Braiam이 연결함:

마음에 들지 않는데 어떻게 비활성화할 수 있나요?

기본적으로 세 가지 옵션이 있습니다.

  1. 예측할 수 없는 커널 이름이 다시 사용되도록 고정 이름 할당을 비활성화합니다. 이렇게 하려면 기본 정책에 대해 udev의 .link 파일을 차단하면 됩니다.ln -s /dev/null /etc/systemd/network/99-default.link
  2. 인터페이스 이름을 "internet0", "dmz0" 또는 "lan0"으로 지정하는 등 수동으로 이름 지정 체계를 직접 만들 수 있습니다. 이렇게 하려면 /etc/systemd/network/인터페이스 중 하나, 일부 또는 전체에 대해 명확한 이름이나 더 나은 명명 체계를 선택하여 에서 자신만의 .link 파일을 만듭니다. 자세한 내용은 을 참조하세요 systemd.link(5).
  3. net.ifnames=0커널 명령줄을 전달합니다.

요약: 다음으로 이름이 바뀌었습니다.99-default.link

관련 정보