正月休みに自宅のネットワーク環境を整備していたのですが、僕の家のネットワークには複数のセグメントがあります。
いままで仕事でVPNを張るときには、コマンドラインでsudo route add〜などといちいち打って経路を追加していたのですが、あっちこっちの拠点のネットワーク構成をIPアドレスごと覚えておくのは面倒なものです。
そんなわけで、VPNを張ったときにshell scriptを自動で実行する方法がないものかと呟いてみたところ、
@ytsuboi /etc/ppp/ip_up に書けば static route 設定できますよ。
— tky hrkwさん (@uchopon) 1月 2, 2013
とステキ情報を教えていただきました。
/etc/ppp/ip-upにシェルスクリプトを置いておくだけでOKの模様です。
ということで、ググりつつ実践してみました。
私の家は、ifconfig -aすると
ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280 inet 192.168.128.49 --> 192.168.127.1 netmask 0xffffff00
と、リモートのIPアドレスが192.168.127.1であることが分かります。ということは、これを参照して条件分岐してrouteを書いてやれば良いということになります。
#!/bin/sh # # $1 interface-name # $2 tty-device # $3 speed # $4 local-IP-address # $5 remote-IP-address # $6 ipparam if [ "${5:-}" = "192.168.127.1" ] then /sbin/route add 192.168.1.0/24 $5 /sbin/route add 192.168.10.0/24 $5 fi
こんなshell scriptを/etc/ppp/ip-upに書いてやって、ファイルのownerをroot、permissionsを0755にして置いてやるだけです。
if-upじゃなくて、ip-upであることに注意してください。私はこれで5分くらい無駄にしましたorz
0 Comments.