Lubuntu 16.04 スタティックルーティングの設定

問題

スタティックルートの追加は route add コマンドで可能ですが、毎回設定するのは面倒ですので、永続的に設定したい。

# route add -net 172.16.1.0 netmask 255.255.255.0 gw 10.1.1.254
# ping 172.16.1.201
PING 172.16.1.201 (172.16.1.201) 56(84) bytes of data.
64 bytes from 172.16.1.201: icmp_seq=1 ttl=63 time=9.96 ms
64 bytes from 172.16.1.201: icmp_seq=2 ttl=63 time=8.93 ms
64 bytes from 172.16.1.201: icmp_seq=3 ttl=63 time=9.54 ms
^C

対策

route コマンドのフルパスを確認

後で使うので確認しておきます。

# which route
/sbin/route

インターフェースの名前を確認

これも後で使うので確認しておきます。ルーティングを追加したいインターフェースの名前を確認します。以下の例では ens160 や ens192 といった名前になっています。

# ifconfig 
ens160    Link encap:イーサネット  ハードウェアアドレス 00:50:56:11:22:33 
          inetアドレス:10.1.2.200  ブロードキャスト:10.1.255.255  マスク:255.255.0.0
          inet6アドレス: fe80::250:56ff:fead:954/64 範囲:リンク
          inet6アドレス: 2408:210:ce00:4600:250:56ff:fead:954/64 範囲:グローバル
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:8099 エラー:0 損失:3 オーバラン:0 フレーム:0
          TXパケット:2217 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000 
          RXバイト:591078 (591.0 KB)  TXバイト:199883 (199.8 KB)

ens192    Link encap:イーサネット  ハードウェアアドレス 00:50:56:11:22:34  
          inetアドレス:192.168.202.200  ブロードキャスト:192.168.202.255  マスク:255.255.255.0
          inet6アドレス: fe80::250:56ff:fead:11e0/64 範囲:リンク
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:2630 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:728 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000 
          RXバイト:470598 (470.5 KB)  TXバイト:61935 (61.9 KB)

lo        Link encap:ローカルループバック  
          inetアドレス:127.0.0.1  マスク:255.0.0.0
          inet6アドレス: ::1/128 範囲:ホスト
          UP LOOPBACK RUNNING  MTU:65536  メトリック:1
          RXパケット:90 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:90 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1 
          RXバイト:7935 (7.9 KB)  TXバイト:7935 (7.9 KB)

スタティックルートの永続化

とはいっても結局起動時に route add しているだけなんですけど、インターフェースが活性化した段階でシェルスクリプトを実行しています。以下の例では static-routes という名前のシェルスクリプトを /etc/network/if-up.d/ の下に作成しています。

# cat /etc/network/if-up.d/static-routes 
#!/bin/sh
/sbin/route add -net 172.16.1.0 netmask 255.255.255.0 gw 10.1.1.254 ens160

スクリプトの実行権限付与

これをやっておかないと、シェルスクリプトが起動時に実行されないのでやっておきましょう。

# chmod +x /etc/network/if-up.d/static-routes

動作確認

再起動してスタティックルートが消えずに有効かを確認しておくとよいかと思います。

# reboot
スポンサーリンク

シェアする

フォローする

スポンサーリンク