Как настроить туннельный сервер 6in4 / 6to4 на шлюзе Linux?

Как настроить туннельный сервер 6in4 / 6to4 на шлюзе Linux?

У меня есть собственное соединение IPv6 (префикс /64), и я пытаюсь настроить соединение IPv6 за маршрутизатором OpenWrt. Но я обнаружил, что не могу использовать ebtables для пропуска всего трафика IPv6 (ограничение прошивки) или использовать ndppd для проксирования всех запросов ICMPv6 (запрос соседа / объявление, маршрутизатор верхнего уровня, который я не контролирую, не принимает их по неизвестной причине).

Похоже, что единственный вариант, который у меня сейчас есть, — туннелировать весь трафик IPv6. Ниже представлена ​​топология сети:

   Интернет -- Маршрутизатор -- ПК
            префикс wan::/64
            wan 219.242.xx
            локальная сеть 10.224.0.1 10.224.36.223

Я пытаюсь создать туннель между двумя адресами 10.224.xx для туннелирования всего трафика IPv6 с целью получения соединения IPv6.

Я искал несколько руководств, но не могу понять, какой адрес использовать в качестве параметров при настройке туннеля.

ПК работает под управлением Windows. Было бы лучше, если бы был предоставлен пример конфигурации.

(Шлюз работает под управлением OpenWrt, но я предполагаю, что он работает почти как шлюз Linux?)

решение1

Туннель не является решением проблемы, с которой вы столкнулись.

У вас есть прямое физическое соединение между двумя машинами, которые вы бы соединили туннелем, поэтому туннель изначально не нужен. Любая адресация, которую вы хотели бы выполнить в туннеле, может быть выполнена непосредственно в соединении Ethernet между двумя конечными точками. И выполнение этого в Ethernet, а не в туннеле, устраняет дополнительную сложность в конфигурации, а также накладные расходы на инкапсуляцию.

У вас есть еще одна проблема, которая заключается в том, что у вас нет адреса, который можно было бы назначить этому соединению. Но использование IPv6 через Ethernet или IPv6 через туннель не меняет этого. Им обоим нужно одинаковое количество адресов (за исключением того, что использование Ethernet позволило бы использовать этот префикс всей локальной сетью).

Если вы хотите сделать это правильно, вам нужен префикс для LAN, который должен быть направлен на ваш маршрутизатор. Из вашего описания следует, что в настоящее время у вас есть только префикс связи для WAN. Этого недостаточно, так как вам нужен еще один префикс связи для LAN, который должен быть взят из префикса, направленного на ваш маршрутизатор.

Я знаю один стандартизированный протокол для настройки этого маршрутизируемого префикса, а именно DHCPv6. Маршрутизатор должен отправлять запрос DHCPv6 на свой интерфейс WAN и запрашивать маршрутизируемый префикс. Маршрутизируемый /64 достаточен для того, что вы хотите сделать сейчас, но вы можете сразу же перейти на /48, /56 ​​или /60, поскольку вы, вероятно, скоро найдете применение более чем одному /64 в вашей локальной сети. Альтернативой DHCPv6 с делегированием префикса является настройка вашим интернет-провайдером статического маршрута для префикса, маршрутизируемого на ваш маршрутизатор.

Если вы обнаружите, что у вашего интернет-провайдера нет DHCPv6-сервера или он даже не делегирует /60 или /64, вам следует связаться с ним и спросить, как направить префикс на ваш маршрутизатор.

Если они отказываются направлять префикс на ваш адрес после того, как вы его запросили, то пришло время искать обходные пути. Два известных мне обходных пути — это мост и проксирование с обнаружением соседей. С точки зрения интернет-провайдеров, они оба будут вести себя одинаково, и они приведут к увеличению потребления памяти на их маршрутизаторе. Они могли бы избежать этого дополнительного использования памяти, направив префикс на вас.

Вы говорите, что ни один из этих обходных путей не поддерживается прошивкой вашего маршрутизатора. Я думаю, это означает, что вам нужно будет обновить прошивку до поддерживающей ее.

Вы также спрашиваете о 6to4, который не имеет отношения к делу. Я бы оценил 6to4 как в основном не относящийся к вашей настройке. Хотя, если вы можете сделать это в прошивке маршрутизатора, я бы включил ретранслятор 6to4 на маршрутизаторе, потому что это даст вам более надежную связь при общении с кем-то, кто использует 6to4. Я бы включил ретранслятор Teredo по той же причине, это очень удобно, если вам когда-нибудь понадобится подключиться дома с ноутбука в какой-нибудь сети только с IPv4.

решение2

Можно ли просто настроить OpenWRT как мост, чтобы он просто пропускал трафик IPv6, но добавить публичные и частные IP-адреса в интерфейс моста маршрутизаторов, чтобы у вас все еще была частная сеть IPv4 с NAT, OpenWRT мог бы действовать как однорукий маршрутизатор. В противном случае следующим шагом может стать работа вашего прокси-сервера NDP. Вы уверены, что ядро ​​Linux не потребляет трафик NDP? Проверьте /proc/sys/net/ipv6/conf/*/accept_ra, чтобы увидеть, как переключение обработки объявлений маршрутизатора ядром меняет поведение. Я не уверен, зачем вам смотреть на ebtables, если только вы не хотите фильтровать трафик layer2 на мосту. По умолчанию весь трафик разрешен на layer2, а большая часть фильтрации происходит с помощью iptables на layer3. Если вы хотите фильтровать трафик, вы можете выбрать только трафик IPv6 на основе его типа, описанного в /etc/ethertypes; если вы хотите фильтровать IPv4, обязательно разрешите также ARP, это другой протокол Ethernet.

Связанный контент