[wiki]Multiple Homing by ipfw

Multiple Homing by ipfw

ipfwにてIPv4マルチホーミング(複数経路)を環境にしてみます。
IPv6でforwardingしようとすると色々問題があるようなのでpfを使ってはぁはぁするのをおすすめします。

概要

昨今FreeBSDやLinuxベースのJUNOSなどのルーター搭載機等が登場しフリーでもvyattaなどがあります。
そこで、FreeBSD標準機能で複数経路を扱うことの参考用のメモです。
用意するものは経路の違うIPアドレス数個だけです。
#同じセグメントにあるものでデフォルトゲートウェイが同じな場合、この設定方法ではマルチホーミングできないものと思われますがipfwでルーティングをFWD設定しなくても問題なく動きました。
#また、aliasでも同様です。ただNICが異なる場合は同じMACアドレスがあるとカーネルが警告してくるのでsysctl.confあたりで抑制すると幸せかもしれません。

構成としては以下のような想定です。

nicIP addressGateway
nic0198.51.100.10198.51.100.1
nic110.0.0.210.0.0.1
nic2200.0.113.30200.0.113.1

カーネルリメイク

ipfw fwdを使うにはカーネルリメイクが必要です。多少のリスクを伴うのでよくわからない人はおすすめしません。

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET

以上をカーネルコンフファイルに追記し再構築すればOKです。
カーネルの再構築について詳しくはカーネルの再構築を参照してください。

設定

ipfwに以下のような設定値を流し込むだけです。

ipfw add 1100 fwd 198.51.100.1 ip from 198.51.100.10 to any out xmit nic1
ipfw add 1120 fwd 198.51.100.1 ip from 198.51.100.10 to any out xmit nic2
ipfw add 1210 fwd 10.0.0.1 ip from 10.0.0.2 to any out xmit nic0
ipfw add 1220 fwd 10.0.0.1 ip from 10.0.0.2 to any out xmit nic2
ipfw add 1300 fwd 200.0.113.1 ip from 200.0.113.30 to any out xmit nic0
ipfw add 1310 fwd 200.0.113.1 ip from 200.0.113.30 to any out xmit nic1

/etc/ipfw.rulesでも作って/etc/rc.confあたりで読み込ませるようにしてあげると次回起動時も自動で設定してくれるはずです。

各コマンドの詳細についてはipfwのマニュアルを参考にしてください。
基本的に出ていくパケットをipfwで対象のnicのみから出ていくようにして実現しています。

運用メモ

マルチホーミングするとルーティング管理が面倒になってきます。
routedだけではという方はbgpなどで管理するとさらに幸せになれるかもしれません。

tech/freebsd/multiple_homing_by_ipfw.txt · 最終更新: 2011/11/27 02:07 (外部編集)
Copyright (c) 2011-, Secret Society Across, and etc. All Rights Reserved.
Driven by DokuWiki FreeBSD Recent changes RSS feed Valid CSS Valid XHTML 1.0