The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
хитрый NAT, !*! mik73, 26-Сен-23, 19:08  [смотреть все]
Есть маршрутизатор CISCO (IOS 12.4 если это зачем-то важно).
Есть вот такая схема сети (связаны два корпоративных сегмента):

сеть2 10.0.2.0/24 - router2 - router1 - cеть1 192.168.1.0/24

При этом между сетями должен ходить трафик, но сеть2 принимает пакеты только от адресов 10.0.0.0/8, допустим. Сделать с этим ничего нельзя (router2 недоступен по управлению).

Соответственно на router1 устраиваем статический NAT и всё прекрасно работает:

Int e1
rem сеть1
Ip addr 192.168.1.1/24
Ip nat inside

Int e2
rem к сети2
172.16.0.1/30
Ip nat outside

ip route 10.0.2.0 255.255.255.0 e1
ip nat inside source static network 192.168.1.0 10.0.1.0 /24

Причем трансляция получается  "один в один", сохраняются все номера портов и если пакет ушёл из сети1 от адреса, допустим от 192.168.1.10, то в сети2 он виден как пришедший от 10.0.1.10, то же самое для любого адреса - т.е. все отправители пакетов, пришедших в сеть2, там однозначно идентифицируется (что нужно).

а теперь задача усложняется. кроме подключения к сети2 на router1 появляется подключение допустим, к Интернету (сети3).

                                сеть3 (интернет)
                                 ^
                                 |
сеть2 10.0.2.0/24 - router2 - router1 - cеть1 192.168.1.0/24

а в сети1 есть один хост (допустим, 192.168.1.100), который должен как ходить как в сеть 2 по прежней схеме, так и в сеть3 (Интернет). А остальные хосты должны по прежнему ходить в сеть2, но не должны в сеть3.

казалось бы должно сработать что-то вроде:

Int e1
rem сеть1
Ip addr 192.168.1.1/24
Ip nat inside

Int e2
rem в сеть2
172.16.0.1/32
Ip nat outside

Int e3
в сеть 3
1.1.1.1/29
ip nat outside

ip route 10.0.2.0 255.255.255.0 e1
ip route 0.0.0.0 0.0.0.0 1.1.1.2

ip nat inside source static network 192.168.1.0 10.0.1.0 /24
ip nat inside source list 150 int e2 overload

access-list 150 rem описывает весь трафик с 192.168.1.100, кроме отправленного в сеть 10.0.2.0 - и этот трафик должен бы попадать в соответствующую запись nat
access-list 150 deny ip host 192.168.1.100 10.0.2.0 0.0.0.255
access-list 150 permit ip ip host 192.168.1.100 any

Но ничего не получается. Трафик от 192.168.1.100, согласно таблицам трансляции и статистике nat, сначала транслируется в трафик от 10.0.1.100, а потом, если отправлен в произвольную сеть, а не на 10.0.2.0, то вообще никуда не попадает.

Понятно, что что-то делаю не так. Но как получить желаемое иначе - придумать не могу.
                                
                                

  • хитрый NAT, !*! elk_killa, 11:08 , 27-Сен-23 (1)
    добавьте в правило nat(ip nat inside source route-map NAT_*) rm вида:

    route-map NAT_2R2 permit 10
    match ip address NAT_10.0.1.0
    match interface e2

    route-map NAT_2Global permit 10
    match ip address NAT_150
    match interface e3

    • хитрый NAT, !*! mik73, 16:57 , 27-Сен-23 (2)
      Cпасибо за наводку. Получилось. По ходу поэкспериментировал, выяснил следующие неочевидные вещи:

      1. Если есть трансляция вида ip nat inside source static - то ничего не получается. Адрес источника всегда и сразу транслируется из 192.168.1.100 в 10.0.1.100 - независимо от адреса назначения.

      2. Если использовать динамическую трансляцию типа source list, создав ACL типа:
      ip access list ext NAT_10
         permit ip 192.168.1.0 0.0.0.255 10.0.1.0 0.0.0.255
      ip access list ext NAT_150
         deny   ip any 10.0.1.0 0.0.0.255
         permit ip host 192.168.1.100 any
      то опять не работает, всё то же самое, что с source static

      3. Если поменять местами записи в ACL NAT_150 (cначала permit источник, потом deny получатель) -
      то  с 192.168.1.100 всё начинает всегда уходить на интерфейс во внешнюю сеть, даже то, что предназначено в сеть 10.0.2.0.

      4. Если сделать хотя бы одну запись для трансляции  через route-map (вторую можно оставить через list) - то всё работает.

      Есть в этом что-то удивительное.


        




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру