CentOS 6 버전으로 올라오면서 (RHEL 포함) OS 를 설치하고 새로 올렸는데

/etc/sysconfig/network-script 밑에는 ifcfg-eth0 파일이 생성되어 있음에도

ifconfig -a 로 확인하면 eth0 가 없이 eth1 이라던가 eth2 로 보이는 현상이 종종 있습니다.

리부팅을 계속 해봤자 network 서비스를 몇번이고 해봤자 해결이 안되는데요

이건 2.6 커널에서 부터 udev(userspace device) 라는 디바이스 장치파일을 자동으로 등록해 주는 시스템 관리 프로그램을 제공하기 때문입니다.

해결 방법으로는

1. rm -f /etc/udev/rules.d/70-persistent-net.rules 내지는 /etc/udev/rules.d/70-persistent-net.rules 파일 안에 ethernet 관련해서 기술된 내용을 지워버립니다. 그리고 rebooting 하면 eth0 로 올라온 걸 확인할 수 있습니다.

여기서 주의할 점이라면 vm 일 경우 mac addr 이 dynamic 하게 설정되기 때문에 /etc/sysconfig/network-script/ifcfg-eth0 에 기재된 mac addr 과 다를 수 있으므로 ifconfig -a 로 봤을 때 mac addr 과 ifcfg-eth0 에 기재되어 있는 mac addr 을 꼭 확인하시기 바랍니다. 만약 다르게 설정되어 있다면 ifconfig -a 에서 보이는 mac addr 을 ifcfg-eth0 파일에 적어주면 됩니다.

udev 의 간략한 역할 설명으로는

 새로운 장치를 추가하게 되면

1) 커널이 추가 여부를 감지하고 /sbin/hotplug를 이용해서 새로운 디바이스 추가 이벤트를 발생하고,

2) udev는 그 이벤트를 받아 적당한 이름의 디바이스 파일(또는 심볼릭 링크)을 /dev 디렉토리 밑에 만들어 줍니다.

udev의 설정파일은 "디바이스 파일 이름을 정하는 규칙을 정하고 있는 /etc/udev/rules.d/디렉토리 밑의 [*.rules] 파일로 존재합니다. 좋은 기능으로 만들어진거 같은데 왜 유독 ethernet 에 대해서는 기존 장치가 삭제되었을 경우에도 지워버리지 않아서 새로운 ethernet 을 추가했을 때 기존 ethernet 의 다음 번호로 할당하는지에 대해서는 좀 더 찾아봐야 할 것 같네요.