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

NATing IPv4 при маршрутизации IPv6

У меня следующая настройка:

client(s)  <---> (eth0) router (eth1) <---> wan

У меня есть статический IPv4-адрес и блок адресов / 48 IPv6. Мне нужно подключить всех клиентов к (wan). У каждого клиента будет свой публичный IPv6. Между тем, мне нужно преобразовать тех же клиентов в (wan) с помощью NAT.

Все, что связано с IPv4 и NAT, работает нормально. Связь IPv6 с / от (eth0) <-> (клиенты)> работает нормально, как и связь IPv6 от (eth1) <-> (wan).

Чтобы предоставить IPv6 всем моим клиентам, я придумал слишком много вариантов:

Итак, поскольку я выбрал второй вариант, я сомневаюсь: как я могу прозрачно передать весь трафик IPv6 с eth0 на eth1? Мне нужен мост уровня 3, но bridgeutils в linux создают мост уровня 2 (который также будет связывать ipv4, а у меня этого не может быть).

Это устройство DD-WRT, но в значительной степени это встроенный Linux, поэтому большинство предложений, которые будут работать в Linux, приветствуются.

Спасибо.

вы можете добиться этого с помощью прокси-ARP, если бы я пытался псевдо-мост ipv4, я бы сделал это:

echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
echo 1 > /proc/sys/net/ipv4/ip_forward

Вам необходимо настроить оба ваших сетевых адаптера с ТОЧНОЙ той же информацией (ip_address, netmask и gateway), не уверен, что DD-WRT позволит это, наверняка он не будет в веб-интерфейсе, но он может позволить вам сделать это из консоли, затем перепроверьте свой шлюз, убедитесь, что у вас есть только шлюз, указывающий на интерфейс, который идет к провайдеру, примерно так:

ip route del default dev eth0
ip route del default dev eth1

ip route del $LAN_NETWORK dev eth0
ip route del $LAN_NETWORK dev eth1
ip route add $DEFAULT_GATEWAY dev eth0
ip route add $LAN_NETWORK dev eth1

ip route add default via $DEFAULT_GATEWAY dev eth0

Это для псевдо-моста IPv4 с использованием Proxy-ARP, я думаю, вы можете сделать то же самое с IPv6.

С другой стороны, как я уже сказал по другому вопросу, вы все равно можете NAT IPv4, даже если он подключен на уровне 2.

Вам нужно будет настроить как публичный IPv4-адрес, так и IPv4-адрес локальной сети на интерфейсе BR0, а затем преобразовать их, как я уже говорил ранее.

iptables -t nat -A POSTROUTING -j SNAT -s $LAN_NETWORK --to-source $WAN_IP_ADDRESS

Это решит обе ваши проблемы без проблем с прокси-сервером. Проблема в том, что большая часть этого материала не будет работать из интерфейса DD-WRT.

В качестве лучшей и более чистой альтернативы вы можете добавить подинтерфейс на мосту на стороне LAN, что-то вроде

ifconfig br0:1 192.168.1.1 netmask 255.255.255.0

И используйте ту же линию NAT, которую я сказал выше

Вы пытаетесь преобразовать IPv6-соединения через NAT? Если да, то какова мотивация использования IPv6 NAT? У вас есть блок / 48, которого более чем достаточно.

Если ваш маршрутизатор поддерживает IPv6, то дело только в настройке правильных маршрутов IPv6. Маршрутизация IPv6 отделена от IPv4, поэтому не должно быть конфликтов с тем, что у вас уже есть на IPv4.