리눅스 이더넷 넘버링 리셋


7

하드 디스크를 다른 컴퓨터에 넣고 Linux가 새 NIC를 인식하면 eth예를 들어 새 번호가 첨부됩니다 eth0->eth1

예를 들어 시스템의 IP 주소를 얻는 등 내 개인 스크립트를 분류합니다.

재부팅 또는 새 NIC가 발견 될 때마다 번호를 재설정 할 수있는 방법이 있습니까?

답변:


12

의 udev 규칙을 확인하십시오 /etc/udev/rules.d.

Fedora 배포판에는 자동으로 작성된 규칙이 있습니다. 70-persistent-net.rules

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:f1:cc:2f:1a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

이더넷 주소를 장치 이름에 명확하게 연결합니다. 파일 맨 위에있는 주석은이 동작을 조정하는 방법을 잘 보여줍니다.


멋진 시도, 우분투 도이 규칙이 있습니다.
c2h2

2
@ c2h2 NIC의 처음부터 처음부터 번호를 다시 매기는 것이 가장 간단한 해결책은이 파일을 삭제 한 다음 다시 부팅하는 것입니다. 부팅 프로세스 중에 자동으로 재생성되며 첫 번째 NIC는 이제 eth0.
Kromey

그렇습니다, 그것은 완벽하게 작동합니다!
c2h2

2

이것을 스크립트에 추가하십시오. 시스템에 따라 루트로 실행해야 할 수도 있습니다.

ethX=`ifconfig -s | awk 'NR==2 {print $1}'`

그런 다음 $ethXNIC의 변수로 사용할 수 있습니다 .
이것은 ifconfig -s2 행과 1 행의 텍스트를 제외한 모든 것을 출력 하고 구문 분석합니다.


1

내가 이해 한 바에 따르면, Linux는 버스 번호 매기기를 사용하여 주어진 컴퓨터에서 인터페이스의 순서와 번호를 결정합니다. PCI 버스, 미니 PCI 또는 기타 다른 것이 될 수 있습니다. 최근에 모든 종류와 종류의 병렬 시작 스크립트로 인해 한 부팅에서 다른 부팅에 이르기까지 상황이 완전히 무작위로 바뀌 었습니다 (실제로 NIC는 동일한 시스템에서 거의 동일하게 명명되었지만 다른 장치는 그다지 많지 않았습니다).

분명히 버스의 장치 순서는 기계마다 다릅니다. 변경되지 않는 것은 MAC 주소입니다.

내 해결책 :

udev를 사용하는 경우 여기에 설명 된 것과 유사한 udev 구성 규칙 (Debin의 경우 ubuntu와 유사 함)을 사용하여 특정 인터페이스와 NIC의 MAC 주소를 강제로 바인딩 할 수 있습니다.

Caveat Emptor : 일부 NIC는 MAC를 편집 할 수 있습니다. 이 경우 작동하지 않습니다.

교과 외 정보 : 구현하기 어려운 대안은 Matt Domsch / Dell이 Fedora에 제안한 새로운 메커니즘을 사용하는 것입니다.

우분투가가는 한, 그 계획을 통합하는 제안도 있습니다. 위의 1 에 따르면 : Fedora는 먼저 biosdevname을 제공하지만 다른 Linux 배포판에서도이를 채택 할 것으로 예상됩니다. 우분투 11.04에서이를 통합하기위한 청사진과 OpenSUSE에 포함하기위한 기능 요청이 이미보고되어 있습니다.

잘하면 이것이 도움이됩니다.

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