2つのホスト、A 10.0.1.3とB 10.0.1.4があるとします。そして、AはBにパケットを送信したいのですが、Aはパケットを送信するルーターを探しましたか?または、ARPを使用して、データリンクレベルでパケットを送信します。
私の問題は、ホストがARPを使用して同じサブネット内のパッケージを送信する場合、VPNでパケットを送信する方法です。そして、ホストにIPを割り当てることはもう意味をなさないようです。
2つのホスト、A 10.0.1.3とB 10.0.1.4があるとします。そして、AはBにパケットを送信したいのですが、Aはパケットを送信するルーターを探しましたか?または、ARPを使用して、データリンクレベルでパケットを送信します。
私の問題は、ホストがARPを使用して同じサブネット内のパッケージを送信する場合、VPNでパケットを送信する方法です。そして、ホストにIPを割り当てることはもう意味をなさないようです。
回答:
特定のルートが定義されていない場合、Aはルーティングテーブルを参照し、宛先がローカルネットワーク上にあることを推測し、それをarpします。
これを実行したくない場合は、パケットの送信先を示すルートを追加します。VPNが10.0.1.6にあるとしましょう:
route add -host 10.0.1.4 gw 10.0.1.6
または
route add 10.0.1.4 mask 255.255.255.255 10.0.1.6
これにより、ローカルネットワークで作成されたルートよりも具体的なルートが追加されるため、パケットは強制的に10.0.1.6に送信されます。
理想的には、異なるサブネット上に同じネットワークアドレスを持つデバイスが存在しないようにします。
ここに答える2つのポイントがあります。
1つは通常のネットワーク(VPNなしなど)です。
AはBに送信したい
ルーターは関係ありません。「データリンクレベルでARPを使用する」という意味はありません(それが意味するものは何でも)。AのIPスタックは、ルーティングテーブルから選択されたNICでパケットを単純にBにアドレス指定します。AがすでにBのMACをキャッシュしている場合、パケットを単に発射します。MACがない場合、パケットを組み立てる前に、まずARPディスカバリを行う必要があります。
現在、VPNは状況を少し変えます。
BがVPNホストである場合、同じサブネット上にあるように見えます。ただし、VPN上のホストに送信されるデータをインターセプトするためのいくつかの追加メカニズムが用意されています。通常、これはVPNの反対側へのトンネルとして機能する別のNICの形式です。それ以外の場合、両側のVPNソフトウェアにはルーターは含まれません。
同じサブネット上で、2つのホストの通信のためにパケットがルーターに送信されることはありません。
VPNを理解するために、2種類のリンクについて説明します。
ポイントツーポイント:リンクは2つのデバイス間であり、それ以上ではありません。Water Pipeと同じです。片側から水を投げると、反対側から出てきます。
マルチアクセス:デバイスのインターフェースには、デバイスが通信できる以上のものが表示されます。
イーサネットはマルチアクセスリンクであり、3台以上のデバイスをイーサネットスイッチ(最近使用された典型的なスイッチ)に接続できます。そのため、ソースデバイスは、データリンクレイヤーの宛先デバイスアドレス(イーサネットヘッダーの宛先MACアドレス)を指定する必要があります。したがって、イーサネットはARPを使用して宛先ノードのMACアドレスを取得します
VPNはPoint-to-Pointリンクであり、一方から送信されたパケットは他方から送信されます。宛先が持つ任意のアドレス(IP、MAC、...)、パケットを受信します。したがって、VPNはARPを必要とせず、宛先IPアドレスは重要ではありません(同じサブネットマスクである必要はありません)
WiresharkでVPN非暗号化パケットが表示される場合、2つのネットワーク層ヘッダーが表示されますが、1つのデータリンクヘッダーが表示されます!VPNはポイントツーポイントであるため、2番目のデータリンク層ヘッダーは効果がありません。