나는우분투 서버 14.042개의 네트워크 인터페이스가 있는 가상 머신
eth0
- 웹 관리의 경우 SSHeth1
- 수신 스팬 네트워크 분석용
Mac 주소와 논리 네트워크 인터페이스 이름의 일관성과 올바른 바인딩을 보장하기 위해 udev 규칙을 사용하여 시스템을 구성했습니다.
- 서버를 설치할 때 이 작업을 한 번만 수행했습니다.
이 규칙을 작성하세요
/etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:f5:aa:02", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth1" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:f5:aa:f8", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"
이 설정은 예상대로 작동합니다.새로운 네트워크 인터페이스가 머신에 추가될 때까지. 새로운 인터페이스는 다음과 같습니다.udev 규칙에 추가되지 않음. (설정하는 동안 한 번만 수행하기 때문에)
새 네트워크 인터페이스 이름은 일반적인 이름(예: /// eth3
... ) 일 것으로 예상됩니다.p2p1
em1
이름이 사용되지 않는 한udev 규칙을 통해.
인터페이스를 추가하고 컴퓨터를 시작한 후의 경험은 다음과 같습니다.
- 내 udev 규칙이 무시/충돌되고 이름이 지정되었습니다.
rename3
eth0
납치당했습니다. 현재 새로운 인터페이스 중 하나는eth0
보안 측면에서 매우 중요한 문제입니다(데이터 유출로 이어질 수 있음).
내가 찾은 관련 프로세스는 다음과 같습니다./var/log/messages
systemd-udevd[126]: starting version 204
...
vmxnet3 0000:04:00.0 eth0: NIC Link is Up 10000 Mbps
vmxnet3 0000:0b:00.0 eth1: NIC Link is Up 10000 Mbps
vmxnet3 0000:13:00.0 eth2: NIC Link is Up 10000 Mbps
vmxnet3 0000:1b:00.0 eth3: NIC Link is Up 10000 Mbps
...
vmxnet3 0000:0b:00.0 rename3: renamed from eth1
vmxnet3 0000:13:00.0 eth1: renamed from eth2
systemd-udevd[396]: renamed network interface eth1 to rename3
systemd-udevd[405]: renamed network interface eth2 to eth1
- IMO 이것은 경쟁 조건입니다. 드라이버/커널 직업 이름. 나중에 내 udev 규칙이 실행되면 점유된 이름은 다음으로 돌아갑니다.
rename*
질문,
드라이버/커널이 인터페이스 이름을 사용하기 전에 순서를 변경하고 udev-rules의 우선 순위를 지정하는 방법이 있습니까?
참고 - 다음 해결 방법(POC 수준)이 저에게 효과적이었습니다.
- udev 규칙에서 다른 명명 규칙(예:
management0
및 )을 사용하면span0
기본값과 충돌하지 않으므로 문제 없이 작동합니다.- @boot의 스크립트 실행 - 하드웨어 변경과 관련된 udev 규칙을 재정의합니다. 작동하지만 추가 재부팅이 필요합니다(순진한 접근 방식). 문제 없습니다.