Windows 7
でping
コマンドを試しています。
ping
コマンドの助けによると。
-j Host-list Host-listに沿った緩いソースルート(IPv4のみ)。
私のコンピューターは自宅のLANにあります。デフォルトゲートウェイは192.168.199.1
です。次の2つのpingコマンドを試しました。
1つ目は、外部ホストへの直接pingです。
ping 114.80.143.158
できます。
次に、次のコマンドであるloose source routing
を確認しようとしました。
ping -j 192.168.199.1 114.80.143.158
しかし、それは私にRequest timed out.
を与えます
私のリクエストはすべてdefault gateway
を通過すると思うので、loose source routing ping
は機能するはずです。しかし、なぜそれがpingスルーしないのですか?
ping -j
が機能しないのはなぜですか?ping -j
、tracert -j
、またはpathping -g
を使用して指定されたルーズソースルーティングを使用して、パケットが宛先に進む前に通過するシステムを指定できます。
ただし、ソースルーティングは悪用される可能性が非常に高いため(後述)、ほとんどのネットワーク管理者は境界ルーターですべてのソースルーティングパケットをブロックします。
したがって、実際には、ルーズソースルートは機能しません。
tracert
およびpathping
を使用してネットワークの問題を診断する場合、リバースルート(ソースルーティングを使用して実行できます)を表示する機能が非常に役立つため、これは残念です。
リバースパス自体は、通常のTraceroute出力では完全に見えません。
ソースルーティングの危険性 に興味深い記事があり、ルースソースルーティングが有効になっている場合のリスクについて説明しています。
ソースルーティングは、パケットの送信者がパケットがネットワークを通過するルートを指定できる手法です。
パケットがネットワークを通過するときに、各ルーターは「宛先IPアドレス」を調べ、パケットの転送先となるネクストホップを選択することに注意してください。ソースルーティングでは、「ソース」(つまり送信者)がこれらの決定の一部またはすべてを行います
厳密なソースルーティングでは、送信者はパケットがたどる必要のある正確なルートを指定します。これは事実上使用されません。
より一般的な形式はルーズソースレコードルート(LSRR)で、送信者はパケットが通過する必要のある1つ以上のホップを提供します。
LSRRは、ハッキングの目的でさまざまな方法で使用できます。マシンがインターネット上にある場合もありますが、到達できません。 (10.0.0.1のようなプライベートアドレスを使用している可能性があります)。ただし、パケットを転送する両側に到達可能な他のマシンが存在する場合があります。その後、誰かがその中間マシンを介したソースルーティングによってインターネットからそのプライベートマシンに到達できます。
ソース ソースルーティング
Ciscoルーターは通常、ソースルートを受け入れて処理します。 ネットワークがそれに依存していない限り、ソースルーティングを無効にする必要があります。
ソースルーティングは、パケットの送信者がパケットがネットワークを通過するルートを指定できる手法です。パケットがネットワークを通過すると、各ルーターは宛先IPアドレスを調べ、パケットの転送先となるネクストホップを選択します。ソースルーティングでは、「ソース」(つまり送信者)がこれらの決定の一部またはすべてを行います。
攻撃者は、ソースルーティングを使用して、ネットワークの特定の部分にパケットを強制することにより、ネットワークをプローブできます。攻撃者は、ソースルーティングを使用して、ネットワークのトポロジに関する情報、または攻撃の実行に役立つ可能性のあるその他の情報を収集できます。攻撃中、攻撃者はソースルーティングを使用して、既存のセキュリティ制限をバイパスするようにパケットを誘導する可能性があります。
ソース IPソースルーティングがルータで有効になっている(CiscoIpsourceRoutingEnabled)
インターネットを介した接続は、実際には2つのルートに依存します。システムからサーバーへのルートと、そのサーバーからシステムに戻るルートです。これらのルートは完全に異なる場合があります(多くの場合、非対称です)。それらが異なる場合、接続の問題は、サーバーへのルート、またはサーバーから戻るルートのいずれかに問題がある可能性があります。 tracerouteの出力に反映される問題は、実際にはトレース内の明らかなシステムにあるとは限りません。トレースから、問題の原因であると思われるシステムからの逆ルート上の他のシステムにある可能性があります。
したがって、あなたからサーバーへのtracerouteは、全体像の半分しか表示していません。残りの半分は、戻りルートまたは逆ルートです。では、どのようにしてそのルートを見ることができますか?
古き良き時代には、tracerouteでソースルーティングを使用して、ホストからの逆トレースを確認できました。アイデアは、パケットが宛先に進む前に通過する必要があるシステムを指定する、いわゆるルーズソースルートを指定することです。
ルーズソースルーティングを使用してリバースルートを確認する機能は、非常に便利です。残念ながら、ソースルーティングは悪用される可能性が非常に高いため、ほとんどのネットワーク管理者は、境界ルーターですべてのソースルーティングパケットをブロックします。したがって、実際には、緩いソースルートは機能しません。
最近、逆tracerouteを実行する可能性がある唯一の希望は、トレース元のシステムのWebサイトにtraceroute機能があるかどうかです。多くのシステム、特にUsenetプロバイダーには、システムからシステムに戻るtracerouteを実行できるWebページがあります。彼らのシステムへのあなたの痕跡と組み合わせて、これはあなたに絵の残りの半分を与えることができます。 Usenetプロバイダーのtracerouteページのリストがあります ここ 。
ソース tracertを使用
最近では、さまざまなセキュリティ問題が発生するため、IPソースルートは事実上どこでも無視されています。セキュリティのためにIPルーティングに依存することはあまり良い考えではありませんが、ソースルーティングを使用すると、ファイアウォールをバイパスしたり、IPアドレスを スプーフィングしたりすることが不必要に簡単になります 、実際には良い用途はありませんが。
つまり、ソースルートを持つパケットはセキュリティポリシーによってドロップされます。そのため、通常と同じルートを指定しても返信はありません。
Linuxベースのルーターでは、sysctlを設定することでこれを有効にできます。
sysctl -wnet.ipv4.conf。<インターフェース>.accept_source_route = 1
FreeBSD(pfSense)には、sysctl net.inet.ip.sourceroute
とnet.inet.ip.accept_sourceroute
があります。