Udev : 네트워크 인터페이스 이름 바꾸기


20

방금 Dell 1950 서버에 RHEL 6.3 을 설치했습니다 . 이 서버는 2 개의 GBit 포트 (Gb0 및 Gb1)입니다.

모호한 이유로 Gb0 과 Gb1을udev 선택했습니다 . 이것은 확실히 나에게 좋은 발견이 아니며 혼란을줍니다. eth1 eth0

그래서 구성을 /etc/udev/rules.d/70-persistent-net.rules다음 과 같이 수정했습니다 .

# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
  ATTR{address}=="00:20:19:52:d3:c0",           \
  ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
  ATTR{address}=="00:20:19:52:d3:be",           \
  ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

방금 원하는 것을 반영하기 위해 파일의 "NAME"필드를 변경했습니다. 서버를 재부팅했는데 작동하지 않았습니다.

에서 dmesg로그 I는 다음을 읽을 수 있습니다 :

udev: renamed network interface eth1 to rename5
udev: renamed network interface eth0 to eth1
udev: renamed network interface rename5 to eth0

여기서 무엇이 잘못되었는지에 대한 아이디어가 있습니까? 왜 이런 식으로 udev전환합니까? 이 문제가없는 다른 유사한 서버가 있습니다.


이제 과제는 무엇입니까? 여전히 Gb0 == eth1 & Gb1 == eth0?
— umläute

한 번 확인하면 grep -R 'rename5' /etc/udev/rules.d/로그에 표시되는 이유 rename5는 동일한 다른 규칙입니까?
— Rahul Patil

네트워크 인터페이스에 대해 비슷한 작업을 수행했으며 로그에서와 같이 표시됩니다 (논리를 따르는 경우 원래 eth1에 가짜 이름을 지정하여 원래 eth0의 이름을 eth1로 바꿀 수 있음). 따라서 로그에 따르면 모든 것이 정상이어야합니다. 이름이 아직 확실하지 않습니까?
— zagrimsan

할당이 여전히 잘못되었습니다 : Gb0 == eth1 & Gb1 == eth0. 파일에서 변경 한 내용이 적용되지 않는 것과 같습니다. /etc/udev/rules.d/에 rename5의 흔적이 없습니다. 내가 이해하는 것은 커널 부팅 eth0과 eth1이 부팅이지만 udev가 부팅 할 때입니다. eth0 => eth1 및 eth1 => eth0
— Hugo

해결책을 찾았습니까? 나는이 문제로 어려움을 겪고있다. 정상적인 부팅에서는 p1p1과 p1p2로 끝납니다. 그러나 p1p2에 네트워크 케이블을 꽂았으므로 부팅 할 때 (이상한 것은 아니지만) p1p1과 rename3으로 끝납니다!?!? Udev는 어떤 이유로 든 p1p2 대신 eth1의 이름을 rename3으로 바꿉니다. 이것은 물론 네트워크 i / f 구성과 방화벽 X를 깨뜨립니다. (나는 우분투에 있지 않습니다
— Huygens

답변:


9

다소 늦었지만 문제를 해결하여 문제를 해결했습니다.

KERNEL="eth*",

/etc/udev/rules.d/70-persistent-net.rules파일 에서 규칙의 일부 . 이는 UDEV가 장치 이름을 "이름 바꾸기 *"로 바꾸면이 부분이 규칙 일치를 중지하기 때문에 작동합니다. 따라서 이름을 제거하면 그 동안 UDEV가 호출 한 내용에 관계없이 올바른 이름을 올바른 장치에 할당 할 수 있습니다.


이것은 우분투 14.04에서도 나를 위해 해결되었습니다. 이름이 pXpY 인 것을 제외하고 OP와 정확히 동일한 동작입니다.
— ndemou 2016 년

9

필자의 경우 각 인터페이스의 mac 주소가 세 개의 파일로 설정되어 있다는 사실에서 문제가 발생합니다.

/etc/udev/rules.d/70-persistent-net.rules
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1

mac 주소에 대해 ifcfg 파일과 net.rules간에 일관성이 필요합니다.


1
/etc/sysconfigredhat / centos Linux에 있습니다. 우분투에서 그 파일들은 다음과 같습니다/etc/network/if-up.d
— nmgeek

6

간단히 삭제 /etc/udev/rules.d/70-persistent-net.rules하고 재부팅 하여이 문제를 해결할 수있었습니다 .


1

공백을 만들려고 /etc/udev/rules.d/80-net-name-slot.rules했습니까?

Udev v197부터 udev는 예측 가능한 네트워크 인터페이스 이름을 구현했습니다. 해당 경로에 빈 파일을 만든 다음 다시 부팅하여 인터페이스 이름을 원래 이름으로 되돌려 야합니다.

나는 비슷한 질문에 대답했다 : Creating eth0 with consistent network device naming


1
이로 인해 3 개의 네트워크 장치 중 2 개가 수정되었습니다. 빈 파일 대신 / dev / null에 대한 링크를 만들었습니다. 두 가지 접근 방식이 모두 효과가있을 것으로 기대합니다.
— MrMas

이처럼 보이는 내가이 제대로 읽고 있어요 경우 파일이 systemd에서 제거되었는지 V210 주위 변경했다 github.com/systemd/systemd/commit/...
— nhed

0

eth0, eth1, wlan0, wlan1 등이 표준 커널 이름이기 때문에 발생할 수 있습니다 (비 지속적 체계 이름 지정의 경우). udev 문서에서는 다음과 같이 말했습니다.

이름

네트워크 인터페이스에 사용할 이름입니다. 인터페이스 이름 설정을위한 상위 레벨 메커니즘은 systemd.link (5)를 참조하십시오. 장치 노드의 이름은 udev 로 변경할 수 없으며 추가 심볼릭 링크 만 만들 수 있습니다.

따라서 udev 규칙에 eth *, wlan * 등의 이름을 사용하지 마십시오.

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