二本足のサーバがあって、それぞれISP1とISP2に接続されていて固定IPが割り振られている環境で それぞれのインターフェースeth0とeth1に着信したデータはそれぞれのインターフェースから応答を返す必要がある
その設定方法がポリシールーティングで次の順番でやる
isp1が192.168.1.0/24でゲートウェイが192.168.1.1、サーバが192.168.1.5
isp2が192.168.2.0/24でゲートウェイが192.168.2.1、サーバが192.168.2.5
の場合を考える
/etc/iproute2/rt_tablesで行う
vi /etc/iproute2/rt_tables # # reserved values # 255 local 254 main 253 default 0 unspec # # local # #1 inr.ruhep 100 isp1 <-追加 101 isp2 <-追加
ip routeコマンドで行う
デフォルトゲートウェイの設定 ip route add default via 192.168.1.1 table isp1 ip route add default via 192.168.2.1 table isp2 同一ネットワークルーティングの設定 ip route add 192.168.1.0/24 dev eth0 table isp1 ip route add 192.168.2.0/24 dev eth1 table isp2
ip ruleコマンドで行う
ip rule add from 192.168.1.5 table isp1 priority 100 ip rule add from 192.168.2.5 table isp2 priority 101
# ip route show table isp1 ←経路テーブルisp1の確認 192.168.1.0/24 dev eth0 scope link default via 192.168.1.1 dev eth0 # ip route show table isp2 ←経路テーブルisp2の確認 192.168.2.0/24 dev eth1 scope link default via 192.168.2.1 dev eth1 # ip rule show ←セレクタの確認 0: from all lookup 255 100: from 192.168.1.5 lookup isp1 101: from 192.168.2.5 lookup isp2 254: from all lookup main 253: from all lookup default
rt_tableファイルは直接変更しているので保存されているが、それ以外は保存されない。
保存するには上記コマンド類をファイルに落として rc.localとかで実行させる必要があるのです…
ここ、ポイントね。