Общая информация для всех конфигураций
Имя нового туннельного интерфейса. Может быть любым, например 6in4ru
Имя физического интерфейса который уже есть в системе, например eth0, enp0s3, ens3,...
IPv4 адрес сервера туннельного брокера, т.е. нашего сервиса, вы его можете узнать в личном кабинете
Внешний IPv4 адрес с вашей стороны. Адрес обязательно должен быть белым.
IPv6 адрес туннельного интерфейса. Point-to-point (P2P)
IPv6 сеть для адресации устройств внутри вашей домашней сети. Prefix Delegation (PD)
При добавлении IPv6 маршрута, добавляется не default ::/0, а 2000::/3, что очень много.
Это делается для того, чтобы не перебить уже существующие маршруты в системе.
Про MTU
Максимальное MTU на туннель вычисляется как максимльное MTU принятое в Интернете это 1500 байт - 20 байт на IPv4 заголовок.
Получаем на туннельный интерфейс максимально допустимое значение MTU в размере 1480 байт.
В редких случаях возникает проблема с открытием некоторых сайтов по IPv6, хотя при этом они прекрасно открываются по IPv4.
Вероятно проблема может заключаться в значении TCP MSS, оно может выставляться больше чем MTU на интерфейсе.
Для установления корректной TCP-сессии с удалённым хостом должно соблюдаться следующее условие:
MSS + заголовок TCP + заголовок IPv6 ≤ MTU
Таким образом, максимальный размер
MSS = MTU − размер заголовка IPv6 − размер заголовка TCP.
Максимальное значение MSS при прохождении трафика через туннельный интерфейс составляет
1440(MSS) = 1480(MTU) - 40(IPv6 header size) - 20(TCP header size)
Пример конфигурации для Linux
В Linux используется SIT туннель подробнее можно прочитать на Habr
# Настройка point-to-point (SIT) интерфейса в Linux
ip tunnel add NAME1 mode sit remote SERVER IP local LOCAL IP
ip link set NAME1 up
ip addr add IPv6 CLIENT P2P/127 dev NAME1
# Добавление маршрута
ip -6 route add 2000::/3 dev NAME1
# Настройка Prefix Delegation
ip addr add IPv6 PD ADDRESS/64 dev NAME2
Постоянная конфигурация через NetworkManager
Убедитесь, что в /etc/network/interfaces есть строка source /etc/network/interfaces.d/*.
Нужно создать новый файл с именем 6in4ru в /etc/network/interfaces.d/
cat | > /etc/network/interfaces.d/6in4ru
и вставить конфигурацию приведенную ниже, заменив в ней выделенные значения на ваши и нажать Ctrl+D
auto NAME1
iface NAME1 inet6 v4tunnel
local LOCAL IP
endpoint SERVER IP
ttl 64
mtu 1480
address IPv6 CLIENT P2P
netmask 127
gateway IPv6 SERVER P2P
up ip -6 route add 2000::/3 dev NAME1 metric 1
post-up sysctl -w net.ipv4.conf.all.forwarding=1
up ip -6 addr add IPv6 PD ADDRESS/64 dev NAME2
затем перезапускаем сервис networking
systemctl status networking
Данная настройка не является полной, как минимум еще нужно объявить PD префикс внутри домашней сети, но достаточной для IPv6 связности на одном сервере.
Пример конфигурации для Mikrotik
Последние две команды
/interface 6to4 add comment="6in4 Tunnel Broker" disabled=no local-address=LOCAL IP mtu=1480 name=sit1 remote-address=SERVER IP
/ipv6 route add disabled=no distance=1 dst-address=2000::/3 gateway=IPv6 SERVER P2P scope=30 target-scope=10
/ipv6 address add address=IPv6 CLIENT P2P/127 advertise=no disabled=no eui-64=no interface=sit1
/ipv6 address add address=IPv6 PD ADDRESS/64 advertise=yes disabled=no eui-64=no interface=bridge
Рассказать друзьям! | Помощь | О проекте | Техническая поддержка | Конфигурации