Ubuntu 14.04.2 기준으로 쓰여짐.
아래의 bash script를 파일로 만든다음, /etc/network/interfaces에서 해당 NIC이 up 된 후에 실행되도록 해준다. 마지막 두줄은 외부 인터넷에 연결되는 NIC에만 적용해주고, 나머지 NIC 스크립트에서는 제거해준다.
NAME=NICNAME(ex. eth0) MAC=WRITE:YOUR:NIC:MAC:ADDRESS:HERE IP=$(ifconfig | grep $MAC -A 1 | awk '/'$NAME'/{getline; print}' | sed 's/\ \ Bcast.*$//' | sed 's/^.*addr://') IP1=`ifconfig | grep $MAC -A 1 | awk '/'$NAME'/{getline; print}' | sed 's/\ \ Bcast.*$//' | sed 's/^.*addr://' | awk -F. '{print $1}'` IP2=`ifconfig | grep $MAC -A 1 | awk '/'$NAME'/{getline; print}' | sed 's/\ \ Bcast.*$//' | sed 's/^.*addr://' | awk -F. '{print $2}'` IP3=`ifconfig | grep $MAC -A 1 | awk '/'$NAME'/{getline; print}' | sed 's/\ \ Bcast.*$//' | sed 's/^.*addr://' | awk -F. '{print $3}'` IP4=`ifconfig | grep $MAC -A 1 | awk '/'$NAME'/{getline; print}' | sed 's/\ \ Bcast.*$//' | sed 's/^.*addr://' | awk -F. '{print $4}'` ip route add $IP1.$IP2.$IP3.0 dev $NAME src $IP table $NAME ip route add default via $IP1.$IP2.$IP3.254 dev $NAME table $NAME ip rule add from $IP table $NAME ip rule add to $IP table $NAME ip route flush cache route del default dev $NAME sleep 2 route add default gw $IP1.$IP2.$IP3.254 dev $NAME
유동아이피를 사용중이라 스크립트가 복잡한데, 고정아이피라면 더 간단히 할 수 있을 듯 싶다.
/etc/network/interfaces에 추가 방법은 이렇다.
auto eth0 iface eth0 inet dhcp post-up /root/eth0.sh