двойная NAT трансляция

Juniper/Cisco/Allied Telesis/D-Link/Zyxel
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

двойная NAT трансляция

Непрочитанное сообщение m0ps » 2008-11-27 19:16:28

Этот нат меня доведет до истерики :st:
Ситуация такая:
в маршрутизатор приходит пакет с адресом источника 10.10.10.0/24 и адресом назначения 192.168.100.1
исходящий пакет должен быть с адресом источника 192.168.1.10 и адресом назначения 192.168.1.1

возможно ли такое разрулить вообще, и если да, то как??

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: двойная NAT трансляция

Непрочитанное сообщение paradox » 2008-11-27 19:19:11

это не двойной нат
а нат с форвардом

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: двойная NAT трансляция

Непрочитанное сообщение m0ps » 2008-11-27 20:05:46

paradox писал(а):это не двойной нат
а нат с форвардом
ок, пусть будет так. на циске то разрулить это можно?

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: двойная NAT трансляция

Непрочитанное сообщение paradox » 2008-11-27 20:15:56

еммммм
я в свое время циску конфигурил с помочью гугла и циско ком
и непомню такой ситуации что бы несмог разобраться

темпаче если у тебя циска под руками
должна как минимум манулка по ней рядом быть под рукой
и всегда сможешь что угодно настроить

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: двойная NAT трансляция

Непрочитанное сообщение m0ps » 2008-11-27 20:40:15

paradox писал(а): темпаче если у тебя циска под руками
должна как минимум манулка по ней рядом быть под рукой
и всегда сможешь что угодно настроить
и много в "квик юзер гвайд" ты интересного найдешь? как шнурки в порты подключить да как интерфейс сконфигурить и так понятно, с source и destination nat по отдельности тоже все предельно ясно, а вот по своей ситуации что-то ничего найти не могу, да и сам сообразить не могу. может стоит утра подождать, там мозги посвежее будут :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: двойная NAT трансляция

Непрочитанное сообщение paradox » 2008-11-27 20:42:16

и много в "квик юзер гвайд" ты интересного найдешь
ну я имел ввиду мануал по настройкам с примерами с цики ком

Dirty.Eager
мл. сержант
Сообщения: 72
Зарегистрирован: 2008-10-25 3:05:59

Re: двойная NAT трансляция

Непрочитанное сообщение Dirty.Eager » 2008-11-27 22:35:35

paradox писал(а):это не двойной нат
а нат с форвардом
Какой еще "нат с форвардом"? Нет такой фичи.
Это как раз двукратный нат.

Из постановки задачи непонятно, с какой стороны inside, а с какой outside. Если предположить, что 10.10.10.0/24 - это сеть со стороны inside-интерфейса, 192.168.1.10 - адрес outside-интерфейса, а 192.168.100.1 - это произвольный хост в outside-сети, то примерно так:

Код: Выделить всё

ip nat pool net10_hosts 192.168.1.10 192.168.1.10 prefix-length 24
ip nat inside source list 120 pool net10_hosts overload
ip nat outside source static 192.168.1.1 192.168.100.1 extendable
access-list 120 remark Net10 hosts to be NATed
access-list 120 permit ip 10.10.10.0 0.0.0.255 any
access-list 120 deny ip any any
Если же inside и outside расположены иначе, то надо делать немного по-другому :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: двойная NAT трансляция

Непрочитанное сообщение paradox » 2008-11-27 22:44:21

Какой еще "нат с форвардом"? Нет такой фичи.
Это как раз двукратный нат
ну нету у меня уже циски
нет! *рыдающий смайл*

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: двойная NAT трансляция

Непрочитанное сообщение m0ps » 2008-11-27 23:56:55

