두 개 이상의 NIC (Network Interface Controller)를 사용하다보면, gateway 설정 시 문제가 될 수 있다.
장치에 2개의 NIC (eth0, eth1)이 설치되어 있고, interfaces 설정(/etc/network/interfaces)은 아래와 같이 되어있다고 가정하자.
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface p6p1 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.254
# The secondary network interface
auto eth1
iface p7p1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
본 설정에서는 2개의 gateway가 작성되어 있어 시스템에서 충돌이 발생한다.
대표적인 증상으로는
1. 시스템 부팅 시 network configuration 으로 인해 60초 이상의 시간이 소요됨.
2. network interface를 up 할 때 ‘RTNETLINK answers: File exists’ 와 같은 에러가 발생하면서 제대로 시작하지 못함.
3. network에 접속하지 못함.
등의 증상이 나타난다.
따라서, gateway를 하나 없애 주어야 정상 작동 한다.
이를 없애는 방법에는 2가지가 있는데 한 가지 방법을 소개하자면 아래와 같다.
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface p6p1 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.254
# The secondary network interface
auto eth1
iface p7p1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
post-up /sbin/route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.254
post-down /sbin/route del -net 192.168.1.0 netmask 255.255.255.0
# gateway 192.168.1.254
eth1 interface의 gateway는 없애고, 대신 post-up, post-down 설정을 통해 routing rule을 추가 삭제해주는 방법이 있다.
network interface를 다시 켜고 끌 때:
sudo ifdown --exclude=lo -a && sudo ifup --exclude=lo -a
혹은
sudo ifconfig [eth0] down && ifconfig [eth0] up
출력시
sudo ifup --verbose [eth0]
network 서비스 재시작:
sudo /etc/init.d/networking restart
Solving “RTNETLINK answers: File exists” when running ifup
LENNART'S WEBLOG