Сегодня мы более основательно рассмотрим некоторые аспекты маршрутизации. Прежде чем начать, я хочу ответить на вопрос студентов о моих страничках в социальных сетях. Слева я поместил ссылки на странички нашей компании, а справа – на мои персональные странички. Замечу, что я не добавляю человека в свои друзья на Facebook, если не знаю его лично, поэтому не стоит присылать мне запросы дружбы.
Вы просто можете подписаться на мою страничку Facebook и быть в курсе всех событий. Я отвечаю на сообщения в моем аккаунте LinkedIn, поэтому можете писать мне туда, и конечно, я проявляю максимальную активность в Twitter. Под этим видеоуроком размещены ссылки на все 6 социальных сетей, так что вы можете ими воспользоваться.
Как обычно, сегодня мы изучим три темы. Первая – это объяснение сути маршрутизации, где я расскажу вам о таблицах маршрутизации, статическом роутинге и так далее. Затем мы рассмотрим маршрутизацию Inter-Switch, то есть то, каким образом происходит маршрутизация между двумя свитчами. В конце урока мы ознакомимся с концепцией маршрутизации Inter-VLAN, когда один свитч взаимодействует с несколькими VLAN и каким образом происходит связь между этими сетями. Это очень интересная тема, и возможно, вы захотите пересмотреть её несколько раз. Есть ещё одна интересная тема, которая называется Router-on-a-Stick, или «маршрутизатор на палочке».
Итак, что такое таблица маршрутизации? Это таблица, на основе которой роутеры принимают решения маршрутизации. Вы видите, как выглядит типичная таблица маршрутизации роутеров Cisco. Каждый компьютер под управлением Windows тоже имеет таблицу маршрутизации, но это уже другая тема.
Буква R в начале строки означает, что маршрут к сети 192.168.30.0/24 обеспечивается протоколом RIP, C означает, что сеть напрямую подсоединена к интерфейсу роутера, S означает статическую маршрутизацию, а точка после этой буквы показывает, что этот маршрут является candidate default, или кандидатом по умолчанию для осуществления статической маршрутизации. Существует несколько типов статических маршрутов, и сегодня мы с ними познакомимся.
Рассмотрим для примера первую сеть 192.168.30.0/24. В строке вы видите два числа в квадратных скобках, разделенные слешем, мы уже о них говорили. Первое число 120 – это административная дистанция, характеризующая степень доверия к данному маршруту. Допустим, в таблице имеется ещё один маршрут к этой сети, обозначенный буквой C или S с меньшей величиной административной дистанции, например, 1, как для статического маршрутизации. В данной таблице вы не встретите двух одинаковых сетей, если мы не используем такой механизм, как балансировка нагрузки, но давайте предположим, что у нас имеются 2 записи для одной и той же сети. Так вот, если вы увидите меньшее число, это будет означать, что данный маршрут заслуживает большего доверия, и наоборот, чем больше значение административной дистанции, тем меньшего доверия заслуживает данный маршрут. Далее в строке указано, через какой интерфейс следует отправлять трафик – в нашем случае это порт 192.168.20.1 FastEthernet0/1. Вот из каких компонентов состоит таблица маршрутизации.
Теперь поговорим о том, как роутер принимает решения о маршрутизации. Выше я упомянул кандидата по умолчанию и сейчас скажу, что это означает. Предположим, к роутеру поступил трафик для сети 30.1.1.1, запись о которой отсутствует в таблице маршрутизации. В обычном случае роутер просто отбросит этот трафик, но если в таблице имеется запись о кандидате по умолчанию, это означает, что все, о чем роутер не знает, будет направляться к candidate default. В данном случае запись указывает, что трафик, поступивший для неизвестной роутеру сети, должен направляться дальше через порт 192.168.10.1. Таким образом, трафик для сети 30.1.1.1 проследует по маршруту, являющемуся кандидатом по умолчанию.
Когда роутеру поступает запрос на установление связи с каким-либо IP-адресом, он в первую очередь смотрит, не содержится ли этот адрес в каком-то определенном маршруте. Поэтому, когда он получит трафик для сети 30.1.1.1, то в первую очередь проверит, не содержится ли её адрес в конкретной записи таблицы маршрутизации. Так, если роутер получит трафик для 192.168.30.1, то проверив все записи, увидит, что этот адрес содержится в диапазоне адресов сети 192.168.30.0/24, после чего отправит трафик по этому маршруту. Не найдя никаких конкретных записей для сети 30.1.1.1, роутер отправит предназначенный ей трафик по маршруту candidate default. Вот каким образом принимаются решения: в первую очередь в таблице просматриваются записи конкретных маршрутов, а затем используется маршрут кандидата по умолчанию.
Давайте теперь рассмотрим различные типы статических маршрутов. Первый тип – это default route, или маршрут по умолчанию.
Как я уже сказал, если роутер получил трафик, который адресован неизвестной ему сети, он отправит его по маршруту по умолчанию. О том, что установлен маршрут по умолчанию, сообщает запись Gateway of last resort is 192.168.10.1 to network 0.0.0.0, то есть «Шлюз последнего обращения к сети 0.0.0.0 имеет IP-адрес 192.168.10.1». Этот маршрут указан в последней строке таблицы маршрутизации, озаглавленной буквой S с точкой.
Назначить этот параметр можно из режима глобальной конфигурации. Для обычного маршрута по протоколу RIP нужно набрать команду ip route , указав идентификатор соответствующей сети, в нашем случае 192.168.30.0, и маску подсети 255.255.255.0, а затем указать 192.168.20.1 как следующий хоп. Однако когда вы устанавливаете маршрут по умолчанию, вам не нужно указывать идентификатор сети и маску, вы просто набираете ip route 0.0.0.0 0.0.0.0, то есть вместо адреса маски подсети снова набираете четыре нуля, а в конце строки указываете адрес 192.168.20.1, который и будет означать маршрут по умолчанию.
Следующий тип статического маршрута – это Network Route, или сетевой маршрут. Для установки сетевого маршрута необходимо указать целую сеть, то есть использовать команду ip route 192.168.30.0 255.255.255.0, где 0 в конце маски подсети означает весь диапазон из 256 адресов сети /24, и указать IP-адрес следующего хопа.
Сейчас я нарисую сверху шаблон, изображающий команду установки маршрута по умолчанию и сетевого маршрута. Он выглядит следующим образом:
ip route первая часть адреса вторая часть адреса <IP-адрес следующего хопа >.
Для маршрута по умолчанию и первая, и вторая часть адреса будет состоять из 0.0.0.0, а для сетевого маршрута первая часть представляет собой идентификатор сети, а вторая – маску подсети. Далее будет расположен IP-адрес сети, в которую роутер решил совершить следующий хоп.
Для настройки маршрута хоста host route используется IP-адрес конкретного хоста. В шаблоне команды это будет первая часть адреса, в нашем случае это 192.168.30.1, которая указывает на конкретное устройство. Вторая часть представляет собой маску подсети 255.255.255.255, которая также указывает на IP-адрес конкретного хоста, а не на целую сеть /24. Затем нужно указать IP-адрес следующего хопа. Вот таким образом можно установить маршрут хоста.
Summary route — это сводный маршрут. Вы помните, что мы уже обсуждали вопрос суммирования маршрутов, когда у нас имеется некий диапазон IP-адресов. Возьмем для примера первую сеть 192.168.30.0/24 и представим, что у нас имеется роутер R1, к которому подсоединена сеть 192.168.30.0/24 с четырьмя IP-адресами: 192.168.30.4, 192.168.30.5, 192.168.30.6 и 192.168.30.7. Слеш 24 означает, что всего в этой сети 256 действительных адресов, однако в данном случае у нас имеется только 4 IP-адреса.
Если я сообщу, что весь трафик для сети 192.168.30.0/24 должен направляться по данному маршруту, это будет ложью, потому что такой IP-адрес, как 192.168.30.1, может быть недоступен через этот интерфейс. Поэтому в данном случае мы не можем использовать в качестве первой части адреса 192.168.30.0, а должны указать, какие конкретно адреса будут доступны. В данном случае 4 конкретных адреса будут доступный через правый интерфейс, а остальные адреса сети – через левый интерфейс роутера. Вот почему нам нужно настроить сводный, или суммарный маршрут.
Из принципов суммирования маршрутов мы помним, что в одной подсети первые три октета адреса остаются неизменными, и нам нужно создать подсеть, которая бы объединяла все 4 адреса. Для этого нам нужно указать в первой части адреса 192.168.30.4, а во второй части в качестве маски подсети использовать 255.255.255.252, где 252 означает, что в данной подсети содержится 4 IP-адреса: .4, .5., .6 и .7.
Если у вас в таблице маршрутизации будут присутствовать две записи: маршрут RIP для сети 192.168.30.0/24 и суммарный маршрут 192.168.30.4/252, то согласно принципам маршрутизации, приоритетным маршрутом для конкретного трафика будет именно Summary route. Все, что не будет относиться к этому конкретному трафику, станет использовать сетевой маршрут Network route.
Вот что представляет собой сводный маршрут – вы суммируете несколько конкретных IP-адресов и создаете для них отдельный маршрут.
В группе статических маршрутов имеется еще так называемый «плавающий маршрут», или Floating Route. Это резервный маршрут. Его используют в случае возникновения проблем с физическим соединением по статическому маршруту, который имеет величину административной дистанции, равную 1. В нашем примере это маршрут через IP-адрес 192.168.10.1 в последней строке таблицы маршрутизации, и в случае, когда этот маршрут разрывается на физическом уровне, используется резервный плавающий маршрут.
Для того, чтобы задействовать резервный маршрут, в конце строке команды вместо IP-адреса следующего хопа, который по умолчанию имеет величину, равную 1, указывают другую величину хопов, например, 5. Плавающий маршрут не указывается в таблице маршрутизации, потому что задействуется только в том случае, когда статический маршрут оказывается недоступным из-за повреждения.
Если вы что-то не поняли из того, о чем я только что рассказал, просмотрите это видео ещё раз. Если у вас все равно останутся вопросы, можете отправить мне письмо по электронной почте, и я вам все объясню.
А теперь давайте приступим к рассмотрению маршрутизации Inter-Switch. Слева на схеме расположен свитч, который обслуживает синюю сеть отдела продаж. Справа расположен другой свитч, который работает только с зеленой сетью отдела маркетинга. В данном случае используются два независимых свитча, которые обслуживают разные отделы, поскольку в этой топологии не используется общая сеть VLAN.
Если вам нужно установить связь между этими двумя свитчами, то есть между двумя разными сетями 192.168.1.0/24 и 192.168.2.0/24, то необходимо использовать роутер. Тогда эти сети смогут обмениваться пакетами и выходить в интернет через роутер R1. Если бы мы использовали по умолчанию VLAN1 для обоих свитчей, связав их физическим кабелям, они могли бы общаться друг с другом. Но поскольку это технически невозможно из-за разделения сетей, принадлежащих разным широковещательным доменам, то для их коммуникации необходим роутер.
Предположим, что каждый из свитчей имеет по 16 портов. В нашем случае мы не используем 14 портов, поскольку в каждом из отделов имеется всего по 2 компьютера. Поэтому в данном случае оптимально использовать VLAN, как показано на следующей схеме.
В этом случае синяя сеть VLAN10 и зеленая сеть VLAN20 имеют свой собственный широковещательный домен. Сеть VLAN10 соединена кабелем с одним портом роутера, а сеть VLAN20 – с другим портом, при этом оба кабеля исходят из разных портов свитча. Кажется, что благодаря этому прекрасному решению мы установили связь между сетями. Однако поскольку роутер имеет ограниченное число портов, то мы крайне неэффективного используем возможности этого устройства, занимая их таким образом.
Существует более эффективное решение – «роутер на палочке». При этом мы связываем порт свитча транком с одним из портов роутера. Мы уже говорили, что по умолчанию роутер не понимает инкапсуляции по стандарту .1Q, поэтому для связи с ним необходимо использовать транк. При этом происходит следующее.
Синяя сеть VLAN10 отправляет трафик через свитч к интерфейсу F0/0 роутера. Этот порт разделен на подинтерфейсы (sub-interface), каждый из которых имеет один IP-адрес, расположенный в диапазоне адресов либо сети 192.168.1.0/24, либо сети 192.168.2.0/24. Здесь возникает некая неопределенность – ведь для двух разных сетей нужно иметь два разных IP-адреса. Поэтому, хотя транк между свитчем и роутером создан на одном физическом интерфейсе, нам нужно создать два подинтерфейса для каждой VLAN. Таким образом, один подинтерфейс будет обслуживать сеть VLAN10, а второй – VLAN20. Для первого подинтерфейса нам нужно выбрать IP-адрес из диапазона адресов 192.168.1.0/24, а для второго – из диапазона 192.168.2.0/24. Когда VLAN10 будет отсылать пакет, шлюзом будет один IP-адрес, а когда пакет будет отсылать VLAN20, то в качестве шлюза будет использоваться второй IP-адрес. При этом «роутер на палочке» будет принимать решение относительно пропуска трафика от каждого из 2-х компьютеров, принадлежащих разным VLAN. Проще говоря, мы разделяем один физический интерфейс роутера на два или более логических интерфейсов.
Посмотрим, как это выглядит в программе Packet Tracer.
Я немного упростил схему, поэтому у нас имеется один компьютер PC0 с IP-адресом 192.168.1.10 и второй компьютер PC1 с адресом 192.168.2.10. При настройке свитча я выделяю один интерфейс для VLAN10, другой для VLAN20. Я захожу в консоль CLI и ввожу команду show ip interface brief, чтобы убедиться, что интерфейсы FastEthernet0/2 и 0/3 включены. Затем я просматриваю базу данных VLAN и вижу, что в данный момент все интерфейсы свитча являются частью VLAN по умолчанию. Затем я последовательно набираю команды config t и int f0/2, чтобы вызвать порт, к которому подключена VLAN отдела продаж.
Далее я использую команду switchport mode access. Режим access используется по умолчанию, поэтому я просто набираю эту команду. После этого я набираю switchport access VLAN10, и система отвечает, что поскольку такой сети не существует, она сама создаст VLAN10. Если вы хотите создать сеть VLAN вручную, например, VLAN20, нужно набрать команду vlan 20, после чего командная строка переключится на настройки виртуальной сети, изменив свой заголовок с Switch(config) # на Switch(config-vlan) #. Далее необходимо присвоить созданной сети имя MARKETING с помощью команды name <имя>. Затем настраиваем интерфейс f0/3. Я последовательно ввожу команды switchport mode access и switchport access vlan 20, после чего сеть оказывается подключенной к данному порту.
Таким образом, вы можете настроить свитч двумя способами: первый – используя команду switchport access vlan 10, после чего сеть создается автоматически на данном порту, второй – когда вы сначала создаете сеть, а затем привязываете её к конкретному порту.
Точно так же можно поступить с VLAN10. Я вернусь назад и повторю процесс ручной настройки для этой сети: войду в режим глобальной конфигурации, введу команду vlan 10, затем присвою ей имя name SALES и так далее. Сейчас я покажу вам, что произойдет, если этого не сделать, то есть позволить системе самой создать сеть VLAN.
Вы видите, что у нас есть обе сети, но вторая, которую мы создали вручную, имеет собственное имя MARKETING, в то время как первая сеть VLAN10 получила имя по умолчанию VLAN0010. Я могу это исправить, если сейчас в режиме глобальной конфигурации введу команду name SALES. Теперь вы видите, что после этого первая сеть изменила свое название на SALES.
Теперь вернемся в Packet Tracer и проверим, сможет ли компьютер PC0 связаться с компьютером PC1. Для этого я открою терминал командной строки первого компьютера и отправлю пинг в адрес второго компьютера.
Мы видим, то пингование закончилось неудачно. Причина в том, что PC0 отправил запрос ARP по адресу 192.168.2.10 через шлюз 192.168.1.1. При этом компьютер фактически спросил свитч, кто такой этот 192.168.1.1. Однако свитч имеет всего один интерфейс для сети VLAN10, и полученный запрос не может никуда уйти – он поступает на данный порт и здесь же погибает. Компьютер не получает ответа, поэтому причиной неудачи пинга указывается истечение время ожидания. Ответ не был получен, потому что в сети VLAN10 нет больше никакого устройства, кроме PC0. Более того, даже если бы оба компьютера были бы частями одной и той же сети, они все равно не смогли бы связаться, потому что имеют различный диапазон IP-адресов. Для того, чтобы заставить эту схему заработать, нужно использовать роутер.
Однако перед тем, как я покажу, как задействовать роутер, я сделаю небольшое отступление. Я соединю порт Fa0/1свитча и порт роутера Gig0/0 одним кабелем, а затем добавлю еще один кабель, который будет подключен к порту Fa0/4 свитча и порту Gif0/1 роутера.
Я привяжу сеть VLAN10 к порту f0/1 свитча, для чего введу команды int f0/1 и switchport access vlan10, а сеть VLAN20 – к порту f0/4, используя команды int f0/4 и switchport access vlan 20. Если теперь посмотреть на базу данных VLAN, видно, что сеть SALES привязана к интерфейсам Fa0/1, Fa0/2, а сеть MARKETING – к портам Fa0/3, Fa0/4.
Давайте снова вернемся к роутеру и войдем в настройки интерфейса g0/0, введем команду no shutdown и присвоим ему IP-адрес: ip add 192.168.1.1 255.255.255.0.
Аналогично настроим интерфейс g0/1, присвоив ему адрес ip add 192.168.2.1 255.255.255.0. Затем попросим показать нам таблицу маршрутизации, в которой теперь есть записи о сетях 1.0 и 2.0.
Посмотрим, сработает ли эта схема. Дождемся, пока оба порта свитча и роутера не станут зелеными, и повторим пингование IP-адреса 192.168.2.10. Как видите, все заработало!
Компьютер PC0 посылает запрос по протоколу ARP свитчу, свитч адресует его роутеру, а тот посылает компьютеру обратно свой MAC-адрес. После этого компьютер отправляет пакет пинга по этому же маршруту. Роутер знает, что сеть VLAN20 подсоединена к его порту g0/1, поэтому отправляет его свитчу, который пересылает пакет адресату – PC1.
Эта схема работает, но она неэффективна, так как занимает 2 интерфейса роутера, то есть мы нерационально используем технические возможности маршрутизатора. Поэтому я покажу, как то же самое можно проделать с помощью одного интерфейса.
Я удалю схему с двумя кабелями и восстановлю предыдущее соединение свитча и роутера одним кабелем. Интерфейс f0/1 свитча должен стать транк-портом, поэтому я возвращаюсь в настройки свитча и использую для данного порта команду switchport mode trunk. Порт f0/4 мы больше не используем. Далее мы используем команду show int trunk, чтобы посмотреть, правильно ли настроен порт.
Мы видим, что порт Fa0/1 работает в режиме транка по протоколу инкапсуляции 802.1q. Посмотрим на таблицу VLAN – мы видим, что интерфейс F0/2 занят под сеть отдела продаж VLAN10, а интерфейс f0/3 – под сеть маркетинга VLAN20.
При этом свитч подсоединен к порту g0/0 роутера. В настройках маршрутизатора я использую команды int g0/0 и no ip address, чтобы удалить IP-адрес этого интерфейса. Но этот интерфейс все равно работает, он не находится в состоянии shutdown. Если вы помните, роутер должен принимать трафик из обеих сетей – 1.0 и 2.0. Поскольку свитч соединен с роутером транком, по нему к роутеру будет поступать трафик и от первой, и от второй сети. Однако какой IP-адрес нужно присвоить интерфейсу роутера в данном случае?
G0/0 представляет собой физический интерфейс, который по умолчанию не имеет никакого IP-адреса. Поэтому мы используем концепцию логического подинтерфейса. Если я наберу в строке int g0/0, система выдаст два возможных варианта команды: слеш / или точку. Слеш используется при модульной настройке интерфейсов типа 0/0/0, а точка используется в том случае, если у вас имеется подинтерфейс.
Если я наберу в строке int g0/0. ?, то система выдаст мне диапазон возможных номеров логического подинтерфейса GigabitEthernet, которые указываются после точки: <0 – 4294967295>. Этот диапазон содержит более 4-х миллиардов номеров, то есть можно создать такое количество логических подинтерфейсов.
Я укажу после точки число 10, которое будет обозначать VLAN10. Теперь мы перешли в настройки подинтерфейса, о чем свидетельствует изменение заголовка строки настроек CLI на Router (config-subif) #, в данном случае это касается подинтерфейса g0/0.10. Сейчас я должен присвоить ему IP-адрес, для чего использую команду ip add 192.168.1.1 255.255.255.0. Перед тем, как установить этот адрес, необходимо выполнить инкапсуляцию, чтобы созданный нами подинтерфейс знал, какой протокол инкапсуляции нужно использовать — 802.1q или ISL. Я набираю в строке слово encapsulation, и система выдает возможные варианты параметров для этой команды.
Я использую команду encapsulation dot1Q. Технически вводить эту команду необязательно, но я набираю её для того, чтобы указать роутеру на то, какой протокол нужно применять для работы с VLAN, потому что в данный момент он работает как свитч, обслуживая транкинг VLAN. Этой командой мы указываем роутеру, что весь трафик должен инкапсулироваться по протоколу dot1Q. Далее в строке команды я должен указать, что эта инкапсуляция касается сети VLAN10. Cистема показывает нам используемый IP-адрес, и интерфейс для сети VLAN10 начинает работать.
Аналогичным образом я настраиваю интерфейс g0/0.20. Я создаю новый подинтерфейс, задаю протокол инкапсуляции и устанавливаю IP-адрес командой ip add 192.168.2.1 255.255.255.0.
При этом мне обязательно нужно удалить IP-адрес физического интерфейса, потому что сейчас физический интерфейс и логический подинтерфейс имеет один и тот же адрес для сети VLAN20. Для этого я последовательно набираю команды int g0/1 и no ip address. Затем я отключаю этот интерфейс, потому что он больше нам не нужен.
Далее я опять возвращаюсь к интерфейсу g0/0.20 и присваиваю ему IP-адрес командой ip add 192.168.2.1 255.255.255.0. Вот теперь все точно будет работать.
Сейчас я использую команду show ip route, чтобы посмотреть на таблицу маршрутизации.
Мы видим, что сеть 192.168.1.0/24 напрямую подсоединена к подинтерфейсу GigabitEthernet0/0.10, а сеть 192.168.2.0/24 напрямую подсоединена к подинтерфейсу GigabitEthernet0/0.20. Сейчас я вернусь в терминал командной строки PC0 и пропингую PC1. При этом трафик поступает к порту роутера, тот переводит его на соответствующий подинтерфейс и отправляет обратно через свитч компьютеру PC1. Как видите, пинг прошел успешно. Два первых пакета были отброшены, потому что переключение между интерфейсами роутера занимает некоторое время, к тому же устройства должны узнать MAC-адреса, но зато два других пакета успешно достигли адресата. Вот таким образом работает концепция «роутера на палочке».
Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас:
Dell R730xd в 2 раза дешевле? Только у нас
Источник: habr.com