이전 시스템을 RHEL 5.4에서 5.8로 업그레이드하고 있습니다. 3개의 NIC가 설치되어 있으며 각각 정의된 IP 주소와 연결된 배선이 있습니다.
업그레이드 후 카드는 동일한 PCI 주소에 있지만 운영 체제에서 NIC 이름이 잘못되었습니다.
network old new
net A eth0 eth1
net B eth1 eth2
net C eth2 eth0
사용되는 PCI 주소는 05.03.0
이고 Net C
나머지 두 개는 03.03.0
이고 입니다 03.03.1
.
파일이 없습니다 /etc/udev/rules.d/70-persistent-net.rules
.
각 인터페이스가 사용하는 PCI 주소를 지정하는 방법이 있습니까?
고쳐 쓰다
IP와 MAC 주소 값이 포함된 파일을 찾았습니다 /etc/sysconfig/hwconf
. /etc/sysconfig/network-scripts/ifcfg-eth?
hwconf는 PCI 주소도 지정하지만 시작 시 무시되는 것 같습니다.
다른 카드를 사용할 때 변경되는 MAC 주소가 아닌 동작을 결정하는 데 실제로 사용되는 PCI 위치로 NIC를 지정할 수 있기를 바랍니다.
답변1
이는 일반적으로 PCI 주소가 아닌 MAC 주소를 사용하여 수행됩니다.
RHEL 5.8이 /etc/udev/rules.d/70-pertant-net.rules 파일을 지원하는 경우 해당 파일을 생성할 수 있습니다.
다른 컴퓨터에서 복사하여 MAC 주소를 기반으로 올바른 장치 이름이 할당되도록 편집하세요.
해당 파일에서 실제로 필요한 것은 다음과 같은 3줄입니다. (새 줄을 무시하면 모두 한 줄입니다.)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:23:cd:b0:23:b9", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
NIC 및 요구 사항에 맞게 ATTR{addresss} 및 NAME="eth[012]"를 변경합니다.
RHEL 5.4 또는 5.8에 있는지는 확실하지 않지만 /lib/udev/write_net_rules라는 스크립트가 있는지 확인하는 것이 좋습니다. 있는 경우 실행하면 70-percious-net이 생성됩니다. 규칙 파일이므로 각 네트워크 카드의 이름을 편집하면 됩니다.
를 사용하여 MAC 주소를 가져온
ifconfig | grep 'eth.*HWaddr'
다음 이를 복사하여 70-pertant-net.rules 파일에 붙여넣을 수 있습니다.완료되면 모든 인터페이스를 다시 시작하거나 종료하고, 커널 드라이버 모듈을 언로드하고, 모듈을 다시 로드한 다음(이제 인터페이스에 장치 이름이 할당됨) 인터페이스를 복원할 수 있습니다.
udev 및 70-pertant-net.rules 파일을 사용하기 전에는 wireless-tools 패키지에서 호출되는 프로그램을 사용했습니다
ifrename
(무선뿐만 아니라 모든 NIC에서 작동함). /etc/iftab 파일을 사용하여 MAC 주소로 네트워크 인터페이스의 이름을 바꿉니다. 대부분 작동하지만 udev 방법만큼 안정적이지는 않습니다.RHEL용으로 패키지되어 있는지는 모르겠지만 다음에서 찾을 수 있습니다.http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
나는 NIC에서 이 방법을 직접 사용하지 않았지만 udev를 사용하여 PCI 주소를 기반으로 장치 이름을 지속적으로 지정할 수도 있습니다. 먼저 /etc/udev/rules/70-percious-net.rules가 있으면 삭제합니다. 그런 다음 /etc/udev/rules에 새 파일을 만듭니다. 이름을 70-pertant-net-by-pci.rules로 지정할 수도 있습니다.
다음 줄을 추가합니다.
작업 == "추가", 하위 시스템 == "네트워크", 버스 == "pci", 코어 == "0000:03:03.0", 이름 = "eth0" 작업 == "추가", 하위 시스템 == "네트워크", 버스 == "pci", 코어 == "0000:03:03.1", 이름 = "eth1" 작업 == "추가", 하위 시스템 == "네트워크", 버스 == "pci", 코어 == "0000:05:03.0", 이름 = "eth2"
일부 최신 Linux(예: Ubuntu 13.04 이상)에서는 BUS 한정자를 제거해야 하므로 규칙은 다음과 같습니다.
작업 == "추가", 하위 시스템 == "네트워크", 커널 == "0000:03:03.0", 이름 == "eth0"
그런 다음 위에 설명된 대로 드라이버 모듈을 재부팅하거나 제거하고 다시 로드하십시오.
자세한 내용은 다음에서 확인할 수 있습니다.http://linux-tips.org/article/73/pertant-device-naming-with-udev- 하지만 페이지가 꽤 오래되었고 오래된
udevinfo
명령을 참조하고 있습니다.udevadm info
대신 사용
답변2
RedHat 5에서는 MAC 및 인터페이스 이름이면 충분합니다. 나는 거기에서 udev 또는 PCI 지정자를 조작한 적이 없습니다.
HWADDR을 MAC으로, DEVICE를 대상 장치 이름으로 설정합니다.
이름에 관해서는/etc/sysconfig/네트워크*구성 이름에 의미 있는 별칭을 사용할 수 있습니다.ifcfg-별칭.