現在自宅では光ネクスト ファミリー ハイスピードで2セッション張っていて、普段の通信を流すISPと、ある程度ストリーミングを流すISPを別々にしている。
上記の動作自体は、Yamahaルータのパケット転送フィルターでそんなに難しいこともなく実現できる。
例えば、通常はpp1に繋いだISPに流し、LAN内の特定のマシン(10.0.0.2)のトラフィックはpp2のISPに流すとかね。
ip route default gateway pp 1 ip lan1 forward filter 110 ip filter 1101 pass 10.0.0.2 * * * ip forward filter 110 101 gateway pp 2 filter 1101
で、最近ちょっとメインのISPの帯域制御がきつくて、ちょくちょくdefault route変えてるわけですよ。
そのたびに外側からの入り口変わるとめんどくせーなと思って。なら、よく使うサービスはそれ毎に出口固定しちゃおうかと。
これもパケット転送フィルターでportまで指定すれば簡単ですね。YamahaルータのLANアドレス(10.0.0.1)へのssh経路をpp1に固定しちゃおうと。
ip route default gateway pp 2 ip lan1 forward filter 110 ip filter 1101 pass 10.0.0.2 * * * ip filter 1102 pass 10.0.0.1 * 22 * ip forward filter 110 101 gateway pp 2 filter 1101 ip forward filter 110 102 gateway pp 1 filter 1102
これでsshはいつも同じ方向からログインできるぜー。と思ったものの、意図通りpp1から出ていってくれない。だいぶ悩む。
そしてある時ヤマハのパケット転送フィルターのヘルプページみて気づいた。
パラメータIDとして、パケット転送フィルターの識別子を指定します。 自分が送信するパケットに適用するときには、 INTERFACEにはlocalを指定します。
あれ…まさかLANインターフェースでもルータアドレスだとこっち指定なの?ということでやってみたら正解でしたというオチ。localなんてインターフェース設定があるとは気づきもしなかった。正しくはこんな感じ。
ip route default gateway pp 2 ip local forward filter 100 ip lan1 forward filter 110 ip filter 1000 pass 10.0.0.1 * 22 * ip filter 1101 pass 10.0.0.2 * * * ip forward filter 100 100 gateway pp 1 filter 1000 ip forward filter 110 101 gateway pp 2 filter 1101
ということでYamahaルータで疑似マルチホーム環境を作るのに勉強になったという1か月前くらいの話←