Игры с железными кошками. Настраиваем боевой Cisco роутерVasiliy «canavar» Ozerov (fr33m2n@gmail.com) Думаешь, что работать с сетевым оборудованием Cisco Systems могут только бородатые дядьки с сертификатами не ниже CCIE? Постараюсь тебя в этом переубедить. В наше время только ленивый или далекий от компьютеров не слышал о Cisco. Эта компания довольно давно работает в сфере информационных технологий и разрабатывает сетевое оборудование, которое позволяет решить практически все возникающие задачи. Как ты понимаешь, стоят такие девайсы не $10, а намного дороже. Поэтому я советую сначала потренироваться на эмуляторах (Xenomips, GNS3, Boson Router Simulator), и только потом переходить к реальным системам. А если тебе не терпится повертеть в руках железку от Cisco, то можешь походить по различным барахолкам и приобрести оборудование там. Именно так я и поступил, купив маршрутизатор Cisco 1721 и модуль расширения WIC-4ESW (свитч на 4 порта) за 10k деревянных. Вполне нормально, если сравнивать с ценами в магазинах (там бы с меня содрали еще тысяч 20, как минимум). Думаю, ты сам разберешься, какую модель прикупить, а я пока расскажу про используемое программное обеспечение. Cisco IOSIOS (Internetwork Operation System, межсетевая операционная система) устанавливается на сетевое оборудование Cisco и предоставляет возможность гибкой настройки системы. По-хорошему, IOS нужно покупать, но если ты ограничен в средствах, можешь поискать нужный IOS-образ на форумах (например, torrents.ru/forum). Версию операционки подбирай под конкретные задачи. Допустим, имидж IOS называется так: c1700-ipbasek9-mz.124-12.bin (на моей циске установлен именно он). В данном случае:
Для выбора подходящего IOS'а используется утилита Feature Navigator. Находится она на официальном сайте Cisco: tools.cisco.com/ITDIT/CFN/jsp/index.jsp. Искать подходящий IOS можно по набору возможностей, по используемой платформе, а также по названию образа. Чтобы посмотреть, какой у тебя установлен IOS, достаточно набрать в консоли: Эта команда выдаст полную информацию о твоей циске - количество памяти, аптайм, модель процессора, доступные интерфейсы, значение конфигурационного регистра. Постановка задачиВ начальных условиях у нас есть два провайдера: первый предоставляет доступ в интернет через локальную сеть с серым (читай: приватным) IP, второй выдает белый IP, но только после установления соединения с PPTP-сервером. Также у нас имеется две локальных сети с адресами 192.168.1.0/24 и 192.168.3.0/24. Адрес сети демилитаризованной зоны (DMZ) - 10.10.20.0/24. Формулируем задачи:
Подключение к цискеЯ предпочитаю настраивать сетевое оборудование через консоль, дабы при неполадках в сети оставалась возможность продолжения настройки. Итак, один конец консольного провода цепляем к циске, другой конец - к компу, используя COM-порт. Чтобы подключиться к девайсу, запускаем любую терминальную программу и соединяемся с COM-портом на скорости 9600. Как вариант, – можешь использовать HyperTerminal, который включен в состав Windows. После подключения жмем <Enter> и входим в привилегированный режим командой «enable». В данный момент можно посмотреть состояние различных счетчиков, текущую и стартовую конфигурацию, а также произвести поиск неисправностей в сети (я имею в виду ping, traceroute). Для перехода в режим конфигурации необходимо ввести команду «configure terminal». Именно в этом режиме мы и будем производить всю дальнейшую настройку. Подключение сетейВ принципе, здесь ничего сложного - подключаем витую пару в циску и присваиваем IP-адреса интерфейсам. Все бы хорошо, но порты модуля WIC-4ESW - это switch-порты, то есть на них нельзя выставить IP-адрес (L2 switching). Решение сводится к добавлению физических портов в определенные VLAN'ы. Для тех, кто не в курсе: VLAN - это виртуальная локальная вычислительная сеть, отличие которой от обычной сети состоит в том, что отделяется она от других сетей не физически (установка нового оборудования), а логически (на управляемом коммутаторе ставится соответствие между его портами и определенными VLAN). Другими словами, для решения нашей проблемы нам необходимо создать четыре виртуальные сети, присвоить им IP-адреса и сказать циске, что этот порт принадлежит этой сети, а этот - той. Чтобы не занимать драгоценное журнальное место и не повторяться, приведу пример только для одной сети:
Теперь настроим наш vlan интерфейс:
Последнее, что необходимо сделать - добавить физический интерфейс в нужный нам vlan:
Посмотрим, что получилось:
Можешь попробовать пропинговать кого-нибудь. Должно получиться. В качестве упражнения советую подключить остальные сети по аналогии с тем, как мы только что это сделали. Советую также добавлять описание к интерфейсу с помощью команды description, которую необходимо вводить в режиме конфигурирования интерфейса. Это необязательная процедура, но через некоторое время без таких пометок будет сложно разобраться, что к чему относится. Соединение с PPTP-серверомКогда я покупал циску, то полагал, что установить соединение с VPN-сервером по протоколу PPTP - простая задача. На деле оказалось, что девайс умеет соединяться только по протоколу L2TP. Прогуглив этот вопрос, я нашел решение, которое мне кажется больше хаком, чем документированной возможностью. Нижеследующая команда не появляется по нажатию «?», и ее нужно ввести вручную. Благодаря этой команде, при выборе протокола подключения можно выбрать протокол PPTP. Включаем и настраиваем vpdn (Virtual Private Dialup Network):
Понятное дело, что вместо «_vpn_server_ip_» необходимо подставить IP-адрес своего VPN-сервера. Теперь создаем сам интерфейс, на котором укажем параметры соединения:
И добавляем dialer-list, где будут задаваться типы данных (в нашем случае – весь протокол IP), которые будут заставлять циску устанавливать соединение: Вот вроде бы и все. Теперь соединение с VPN-сервером должно пройти нормально. Проверяем: Соединение успешно установлено! Переходим к самому интересному - выпуск пользователей в интернет. Натим пользователейКак сказано в техзадании, нам необходимо выпускать пользователей в интернет через первого провайдера, а второго оставить только для внешних сервисов. Самым простым будет установить дефолтный маршрут на первого провайдера и NAT'ить все пакеты, идущие из наших сетей. Так и поступим: Маршрут добавили. Теперь создаем Access List. Он будет ловить необходимые нам пакеты, для которых нужно делать NAT. Прошу заметить, что в данных правилах используется не обычная маска, а инвертная: Введенный ACL не применяется на интерфейсе для разграничения доступа, и правила permit и deny следует понимать не как «разрешить» или «запретить», а как просмотр подходящих (permit) и неподходящих (deny) пакетов. При написании NAT-правил нам придется указать адреса источников, которые необходимо будет заменить. Именно для этих целей нам пригодится наш ACL. В итоге, схема выглядит так: адрес источника будет модифицироваться только в тех пакетах, которые подошли под этот ACL. Здесь мы меняем адреса на адрес интерфейса vlan 4. В завершающей стадии нам нужно указать, какие интерфейсы являются внутренними, а какие - внешними. Делается это с помощью команд «ip nat inside» и «ip nat outside» соответственно. Команды вводятся при конфигурировании интерфейса: В этом случае vlan2 является внутренней сетью, а vlan4 - внешней. Используем внешние ресурсыСледующим шагом будет перенаправление всех данных от внешних клиентов к внутренним серверам. Не станем сразу переходить к настройке, а сначала разберемся, как это должно работать. Итак, на внешний интерфейс приходят запросы на порт 80. Наша циска перенаправляет полученные данные Web-серверу, который стоит в DMZ. После обработки данных Web-сервер начинает отвечать, и тут возникает большая проблема. Ответ попадает к циске, у которой default route стоит ISP1_GW – именно через этот шлюз она его и отправит. Если непонятно, в чем косяк, то представь ситуацию, когда ты спрашиваешь у кого-то «как дела», а отвечает тебе совершенно другой, незнакомый человек. На незнакомца ты, естественно, внимания не обращаешь. Тут ситуация аналогична: запрос мы отправили на один IP, а ответ пришел с какого-то совершенно левого. Исправлять будем с помощью Policy Based Routing. Необходимо создать ACL, определяющий пакеты, которые должны быть отправлены через канал второго провайдера:
Первые два правила deny означают, что к пакетам, идущим от веб-сервера к локальным сетям, не будет применяться политика маршрутизации. А остальные пакеты попадут в политику WEB:
Директива match указывает, какие данные попадают под эту политику; команда «set ip next-hop» задает следующий hop. Для полного счастья осталось сделать три очень простых действия. Во-первых, перенаправить данные из интернета к Web-серверу. Во-вторых, выполнить трансляцию ответов от Web-сервера. В-третьих, применить политику маршрутизации на интерфейсе, который смотрит в DMZ. Первое действие осуществляется в одну строчку: Второе также не отличается особой сложностью: Напоминаю, что имя внешнего интерфейса - Dialer0, и что на нем необходимо сделать «ip nat outside», иначе IOS не будет NAT'ить данные. В принципе, на этом можно было бы закончить настройку нашего боевого роутера, если бы не его возможности по работе DNS и DHCP. Настройка циски в качестве DNS и DHCP сервераВообще говоря, оборудование Cisco ориентировано на маршрутизацию и коммутацию данных в сетях, но никак не на работу в качестве DNS-сервера. Для этого лучше выделить отдельную машинку или использовать уже существующую. Я же покажу пример настройки сервера DNS чисто в образовательных целях. Настройка сводится к указанию адресов вышестоящих DNS и, если нужно, созданию каких-либо внутренних зон. Ниже представлен пример настройки с комментариями:
DHCP также лучше вынести на отдельный сервер, но если нет такой возможности, воспользуемся встроенными средствами. Настраивать, по сути, необходимо пулы, которые привязываются к конкретным сетям командой network. Для каждого пула выставляются специфические настройки - адреса DNS серверов, адрес дефолтного маршрута, WINS сервера и т.д.:
Мне кажется, настройка DHCP - довольно прозрачная процедура, и вопросов тут быть не должно. А если они и возникнут, то в официальной документации есть хорошие примеры с объяснениями. Удачи!Конечно, в рамках одной статьи нереально раскрыть все тонкости работы с цисками, но я надеюсь, что мне удалось показать, что не так страшен черт, как его малюют. Главное в этом деле – практика. Различные компоновки Cisco IOS
INFO
Подробнее о VLAN'ах и создании виртуальной локальной сети читай в статье «Шаманство над вилланами», опубликованной в январском номере ][ за 2009 год. |