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

NAT общедоступный IP-адрес на локальный IP-адрес | IPv6

Я пытаюсь создать небольшой шлюз для домашнего проекта. У меня есть машина NODE, GATEWAY и EXTERNAL, работающая в общедоступной сети IPv6. Хотя NODE не подключен через Ethernet, моя цель - подключить его к сети IPv6 с помощью шлюза. Он связывается со шлюзом через радио (тоже IP, но с использованием 64-битных адресов), у которого есть собственный интерфейс.

Используя IP-маршруты, я смог пропинговать ВНЕШНИЙ с моего УЗЛА, используя ШЛЮЗ. Теперь у меня такой вопрос: могу ли я предоставить миру свой узел с помощью NAT? У меня есть общедоступный IP-адрес для NODE, поэтому я добавил его в шлюз: (Все IP-адреса поддельные, конечно)

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 123.222.23.2  netmask 255.255.255.0  broadcast 123.222.255.255
    inet6 2003:6g8:140:200:6a39:5021:83c4:fgbb  prefixlen 128  scopeid 0x0<global>
    inet6 fe80::c229:5c97:8b23:a3e5  prefixlen 64  scopeid 0x20<link>
    inet6 2003:6g8:140:200:1acc:42fd:1946:e2c1  prefixlen 64  scopeid 0x0<global>

И тестирование, затем я могу пинговать оба IP-адреса из ВНЕШНЕГО, и в конечном итоге попасть в шлюз. Теперь я хотел бы перенаправить любой трафик, поступающий с ip, на мой радиоинтерфейс и изменить IP-адрес назначения.

Поскольку я новичок в iptables, я просто попробовал. Настройка DNAT

sudo ip6tables -t nat -A PREROUTING -i eth0 -d 2003:6g8:140:200:6a39:5021:83c4:fgbb -j DNAT --to-destination fe80::160c:25ee:1de6:a52c

Где последний IP-адрес - это локальный адрес УЗЛА. Если я правильно понимаю, тогда все пакеты с получателем этого конкретного IP-адреса вместо этого получат локальный IP-адрес.

Тогда разрешаю пересылку

sudo ip6tables -A FORWARD -i  eth1 -j ACCEPT
sudo ip6tables -A FORWARD -o  radio0 -j ACCEPT

Затем создаю статическую маршрутизацию

sudo ip -6 route add fe80::160c:25ee:1de6:a52c dev radio0

Но это, похоже, не работает. Когда я пытаюсь выполнить эхо-запрос 2003: 6g8: 140: 200: 6a39: 5021: 83c4: fgbb, они попадают только на шлюз, а не на другой интерфейс.

Что я делаю не так?

С уважением

Во-первых, помните, что на целевом устройстве должен быть маршрут, который будет возвращать ответы в блок NAT.

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