FreeBSD QandA 2341

FreeBSD QandA

Q. 複数の ISP と契約し、FreeBSD をルータとして接続した時にルーティングが
   うまく行きません。

      ISP0    ISP1
       |       |
       |       |
       |if0    |if1
    +-------------+
    | FreeBSD Box |
    +-------------+

   上記のような構成で、Default Gateway を ISP0 側に設定しました。この状態
   で外部ネットワークからアクセスすると
     ・if0 に振っている IP アドレスにアクセスすると問題なくつながります。
     ・if1 に振っている IP アドレスにアクセスすると繋がりません。

   Default Gateway を ISP1 側に設定して外部ネットワークからアクセスすると
     ・if0 に振っている IP アドレスにアクセスすると繋がりません。
     ・if1 に振っている IP アドレスにアクセスすると問題なくつながります。


   最初の構成に戻して tcpdump(1) で調べたところ外部ネットワークから if1 に
   振っている IP アドレスにアクセスすると、戻りのパケットが if0 から送出し
   ているのが確認できました。どうやら、if1 のアドレスは ISP0 でフィルター
   されているようです。

   if1 にアクセスされたときに if1 からパケットを送出するようにするにはどの
   ようにすれば良いのでしょうか 。

A. ipfw(8) の fwd をつかって下さい。Default Gateway が ISP0 に向いている場合、

     # /sbin/ipfw fwd {ISP1 Gateway address} from {if1 のアドレス} to not {if0のネットワークアドレス}

   とすれば if1 へのアクセスの戻りのパケットは ISP1 に向かって送出される
   ようになります。

   なお ipfw の使い方に関してはハンドブックや ipfw(8) などご参照下さい。

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。