예측 가능한 이름 체계에서 사용되는 네트워크 인터페이스 명명 체계의 충돌을 해결하는 방법은 무엇입니까?

예측 가능한 이름 체계에서 사용되는 네트워크 인터페이스 명명 체계의 충돌을 해결하는 방법은 무엇입니까?

Debian 10(Buster)을 새로 설치했는데 예측 가능한 이름 체계에 문제가 있습니다.

온보드 NIC 4개와 4포트 PCIe NIC가 있습니다.

명명 규칙은 온보드 포트에 적용되지만 4포트 PCIe는 처음 2개 포트에 적용되지만 ens2f1마지막 ens2f02개 포트에는 rename8이름이 지정 됩니다 rename9.

나는 여기에서 전체 기사를 읽었습니다.https://wiki.debian.org/NetworkInterfaceNames

왜 그런 이름이 붙었는지 이해합니다. 여기에 간단한 설명이 있습니다.
이러한 인터페이스의 이름은 /lib/udev/rules.d/80-net-setup-link.rules규칙 파일에 사용된 우선 순위 ID_NET_NAME에서 나왔기 때문에 ID_NET_NAME_SLOT문제는 _SLOT동일하며 테스트할 때도 동일하며 다음은 and의 출력입니다.ens2f0rename8ens2f1rename9udevadmens2f0rename8

# udevadm test-builtin net_id /sys/class/net/ens2f0 2>/dev/null
ID_NET_NAMING_SCHEME=v240
ID_NET_NAME_MAC=enx00151757e989
ID_OUI_FROM_DATABASE=Intel Corporate
ID_NET_NAME_PATH=enp13s0f0
ID_NET_NAME_SLOT=ens2f0

# udevadm test-builtin net_id /sys/class/net/rename8 2>/dev/null
ID_NET_NAMING_SCHEME=v240
ID_NET_NAME_MAC=enx00151757e98b
ID_OUI_FROM_DATABASE=Intel Corporate
ID_NET_NAME_PATH=enp14s0f0
ID_NET_NAME_SLOT=ens2f0
  1. 파일을 덮어 /lib/udev/rules.d/80-net-setup-link.rules쓰고 작동하게 할 수 있나요 ID_NET_NAME_PATH?
    다음 줄을
    NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"
    다음으로 변경하세요.
    NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"

  2. 파일에 "이 파일을 편집하지 마십시오. 업데이트 시 덮어쓰게 됩니다"라고 적혀 있으므로 이 파일을 어떻게 덮어쓰며 새 규칙 파일을 어디에 넣을 수 있습니까?

나는 이 "스크립트"가 어떻게 작동하는지 이해하고 있다고 확신합니다.
이 줄에서는 먼저 같은지 NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"확인한 다음 같지 않은지 확인한 다음 우선순위 에 따라 새 값을 설정합니다 .NAME""ENV{ID_NET_NAME}""NAMEID_NET_NAME

내가 가지고 있는 전체 파일은 다음과 같습니다(모든 사람에게 동일해야 한다는 것을 알고 있지만 명확성을 위해 게시하고 있습니다).

# do not edit this file, it will be overwritten on update

SUBSYSTEM!="net", GOTO="net_setup_link_end"

IMPORT{builtin}="path_id"

ACTION!="add", GOTO="net_setup_link_end"

IMPORT{builtin}="net_setup_link"

NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"

LABEL="net_setup_link_end"
  1. 이걸로 바꿔도 될까요?
SUBSYSTEM!="net", GOTO="net_setup_link_end"

IMPORT{builtin}="path_id"

ACTION!="add", GOTO="net_setup_link_end"

IMPORT{builtin}="net_setup_link"

NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"
NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}"
NAME=="", ENV{ID_NET_NAME_MAC}!="", NAME="$env{ID_NET_NAME_MAC}"
NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"

LABEL="net_setup_link_end"

답변1

  1. 네, 단순한 우선순위 ID_NET_NAME_PATH가 아닌 전용 목적 으로 변경할 수 있습니다 .ID_NET_NAME

  2. 적용 범위 파일은 다음 위치에 있습니다./etc/udev/rules.d/80-net-setup-link.rules

  3. 예, 스크립트가 작동합니다(자체 테스트).

  4. 새 질문으로 이동됨:udev 예측 가능한 이름 체계 규칙에 네트워크 인터페이스 이름이 이미 존재하는지 확인하시겠습니까?

관련 정보