
トップページ > スタッフノート
2008年10月01日
Linuxではiproute2という
ポリシーベースルーティングが利用可能らしいです。
iproute2を利用して複数のプロバイダ接続による
回線の冗長化を試してみました。
複数のプロバイダを利用して回線の冗長化を考えた場合
通常の設定だとDefaultGWが1つしか指定できないため
DefaultGW側の回線が通信断になった時点で
返りのパケットを送信できずどちらのプロバイダからアクセスしても
通信できません。
iproute2では上記の問題を解決してくれるみたいです。
以下設定内容
・ISP別にアクセスを分割(例:ISP1側からのリクエストはISP1側のNexthopへ)
・内部からのパケット用にDefaultGWの複数登録(weightは同じで)
以下は設定内容をまとめたものです。
/etc/iproute2/rt_tablesのへ追加
100 ispprov1
101 ispprov2
#! /bin/sh
#############################################
PROV1_NIC="eth0"
PROV1_IP="10.10.10.10"
PROV1_RT="10.10.10.1"
PROV1_NET="10.10.10.0/24"
PROV1_TABLE="ispprov1"
PROV1_PRI="100"
PROV2_NIC="eth1"
PROV2_IP="11.11.11.11"
PROV2_RT="11.11.11.1"
PROV2_NET="11.11.11.0/24"
PROV2_TABLE="ispprov2"
PROV2_PRI="200"
D_GW="10.10.10.1"
#############################################
case "$1" in
'start')
#PROV1
ip route add default via $PROV1_RT table $PROV1_TABLE
ip route add $PROV1_NET dev $PROV1_NIC table $PROV1_TABLE
ip rule add from $PROV1_IP table $PROV1_TABLE priority $PROV1_PRI
#PROV2
ip route add default via $PROV2_RT table $PROV2_TABLE
ip route add $PROV2_NET dev $PROV2_NIC table $PROV2_TABLE
ip rule add from $PROV2_IP table $PROV2_TABLE priority $PROV2_PRI
#nexthop
route del default gw $D_GW
ip route add default nexthop via $PROV1_RT nexthop via $PROV2_RT
;;
'stop')
#PROV1
ip rule delete from $PROV1_IP table $PROV1_TABLE priority $PROV1_PRI
ip route delete default via $PROV1_RT table $PROV1_TABLE
ip route delete $PROV1_NET dev $PROV1_NIC table $PROV1_TABLE
#PROV2
ip rule delete from $PROV2_IP table $PROV2_TABLE priority $PROV2_PRI
ip route delete default via $PROV2_RT table $PROV2_TABLE
ip route delete $PROV2_NET dev $PROV2_NIC table $PROV2_TABLE
#nexthop
#ip route delete default nexthop via $PROV1_RT nexthop via $PROV2_RT
#route add default gw $D_GW
;;
'restart')
$0 stop
$0 start
;;
*)
# usage
echo "Usage: $0 {start|stop|restart|} [ advansed routing script options ]"
exit 1
;;
esac
ちなみにFreeBSDではipfなどを利用して似たようなことが可能なようです。(ルールの上の方に書く!)
ISP別にアクセスを分割 ↓
以上です。

荒川
エヌケー・テック株式会社
〒963-8861
福島県郡山市鶴見坦1-14-5
内藤ビル5F
TEL:024-923-1913
FAX:024-938-2328