3

作成したゲートウェイをテストしようとしています(コンテキストについては、ゲートウェイをテストする最も簡単な方法は何ですか?を参照してください)。入りたくない問題があるため、ゲートウェイと「送信者」は同じマシン上にある必要があります。ゲートウェイが到達できるレシーバー(たとえば9.9.9.9)があります。

そこで./sendStuff 9.9.9.9、そのIPアドレスにいくつかのパケットを送信するアプリケーションを実行します。

問題は、9.9.9.9宛てのパケットをローカルホストのゲートウェイに送るにはどうすればよいですか?私はもう試した:

sudo route add -host 9.9.9.9 gw 127.0.0.1 lo

sudo route add -host 9.9.9.9 gw <machine's external IP address> eth0

しかし、どちらもゲートウェイを介してパケットを渡しません。に正しいIPが存在することを確認しましたsudo route。私に何ができる?


リクエストごとに、2番目のコマンドを実行した後のルートテーブルを次に示します(質問に一致するようにIPアドレスを変更しました。xyztはこれを実行しているマシンのIPです):

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
9.9.9.9         x.y.z.t         255.255.255.255 UGH   0      0        0 eth0
x.y.z.0         0.0.0.0         255.255.254.0   U     0      0        0 eth0
0.0.0.0         <gateway addr>  0.0.0.0         UG    100    0        0 eth0
4

1 に答える 1

6

127.0.0.1はおそらくパケットを取得し、ipv4パケット転送が有効になっている場合は、それらを陽気な方法で転送します。有効になっていない場合は、それらを削除します。

9.9.9.9から127.0.0.1宛てのパケットを転送しようとしている場合は、iptablesを調べてください。

編集:これを試してください:

iptables -t nat -A OUTPUT -d 9.9.9.9 -j DNAT --to-destination 127.0.0.1

代わりに、すべてのトラフィックを9.9.9.9からローカルホストにリダイレクトする必要があります。

于 2011-02-09T04:10:50.560 に答える