Ip-in-ipトンネリングを使用してHostAからHostBにパケットを転送しようとしています。パケットが宛先に到達している間、受信ホストによってカプセル化が解除されていないため、その後ドロップされます。グーグルを全部使い果たしたような気がします。本質的に、受信ホストはカプセル化解除のためにパケットをトンネルデバイスに送信しないように見えます。
これを試すときに私が最も使用したチュートリアルは ここ ですが、複数の方法と異なるチュートリアルを試しましたが、同じ問題が継続的に発生しています。何が足りないのですか?
HostAの場合:
ip tunnel add tun0 mode ipip local $hostA remote $hostB
ip link set tun0 up
ip addr add 10.10.10.1/24 dev tun0
HostB上
ip tunnel add tun0 mode ipip local $hostB remote $hostA
ip link set tun0 up
ip addr add 10.10.10.2/24 dev tun0
さて、ping 10.10.10.2
しても、応答がありません。 HostBが表示されています(tcpdump -c 10 -nn src Host 10.10.10.1 or src Host $hostA
経由):
(ホストの実際のIPアドレスを削除するように編集)
18:18:56.026192 IP [HostA eth0 IP] > [HostB eth0 IP]: IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 41073, seq 69, length 64 (ipip-proto-4)
着信パケットは本来あるべきように見えますが、カプセル化が解除されることはありません。 tcpdump -nni tun0
には出力がなく、pingに対する応答もありません。
ファイアウォールルールがHostBによる要求の受信を許可していることを確認してください(もちろん、HostAでもその逆です)。
この場合、具体的には、「ipencap」プロトコルを受け入れることで問題が解決しました。