왜 내 eth0이 eno16777736이라고하나요?


27

일관되고 예측 가능한 장치 명명의 이론적 근거와 장치 이름 생성 규칙에 대해 설명하는 http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/를 보았습니다 .

 * Two character prefixes based on the type of interface:
 *   en -- ethernet
 *   sl -- serial line IP (slip)
 *   wl -- wlan
 *   ww -- wwan
 *
 * Type of names:
 *   b<number>                             -- BCMA bus core number
 *   ccw<name>                             -- CCW bus group name
 *   o<index>                              -- on-board device index number
 *   s<slot>[f<function>][d<dev_port>]     -- hotplug slot index number
 *   x<MAC>                                -- MAC address
 *   [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
 *                                         -- PCI geographical location
 *   [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]
 *                                         -- USB port number chain

내가 장치를 가지고 있다고 가정 해 봅시다 eno16777736. 왜 그렇게 불리는가? 이더넷 카드예요. 하지만이 인터페이스 이름의 나머지 부분을 어떻게 다시 확인할 수 있습니까?

나는 검사 /sys/class/net/eno16777736하고 보았다.

eno16777736 -> ../../devices/pci0000:00/0000:00:11.0/0000:02:01.0/net/eno16777736

이것을 해석하는 방법 또는이 정보를 사용하여에 도달 할 수 있는지 잘 모르겠습니다 eno16777736.

최신 정보

따라서 16777736장치의 acpi_index입니다. 당 https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-bus-pci :

What:       /sys/bus/pci/devices/.../acpi_index
Date:       July 2010
Contact:    Narendra K <narendra_k@dell.com>, linux-bugs@dell.com
Description:
        Reading this attribute will provide the firmware
        given instance (ACPI _DSM instance number) of the PCI device.
        The attribute will be created only if the firmware has given
        an instance number to the PCI device. ACPI _DSM instance number
        will be given priority if the system firmware provides SMBIOS
        type 41 device type instance also.

그리고 실제로 :

core@localhost /sys/devices/pci0000:00/0000:00:11.0/0000:02:01.0 $ find . -type f | xargs grep 1677 2> /dev/null
./net/eno16777736/uevent:INTERFACE=eno16777736
./acpi_index:16777736

또한 다음에서 ifconfig또는 ip link장치와의 출력을 조정하려면 다음을 수행하십시오 lspci.

$ ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.37  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::20c:29ff:fe70:c039  prefixlen 64  scopeid 0x20<link>
        inet6 2601:a:7c0:66:20c:29ff:fe70:c039  prefixlen 64  scopeid 0x0<global>
        ether 00:0c:29:70:c0:39  txqueuelen 1000  (Ethernet)
        RX packets 326  bytes 37358 (36.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 172  bytes 45999 (44.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  base 0x2000 

"장치 인터럽트 19"에 주목하십시오. 그리고 lspci -v"IRQ 19"가있는에서 :

02:01.0 Ethernet controller: Advanced Micro Devices, Inc. [AMD] 79c970 [PCnet32 LANCE] (rev 10)
        Subsystem: Advanced Micro Devices, Inc. [AMD] PCnet - Fast 79C971
        Physical Slot: 33
        Flags: bus master, medium devsel, latency 64, IRQ 19
        I/O ports at 2000 [size=128]
        [virtual] Expansion ROM at fd500000 [disabled] [size=64K]
        Kernel driver in use: pcnet32

여기에는 "Phyiscal Slot 33"도 표시되며 실제로 VMWare ens33는 인터페이스 이름으로 사용되는 VM을 부팅 합니다. 따라서 다른 시간에 eno16777736을 선택하는 이유는 확실하지 않습니다. 그러나 16777736은에서 acpi_index, 33은 PCI 슬롯에서 제공됩니다.


: 레드햇처럼 보인다는 RHEL7.3에서 그들의 편 고정 redhat.com/en/about/blog/...
스테판 Lasiewski

답변:


30

en 이더넷 용

o 온보드

16777736펌웨어 (BIOS / EFI)에서 제공 한 장치의 인덱스입니다. 에서 색인을 시작하는 것이 논리적이었을 것 1입니다. 또는 합리적인 펌웨어와 1,600 만 대 이상의 온보드 장치가 있습니다! 그러나 VMware Community 에서 문제가 제기되었지만 답변되지 않은 것으로 보입니다 acpi_index.

다음 udev을 사용하여 시스템에 대한 유사한 정보를 볼 수 있습니다 .

udevadm info --name=/dev/eno16777736 --attribute-walk

하하 흥미로운. 내 BIOS는 VMWare입니다. 이상한 점은 때때로 VMWare가 eno16777736 및 때로는 ens33을 수행한다는 것입니다. 때로는 "온보드"이고 때로는 "핫 플러그"입니까? 기묘한. 16777736은 4096 ^ 2에 매우 가깝습니다
Dmitry

아니면 2 ^ 24입니다. 어쩌면 그것은 거기에서 시작합니다 ...
Dmitry Minkovsky

2
AHH는 "acpi_index"입니다. 대단히 감사합니다. 나는 실제로 어떤 숫자를보고 싶었다! 그 게시물의 OP에 그가 발행 한 명령이 표시되지 않는 것은 부끄러운 일이지만 Google에서 그 일을 할 수 있다고 확신합니다. 감사합니다
Dmitry Minkovsky

9

VMware를 사용하십니까?

유닉스 Stackexchange 사이트는 질의 응답이 있었다 이것에 대해합니다. NIC에 대한 정보가 BIOS에서 제공되고있는 것 같습니다.

eth0다른 이름 으로 바꾸려면 udev를 사용하면됩니다. 여기에 편리한 가이드 가 있습니다.


예, VMWare 그리고 감사합니다, 당신의 링크를 확인합니다! 이 시스템을 실제로 예측할 수 있기를 원한다면 eth0으로 변경할 필요가 없습니다. 내가 했어 ens33VM웨어를 사용하여, 예를 들어,도. 그것이 어떻게 그 가치를 고르는 지, 그리고 내가 어떻게 그 가치를 되 찾을 수 있는지 알고 싶습니다.
Dmitry Minkovsky
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.