Я пытаюсь пересылать пакеты с HostA на HostB, используя туннелирование ip-in-ip. Пока пакеты достигают места назначения, они не декапсулируются принимающим узлом и, таким образом, впоследствии отбрасываются. Мне кажется, я исчерпал весь гугл. По сути, похоже, что принимающий хост никогда не отправляет пакеты туннельному устройству для декапсуляции.
Учебник, который я использовал чаще всего, пытаясь это сделать, Вот, но я пробовал несколько методов и разные руководства, и постоянно сталкиваюсь с одной и той же проблемой. Что мне не хватает?
На 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
не имеет выходных данных и никогда не отвечает на пинг.
Убедитесь, что правила вашего брандмауэра разрешают получение запроса на HostB (и, очевидно, обратное на HostA тоже).
В данном случае, в частности, принятие протокола ipencap решило проблему.