Debian 10(Buster)을 새로 설치했는데 예측 가능한 이름 체계에 문제가 있습니다.
온보드 NIC 4개와 4포트 PCIe NIC가 있습니다.
명명 규칙은 온보드 포트에 적용되지만 4포트 PCIe는 처음 2개 포트에 적용되지만 ens2f1
마지막 ens2f0
2개 포트에는 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의 출력입니다.ens2f0
rename8
ens2f1
rename9
udevadm
ens2f0
rename8
# 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
파일을 덮어
/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}"
파일에 "이 파일을 편집하지 마십시오. 업데이트 시 덮어쓰게 됩니다"라고 적혀 있으므로 이 파일을 어떻게 덮어쓰며 새 규칙 파일을 어디에 넣을 수 있습니까?
나는 이 "스크립트"가 어떻게 작동하는지 이해하고 있다고 확신합니다.
이 줄에서는 먼저 같은지 NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"
확인한 다음 같지 않은지 확인한 다음 우선순위 에 따라 새 값을 설정합니다 .NAME
""
ENV{ID_NET_NAME}
""
NAME
ID_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"
- 이걸로 바꿔도 될까요?
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
네, 단순한 우선순위
ID_NET_NAME_PATH
가 아닌 전용 목적 으로 변경할 수 있습니다 .ID_NET_NAME
적용 범위 파일은 다음 위치에 있습니다.
/etc/udev/rules.d/80-net-setup-link.rules
예, 스크립트가 작동합니다(자체 테스트).
새 질문으로 이동됨:udev 예측 가능한 이름 체계 규칙에 네트워크 인터페이스 이름이 이미 존재하는지 확인하시겠습니까?