Dirty.Eager писал(а):с какой стороны inside, а с какой outside.
ну вообще, если разобраться, то внутренняя сеть - это 192.168.1.0/24 в которой нужно обращаться только к одному хосту - 192.168.1.1. внешняя сеть - 10.10.10.0/24. только вот пакеты ходят из внешней сети во внутреннюю. так что с точки зрения нат - inside - 10.10.10.0/24, outside - 192.168.1.0/24.
Dirty.Eager писал(а):Если предположить, что 10.10.10.0/24 - это сеть со стороны inside-интерфейса, 192.168.1.10 - адрес outside-интерфейса, а 192.168.100.1 - это произвольный хост в outside-сети
тут немного неверно. 10.10.10.0/24 - это сеть со стороны inside-интерфейса, 192.168.1.10 - адрес outside-интерфейса, а 192.168.100.1 - это не произвольный хост в outside-сети, а хост о котором "знают" устройства из сети 10.10.10.0/24 (они не могут напрямую обратиться к сети 192.168.1.0/24). в свою же очередь сервер в сети 192.168.1.0/24 (192.168.1.1) принимает пакеты только от устройств из своей подсети. поэтому решено было провернуть следующее:
для устройств из сети 10.10.10.0/24 указать адрес сервера - 192.168.100.1. при попадании пакета в маршрутизатор изменять адрес назначения с 192.168.100.1 на 192.168.1.1, но т.к. сервер с ip 192.168.1.1 принимает пакеты только из своей подсети - /24, изменять адрес источника на ip из его подсети (к примеру 192.168.1.10).
===============================
вечер, голова почти не варит. исправь если ошибаюсь.
Dirty.Eager писал(а):а 192.168.100.1 - это произвольный хост в outside-сети
я так понимаю здесь ты ошибся и вместо 192.168.1.1 написал 192.168.100.1

Dirty.Eager
мл. сержант
Сообщения: 72
Зарегистрирован: 2008-10-25 3:05:59

Re: двойная NAT трансляция

Непрочитанное сообщение Dirty.Eager » 2008-11-28 2:09:40

m0ps писал(а):
Dirty.Eager писал(а):с какой стороны inside, а с какой outside.
ну вообще, если разобраться,

Чтобы разобраться, недостаточно было данных.
m0ps писал(а):то внутренняя сеть - это 192.168.1.0/24 в которой нужно обращаться только к одному хосту - 192.168.1.1. внешняя сеть - 10.10.10.0/24. только вот пакеты ходят из внешней сети во внутреннюю.

Значит 192.168.1.0/24 - inside, а 10.10.10.0/24 - outside
outside - это там, где default gateway.
m0ps писал(а): так что с точки зрения нат - inside - 10.10.10.0/24, outside - 192.168.1.0/24.
Да у ната нет точки зрения, он в обе стороны может работать.
m0ps писал(а):
Dirty.Eager писал(а):Если предположить, что 10.10.10.0/24 - это сеть со стороны inside-интерфейса, 192.168.1.10 - адрес outside-интерфейса, а 192.168.100.1 - это произвольный хост в outside-сети
тут немного неверно. 10.10.10.0/24 - это сеть со стороны inside-интерфейса, 192.168.1.10 - адрес outside-интерфейса, а 192.168.100.1 - это не произвольный хост в outside-сети, а хост о котором "знают" устройства из сети 10.10.10.0/24 (они не могут напрямую обратиться к сети 192.168.1.0/24).
Что значит, "не могут"? Почему???

Или ты темнишь и вместо 10.10.10.0 и 192.168.100.1 - на самом деле реальные адреса, а 192.168.1.0 - действительно серые, немаршрутизируемые адреса?

Тогда что мешает хостам из сети 10.10.10.0/24 ломиться на адрес интерфейса маршрутизатора, смотрящего в эту сеть? (адрес циски, прописаннный на интерфейсе внешней сети). А эти пакеты пробрасывать на сервер, меняя в них и source и destination.

Дай плз полную постановку задачи, попробуем рабораться.
m0ps писал(а):
Dirty.Eager писал(а):а 192.168.100.1 - это произвольный хост в outside-сети
я так понимаю здесь ты ошибся и вместо 192.168.1.1 написал 192.168.100.1
Нет, здесь я имел в виду именно 192.168.100.1. Потом могу написать подробнее, какую задачу решает такой случай двойного ната.

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: двойная NAT трансляция

Непрочитанное сообщение m0ps » 2008-11-28 9:41:48

ну там вообще много чего накручено и все не так просто как я описал. все ip действительно серые (понятно что не такие как я написал, но логика сохранена).
почему не могут напрямую обратиться, я скажу. дело в том что пакеты, когда бегут к нам из сети 10.10.10.0/24 (через интернет) шифруются ipsec'ом одним концом которого есть asa (смотрящая в интернет), с другой - маршрутизатор провайдера (тоже смотрящий в интернет). от 10.10.10.0/24 до маршрутизатора провайдера - пакет бежит по внутренней его сети. дальше шифруется и пересылается через интернет до нашей асы. на асе он заворачивается маршрутом на внутренний маршрутизатор, на котором и нужно провернуть данную трансляцию, т.к. один его конец смотрит в сеть 192.168.1.0/24

ну вроде все рассказал, осталось только пароли на enable написать здесь и сеть в тюрму на 100 лет :)

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: двойная NAT трансляция

Непрочитанное сообщение m0ps » 2008-11-28 13:23:04

