iproute2 はLinuxでネットワーク関係の設定を変更するためのコマンドスイートです。もはや非推奨となった ifconfig の代替として利用が推奨されており、ifconfig コマンドではでは行えない設定も可能です。iproute2 コマンドスイートの中には、ルーティングやアドレス設定を行う ip、トラフィック制御を行う tc、ネットワーク統計情報を取得する lnstat, ifstat コマンドなどが含まれます。iproute2 には非常に多くの機能が含まれているのですが、linux-net に併せて開発がとても早く、ドキュメントの整備が追いついていないのが難点です。
今回は ip コマンドを用いてルーティングテーブルおよび、アドレス設定の保存/復元を行う方法についてご紹介します。仮想ネットワークの構築を行うとき等に、ネットワーク設定を素早く手軽に復元できるこれらの機能が有用です。
設定の保存
設定のルーティングテーブル/アドレス設定の保存はそれぞれ ip route/ ip addr コマンドにより行います。
設定はバイナリ形式です。
ルーティングテーブルの保存:
% ip route save > iproute.conf.bin
アドレス設定の保存:
% ip addr save > ipaddr.conf.bin
設定の確認
設定はバイナリ形式なので、人手での確認は showdump オプションを使います。
% ip addr showdump < ipaddr.conf.bin if1: inet 127.0.0.1/8 scope host lo if2: inet 192.168.122.132/24 brd 192.168.122.255 scope global eth0 if2: inet 192.168.122.133/24 scope global secondary eth0 if1: inet6 ::1/128 scope host valid_lft forever preferred_lft forever if2: inet6 fe80::5054:ff:fe30:28ac/64 scope link valid_lft forever preferred_lft forever % ip route showdump < iproute.conf.bin default via 192.168.122.1 dev if2 proto static 192.168.122.0/24 dev if2 proto kernel scope link src 192.168.122.132
設定の復元
restoreコマンドで復元します。
% ip addr restore < ipaddr.conf.bin % ip route restore < iproute.conf.bin
余談
iproute2 はドキュメント整備が不足していると述べましたが、これはかなりのつらみを感じます。今回もコマンドの使い方を学ぶためにソースコードとコミットログを参照しました。
コミットログによると、今回紹介した ip addr save/restore や ip route save/restore はcheckpoint-restartでも用いられているようです。
Add ip route save/restore
iproute: Add ability to save, restore and show the interfaces' addresses (resend)
参考文献
iproute2 - official
kernel/git/shemminger/iproute2.git
git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git
0 件のコメント:
コメントを投稿