Cisco. Первый выпуск. Соединяем две сети.
С чего начинается Cisco-роутер? Правильно, с консольного кабеля.
Это тот светло-голубой провод с разъемами RS-232 и RJ-45, который шел вместе с оборудованием. Его нужно подключить к компьютеру к свободному COM порту. Теперь с вашим железом можно делать все что угодно. Если, конечно, не установлен пароль на консольные подключения (о том, как побороть чужой пароль на вашем железе поговорим позже).
Итак, открываем программу-клиент терминального подключения, например, PuTTY. В программе указываем порт соединения (COM1) и скорость подключения (9600).
Что видим? Черный экран, мигающий курсор и больше ничего? Значит, скорее всего, скорость подключения на роутере выставлена другая. Как правило, это может быть скорость 115200. Если и она не подходит (а это — редкость), то придется подбирать. В любом случае, еще стоит проверить, какой указан СOM порт, к которому произведено подключение.
Отлично, разобрались! Все нормально и мы видим приглашение от роутера. По умолчанию оно будет выглядеть так: Router>
Это значит, что мы находимся в пользовательском режиме. Из этого режима доступно совсем немного команд. Все эти команды позволяют лишь наблюдать за работой роутера, но не дают возможности вносить изменения в конфигурацию. Из этого режима можно выполнить, например, команду Ping или show ip interface.
Для того, чтобы изменять рабочую конфигурацию (читай, настройку) роутера, необходимо войти в привилегированный режим. Привилегированный режим может быть защищен паролем. Для того чтобы войти в привилегированный режим, нужно набрать команду enable. После этого приглашение командной строки изменится на Router#
Здесь уже доступно намного больше команд. В этом режме можно вносить изменения в рабочую конфигурацию и сохранять измененную конфигурацию в ПЗУ.
Но основная настройка роутера ведется из режима глобальной конфигурации. В него можно попасть из привилегированного режима выполнением команды configure terminal. Приглашение изменится на Router(config)#. Как вы уже заметили, приглашение командной строки говорит о том, в каком режиме вы находитесь.
Ближе к делу.
Для начала давайте сделаем самое простое — соединим две сети с помощью нашего маршрутизатора.
Сеть Internal имеет диапазон адресов 192.168.10.1/24, адрес роутера в нем — 192.168.10.254, сетевой адаптер — FastEthernet0/0
Сеть External имеет диапазон адресов 10.54.0.0/16, адрес роутера в нем — 10.54.0.1, сетевой адаптер — FastEthernet0/1.
В режиме глобальной конфигурации вводим команду Interface FastEthernet0/0. Приглашение станет таким: Router(config-if)#. Интерфейс по умолчанию не имеет никакого адреса и даже выключен. Сначала введем IP-адрес. Это делается следующей командой: ip address 192.168.10.254 255.255.255.0.
Помните, что интерфейс выключен? Включается он командой no shutdown. Если все хорошо, то пробежит надпись:
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Первая строка говорит о том, что с сетевым интерфейсом все хорошо с точки зрения физического и канального уровня (сетевой кабель подключен и на другом его конце работает совместимое оборудование). Вторая строка говорит о том, что Сетевой уровень (IP Layer) тоже работает как надо.
Дальше нужно выйти из режима конфигурации интерфейса FastEthernet0/0, войти в интерфейс FastEthernet0/1 и настроить его параметры IP.
С этим вы и сами справитесь.
Проверить, правильно ли все настроено, можно вернувшись в привилегированный режим (команда exit) и выполнив команду show ip interface brief. Она покажет информацию о состоянии сетевых интерфейсов. Вывод команды будет примерно таким:
Router#show ip interface brief
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 192.168.10.254 YES manual up up
FastEthernet0/1 10.54.0.1 YES manual up up
Ура!
Готово! Роутер может передавать пакеты из одной сети в другую и обратно.
Почти готово =) Все изменения и настройки, которые мы сейчас вносили, сохранены только в оперативной памяти роутера. Чтобы конфигурация сохранилась и после перезагрузки, ее нужно скопировать в ПЗУ. Делается это проще простого. Из привилегированного режима вводится команда copy running-config startup-config. Теперь перезагрузка не страшна!
Да, еще одна маленькая деталь. Если вы включаете роутер, у которого отсутствует конфигурация, то IOS предложит воспользоваться визардом для настройки основных параметров работы роутера. Вежливо откажите ему. Зачем просто, когда можно сложно? =)
Итого:
Для работы нам понадобится 4 основных режима конфигурации:
Пользовательский режим: Router>
Привилегированный режим: Router#
Режим глобальной конфигурации: Router(config)#
Режим конфигурации объекта(интерфейса, протокола маршрутизации и т.д.): Router(config-if)#
Вот и все. Согласитесь, вы думали, что будет сложнее!
В следующем выпуске я планирую написать про использование симулятора Packet Tracer 5.0 и эмулятора GNS3. Попробую подготовить видеоролик о том, как работают эти нужные и полезные программы. Выпуски я планирую готовить раз в неделю.
Статическая маршрутизация на Cisco
Итак, имеется следующая схема из двух роутеров с сетями за ними:
В итоге левый маршрутизатор видит сети напрямую подключенные к нему (directly connected) — 192.168.1.0/24, 172.20.0.0/16 и 192.168.100.0/30, с правым та же история. Но что делать если мы хотим из сети 192.168.1.0/24 видеть хосты в сети 10.0.0.0/8?
Текущий принцип функционирования нашей сети представлен на изображении:
Всё дело в том, что один маршрутизатор попросту не содержит в своей таблице маршрутов (routing table) информации о сетях, подключенных только к другому роутеру. Таким образом левый маршрутизатор не знает, например, про сеть 10.0.0.0/8, подключенную к правому.
Воспроизведем в Cisco Packet Tracer нашу ситуацию:
Дадим IP адреса нашим компьютерам.
PC0 – 192.168.1.100
PC1 – 172.20.20.100
PC2 – 192.168.2.100
PC3 – 10.10.10.100
Соответствующие интерфейсы маршрутизаторов будут иметь такие же IP адреса, только с 1 в четвертом октете. Например ПК 192.168.1.100 будет смотреть в интерфейс с IP 192.168.1.1. Данный IP будет также являться шлюзом по-умолчанию (default gateway).
Сохраним предварительный конфиг — wr mem
Ах да, на наших роутерах изначально только два Ethernet-интерфейса, поэтому нужно добавить плату расширения NM-1FE-TX (NM – Network module, 1FE – содержит один порт FastEthernet, TX – поддерживает 10/100MBase-TX). Только сначала выключим свич, чтобы система дала нам добавить интерфейс.
Втыкаем дополнительную интерфейсную плату.
Включаем маршрутизатор. Должен добавиться новый интерфейс — FastEthernet1/0, и теперь аналогичные действия по инсталляции дополнительного модуля произведем на втором роутере.
Интерфейсу FastEthernet1/0 левого роутера назначим IP 192.168.100.1 и маску 255.255.255.252 (/30), правый же будет 192.168.100.2 с такой же маской.
И линкуем эти маршрутизаторы между собой.
Итогом наших мучений будет то, что представлено на втором рисунке в статье. Заметьте, что не все стрелки на нем двунаправленные, почему так? Дело вот в чем, допустим мы шлём ICMP-пакет от хоста в одной подсети до хоста в другой, и возникает ситуация, что ответ попросту не находит маршрута. Давайте сразу пример. Допустим, мы пингуем с ПК 172.20.20.100 интерфейс правого маршрутизатора — 192.168.100.2. Видим следующее:
Давайте продебажим это дело, отследив путь пакетов.
debug ip packet — служит для активации дебаг-лога
Запускаем её на обоих маршрутизаторах и снова запустим пинги с 172.20.20.100 до 192.168.100.2.
Сначала левый.
IP: tableid=0, s=172.20.20.100 (FastEthernet0/1), d=192.168.100.2 (FastEthernet1/0), routed via RIB IP: s=172.20.20.100 (FastEthernet0/1), d=192.168.100.2 (FastEthernet1/0), g=192.168.100.2, len 128, forward
В первой строчке видим, что на него пришел пакет от 172.20.20.100, направляемый на адрес 192.168.100.2. А слово forward во второй строчке означает, что этот пакет был передан дальше.
Теперь взглянем на правый роутер.
IP: tableid=0, s=172.20.20.100 (FastEthernet1/0), d=192.168.100.2 (FastEthernet1/0), routed via RIB IP: s=172.20.20.100 (FastEthernet1/0), d=192.168.100.2 (FastEthernet1/0), len 128, rcvd 3 IP: s=192.168.100.2 (local), d=172.20.20.100 len 128, unroutable
Пакет сюда всё же добрался, но дальше целевой хост должен отправить ответ с интерфейса 192.168.100.2 на 172.20.20.100, вот только наш маршрутизатор понятия не имеет о сети 172.20.20.0/16 и как в неё стучаться. Мы пока не задавали шлюз по-умолчанию (default gateway), поэтому видим в логе слово unroutable.
Вырубаем дебаг-режим командой no debug ip packet, а если хотите их посмотреть, то скажите show debugging.
Сеть у нас маленькая, поэтому самым простым и логичным способом настроить маршрутизацию будет добавление так называемого маршрута по-умолчанию (default route). Для этого левому маршрутизатору скажем следующее:
ip route 0.0.0.0 0.0.0.0 192.168.100.2
ip route 0.0.0.0 0.0.0.0 192.168.100.1
Синтаксис здесь такой:
ip route [IP сети назначения] [её маска] [IP интерфейса, на которые надо перенаправить пакеты, чтобы попасть в данную сеть]
Маршрут с IP 0.0.0.0 и маской 0.0.0.0 становится маршрутом по-умолчанию, на который уйдут все пакеты адреса назначения которых прямо отсутствуют в таблице маршрутизации (routing table).
Давайте пример. Вот хотим мы пингануть с ПК 192.168.1.100 хост с IP адресом 10.10.10.100. Шлюз по-умолчанию (default gateway) у нашего ПК с IP 192.168.1.100 — 192.168.1.1. ПК попробует найти в своей таблице маршрутизации IP 10.10.10.100, зафейлит и решит поискать маршрут до сети 10.0.0.0/8 в целом. Это ему также не удастся и он отправит пакет на шлюз по-умолчанию, тот самый 192.168.1.1. Роутер также сначала поищет путь до 10.10.10.100, потом будет рыскать в своей таблице маршрутизации в поисках маршрута до подсети 10.0.0.0/8, но и тут ничего не отыщет. Зато обнаружит прописанный маршрут по-умолчанию, и с радостью отправит пакет на 192.168.100.2, переложив поиск маршрута на другой маршрутизатор. Прямой путь до 10.10.10.100 он, конечно, не найдет, зато увидит информацию по сети 10.0.0.0/8, оказывается адресованные туда пакеты следует слать на интерфейс FastEthernet0/1, именно к которому эта сеть и подключена (directly connected). У нас для простоты роль подсети играет единственный хость 10.10.10.100 и пакет попадет к нему. Дальше всё пойдет в обратном порядке, только с назначением на 192.168.1.100/24.
Маршрутом по-умолчанию удается отделаться далеко не всегда. Чаще приходится прописывать маршруты для каждой сети в отдельности. Разберемся как это делается, но сначала выпилим то, что уже имеется в таблице маршрутизации:
no ip route xxxx(адрес сети) yyyy(маска) zzzz(адрес интерфейса)
В итоге таблица должна содержать только информацию о непосредственно подключенных к маршрутизатору сетях. Левый роутер будет выглядеть так:
ip route 192.168.2.0 255.255.255.0 192.168.100.2 ip route 10.0.0.0 255.0.0.0 192.168.100.2
ip route 192.168.1.0 255.255.255.0 192.168.100.1 ip route 172.20.0.0 255.255.0.0 192.168.100.1
В итоге всё будет работать в соответствии с данной схемой:
Даже в такой сети пришлось добавить довольно много информации по маршрутам, а что делать, когда маршрутизаторов три/пять/десять? Тогда на помощь нам придет динамическая маршрутизация, но об этом в другой раз.