DD-WRT v24-sp2 がインストールされたルーターを持っていますが、パブリック IP アドレスと同じサブネット内に設定されている別の IP アドレスにアクセスする際に問題が発生しています。私の ISP は DHCP を使用して WAN 接続を確立する必要があるため、IP とゲートウェイの両方が自動的に割り当てられます。WAN インターフェイスに割り当てられた IP アドレスもパブリック IP アドレスです。
この例を説明すると次のようになります。
DD-WRT router -> [lan] ip: 192.168.1.1/24
[wan] ip: 12.34.56.78/24 (public IP)
ここで、隣人が同じ ISP を同じ設定で使用し、同じパブリック12.34.56.0/24
ネットワーク (WAN IP アドレスなど12.34.56.10
) に接続し、そのパブリック IP でいくつかのサービスを公開していると仮定します。私が抱えている問題は、DD-WRT ルーターからもこのルーターに接続されているどのデバイスからも、そのサービスにアクセスできず、隣人のパブリック IP に ping も実行できないことです。
別のインターネット接続を使用すると、このサービスに問題なくアクセスできるので、この問題が DD-WRT ルーターの背後でのみ発生していることは 100% 確実です。
私のルーティングテーブルは次のようになります。
root@DD-WRT:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 12.34.56.1 0.0.0.0 UG 0 0 0 vlan2
12.34.56.0 0.0.0.0 255.255.255.0 U 0 0 0 vlan2
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
192.168.66.0 192.168.66.2 255.255.255.0 UG 0 0 0 tun0
192.168.66.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
これにどう対処したらよいか、何かアイデアはありますか?
答え1
私も専門家ではありません。ISP で同様の設定 (/24
サブネットとしての WAN) をしており、同様のルーティング テーブルを使用しているため、この記事を書いています。違いは、それが機能することです。一部の「隣人」との間で送受信されるパケットをスニッフィングすることもできます (ただし、全員ではありません。ハブを共有している相手だと思います)。
traceroute
私の「隣人」へのホップは、予想どおり 1 つだけ表示されます。
あなたの場合、あなたと隣人の間にワンホップ接続がないか、何らかの理由で透過的なデバイスがあなたを隔てているようです。いずれにせよ、ISP の設定は、あなたが取得したこれらの DHCP 設定に従って私が期待するものとはまったく異なります。ISP 側に何らかの異常があります。ISP が行うべき正しい対応は次のようになります。
- ハブやスイッチなどの透過的なデバイスを介して、あなたと隣人が 1 ホップで通信できるようにすることで、これが通常のサブネットになります。
- ゲートウェイを介して、あなたと隣人が 2 ホップで通信できるようになります。
自分で試せること
上記の2番目の項目は、ゲートウェイ経由で隣人と通信することが全く許可されていないことを意味するものではありません。今許可される場合と許可されない場合があります。ゲートウェイはどちらの方法でも構成できます。ポイントは、現在のルーティング テーブルでは、そうしようとしていないということです。
ルーティングテーブルの2行目(12.34.56.0 …
)は、ルータに、パケットをネイバーに送信する必要があるときはいつでも、ネイバーのIPアドレスで送信するように指示します。そしてハードウェア (MAC) アドレスを宛先として使用します。ハードウェア アドレスは最初は不明なので、ルータはそれをブロードキャストします。これはネイバーに届かず、行き詰まってしまいます。
ルーティング テーブルから 2 番目の行を一時的に削除してみます。
route del -net 12.34.56.0 netmask 255.255.255.0 dev vlan2
そして、デフォルトの動作をさせます。あなたから隣人へのすべてのパケットは、隣人の IP 宛てですが、ゲートウェイのハードウェア アドレス宛てになります (外部と通信する場合と同様)。これで、このパケットを配送するのはゲートウェイの仕事になります。この処理は実行される場合と実行されない場合があります。
traceroute
私の場合、適切なルーティングルールを削除しても、「隣人」にアクセスできます。二ホップの場合、中間ノードは私のISPのゲートウェイです。問題は応答です。応答は私の「隣人」のアドレスのため、私のハードウェアアドレスに直接送信されます。改変されていないルーティングテーブル。これは私の場合はうまくいきますが、あなたにはうまくいかないでしょう。しなければならない同じトリックを彼らのルーティングテーブルを作成し、5月仕事。
私はたまたま「隣人」の 1 つに管理者アクセス権を持っています。私は自分のルーティング テーブルだけでなく、そのルーティング テーブルも変更しました。次に、wireshark
ゲートウェイ (ハードウェア アドレスを使用) を経由して両方向にパケットがホップすることを確認しました。
あなたと隣人の両方でこの変更が機能する場合は、何らかの方法でこの変更を永続的に行ってください。もちろんこれは回避策であり、ISP が設定を変更したほうがよいでしょう。