routeの恒久的な追加

基本的には以下ファイルのパターンを使用して追加する
どのファイルも特殊な書式なので注意する事

# vi /etc/sysconfig/static-routes
# vi /etc/sysconfig/network-scripts/route-eth0
# vi /etc/sysconfig/network-scripts/route-br0


routeの恒久的な削除

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

  • 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

  • 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

  • 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