На АСА в этом смысле все просто: идем через другой интерфейс — используем другие правила трансляции. Как осилю списки доступа (там довольно просто и мало), так приступлю к НАТу — там есть о чем написать :)
Т.к. этот топик про АСА, предположу, что вопрос именно про неё.
И поэтому повторюсь: АСА не умеет PBR (т.е. route-map на интерфейс не вешается)
Мало того: одновременно работать на АСА может только один провайдер, а значит и вопрос с маршрутизацией и НАТом решается автоматически.
Если же вопрос про рутер, то там посложнее, но в общем случае отправить туда, откуда пришел можно.
В зависимости от модели (линейка широкая, от 5505 самой простой до 5580 — провайдерского решения) количество сильно разнится. На сайте циско есть некоторые параметры. Наизусть не помню, увы. ВОт тут написано подробно
Ок, коллеги, времени прошло достаточно: кто знает — отпишите полный конфиг, дабы им можно было воспользоваться даже копи-пастом. Пусть останется в анналах.
Менять нельзя. Иначе что же это за задача была бы — смех из лаб-гайда :)
Нет, так не интересно.
К тому же ВЛАНы выбраны потому, что их проще всего в лабе смоделировать. А в реальности могу заменить подынтерфейсы на интерфейсы любого типа. На решение задачи это не повлияет :)
Во-вторых… Я придумывал её неделю. Странно, что прямо на сайте лежит прямо таки решение. Не верю. Приведите примерные команды и ссылку на циско.ком… А то обидно, право слово, что не знаток кисок меня на обе лопатки одной левой :) Я то (пока) себя знатоком считаю :)
Да это так — мысли вслух. Уже получалось так: кто то минуснул — тема уползла в «отхабренные» — никто её не видит :( ПО дефолту только «хорошие» стоят в просмотре…
А «отхабрить» ночером легко — достаточно «одной капли» :)
В этом варианте не надо описывать то, что не транслируется, поэтому трафик в сторону DMZ можно не учитывать вовсе.
Осталось разобраться с хостом 192.168.1.100
Это можно сделать например так:
access-list NONAT100 permit h 192.168.1.100 10.1.0.0 255.255.0.0
nat (inside) 0 access-l NONAT100
nat (inside) 1 192.168.1.100
global (outside) 1 int
Вариант
nat-control
Тут сложнее, потому что надо явно описать тот трафик, который не надо транслировать.
Такой вариант (сам просится) использовать нельзя
access-l WRONG perm ip 192.168.1.0 255.255.255.0 any
nat (inside) 0 access-l WRONG
т.к. nat 0 отработает в сторону и dmz и outside интерфейсов и до трансляции 192.168.1.100 дело не дойдёт
Поэтому есть несколько вариантов.
В лоб. Работает всегда:
описываем тот трафик, который никогда не транслируем
access-list NONAT perm ip h 192.168.1.100 10.1.0.0 255.255.0.0
access-list NONAT deny ip h 192.168.1.100 255.255.255.0 any
access-list NONAT perm ip 192.168.1.0 255.255.255.0 any
nat (inside) 0 access-l NONAT
для nat 0 допускаются строчки deny в ACL
deny для nat 0 говорит, чтобы циска дальше искала правила трансляций.
Нам необходимо странслировать 192.168.1.100 в outside
nat (inside) 1 192.168.1.100
global (outside) 1 int
и в dmz
static (inside,dmz) 192.168.1.100 192.168.1.100
еще вариант — применить военную хитрость: между интерфейсами с одинаковым security level осуществляется маршрутизация, даже если включен nat-control!
int e0/1
sec 100
nameif inside
int e0/2
sec 100
nameif dmz
same-security-traffic permit inter-interface
Теперь трафик в dmz пойдет и без правила nat 0 и осталось описать только правила для outside
access-list NONAT perm ip h 192.168.1.100 10.1.0.0 255.255.0.0
access-list NONAT deny ip h 192.168.1.100 255.255.255.0 any
access-list NONAT perm ip 192.168.1.0 255.255.255.0 any
nat (inside) 0 access-l NONAT
Т.к. шифрование происходит после НАТа, для IPSec достаточно написать один ACL
access-l IPSEC perm ip 192.168.1.0 255.255.255.0 any
Без сомнения есть ещё варианты: с использованием некрасивого ACL, исключающего 192.168.1.100 без строчек deny (так имело смысл делать для ОС 6), можно использовать policy static хоста 192.168.1.100 в себя при проходе в сеть 10.1.0.0/16
От рефлексивных ACL staful firewall очень далеко ушел. Обязательно расскажу.
И поэтому повторюсь: АСА не умеет PBR (т.е. route-map на интерфейс не вешается)
Мало того: одновременно работать на АСА может только один провайдер, а значит и вопрос с маршрутизацией и НАТом решается автоматически.
Если же вопрос про рутер, то там посложнее, но в общем случае отправить туда, откуда пришел можно.
www.anticisco.ru/forum/viewtopic.php?f=4&t=303
Такую топологию проще всего сэмулировать на лабораторном оборудовании, которое предоставлялось на CiscoChallenge
Лично для вас — модификация:
Вместо VLAN 10 — int dialer 0 (pppoe)
Вместо VLAN 20 — int s0/0/0 (hdlc)
Больше ничего не меняется
Нет, так не интересно.
К тому же ВЛАНы выбраны потому, что их проще всего в лабе смоделировать. А в реальности могу заменить подынтерфейсы на интерфейсы любого типа. На решение задачи это не повлияет :)
Во-вторых… Я придумывал её неделю. Странно, что прямо на сайте лежит прямо таки решение. Не верю. Приведите примерные команды и ссылку на циско.ком… А то обидно, право слово, что не знаток кисок меня на обе лопатки одной левой :) Я то (пока) себя знатоком считаю :)
А «отхабрить» ночером легко — достаточно «одной капли» :)
ЗЫ ИНтересно, кто меня и пошто минуснул… (чешу репу — кому то дорогу перебежал :( )
Вариант
no nat-control
В этом варианте не надо описывать то, что не транслируется, поэтому трафик в сторону DMZ можно не учитывать вовсе.
Осталось разобраться с хостом 192.168.1.100
Это можно сделать например так:
access-list NONAT100 permit h 192.168.1.100 10.1.0.0 255.255.0.0
nat (inside) 0 access-l NONAT100
nat (inside) 1 192.168.1.100
global (outside) 1 int
Вариант
nat-control
Тут сложнее, потому что надо явно описать тот трафик, который не надо транслировать.
Такой вариант (сам просится) использовать нельзя
access-l WRONG perm ip 192.168.1.0 255.255.255.0 any
nat (inside) 0 access-l WRONG
т.к. nat 0 отработает в сторону и dmz и outside интерфейсов и до трансляции 192.168.1.100 дело не дойдёт
Поэтому есть несколько вариантов.
В лоб. Работает всегда:
описываем тот трафик, который никогда не транслируем
access-list NONAT perm ip h 192.168.1.100 10.1.0.0 255.255.0.0
access-list NONAT deny ip h 192.168.1.100 255.255.255.0 any
access-list NONAT perm ip 192.168.1.0 255.255.255.0 any
nat (inside) 0 access-l NONAT
для nat 0 допускаются строчки deny в ACL
deny для nat 0 говорит, чтобы циска дальше искала правила трансляций.
Нам необходимо странслировать 192.168.1.100 в outside
nat (inside) 1 192.168.1.100
global (outside) 1 int
и в dmz
static (inside,dmz) 192.168.1.100 192.168.1.100
еще вариант — применить военную хитрость: между интерфейсами с одинаковым security level осуществляется маршрутизация, даже если включен nat-control!
int e0/1
sec 100
nameif inside
int e0/2
sec 100
nameif dmz
same-security-traffic permit inter-interface
Теперь трафик в dmz пойдет и без правила nat 0 и осталось описать только правила для outside
access-list NONAT perm ip h 192.168.1.100 10.1.0.0 255.255.0.0
access-list NONAT deny ip h 192.168.1.100 255.255.255.0 any
access-list NONAT perm ip 192.168.1.0 255.255.255.0 any
nat (inside) 0 access-l NONAT
Т.к. шифрование происходит после НАТа, для IPSec достаточно написать один ACL
access-l IPSEC perm ip 192.168.1.0 255.255.255.0 any
Без сомнения есть ещё варианты: с использованием некрасивого ACL, исключающего 192.168.1.100 без строчек deny (так имело смысл делать для ОС 6), можно использовать policy static хоста 192.168.1.100 в себя при проходе в сеть 10.1.0.0/16
Там и проц быстрее для того, чтобы можно было больше его нагружать :)
Идея «обогнуть» .100
типа
.99
.101
и далее маской играя
Так тоже можно :)
Но ГОРАЗДО проще написать первой строкой
deny ip host 192.168.1.100
Так тоже работает. Это в 6 ПИКСа так нельзя было сделать, а начиная… с 7.2 (точно, может и раньше) можно в nat 0 ACL писать deny
ACL как критерий отбора (НАТ, ИПСЕК) — мозгом.
Хотя, чтобы не забывать — полезно. Только некогда…
ЗЫ про консоль соглашусь, но только в приложении к циске. С компами я так и не сдружился глубоко.
Кстати, возможно в лицо узнаю :)
Приходится признать свою чайность в эмуляторах :(
Но я учусь :)