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


20

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

모호한 이유로 Gb0Gb1을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.