Страница 1 из 1

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

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

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

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

Добавлено: 2008-11-27 19:19:11
paradox
это не двойной нат
а нат с форвардом

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

Добавлено: 2008-11-27 20:05:46
m0ps
paradox писал(а):это не двойной нат
а нат с форвардом
ок, пусть будет так. на циске то разрулить это можно?

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

Добавлено: 2008-11-27 20:15:56
paradox
еммммм
я в свое время циску конфигурил с помочью гугла и циско ком
и непомню такой ситуации что бы несмог разобраться

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

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

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

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

Добавлено: 2008-11-27 20:42:16
paradox
и много в "квик юзер гвайд" ты интересного найдешь
ну я имел ввиду мануал по настройкам с примерами с цики ком

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

Добавлено: 2008-11-27 22:35:35
Dirty.Eager
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 расположены иначе, то надо делать немного по-другому :)

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

Добавлено: 2008-11-27 22:44:21
paradox
Какой еще "нат с форвардом"? Нет такой фичи.
Это как раз двукратный нат
ну нету у меня уже циски
нет! *рыдающий смайл*

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

Добавлено: 2008-11-27 23:56:55
m0ps
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

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

Добавлено: 2008-11-28 2:09:40
Dirty.Eager
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. Потом могу написать подробнее, какую задачу решает такой случай двойного ната.

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

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

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

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

Добавлено: 2008-11-28 13:23:04
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 принял этот пакет, т.к. он принимает пакеты только из своей сети.

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

Добавлено: 2008-11-28 15:41:15
m0ps
ну что, есть варианты?
:oops:

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

Добавлено: 2008-11-28 15:44:14
Dirty.Eager
m0ps писал(а):ну что, есть варианты?
:oops:
А в сети 192.168.1.0/24 есть что-нибудь полезное, кромек сервера 192.168.1.1? В частности, есть ли там клиенты, которым нужно выходить в интернет?

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

Добавлено: 2008-11-28 15:49:29
Dirty.Eager
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 есть еще клиенты, которых надо натить (например, в реальные адреса), то дело будет выглядеть сложнее.

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

Добавлено: 2008-11-28 19:48:13
m0ps
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?

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

Добавлено: 2008-11-28 21:46:45
Dirty.Eager
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, что, казалось бы, противоречит здравому смыслу. :)

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

Добавлено: 2008-11-28 21:55:52
m0ps
но тут ты упустил один момент:
при попадании пакета в маршрутизатор он имеет адрес назначения не 192.168.1.1 а 192.168.100.1, тоесть ему надо изменить адрес назначения - транслировать 192.168.100.1 -> 192.168.1.1.

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

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

Добавлено: 2008-11-28 22:12:14
Dirty.Eager
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, иначе нат не сработает).

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

Добавлено: 2008-11-28 22:36:05
m0ps
понятно... спасибо за подсказки, надеюсь ты прав и все заработает.
в понедельник будем тестировать...

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

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

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

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

Добавлено: 2008-12-01 14:23:25
m0ps
попробовал - не работает :(

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

Добавлено: 2008-12-02 16:03:00
m0ps
в общем вот кусок из 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)

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

Добавлено: 2019-03-23 10:02:12
Northern10
Прочитал статью "Двойной (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 делаться?