한 서버에 두개의 랜카드 설정

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