Зачастую пользователи оставляют дефолтный настройки на роутерах. И так случается что адресные пространства домашних/рабочих локалок лежат в 192.168.0.0/24, 192.168.1.0/24 и других подобных указанных в заводских настройках оборудования.
Но вот наступает момент, когда необходимо соеденить две сети между собой. И тут наступает неприятное просветление – адреса идентичны. Причем каждый админ не хочет менять адреса своей сети, ведь всюду настроены правила под конкретные адреса. Что делать когда иметь связь с другой сетью хочется, а менять свои адреса нет? Тогда нам на помощь приходит NAT.
Вводная:
172.16.0.1 – адрес на интерфейсе(соеденяющем два роутера между собой) Mikrotik1
172.16.0.2 – адрес на интерфейсе(соеденяющем два роутера между собой) Mikrotik2
192.168.0.0/24 –адресное пространство обеих локальных сетей
Первым делом укажем что за другим роутером находится «виртуальная»(ее там нет на самом деле) подсеть
На Mikrotik1
[bash title=»код»]/ip route add distance=1 dst-address=192.168.222.0/24 gateway=172.16.0.2[/bash]
На Mikrotik2
[bash title=»код»]/ip route add distance=1 dst-address=192.168.111.0/24 gateway=172.16.0.1[/bash]
Так трафик к этим «подставным» сетям будет уходить к соседнему роутеру.
Потом надо перенаправлять подставные сети на реальные
На Mikrotik1
[bash title=»код»]/ip firewall nat add action=netmap chain=dstnat dst-address=192.168.111.0/24 to-addresses=192.168.0.0/24[/bash]
На Mikrotik2
[bash title=»код»]/ip firewall nat add action=netmap chain=dstnat dst-address=192.168.222.0/24 to-addresses=192.168.0.0/24[/bash]
Что это делает? Эти правила трафик к 192.168.ххх.0/24 подсети направляют в локалку. action=netmap — -предназначен для трансляции сетей «1к1» . Тесть 192.168.111.28 будет странслирован в 192.168.0.28
Вот, теперь из локалки Mikrotik1 можно обращаться к сети 192.168.222.0/24 и трафик уйдет на соответствующие хосты локалки Mikrotik2 (соответственно из локалки Mikrotik2 обращение к 192.168.111.0/24 уйдет к локалке Mikrotik1)
Но это только половина задачи. Ведь адрес источника остался прежним 192.168.0.х , он будет считаться локальным и ответ не пойдет к роутеру, а уйдет в локалку. Для этого надо смаскарадить src-address в пакетах.
на Mikrotik1
[bash title=»код»]/ip firewall nat add action=netmap chain=srcnat src-address=192.168.0.0/24 out-interface=XXXX to-addresses=192.168.111.0/24[/bash]
На Mikrotik2
[bash title=»код»]/ip firewall nat add action=netmap chain=srcnat src-address=192.168.0.0/24 out-interface=XXXX to-addresses=192.168.222.0/24[/bash]
Где ХХХ это интерфейс роутера который связывает два роутера между собой.
Теперь в пакетах адрес источника будет так же подменяться и ответы будут уходить на шлюз локалки, а он уже перенаправлять на другой роутер
Вот теперь мы получили ситуацию когда локалка Mikrotik1 будет видеть локалку Mikrotik2 как 192.168.222.0/24, а локалка Mikrotik2 будет видеть локалку Mikrotik1 как 192.168.111.0/24 . То есть обращаться нужно будет именно по этим подставным адресам.
Данный мануал подготовил erazel