Доброго времени суток!!!
В прошлом посте мы настроили несколько vlan на cisco switch, познакомились с протоколом VTP и посмотрели, как он работает. После наших настроек, если помните, сетевой доступности между vlan не было. Сегодня, я хочу предложить вам это исправить и организовать сетевое взаимодействие между vlan, а так же контролируемый доступ во внешнюю сеть («интернет») с помощью ACL и NAT (Network address translation).
Кому интересно, добро пожаловать под кат…
Я предлагаю реализовать задуманное по принципу построения сети «Роутер на палочке» (Router on the stick). Это решение очень распространено в малых сетях (небольшое предприятие, офис и т.д.). Так что думаю, нашу схему можно будет взять, при необходимости, за основу для построения реальной сети :).
Вот эта схема:
Добавим немного условий :):
- 1 – хосты из vlan 2 и vlan 4 имеют доступ в «Internet» (прохождение ping на loopback роутера ISP);
- 2 – хост из vlan 3 не имеет доступа в «Internet», но должен ping-овать хосты из vlan 2 и vlan 4.
- - f1/0 – 802.1q Trunk;
- - f1/1 – f1/3 vlan 1 (Native);
- - f1/4 – f1/7 vlan 2;
- - f1/8 – f1/11 vlan 3;
- - f1/12 – f1/15 vlan 4.
Схема определена, условия поставлены :). Переходим к настройкам.
Начнем с настроек нашего Switch:
- R3>en
- R3#conf t
- R3(config)#hostname Switch
- Switch(config)#int vlan 1
- Switch(config-if)#ip address 192.168.1.2 255.255.255.0
- Switch(config-if)#no shutdown
- Switch(config-if)#exit
- Switch(config)#vlan 2
- Switch(config-vlan)#name vlan_2
- Switch(config-vlan)#exit
- Switch(config)#vlan 3
- Switch(config-vlan)#name vlan_3
- Switch(config-vlan)#exit
- Switch(config)#vlan 4
- Switch(config-vlan)#name vlan_4
- Switch(config-vlan)#exit
- Switch(config)#exit
- Switch(config)#int range f1/4 - 7
- Switch(config-if-range)#switchport mode access
- Switch(config-if-range)#switchport access vlan 2
- Switch(config-if-range)#exit
- Switch(config)#int range f1/8 - 11
- Switch(config-if-range)#switchport mode access
- Switch(config-if-range)#switchport access vlan 3
- Switch(config-if-range)#exit
- Switch(config)#int range f1/12 - 15
- Switch(config-if-range)#switchport mode access
- Switch(config-if-range)#switchport access vlan 4
- Switch(config-if-range)#exit
- Switch(config)#int fa 1/0
- Switch(config-if)#switchport mode trunk
- Switch(config-if)#switchport trunk encapsulation dot1q
- Switch(config-if)#exit
- Switch(config)#exit
- Switch#wr
- Switch#
Vlan созданы, IP-адрес назначен. Если сейчас попробовать команду ping между хостами, то ничего не получится, так как они находятся в разных сетях (vlan).
Теперь настроим роутер ISP:
- R2>en
- R2#conf t
- R2(config)#hostname ISP
- ISP(config)#int serial 0/0
- ISP(config-if)#ip address 192.168.10.2 255.255.255.252 – в сторону роутера Corp
- ISP(config-if)#no shutdown
- ISP(config-if)#exit
- ISP(config)#int loopback 0
- ISP(config-if)#ip address 172.16.1.1 255.255.255.255 – имитируем «интернет»
- ISP(config)#exit
- ISP#wr
- ISP#
Осталось настроить роутер Corp. Это займет немного больше времени. Итак, приступаем :).
- R1>en
- R1#conf t
- R1(config)#hostname Corp
- Corp(config)#int serial 0/0
- Corp(config-if)#ip address 192.168.10.1 255.255.255.252 – в сторону «интернета»
- Corp(config-if)#no shutdown
- Corp(config-if)#exit
- Corp(config)#int fa 0/0
- Corp(config-if)#no shutdown
- Corp(config-if)#exit
- Corp(config)#int fa 0/0.1 – настраиваем субинтерфейс для каждого vlan
- Corp(config-subif)#description For Manage
- Corp(config-subif)#encapsulation dot1Q 1 native – прописываем режим инкапсуляции (в данном случае еще дописываем, что этот vlan будет native
- Corp(config-subif)#ip address 192.168.1.1 255.255.255.0 – назначаем IP-адрес, который будет являться шлюзом по умолчанию для соответствующего vlan
- Corp(config-subif)#exit
- Corp(config)#int fa 0/0.2
- Corp(config-subif)#encapsulation dot1Q 2 – обращаю внимание, что цифра должна совпадать с номером (tag) vlan-а
- Corp(config-subif)#ip address 192.168.2.1 255.255.255.0
- Corp(config-subif)#exit
- Corp(config)#int fa 0/0.3
- Corp(config-subif)#encapsulation dot1Q 3
- Corp(config-subif)#ip address 192.168.3.1 255.255.255.0
- Corp(config-subif)#exit
- Corp(config)#int fa 0/0.4
- Corp(config-subif)#encapsulation dot1Q 4
- Corp(config-subif)#ip address 192.168.4.1 255.255.255.0
- Corp(config-subif)#exit
- Corp(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.2 – прописываем маршрут по умолчанию
- Corp(config)#exit
- Corp#wr
- Corp#
- 1 – обращу внимание на этот параметр. Если вы делаете настройки в GNS3, как и я, то у вас может возникнуть ошибка о несогласованности duplex. Для ее устранения необходимо в режиме конфигурации интерфейса на роутере жестко прописать параметр full duplex.
- где:
- 1- роутер ISP;
- 2- «интернет»;
- 3- коммутатор Switch;
- 4- хост №1 (vlan_2);
- 5- хост №2 (vlan_3);
- 6- хост №3 (vlan_4).
Для устранения этой проблемы нам необходимо настроить NAT на роутере Copr.
Network address translation бывает трех видов:
- 1 – статический NAT (вручную прописываем соответствие внутреннего (незарегистрированного) адреса внешнему (зарегистрированному) адресу в формате один к одному);
- 2 – динамический NAT (задается определенный pool адресов и при трансляции автоматически производится соответствие внутренних адресов, свободным адресам из pool);
- 3 – port address translation (PAT). Трансляция внутренних (незарегистрированных) адресов в один внешний (зарегистрированный) адрес, но в разные порты.
Статический NAT.
Возвращаемся на роутер Corp и делаем следующее:
- Corp#
- Corp#conf t
- Corp(config)#int fa 0/0.2
- Corp(config-subif)#ip nat inside – определяем интерфейс для NAT, за которым находится хост(ы) с внутренним(и) IP-адресами;
- Corp(config-subif)#exit
- Corp(config)#int fa 0/0.4
- Corp(config-subif)#ip nat inside – определяем интерфейс для NAT, за которым находится хост(ы) с внутренним(и) IP-адресами;
- Corp(config-subif)#exit
- Corp(config)#int serial 0/0
- Corp(config-if)#ip nat outside – определяем интерфейс для NAT, который является внешним и имеет внешний (зарегистрированный) IP-адрес;
- Corp(config-if)#exit
- Corp(config)#ip nat inside source static 192.168.2.20 192.168.10.1 – прописываем соответствие одного внутреннего IP-адреса одному внешнему. Для хоста из vlan_4 мы не сможем этого прописать, так как внешний IP-адрес только один;
- Corp(config)#exit
- Corp#wr
После ping с Host 1 (192.168.2.20) видно, что в таблице трансляций появилось соответствие. Значит, Host 1 получил свой доступ в «интернет» :). Если проверить доступ к «интернет» с других хостов, то его не будет.
Динамичский NAT.
Для динамического NAT нам понадобится Access Control List. Они тоже бывают разных видов. Мы будем использовать расширенный ACL.
Возвращаемся на роутер Corp и продолжаем:
- Corp#conf t
- Corp(config)#ip access-list extended ACL_NAT – создаем расширенный список доступа (ACL) для определения тех сетей, которые будут подпадать под NAT;
- Corp(config-ext-nacl)#permit ip 192.168.2.0 0.0.0.255 any – определяем сеть для NAT (согласно нашему условию в начале поста);
- Corp(config-ext-nacl)#permit ip 192.168.4.0 0.0.0.255 any – определяем сеть для NAT (согласно нашему условию в начале поста);
- Corp(config-ext-nacl)#exit
- Corp(config)#no ip nat inside source static 192.168.2.20 192.168.10.1 – удаляем статический NAT;
- Corp(config)#ip nat pool NAT_POOL 192.168.10.1 192.168.10.1 netmask 255.255.255.0 – определяем pool внешних IP-адресов;
- Corp(config)#ip nat inside source list ACL_NAT pool NAT_POOL – включаем динамический NAT;
- Corp(config)#exit
- Corp#wr
- Corp#
Все работает. Так что, если вы хотите применять динамический NAT, то лучше вам иметь целый pool зарегистрированных IP-адресов.
Но самым распространенным видом NAT, который используется практически везде, является PAT (Port Address Translation). Его мы, в итоге, и оставим для нашей схемы. Он даст возможность одновременно работать с «внешним миром» всем заинтересованным хостам :).
Вновь возвращаемся на наш роутер Corp и немного переделаем конфигурацию:
- Corp#conf t
- Corp(config)#no ip nat inside source list ACL_NAT pool NAT_POOL – отключаем динамический NAT;
- Corp(config)#no ip nat pool NAT_POOL 192.168.10.1 192.168.10.1 netmask 255.255.255.0 – убираем наш pool адресов (он нам больше не понадобиться);
- Corp(config)#ip nat inside source list ACL_NAT interface serial 0/0 overload – включаем PAT;
- Corp(config)#exit
- Corp#wr
- Corp#
(определение inside и outside интерфейсов, а так же ACL мы делали ранее)
- где:
- 1- IP-адрес «интернет»;
- 2- IP-адрес Host 2 из vlan_3;
- 3- IP-адрес Host 3 из vlan_4;
- где:
- 1- IP-адрес «интернет»;
- 2- IP-адрес Host 1 из vlan_2;
- 3- IP-адрес Host 3 из vlan_4;
- где:
- 1- IP-адрес «интернет»;
- 2- IP-адрес Host 1 из vlan_2;
- 3- IP-адрес Host 2 из vlan_3;
Как видно из рисунков, у нас все получилось. Все условия выполнены (хосты пингуют друг друга, а в «интернет» имеют доступ только vlan_2 и vlan_4). Из последнего рисунка видно, что трансляция адресов работает корректно (два внутренних IP-адреса (Inside local) транслируются в один внешний IP-адрес (Inside global), но в разные порты).
На этом, я хочу закончить этот пост. Надеюсь, что он был вам интересен, и вы что-то из него почерпнули или вспомнили :). Жду вас в следующих постах.
Если возникли вопросы или комментарии, то смело пишите!!! С радостью отвечу!!!!
С уважением, Ant0ni0n.
не совсем понял Inter-vlan Routing...
ОтветитьУдалитьХорошая статья
ОтветитьУдалитьТока исправь оишбки в конце гле пинги описываешь
Хост 4 из влан 4 поменять на хост 3 из влан 4
Спасибо за отзыв!!
УдалитьИсправил. Заходите еще :)
Подскажите, пожалуйста, как проверить работу ACL с разными типами трафика в GNS?
ОтветитьУдалитьДобрый день, не совсем понял вопроса...
УдалитьМожно создать access-list в котором разрешить определенные порты и IP-адреса, а последней строчкой в этом листе написать deny ip any any log. Тогда любое запрещенное действие по этому листу будет отображаться в логе (show log). Если, конечно, логирование настроено.
Если речь не о том, то уточните пожалуйста, вопрос.
Приветствую!
ОтветитьУдалитьСкажите, а как сделать чтобы, хост 3 не имел доступа в интернет и к хостам из vlan 2, но при этом имел доступ к хостам из vlan 4?
Добрый день!!!
УдалитьСделать так можно и очень просто :). Для этого необходимо создать access-list, который разрешает хождение трафика в сеть хоста 4 (это будет destination) и запрещает трафик в другие сети. После этого, применить этот лист на in сабинтерфейса int fa 0/0.3.
Добрый день!
ОтветитьУдалитьВ настройках роутера ISP не хватает маршрута на роутер Corp. Иначе пинги с ПК не пройдут до Loopback-интерфейса роутера ISP. Т.к. на какой интерфейс слать ответ на запрос, к примеру, от 192.168.2.20, роутер ISP просто не знает.
Так же хочу внести поправочку в высказывание относительно статического NAT-а:
ОтветитьУдалить"Если проверить доступ к «интернет» с других хостов, то его не будет." - доступ с других хостов будет и пинг пройдет в данном случае, т.к.маршрутизацию NAT не отменяет, разве что хост 192.168.2.20 попадет под NAT и будет подменяться на 192.168.10.1. Для других хостов будет пропускать пинг обычная маршрутизация. Для его ограничения нужно накладывать на outside-интерфейс access-list.
не понимаю одну проблему. у меня 3 vlan сети, хосты пингуют друг-груга, но почему то не могут заходить в открытые шары на этих хостах: то есть, хост (WinXP) из одного vlan'а не может зайти на шару другого хоста (WinXP)из другого vlan'а, а с linux хостами такой проблемы нет. Куда копать?????
ОтветитьУдалитьWINS сервер?
УдалитьПривет. Подскажи пожалуйста. Ситуация след.
ОтветитьУдалитьЕсть несколько sub-int: f0/0.10, f0/0.11, f0/0.x
Нужен nat inside на хост, который в сети 10.0.11.x
ip nat inside source static tcp 10.0.11.x 3389 int f0/0.100 3389 не работает.
ip nat inside source static tcp 10.0.10.x 3389 int f0/0.100 3389 работает.
где копать?
Доброго времени суток!
УдалитьТак сразу и не скажу. Мне необходимо видеть схему и полную конфигурацию, по двум строчкам ничего не понять. Пришли мне на почту, будет время, гляну.
привет, как ip на vlanы назначить?
ОтветитьУдалитьу меня не отработал протокол icmp ? Пинги все отлично но вот что то сообщение не приходит при проверке на роутере.
ОтветитьУдалитьпривет asa cisco 5520 как можно настроит как прокси сервера чтобы фильтровать трафик,есть примеры!
ОтветитьУдалитьcisco asa 5520 вот тока не давно привезли на работу и изучаю проста
ОтветитьУдалить