*Linuxのルーティング [#mca940dd]
基本
~

*routeの恒久的な追加 [#o9df9a5e]
基本的には以下ファイルのパターンを使用して追加する
どのファイルも特殊な書式なので注意する事
 # vi /etc/sysconfig/static-routes
 # vi /etc/sysconfig/network-scripts/route-eth0
 # vi /etc/sysconfig/network-scripts/route-br0
~

*routeの恒久的な削除 [#fbec960a]
[[追加の方法>#o9df9a5e]]はあるのに、削除の方法は調べた限りでは無かったのでスクリプトを改造する
使える場面としては2枚のNICを挿した鯖で、それらのNICに同一セグメントのIPアドレスを割り振る時には使えると思われる
なお、&font(b){Linuxのパッケージアップデート『yum update』をした際に該当スクリプトが初期化されるらしいので、その時は再度書き換えるか、後述する専用スクリプトを使用する};
~

-&size(16){&font(b){1. スクリプト修正};};
ネットワークをリスタートした際にも正常に動作する様にスクリプトを修正
 # vi /etc/init.d/network
 _/_/_/_/_/
 -# Add non interface-specific static-routes.
 -if [ -f /etc/sysconfig/static-routes ]; then
 -    grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
 -        /sbin/route add -$args
 -    done
 -fi
 _/_/_/_/_/
 +# Add and Del interface-specific static-routes.
 +if [ -f /etc/sysconfig/static-routes ]; then
 +    grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
 +        /sbin/route add -$args
 +    done
 +    grep "^del" /etc/sysconfig/static-routes | while read ignore args ; do
 +        /sbin/route del -$args
 +    done
 +fi
~

-&size(16){&font(b){2. 削除するスタティックルートのデータ};};
スタティックルートを追加する時に使用するファイルと兼用しているので、接頭語を追加して判別する
 # vi /etc/sysconfig/static-routes
 _/_/_/_/_/
 ※192.168.1.0/24でインターフェースがbr0のルーティングを削除する時
 del net 192.168.1.0 netmask 255.255.255.0 br0
 ※link-locak(169.254.0.0)でインターフェースがbr0のルーティングを削除する時
 del net link-local netmask 255.255.0.0 br0
~

-&size(16){&font(b){3. 削除専用スクリプトの作成};};
/etc/init.d/networkが書き換えられた場合の応急処置スクリプトを作成
 # vi ~/static-routes_del.sh
 _/_/_/_/_/
 #!/bin/bash
 PATH=/bin:/sbin:/usr/bin
 
 # Delete interface-specific static-routes.                                                                           
 if [ -f /etc/sysconfig/static-routes ]; then
     grep "^del" /etc/sysconfig/static-routes | while read ignore args ; do
     /sbin/route del -$args
     done
 fi
 _/_/_/_/_/
 # chmod 700 ~/static-routes_del.sh
 # chown root.root ~/static-routes_del.sh