debianでiproute2を使ったルーティングを設定する
iproute2を使ったルーティング設定をしたい場合、RedHat系だと/etc/sysconfig/network-scripts以下のファイルを編集して設定できますが、Debian系はどうすれば良いのか調べてみたら次のページが見つかりました。
このページでは/etc/network/interfaces中でpost-up/post-downを使って、ifup/ifdown時にiproute2コマンドを実行して設定しています。
紹介されている設定例は、Linux Advanced Routing & Traffic Control HOWTOの「4.2. 複数のアップリンク/プロバイダに対するルーティング」と同一です。
http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html
僕はバランシングの必要がなかったので、再起動でソースアドレスルーティングが設定される部分までしか確認していません。詳しくはリンク先を参照して下さい。
以下はリンク先を参考に、手元の環境でソースアドレスルーティングを設定した作業メモです(※繰り返しますがバランシングはしていません)。
インストール
apt-get install iproute
セットアップ
eth0が192.168.1.2/24でゲートウェイが192.168.1.1、eth1が192.168.2.2/24でゲートウェイが192.168.2.1とします。デフォルトゲートウェイは192.168.1.1にします。どちらもアップリンクでLANはありません。
アップリンクのためのテーブルT1/T2を作ります。/etc/iproute2/rt_tablesを以下のように記述。
# # reserved values # 255 local 254 main 253 default 0 unspec # # local # 200 T1 201 T2
続いて/etc/network/interfacesを以下のように記述。
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 post-up ip route add 192.168.1.0/24 dev eth0 src 192.168.1.2 table T1 post-up ip route add default via 192.168.1.1 table T1 post-up ip route add default via 192.168.1.1 post-up ip rule add from 192.168.1.2 table T1 post-down ip rule del from 192.168.1.2 table T1 auto eth1 iface eth1 inet static address 192.168.2.2 netmask 255.255.255.0 post-up ip route add 192.168.2.0/24 dev eth1 src 192.168.2.2 table T2 post-up ip route add default via 192.168.2.1 table T2 post-up ip rule add from 192.168.2.2 table T2 post-down ip rule del from 192.168.2.2 table T2
この状態でifup/ifdownするとiproute2で経路が追加/削除される事が確認できます。