Темы
Введение
Постановка
Подключение к циске
Соединение с PPTP-сервером
NAT
Используем внешние ресурсы
Настройка циски в качестве DNS и DHCP сервера
Думаешь, что работать с сетевым оборудованием Cisco Systems могут только бородатые дядьки с сертификатами не ниже CCIE? Постараюсь тебя в этом переубедить.
В наше время только ленивый или далекий от компьютеров не слышал о Cisco. Эта компания довольно давно работает в сфере информационных технологий и разрабатывает сетевое оборудование, которое позволяет решить практически все возникающие задачи. Как ты понимаешь, стоят такие устройства не $10, а намного дороже. Поэтому я советую сначала потренироваться на эмуляторах (Xenomips, GNS3, Boson Router Simulator), и только потом переходить к реальным системам. А если тебе не терпится повертеть в руках железку от Cisco, то можешь походить по различным барахолкам и приобрести оборудование там. Именно так я и поступил, купив маршрутизатор Cisco 1721 и модуль расширения WIC-4ESW (Switch на 4 порта) за 10k деревянных. Вполне нормально, если сравнивать с ценами в магазинах (там бы с меня содрали еще тысяч 20, как минимум). Думаю, ты сам разберешься, какую модель прикупить, а я пока расскажу про используемое программное обеспечение.
Код: Выделить всё
Cisco IOS- c1700 означает, что IOS предназначен для оборудования 17-й серии;
- ipbasek9 - набор возможностей; ipbase расшифровывается как начальный уровень функциональности, обеспечивает базовый роутинг, то есть статические маршруты, RIP, OSPF, EIGRP, только на IPv4, включает NAT и VLAN'ы (802.1q и ISL); k9 - поддержка шифрования;
- mz показывает, что файл является бинарным (для сжатых используется tar);
- 124-12 - номер релиза.
Код: Выделить всё
cisco#show versionВ начальных условиях у нас есть два провайдера: первый предоставляет доступ в интернет через локальную сеть с серым (читай: приватным) IP, второй выдает белый IP, но только после установления соединения с PPTP-сервером. Также у нас имеется две локальных сети с адресами 192.168.1.0/24 и 192.168.3.0/24. Адрес сети демилитаризованной зоны (DMZ) - 10.10.20.0/24. Формулируем задачи:
- Cisco должна устанавливать соединение с PPTP-сервером.
- Локальные сети должны выходить в интернет через первого провайдера (который выдает серый IP).
- Все запросы на внешний IP должны перенаправляться в DMZ на соответствующие сервера.
- Для локальных сетей циска должна выступать в роли DNS и DHCP серверов.
Я предпочитаю настраивать сетевое оборудование через консоль, дабы при неполадках в сети оставалась возможность продолжения настройки. Итак, один конец консольного провода цепляем к циске, другой конец - к компу, используя COM-порт. Чтобы подключиться к устройству, запускаем любую терминальную программу и соединяемся с COM-портом на скорости 9600. Как вариант, – можешь использовать HyperTerminal, который включен в состав Windows. После подключения жмем <Enter> и входим в привилегированный режим командой «enable».
В данный момент можно посмотреть состояние различных счетчиков, текущую и стартовую конфигурацию, а также произвести поиск неисправностей в сети (я имею в виду ping, traceroute). Для перехода в режим конфигурации необходимо ввести команду «configure terminal». Именно в этом режиме мы и будем производить всю дальнейшую настройку.
Подключение сетей
В принципе, здесь ничего сложного - подключаем витую пару в циску и присваиваем IP-адреса интерфейсам. Все бы хорошо, но порты модуля WIC-4ESW - это switch-порты, то есть на них нельзя выставить IP-адрес (L2 switching). Решение сводится к добавлению физических портов в определенные VLAN'ы. Для тех, кто не в курсе: VLAN - это виртуальная локальная вычислительная сеть, отличие которой от обычной сети состоит в том, что отделяется она от других сетей не физически (установка нового оборудования), а логически (на управляемом коммутаторе ставится соответствие между его портами и определенными VLAN). Другими словами, для решения нашей проблемы нам необходимо создать четыре виртуальные сети, присвоить им IP-адреса и сказать циске, что этот порт принадлежит этой сети, а этот - той. Чтобы не занимать драгоценное журнальное место и не повторяться, приведу пример только для одной сети:
Код: Выделить всё
cisco#vlan database
cisco(vlan)#vlan 2
VLAN 2 added:
Name: VLAN0002
cisco(vlan)#exКод: Выделить всё
cisco#conf t
! Настраиваем vlan 2
cisco(config)#int vlan 2
! Выставляем IP адрес
cisco(config-if)#ip address 192.168.1.254 255.255.255.0
cisco(config-if)#^ZКод: Выделить всё
! Конфигурируем интерфейс fastethernet 4
cisco(config)#int fa4
! Тип порта (может быть еще trunk)
cisco(config-if)#switchport mode access
! Добавляем этот порт во второй vlan
cisco(config-if)#switchport access vlan 2Код: Выделить всё
cisco#sh ip int brief vlan 2
Interface IP-Address OK? Method Status Protocol
Vlan2 192.168.1.254 YES manual up up
cisco#sh ip int brief fa4
Interface IP-Address OK? Method Status Protocol
FastEthernet4 unassigned YES unset up up
cisco#sh vlan-switch
VLAN Name Status Ports
---- -------------------------------- --------- -----
1 default active
2 VLAN0002 active Fa4
... skipped ...Когда я покупал циску, то полагал, что установить соединение с VPN-сервером по протоколу PPTP - простая задача. На деле оказалось, что устройство умеет соединяться только по протоколу L2TP. Прогуглив этот вопрос, я нашел решение, которое мне кажется больше хаком, чем документированной возможностью. Нижеследующая команда не появляется по нажатию «?», и ее нужно ввести вручную. Благодаря этой команде, при выборе протокола подключения можно выбрать протокол PPTP.
Код: Выделить всё
cisco(config)#service internalКод: Выделить всё
! Включаем vpdn
cisco(config)#vpdn enable
! Создаем группу с номером 1
cisco(config)#vpdn-group 1
cisco(config-vpdn)#request-dialin
! Указываем протокол соединения
cisco(config-vpdn-req-in)#protocol pptp
cisco(config-vpdn-req-in)#rotary-group 0
! Указываем VPN сервер
cisco(config-vpdn)#initiate-to ip _vpn_server_ip_Код: Выделить всё
! Настраиваем интерфейс VPN-клиента
cisco(config)#interface Dialer0
! Указываем mtu
cisco(config-if)#mtu 1440
! Автоматически получать IP адрес
cisco(config-if)#ip address negotiated
! Благодаря данной команде наш интерфейс будет всегда в состоянии "up"
cisco(config-if)#ip pim dense-mode
! Выставляем инкапсуляцию ppp
cisco(config-if)#encapsulation ppp
cisco(config-if)#dialer in-band
cisco(config-if)#dialer idle-timeout 0
cisco(config-if)#dialer string 123
cisco(config-if)#dialer vpdn
! Номер dialer-list'а - для просмотра подходящих данных
cisco(config-if)#dialer-group 1
! Отрубаем поддержку cisco discovery protocol на этом интерфейсе
cisco(config-if)#no cdp enable
! Указываем логин и пароль для аутентификации
cisco(config-if)#ppp chap hostname _login_
cisco(config-if)#ppp chap password 0 _password_Код: Выделить всё
cisco(config)#dialer-list 1 protocol ip permitКод: Выделить всё
cisco(config)#dialer-list 1 protocol ip permitКод: Выделить всё
cisco#sh ip int dial0
Interface IP-Address OK? Method Status Protocol
Dialer0 xxx.xxx.xxx.xxx YES IPCP up upКак сказано в техзадании, нам необходимо выпускать пользователей в интернет через первого провайдера, а второго оставить только для внешних сервисов. Самым простым будет установить дефолтный маршрут на первого провайдера и NAT'ить все пакеты, идущие из наших сетей. Так и поступим:
Код: Выделить всё
cisco(config)#ip route 0.0.0.0 0.0.0.0 ISP1_GWКод: Выделить всё
! Создаем access-list номер 1
cisco(config)#access-list 1 permit 192.168.1.0 0.0.0.255
cisco(config)#access-list 1 permit 192.168.3.0 0.0.0.255Код: Выделить всё
! Указываем в качестве исходных адресов access-list 1
cisco(config)#ip nat inside source list 1 interface Vlan4 overloadКод: Выделить всё
cisco(config)#int vlan 2
cisco(config-if)#ip nat inside
cisco(config-if)#int vlan 4
cisco(config-if)#ip nat outsideСледующим шагом будет перенаправление всех данных от внешних клиентов к внутренним серверам. Не станем сразу переходить к настройке, а сначала разберемся, как это должно работать. Итак, на внешний интерфейс приходят запросы на порт 80. Наша циска перенаправляет полученные данные Web-серверу, который стоит в DMZ. После обработки данных Web-сервер начинает отвечать, и тут возникает большая проблема. Ответ попадает к циске, у которой default route стоит ISP1_GW – именно через этот шлюз она его и отправит. Если непонятно, в чем косяк, то представь ситуацию, когда ты спрашиваешь у кого-то «как дела», а отвечает тебе совершенно другой, незнакомый человек. На незнакомца ты, естественно, внимания не обращаешь. Тут ситуация аналогична: запрос мы отправили на один IP, а ответ пришел с какого-то совершенно левого. Исправлять будем с помощью Policy Based Routing. Необходимо создать ACL, определяющий пакеты, которые должны быть отправлены через канал второго провайдера:
Код: Выделить всё
! Создаем расширенный access-list номер 100
! Так как в расширенных листах нет отрицания, то перед разрешающими правилами пишем запрещающие
cisco(config)#access-list 100 deny tcp host 10.10.20.2 eq www 192.168.1.0 0.0.0.255
cisco(config)#access-list 100 deny tcp host 10.10.20.2 eq www 192.168.3.0 0.0.0.255
cisco(config)#access-list 100 permit tcp host 10.10.20.2 eq www anyКод: Выделить всё
cisco(config)#route-map WEB permit 10
! Определяем область действия политики - только на адреса, подпадающие под access-list 100
cisco(config-route-map)#match ip address 100
cisco(config-route-map)#set ip next-hop 172.17.0.1Код: Выделить всё
cisco(config)#ip nat inside source static tcp _web_server_ip_ 80 xxx.xxx.xxx.xxx 80 extendableКод: Выделить всё
cisco(config)#ip nat inside source list 100 interface Dialer0 overloadТретьим действием применяем политику маршрутизации:
Код: Выделить всё
cisco(config)#int vlan 5
cisco(config-if)#ip policy route-map WEBВообще говоря, оборудование Cisco ориентировано на маршрутизацию и коммутацию данных в сетях, но никак не на работу в качестве DNS-сервера. Для этого лучше выделить отдельную машинку или использовать уже существующую. Я же покажу пример настройки сервера DNS чисто в образовательных целях. Настройка сводится к указанию адресов вышестоящих DNS и, если нужно, созданию каких-либо внутренних зон. Ниже представлен пример настройки с комментариями:
Код: Выделить всё
! Указываем DNS сервера провайдера
cisco(config)#ip name-server abc.abc.abc.abc
cisco(config)#ip name-server bca.bca.bca.bca
! Включаем наш DNS сервер
cisco(config)#ip dns server
! Создаем primary зону test
cisco(config)#ip dns primary test soa ns.test postmaster.test
! Добавляем запись типа NS
cisco(config)#ip host test ns ns.test
! Добавляем записи типа A
cisco(config)#ip host ns.test 192.168.1.254
cisco(config)#ip host anyhost.test 192.168.1.250Код: Выделить всё
! Создаем первый пул
cisco(config)#ip dhcp pool FirstPool
! Указываем сеть
cisco(dhcp-config)#network 192.168.1.0 255.255.255.0
! Специфические настройки
cisco(dhcp-config)#default-router 192.168.1.254
cisco(dhcp-config)#dns-server 192.168.1.254
cisco(dhcp-config)#domain-name domain1
cisco(dhcp-config)#exit
! Создаем второй пул
cisco(config)#ip dhcp pool SecondPool
! Указываем сеть
cisco(dhcp-config)#network 192.168.3.0 255.255.255.0
! Специфические настройки
cisco(dhcp-config)#domain-name domain2
cisco(dhcp-config)#default-router 192.168.3.2
cisco(dhcp-config)#dns-server 192.168.3.2
cisco(dhcp-config)#exit
! Указываем, какие адреса DHCP не будет присваивать клиентам
cisco(config)#ip dhcp excluded-address 192.168.1.200 192.168.1.254
cisco(config)#ip dhcp excluded-address 192.168.3.1 192.168.3.10