CentOS 7 또는 RHEL 7의 네트워크 인터페이스 이름 'eno16777736'에서 eno는 무엇을 의미합니까?


16

일관된 네트워크 장치 이름 지정 체계에서 eno16777736CentOS 7 또는 RHEL 7의 네트워크 인터페이스 이름에서 'eno'는 무엇을 의미 합니까?

답변:



18

흠. "en"과 "o"보다 "16777736"에 더 관심이 있습니다.

실수로 Google을 방황하고 사용자 정의 PCI 아키텍처가있는 서버에 앉아있는 것을 발견하지 않으면 16777736이 어떻게 가능한 가치가 있는지 알 수 없습니다. 이것은 더 심각한 문제에 대한 힌트 일 수 있습니다.

현재 스키마에서 시스템은 256 개 이상의 PCI 버스를 처리 할 수 ​​없습니다 (각 버스 아래에 32 개의 장치가 있고 각 장치 아래에 최대 8 개의 기능이 있음). 이것을 Bus : Device.Function 주소 지정이라고도합니다. 최신 시스템은 Domain : Bus : Device.Function을 사용하여 256 버스 제한을 초과합니다. 어쨌든 문제로 돌아 가면 ...

당신은 할 수 있습니까 :

ls -la /sys/class/net | grep eno16777736

다음과 매우 비슷한 것을 본다면 :

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

그런 다음 Google이 서버를 가지고 놀기 전에 빨리 달리는 것이 좋습니다.

/(0000:1000208:01.0)/ 위의 버스 값이 "1000208"인 Domain : Bus : Device.Function 주소는 16777736의 16 진수 표현입니다. 그러나 "0x100"(256)은 최대 값이어야합니다. "버스"를 위해 가질 수 있습니다.

반면에 "버스"에 대해 0x100 미만의 값을 얻는 경우 :

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

그런 다음 문제는 시작시 Bios / Firmware가 udev (systemd)에 정보를 보내는 방법과 관련이 있다고 생각합니다. 잠재적 인 원인을 파악하려면 먼저 udev가 다시 반환하는 값을 확인하십시오.

일반적으로 PIN (예측 가능한 인터페이스 이름)을 생성하는 udev 쿼리에는 세 곳이 있습니다.

  1. ACPI_DSM
  2. SMBIOS 테이블 [특히 레코드 유형 "슬롯"[9] 및 유형 41]
  3. PCI IRQ 라우팅 테이블

[그와 같은 순서로]

다음과 같이 (1)을 테스트 할 수 있습니다.

udevadm info --path=/sys/class/net/eno16777736 --attribute-walk | grep acpi

이것이 16777736을 제공하면 시스템이 ACPI_DSM을 지원하는 데 필요한 PCI 펌웨어 사양 3.1을 지원하지 않을 가능성이 높습니다

이제 테스트해야합니다 (2). 먼저 SMBIOS 테이블에서 레코드 유형 41을 확인하십시오 (유형 41이 가장 적합 함).

dmidecode -t 41 | more

아무것도 표시되지 않거나 SMBIOS 버전이 "2.62"보다 작 으면 udev가 PCI IRQ 라우팅 테이블을 사용하여 PIN을 생성한다는 의미입니다.

그래서 우리는 확인해야합니다 (3)

biosdecode

최대 슬롯 입력에주의를 기울여야합니다. 다음과 같은 형식이어야합니다.

Slot Entry X: ID 00:00, (slot number X| status)

X가 25 인 경우 인수를 위해 NIC는 25 이하의 슬롯에 있어야합니다. 그렇지 않은 경우 udev는 자리 표시 자 값 16777736을 계속 참조합니다.

대부분의 경우 다음과 같은 방법으로 nic의 슬롯 번호를 확인할 수 있습니다.

lspci -bv | grep -i -A10 ether

대부분의 경우 BDF (Bus : Device.Function)에서 장치는 16 진수에서 10 진수로 변환 한 후 물리적 포트 번호와 같아야합니다. 그렇지 않은 경우, lspci는 위의 lspci 명령을 실행 한 결과에서 물리적 슬롯을 별도의 행에 나열합니다.

따라서 나열된 물리적 슬롯 번호가 X (PCI IRQ 라우팅 테이블에서 찾은 최대 수)보다 큰 경우 문제가 가장 많이 발생한 것입니다.

이 경우 내가 생각할 수있는 5 가지 가능한 솔루션이 있습니다 ...

  1. 커널 해킹 ... 새로운 PCI IRQ 라우팅 테이블을 사용하여 커널을 다시 빌드하십시오. /arch/x86/pci/irq.c를보십시오

[이것은 내가 찾기에 더 나은 나의 시간을 사용하는 솔루션이다]

  1. 새 규칙을 만들어 장치를 다른 이름으로 매핑

으로:

vi /etc/udev/rules.d/70-my-net-names.rules

다음을 추가하십시오.

ACTION=="add", SUBSYSTEM=="net", ENV{ID_BUS}=="pci", 
KERNELS=="{Domain:Bus:Device.Function}", NAME="{name: i.e. eno1 or eth0}" 

[저는 이것을 무시하고 문제를 해결하는 것입니다. 예쁜 해결책이라고 부릅니다]

  1. 커널 부팅 옵션에 net.ifnames = 0을 추가하여 기능을 모두 비활성화 할 수 있습니다.

[물론 이것은 당연한 일입니다. 실제로 해결책이 아닙니다) ...

  1. 그리고 VM ... VMWare / VirtualBox 등을 실행하는 경우 구성 파일을 열고 "pciSlotNumber"를 X 이하로 수정하십시오.

[그러나 이것은 일시적인 해킹이 될 때까지 내 소프트웨어가 업데이트 된 솔루션입니다]

  1. 새 컴퓨터를 구입하십시오. [마지막으로 if-you-can't beat-the-join-them 솔루션]

3
이상한 숫자가 VMWare BIOS의 넷 장치와 일치한다고 생각합니다. OP가 CentOS 7 VM을 사용하고있는 것 같습니다.

항상 같은 것은 아닙니다-나는 eno16780032를 가지고 있습니다. 엉덩이가 얼마나 아파요.
Dan Pritts

1
이 답변은 너무 지쳐서 OP의 질문에 대답하면서 지수로 장치를 식별하는 방법에 대한 간결한 참조를 만들었습니다.
Konrads

VMware의 이러한 이름은 드문 일이 아닙니다. 예를 들어, 내 장치의 이름은 eno16777732입니다.
Stefan Lasiewski

VMWare와 관련하여 발생한 문제는 VSphere API에서 주어진 네트워크 카드의 acpi_index를 얻는 방법이없는 것 같습니다.
Danny

14

이전 답변에 세부 정보를 추가하려면 다음을 수행하십시오.

인터페이스 유형에 따른 두 문자 접두사 :

*   en -- ethernet
*   sl -- serial line IP (slip)
*   wl -- wlan
*   ww -- wwan
*   ib -- Infiniband

이름의 종류 :

*   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>][..]1[i<interface>]
                                          -- USB port number chain

출처 : http://ask.xmodulo.com/change-network-interface-name-centos7.html

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.