본문

네트워크 인터페이스 순서 고정하기

네트워크 카드를 교체하거나, 심지어 재부팅 과정에서 네트워크 인터페이스 순서가 변경되기도 한다. 여기서 말하는 네트워크 인터페이스 순서란, eth0-08:00:27:f3:60:c3, eth1-08:00:27:7f:86:3e로 잡혀있던 하드웨어가 어느순간 eth0-08:00:27:7f:86:3e, eth1-08:00:27:f3:60:c3 로 바뀐다는것을 의미한다. /etc/network/interfaces 같은데에서는 이러한 네트워크 인터페이스 순서에 맞게 ip를 할당하는등의 역할을 수행하는데 이것이 바뀌면 예상외의 영향이 발생할 수 있다. 따라서 이러한 네트워크 인터페이스 순서를 고정해 주는것이 좋다.


결론부터 간단히 말하면 /etc/udev/rules.d/70-persistent-net.rules 내용을 고치면 해결할 수 있다. 그런데 이 파일이 존재하지 않는 경우가 있다. 물론 인터넷에서 내용을 복사해서 사용할 수도 있지만 스크립트를 사용하여 더욱 쉽게 파일을 생성할 수 있다. /lib/udev/write_net_rules을 실행하는것이다. 단,해당 스크립트는 두개의 변수를 필요로 하므로 다음과 같이 실행시켜준다.


export INTERFACE=eth0
export MATCHADDR=08:00:27:f3:60:c3
/lib/udev/write_net_rules


이를 두번 실행시키면 /etc/udev/rules.d/70-persistent-net.rules의 내용이 아래와 같이 생성된다.


# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.


SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:f3:60:c3", KERNEL=="eth*", NAME="eth0"


SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:7f:86:3e", KERNEL=="eth*", NAME="eth1"


참고로 VirtualBox등에서 인스턴스를 하나 생성한 후 복제를 하는 경우, 위의 내용으로 인하여 인터페이스 공간이 점유되어 eth2, eth3등으로 새 인터페이스가 생성되므로 이를 방지하기 위해서는 /etc/udev/rules.d/70-persistent-net.rules 내용을 삭제하고 재부팅 하면 된다. 그래도 안될 경우는 udevadm trigger또는 udevadm trigger --action=add 또는 udevadm trigger --action=change 을 수행할 수 있다.


출처:

http://kmadac.github.io/posts/18-Regenerate-net-udev-rules-in-ubuntu-12.04/

http://muzso.hu/2012/10/29/how-to-regenerate-the-etc-udev-rules.d-70-persistent-net.rules-file-on-debian-ubuntu

댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.