насколько я понимаю, то выглядеть это должно так:
в маршрутизатор попадает пакет (на интерфейс с ip nat inside) с адресом источника 10.10.10.1 и адресом назначения 192.168.100.1. дня начала изменяем адрес назначения на 192.168.1.1. теперь пакет может продвинуться к интерфейсу, который смотрит в сеть 192.168.1.0/24 (интерфейс на котором ip nat outside). а теперь нужно подменить адрес источника на 192.168.1.10 для того, что бы сервер 192.168.1.1 принял этот пакет, т.к. он принимает пакеты только из своей сети.

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: двойная NAT трансляция

Непрочитанное сообщение m0ps » 2008-11-28 15:41:15

ну что, есть варианты?
:oops:

Dirty.Eager
мл. сержант
Сообщения: 72
Зарегистрирован: 2008-10-25 3:05:59

Re: двойная NAT трансляция

Непрочитанное сообщение Dirty.Eager » 2008-11-28 15:44:14

m0ps писал(а):ну что, есть варианты?
:oops:
А в сети 192.168.1.0/24 есть что-нибудь полезное, кромек сервера 192.168.1.1? В частности, есть ли там клиенты, которым нужно выходить в интернет?

Dirty.Eager
мл. сержант
Сообщения: 72
Зарегистрирован: 2008-10-25 3:05:59

Re: двойная NAT трансляция

Непрочитанное сообщение Dirty.Eager » 2008-11-28 15:49:29

m0ps писал(а):насколько я понимаю, то выглядеть это должно так:
в маршрутизатор попадает пакет (на интерфейс с ip nat inside) с адресом источника 10.10.10.1 и адресом назначения 192.168.100.1. дня начала изменяем адрес назначения на 192.168.1.1. теперь пакет может продвинуться к интерфейсу, который смотрит в сеть 192.168.1.0/24 (интерфейс на котором ip nat outside). а теперь нужно подменить адрес источника на 192.168.1.10 для того, что бы сервер 192.168.1.1 принял этот пакет, т.к. он принимает пакеты только из своей сети.
Ну собственно именно эту задачу и решает приведенный конфиг.

Код: Выделить всё

ip nat pool net10_hosts 192.168.1.10 192.168.1.10 prefix-length 24
ip nat inside source list 120 pool net10_hosts overload
ip nat outside source static 192.168.1.1 192.168.100.1 extendable
access-list 120 remark Net10 hosts to be NATed
access-list 120 permit ip 10.10.10.0 0.0.0.255 any
access-list 120 deny ip any any
Если же окажется, что в сети 192.168.1.0/24 есть еще клиенты, которых надо натить (например, в реальные адреса), то дело будет выглядеть сложнее.

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: двойная NAT трансляция

Непрочитанное сообщение m0ps » 2008-11-28 19:48:13

Dirty.Eager, огромное спасибо!.
пока не пробовал, но вот что меня смущает, дык это употребление в обоих правилах трансляции "source". насколько я понимаю - source означает источник, а где же destination?
я так понимаю первое правило означает:
на внутреннем интерфейсе (на котором ip nat inside) адресам попадающим в акскесс-лист 120 заменять адрес источника на адрес из пула net10
второе:
на внешнем интерфейсе (на котором ip nat outside) статически поменять адрес источника с 192,168,1,1 на 192,168,100,1

что-то я совсем ничего не пойму... :st:

может в первом правиле нужно вместо sourсe надо написать destination?

Dirty.Eager
мл. сержант
Сообщения: 72
Зарегистрирован: 2008-10-25 3:05:59

Re: двойная NAT трансляция

Непрочитанное сообщение Dirty.Eager » 2008-11-28 21:46:45

m0ps писал(а):Dirty.Eager, огромное спасибо!.
пока не пробовал, но вот что меня смущает, дык это употребление в обоих правилах трансляции "source". насколько я понимаю - source означает источник, а где же destination?
я так понимаю первое правило означает:
на внутреннем интерфейсе (на котором ip nat inside) адресам попадающим в акскесс-лист 120 заменять адрес источника на адрес из пула net10
второе:
на внешнем интерфейсе (на котором ip nat outside) статически поменять адрес источника с 192,168,1,1 на 192,168,100,1
Именно так. Первое правило меняет source у пакетов, направленных на сервер, второе меняет source у ответных пакетов от сервера.
При прохождении первого пакета в сторону "туда" роутер создает translation (или, в терминологии pf, state), в котором учтены оба правила ната - которое "туда" и которое "обратно".
m0ps писал(а):может в первом правиле нужно вместо sourсe надо написать destination?
Можно, но результаты будут неожиданными :)
ip nat inside destination - это совершенно другая фича cisco. Поэтому, в ряде случаев (как, например, в этом) и приходится менять местами inside и outside, что, казалось бы, противоречит здравому смыслу. :)

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: двойная NAT трансляция

