В этом руководстве я опишу как настроить полный NAT из одной сети в другую, на примере двух офисных сетей. Для настройки данного решения вам понадобится iptables с поддержкой NETMAP и пакет iproute2 для настройки маршрутизации. Я настраивал эту схему на базе Linux ubuntu 8.04 server, iptables v 1.4.7 и iproute2 v ss071016. Кратко опишу, что же такое патч NETMAP для iptables, он позволяет нам делать двухстороннюю трансляцию сетей в другие сети один в один, например транслировать сеть 1.1.1.1/24 в сеть 2.2.2.2/24, и обратно, транслируя айпи адрес 1.1.1.89/32 в айпи 2.2.2.89/32 и тд.
Начнем с разбора схемы сетей на базе которых я настраивал NETMAP NAT, она показана на рисунке ниже, обозначения на котором я буду использовать как примеры.
Разберем схему с рисунка:
Есть роутер с Linux, фаерволом и несколькими интерфейсами, он обслуживает офис номер один
Так же есть роутер который обслуживает другую офисную сеть, на чем он сделан значение не имеет
Так же есть роутер который обслуживает другую офисную сеть, на чем он сделан значение не имеет
За обоими роутерами у нас есть сеть 10.10.0.0/24
Нам необходимо сделать так, чтобы из офиса номер один, который обслуживает Linux роутер были доступны обе сети 10.10.0.0/24, но так как они имеют пересечения адресов без NETMAP это невозможно, поэтому сеть 10.10.0.0/24 расположенную в офисе номер два мы будем транслировать в сеть 192.168.100.0/24.
Интерфейс на Linux роутере для соединений сетей двух офисов имеет имя eth3 и айпи адрес 192.168.2.2, айпи второго офиса на другом конце 192.168.2.1.
Начнем настройку с маршрутизации.
Создадим отдельную таблицу для корректной маршрутизации пакетов с источником 10.10.0.0/24 пришедших к нам с интерфейса eth3, и назовем ее ROFFICE, сделать это можно внеся изменения в файл /etc/iproute2/rt_tables, ниже приведен пример файла с внесенными изменениями
Код:
#
# reserved values
#
256 ROFFICE
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
Затем нам надо создать правила для маршрутизации по этой таблице, в iptables мы будем маркировать пакеты для дальнейшего их направления в созданную нами таблицу ROFFICE
Код:
ip ru add from 192.168.21.2 lookup ROFFICE prio 1
ip ru add fwmark 0x2 lookup ROFFICE prio 2
Добавим шлюз по умолчанию и маршруты на нужные сети в таблицу ROFFICE
Код:
ip ro add default via 192.168.21.1 dev eth3 table ROFFICE
ip ro add 192.168.100.0/24 via 192.168.21.1 dev eth3 table ROFFICE
ip ro add 10.10.0.0/24 via 192.168.21.1 dev eth3 table ROFFICE
Теперь перейдем к настройке iptables, необходимо настроить маркировку пакетов, и затем трансляцию сетей при помощи NETMAP
Код:
#Маркируем пакеты направленные от нас на адреса сети для трансляции (192.168.100.0/24) и пакеты пришедшие с интерфейса eth3 меткой 2
iptables -t mangle -A PREROUTING -d 192.168.100.0/24 -j MARK --set-mark 2
iptables -t mangle -A POSTROUTING -o eth3 -j MARK --set-mark 2
# Затем правила трансляции, обратите внимание, адрес назначения подменятся в PREROUTING, а адрес источника подменяется в POSTROUTING
iptables -t nat -A PREROUTING -d 192.168.100.0/24 -j NETMAP --to 10.129.7.0/24
iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -j NETMAP --to 192.168.19.0/24
Теперь можно проверить работу нашей трансляции, например вам надо попасть на веб сервер второго офиса, он имеет айпи адрес 10.10.0.50,находясь в офисе номер один нам надо будет набрать в адресной строке адрес 192.168.100.50
На этом все, задавайте вопросы в комментариях если что либо не ясно.
Надеюсь вам пригодится данный материал.
Надеюсь вам пригодится данный материал.