질문,

질문,

나는우분투 서버 14.042개의 네트워크 인터페이스가 있는 가상 머신

  • eth0- 웹 관리의 경우 SSH
  • eth1- 수신 스팬 네트워크 분석용

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... ) 일 것으로 예상됩니다.p2p1em1이름이 사용되지 않는 한udev 규칙을 통해.

인터페이스를 추가하고 컴퓨터를 시작한 후의 경험은 다음과 같습니다.

여기에 이미지 설명을 입력하세요.

  1. 내 udev 규칙이 무시/충돌되고 이름이 지정되었습니다.rename3
  2. 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 규칙을 재정의합니다. 작동하지만 추가 재부팅이 필요합니다(순진한 접근 방식). 문제 없습니다.

관련 정보