Как настроить туннель/vxlan с помощью «ip encap» для ipv6 в Linux?

Использование облегченных туннелей позволяет использовать одно и то же (туннельное) устройство для многих пунктов назначения (помимо прочего). Для vxlan/ipv4 это работает;

      ip link add vxlan4 type vxlan dstport 4789 dev eth1 ttl 4 external
ip link set dev vxlan4 up
ip route replace 220.0.0.0/24 dev vxlan4 encap ip id 100 dst 192.168.2.221

Но та же конфигурация не работает для IPv6;

      ip -6 link add vxlan6 type vxlan dstport 4789 dev eth1 ttl 4 external
ip link set dev vxlan6 up
ip -6 route replace 3000::/96 dev vxlan6 encap ip6 id 100 dst 1000::1:c0a8:2dd

Команды принимаются, но пакеты на адрес 3000::/96 не отправляются (проверено с помощью tcpdump).

Как настроить туннель/vxlan с помощью «ip encap» для IPv6 в Linux?

Мои версии:

      ip utility, iproute2-5.19.0
Kernel linux-6.0.0

У меня аналогичные проблемы с туннелями GRE.

1 ответ

Возможно, это была проблема с xy . Мне нужен был способ туннелировать как ipv4, так и ipv6 ко многим пунктам назначения, используя только один локальный туннельный интерфейс. Я думал, что лучше всего подойдет vxlan, поскольку он, кажется, используется чаще всего, но я нашел способ использовать ip6tnl:

      ip link add ip6tnl6 type ip6tnl external
ip link set up dev ip6tnl6
ip -6 route replace 3000::/96 dev ip6tnl6 encap ip6 dst 1000::1:192.168.2.221
ip route replace 220.0.0.0/24 dev ip6tnl6 encap ip6 dst 1000::1:192.168.2.221

При такой настройке как ipv4 на 220.0.0.0/24, так и ipv6 на 3000::/96 будут туннелироваться в один и тот же пункт назначения ipv6, 1000::1:192.168.2.221. И я могу добавить больше маршрутов в другие пункты назначения, используя тот же интерфейс туннеля.

Если кто-нибудь знает, почему те же команды не работают для vxlan, мне все равно интересно.

Другие вопросы по тегам