Непрочитанное сообщение m0ps » 2008-11-28 21:55:52

но тут ты упустил один момент:
при попадании пакета в маршрутизатор он имеет адрес назначения не 192.168.1.1 а 192.168.100.1, тоесть ему надо изменить адрес назначения - транслировать 192.168.100.1 -> 192.168.1.1.

это все при том, что физически на маршрутизаторе этого (192.168.100.1) адреса нет.

Dirty.Eager
мл. сержант
Сообщения: 72
Зарегистрирован: 2008-10-25 3:05:59

Re: двойная NAT трансляция

Непрочитанное сообщение Dirty.Eager » 2008-11-28 22:12:14

m0ps писал(а):но тут ты упустил один момент:
при попадании пакета в маршрутизатор он имеет адрес назначения не 192.168.1.1 а 192.168.100.1, тоесть ему надо изменить адрес назначения - транслировать 192.168.100.1 -> 192.168.1.1.

это все при том, что физически на маршрутизаторе этого (192.168.100.1) адреса нет.
Есть. Командой ip nat outside помимо самой трансляции создается еще alias для 192.168.100.1 на интерфейсе inside (чтобы принять входящий пакет).

Код: Выделить всё

router(config)#ip nat outside source static 1.2.3.4 5.6.7.8 ?
  add-route   Add a static route for outside local address
  extendable  Extend this translation when used
  mapping-id  Associate a mapping id to this mapping
  no-alias    Do not create an alias for the local address
  no-payload  No translation of embedded address/port in the payload
  redundancy  NAT redundancy operation
  vrf         Specify vrf
  <cr>
см. параметр no-alias.

Еще, как можно видеть, есть возможность создать и роут, ведущий в outside (параметр add-route) - это для случаев, когда на самом роутере на inside интерфейсе поднят другой адрес из той же подсети, что 192.168.100.1 (например, 192.168.100.5/24 - на роутере, и пакеты для него надо принимать, а пакеты для 192.168.100.1 пробрасывать в outside, иначе нат не сработает).

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: двойная NAT трансляция

Непрочитанное сообщение m0ps » 2008-11-28 22:36:05

понятно... спасибо за подсказки, надеюсь ты прав и все заработает.
в понедельник будем тестировать...

P.S.
сейчас эту двойную трансляцию выполняет линукс маршрутизатор, решили его выкинуть и закрутить все через центральную циску. поэтому и приходиться так изощряться.

====================

UPDATE
слушай, тут еще такой момент. инициаторами всегда есть только 10.10.10.0/24, в таком случае все тоже будет работать?

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: двойная NAT трансляция

Непрочитанное сообщение m0ps » 2008-12-01 14:23:25

попробовал - не работает :(

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: двойная NAT трансляция

Непрочитанное сообщение m0ps » 2008-12-02 16:03:00

в общем вот кусок из rc.firewall, надеюсь это поможет...

Код: Выделить всё

oif="eth1"
onet="192.168.1.0/24"
oip="192.168.1.10"

iif2="eth2"
inet2="192.168.100.0/24"
iip2="192.168.100.1"

gprsnet1="10.10.10.0/24"

    ${iptables} -t nat -A POSTROUTING -o ${oif} -s $ip -d ${onet} -j SNAT --to-source ${oip}

    ${iptables} -t nat -A PREROUTING -i ${iif2} -s ${gprsnet1} -d ${iip2} -p tcp --dport 33333 -j DNAT --to 192.168.1.1:33333 
так это работает сейчас,нужно это-же провернуть на циске с учетом того, что на oif внутрення сеть (ip nat inside), iif2 - внешняя (ip nat outside)

Northern10
проходил мимо
Сообщения: 1
Зарегистрирован: 2019-03-23 9:53:51

двойная NAT трансляция

Непрочитанное сообщение Northern10 » 2019-03-23 10:02:12

Прочитал статью "Двойной (source и destination) NAT на Cisco" (https://www.lissyara.su/articles/cisco/double_nat/). Не понял один момент. Там написано: у пакета, исходящего из хоста B вначале попадая на интерфейс Fa0/1 (ip nat outside) меняется адрес назначения с 192.168.102.133 на 172.16.1.133
Но ведь это преобразование в конфиге описано в пункте ip nat inside. Как оно может на стороне outside делаться?