Назад | Перейти на главную страницу

Принимать и пересылать входящий диапазон IPv6 на другой интерфейс

У меня есть установка OpenVPN, работающая с IPv4. Готовясь к поддержке IPv6, я сделал следующее:

Проблема: связь IPv6 работает только в исходящем направлении. Входящий трафик не работает, потому что шлюз ISP просит например ICMP6, neighbor solicitation, who has ....:8000::1000 который приходит на ens3, но мой сервер не отвечает на это. Думаю, мне нужно сказать своему серверу и ens3, чтобы они принимали пакеты для диапазона ....: 8000 :: / 65 и пересылали их на tun0 ?! Но я не знаю, как это сделать.

Если это важно, я использую firewalld на машине Fedora.

РЕДАКТИРОВАТЬ

После того, как @kasperd указал мне на хорошее объяснение маршрутизируемых префиксов, я продолжил читать об этом.

Я не нашел документации о том, как запросить маршрутизируемый префикс у моего хостинг-провайдера. Так что я думаю, что мне нужно остаться с префиксом self-split / 65. Подскажите, пожалуйста, как улучшить, если это не чистое решение!

Чтобы ответить на упомянутые запросы соседей, необходимо включить проксирование NDP. sysctl -w net.ipv6.conf.all.proxy_ndp=1

Для фиксированного числа клиентов теперь можно было делать ip neigh add proxy ....:8000::1000 dev ens3. Чтобы автоматизировать этот процесс с помощью OpenVPN, можно добавить следующие две строки в конфигурацию сервера OpenVPN:

script-security 2
learn-address ./proxy-ndp

С участием proxy-ndp сценарий beeing

#!/bin/bash

extif=ens3

op="$1"
addr="$2"

if [[ "$addr" != *":"* ]]; then
    # no IPv6
    exit 0
fi

case "$op" in
    add|update)
        /usr/sbin/ip neigh replace proxy "$addr" dev "$extif"
        ;;
    delete)
        /usr/sbin/ip neigh del proxy "$addr" dev "$extif"
        ;;
esac

Кроме того, если переадресации IPv6 еще нет, ее следует включить с помощью sysctl -w net.ipv6.conf.all.forwarding=1. Последний шаг - разрешить пересылку между сетевыми интерфейсами. Поскольку я использую firewalld, команда firewall-cmd --direct --add-rule ipv6 filter FORWARD 0 -i tun0 -o ens3 -j ACCEPT.