ISP`s IT Аутсорсинг
Быстрый переход: Главная блога Главная сайта Форум
Если Вы чего то недопоняли или не нашли - задайте
вопрос на нашем форуме и мы попробуем Вам помочь.
Subnets.ru Регистрация IP и Автономных систем mega-net.ru

Метки статьи: ‘routing’

Добро пожаловать в блог! Надеемся, что Вы еще вернетесь.

Ответ на частые вопросы:

  • Как добавить статический маршут ?
  • Как посмотреть таблицу маршрутизации ?

Для примера будем добавлять маршрут в сеть 10.10.0.0/16 (маска 255.255.0.0) через gateway 10.10.1.1/24

Не забывайте, что маршрут добавится ТОЛЬКО если на вашем компьютере есть IP-адрес который входит в одну подсеть с gateway (в данном примере gateway 10.10.1.1, значит у вас должен быть настроен IP-адрес из сети 10.10.1.0/24 т.к IP-адрес gateway имеет маску /24 (255.255.255.0))

FreeBSD

Добавление:

route add 10.10.0.0/16 10.10.1.1

если после выполнения команды вам говорится, что команда не найдена, то используйте полный путь до команды route (и для других команд):

/sbin/route

так же если прочитать:

man route

то можно узнать, что статический роутинг можно добавить и так:

/sbin/route add -net 10.10.0.0 -netmask 255.255.0.0 10.10.1.1

Просмотр таблицы маршрутизации выполняется командой:

netstat -rn

с полным путем:

/usr/bin/netstat -rn

Удаление:

/sbin/route delete 10.10.0.0/16


Linux

Добавление:

route add -net 10.10.0.0/16 gw 10.10.1.1

альтернатива:

ip route add 10.10.0.0/16 via 10.10.1.1

Просмотр таблицы:

route -n

или используйте:

ip route

Удаление:

route delete -net 10.10.0.0 netmask 255.255.0.0


Windows

Откройте командную строку (cmd).

Добавление:

route add 10.10.0.0 mask 255.255.0.0 10.10.1.1

Просмотр:

route print

Удаление:

route delete 10.10.0.0 mask 255.255.0.0 10.10.1.1


Если у Вас все ещё есть вопросы, то прочтите мануал (инструкцию) к данным командам в Вашей ОС.

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Автор: Николаев Дмитрий (virus (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 8, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту

Policy-based routing — это более гибкий механизм маршрутизации пакетов, чем обычная адресная маршрутизация (destination routing).

Его главная особенность состоит в том, что перед маршрутизацией все пакеты проходят через
маршрутную карту (route-map), которая определяет, какие пакеты маршрутизировать и какой роутер будет следующим исходя из IP-адреса источника (source — source routing). Вы можете включить policy-based routing если хотите, чтобы некоторые пакеты были направлены по пути, отличному от очевидно самого короткого пути (the obvious shortest path), то есть пути взятого из таблицы маршрутизации.

Необходимость применения данного метода разнообразна, например когда необходимо маршрутизировать несколько подсетей в два и более канала от двух разных провайдеров т.к. каждый провайдер дал свою подсеть, а default gateway на cisco смотрит только на одного из провайдеров.

Допустим что:
У нас имеется cisco catalyst 3560G c IOS advanced ip services
интерфейс для стыка с провайдером «пров-1» vlan 10, IP-адресация 1.1.1.0/30
выделенная подсеть для раздачи под юзеров 192.168.241.0/26
IP-адрес 192.168.241.1 висит на vlan 20

интерфейс для стыка с провайдером «пров-2» vlan 11, IP-адресация 2.2.2.0/30
выделенная подсеть для раздачи под юзеров 10.0.18.0/26
IP-адрес 10.0.18.1 висит на vlan 21

при этом роутинг по умолчанию на cisco указан на «пров-1»

ip route 0.0.0.0 0.0.0.0 1.1.1.1

Соответственно получаем ситуацию когда подсеть выделенная от пров-2 будет улетать в канал от пров-1 и работать не будет. В этой ситуации нам и поможет policy-based routing

Как разрешить эту проблему используя policy-based routing:
Switch> enable
Switch# configure terminal
Switch(config)# ip routing
Switch(config)# sdm prefer routing
Switch(config)# exit
Switch# wri
Switch# reload

После того как cisco перезагрузится:

Создаем standart access-list (например номер 11) где описываем подсеть выделенную пров-2:
Switch> enable
Switch# configure terminal
Switch(config)# ip access-list standard 11
Switch(config-std-nacl)# permit 10.0.18.0 0.0.0.63
Switch(config-std-nacl)# exit

Далее создаем маршрутную карту указывая в ней созданный access-list как то что нужно матчить (match):

Switch(config)# route-map TEST permit 10
Switch(config-route-map)# matсh ip address 11
Switch(config-route-map)# set ip next-hop 2.2.2.1
Switch(config-route-map)# exit

Так мы создали маршрутную карту route-map с именем TEST, которая матчит IP-адреса из подсети пров-2 и выставляет как next-hop IP-адрес пров-2, теперь осталось её применить.

Заходим на интерфейс cisco на котором висит IP-адрес 10.0.18.1, который будет выступать в качестве default gateway для пользователей в этой подсети:

Switch(config)# int vlan 21
Switch(config-if)# ip policy route-map TEST
Switch(config-if)# exit
Switch(config-if)# exit
Switch# wri

Вот и все. Таким образом все пакеты приходящие от подсети 10.0.18.0/26 на интерфейс vlan 21 будут «улетать» в правильный канал, а именно канал от пров-2.

Командой Switch# debug ip policy вы можете включить режим, который поможет вам
определить, что делает policy-based routing — попадают ли пакеты под
соответствующие правила и информацию о маршрутизации пакета.


Внимание !!!
Внимательно отнеситесь к включению этого режима, так как он может дать на выходе очень много информации, что неблагоприятно отразится на работе вашего маршрутизатора. Используйте этот режим при низком трафике через маршрутизатор, или укажите список доступа, который будет ловить интересующие вас пакеты.


Посмотреть содержание маршрутной карты можно командой:
Switch# show route-map TEST

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Автор: Николаев Дмитрий (virus (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 6, среднее: 4,33 из 5)
Загрузка...
Отправить на почту Отправить на почту

Многие новички в сетях и FreeBSD сталкиваются с вопросом:

«Как соединить две сети если сервер на FreeBSD имеет физическое подключение к обеим сетям ?»

Схема сети

Схема сети

Иными словами сервер FreeBSD должен выступать в роли router (маршрутизатор).

Итак, что мы имеем:

  • Ethernet сеть
  • Две подсети класса «С» (/24 — маска 255.255.255.0)
  • Сервер FreeBSD с двумя сетевыми картами
  • Клиенты в обеих подсетях

Наша задача, чтобы клиенты из подсети 192.168.1.0/24 могли обмениваться трафиком с клиентами из подсети 192.168.0.0/24.

Сначала настроим сервер FreeBSD и заставим его передавать (маршрутизировать) пакеты из одной подсети в другую.

За это отвечает параметр net.inet.ip.forwarding, посмотрим в какое значение он имеет:

[root@freebsd ~]# sysctl net.inet.ip.forwarding
net.inet.ip.forwarding: 0

На данный момент его значение «0», а это значит, что сервер FreeBSD не будет выполнять маршрутизации.

Включим эту функцию:

[root@freebsd ~]# sysctl net.inet.ip.forwarding=1
net.inet.ip.forwarding: 0 -> 1

Так мы изменили значение с «0» на «1». Теперь нужно сделать, так чтобы после ребута это значение всегда было 1-цой. Это можно сделать 2-мя способами:

  1. в файл /etc/rc.conf добавить строчку: gateway_enable=»YES»
  2. в файл /etc/sysctl.conf добавить строчку: net.inet.ip.forwarding=1

На сервере у нас есть две сетевые карты и соответственно два интерфейса: em0 и em1.

Пусть em0 «смотрит» в сеть слева, а em1 в сеть справа. Назначим IP-адреса для интерфейсов FreeBSD сервера:

[root@freebsd ~]# ifconfig em0 add 192.168.1.1/24
[root@freebsd ~]# ifconfig em1 add 192.168.0.1/24


Примечание:

Если на команду ifconfig вы получаете ответ:
command not found
воспользуйтесь командой

[root@virus ~]# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz /usr/src/sbin/ifconfig
которая укажет где именно располагается утилита ifconfig
как видно из результата выполнения команды whereis утилита ifconfig находится /sbin/ifconfig
вводите полный путь до утилиты ifconfig, тогда надпись command not found появляться не будет и команда будет выполняться


Посмотрим что получилось:

[root@freebsd ~]# ifconfig -a

em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
           ether 00:02:a5:4e:92:48
           inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
           media: Ethernet autoselect (100baseTX <full-duplex>)
           status: active
em1: flags=8802<UP,BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
           ether 00:02:a5:4e:92:49
           inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
           media: Ethernet autoselect (100baseTX <full-duplex>)
           status: active

Рассмотрим что все это значит :

em0 и em1 — имена сетевых интерфейсов
флаг UP — означает что сетевая карта включена, если этого флага не будет, то пакеты не будут приниматься на этом интерфейсе (для включения воспользуйтесь командой: ifconfig ИМЯ_ИНТЕРФЕЙСА up)
ether — это mac-адрес этой сетевой карты
inet — назначенный IP-адрес для этого интерфейса и broadcast адрес для этой подсети
media — информация о скорости и дуплексе интерфейса
status — текущий статус интерфейса. Если status: no carrier, то это означает, что на сетевой карте нет линка.

Сохраним настройки, чтобы IP-адреса назначались интерфейсам после ребута сервера, для этого необходимо добавить в файл /etc/rc.conf следующие строчки:

ifconfig_em0=»inet 192.168.1.1 netmask 255.255.255.0″
ifconfig_em1=»inet 192.168.0.1 netmask 255.255.255.0″

Если на сервере вы используете firewall, например ipfw, то добавим правила разрешающие проход пакетов из одной сети в другую:

ipfw add 100 allow ip from 192.168.1.1/24 to 192.168.0.1/24
ipfw add 110 allow ip from 192.168.1.0/24 to 192.168.1.1/24

Теперь настройте клиентские компьютеры:

  • Выставить IP-адрес из нужной подсети: 192.168.1.ХХХ или 192.168.0.ХХХ
  • Выставить маску подсети 255.255.255.0
  • Выставить шлюз по умолчанию: для подсети 192.168.1.ХХХ это 192.168.1.1, а для подсети 192.168.0.ХХХ это 192.168.0.1 (именно эти IP-адреса на интерфейсах нашего FreeBSD сервера)

Наступило время проверить есть ли связь сервера и клиентов. Для этого возьмем заведомо рабочий клиентский компьютер из 2-х сетей, например это будут компьютеры с IP-адресами:

  • 192.168.1.11
  • 192.168.0.15

Воспользуемся утилитой ping на сервере:

[root@freebsd ~]# ping 192.168.1.11

Если результат будет таким:

PING 192.168.1.11 (192.168.1.11): 56 data bytes
64 bytes from 192.168.1.11: icmp_seq=0 ttl=64 time=0.466 ms
64 bytes from 192.168.1.11: icmp_seq=1 ttl=64 time=0.238 ms
64 bytes from 192.168.1.11: icmp_seq=2 ttl=64 time=0.272 ms
^C
— 192.168.1.11 ping statistics —
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.238/0.325/0.466/0.100 ms

Значит все хорошо и связь между сервером и клиентом есть. Проделайте тоже самое с 192.168.0.15.

Если результат ping отрицательный, то убедитесь что на клиентском компьютере правильно выставлен IP-адрес и маска подсети, а так же наличие линка на сетевой карте.

Теперь можно попробовать проверить связь между клиентскими компьютерами из разных подсетей.

Так же воспользуемся утилитой ping, но уже на компьютере с IP-адресом 192.168.1.11:

ping 192.168.0.15

Если ответ есть, то и свзяь между компьютерами из разных подсетей есть.

Если ответа нет, то воспользуемся утилитой tracert (для Windows) или traceroute (для FreeBSD):

tracert 192.168.0.15

Если сразу «идут звездочки»:

1 * * *

То проверьте правильность выставление шлюза по умолчанию.

Если трасса выглядит так:

1 192.168.1.1 (192.168.1.1) 0.421 ms 0.447 ms 0.485 ms
2 * * *

То пакет доходит до сервера, убедитесь что firewall сервера не блокирует пакеты и что клиентский компьютер с IP-адресом 192.168.0.15 правильно настроен и «видит» сервер (проверьте IP-адрес, маску подсети, шлюз по умолчанию и наличие ping до сервера)

Вы все проверили, но по прежнему ничего не работает ? Воспользуемся утилитой tcpdump на сервере, которая покажет пакеты проходящие через интерфейсы сервера:

[root@freebsd ~]# tcpdump -ni em0
и
[root@freebsd ~]# tcpdump -ni em1

Запустите пинг с одного клиентского компьютера из одной подсети на другой клиентский компьютер в другой подсети (как мы делали в примерах выше) и смотрите в вывод команды tcpdump на сервере, который будет примерно таким:

[root@freebsd ~]# tcpdump -ni em0

12:17:23.398376 IP 192.168.1.11 > 192.168.0.15: ICMP echo request, id 49222, seq 0, length 64
12:17:24.399906 IP 192.168.1.11 > 192.168.0.15: ICMP echo request, id 49222, seq 1, length 64

Т.е. компьютер 192.168.1.11 посылает пакет ICMP echo request до компьютера 192.168.0.15, но ответов мы не видим. Посмотри передает ли сервер эти пакеты на другую сетевую карту:

[root@freebsd ~]# tcpdump -ni em1

12:21:18.167017 IP 192.168.1.11 > 192.168.0.15: ICMP echo request, id 50246, seq 4, length 64
12:21:19.168022 IP 192.168.1.11 > 192.168.0.15: ICMP echo request, id 50246, seq 5, length 64

Видим, что запросы передаются на другой интерфейс сервера, но ответов по прежнему нет. Проверьте настройки компьютера 192.168.0.15 и отсутствие у него проблем с физическим подключением к сети.

Когда все работает вывод будет таким:

12:21:17.165998 IP 192.168.1.11 > 192.168.0.15: ICMP echo request, id 50246, seq 3, length 64
12:21:17.171199 IP 192.168.0.15 > 192.168.1.11: ICMP echo reply, id 50246, seq 3, length 64
12:21:18.167017 IP 192.168.1.11 > 192.168.0.15: ICMP echo request, id 50246, seq 4, length 64
12:21:18.171353 IP 192.168.0.15 > 192.168.1.11: ICMP echo reply, id 50246, seq 4, length 64

Мы видим стандартый вывод «запрос-ответ», когда на пакет ICMP echo request приходит ответ в виде пакета ICMP echo reply

Ссылки:

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Автор: Николаев Дмитрий (virus (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 7, среднее: 4,43 из 5)
Загрузка...
Отправить на почту Отправить на почту

В этой статье мы рассмотрим концепцию статических маршрутов. Для этого мы будем использовать заведомо проблемный сценарий для демонстрации условий, при которых желательно указывать интерфейс через который достижим адрес следующего хопа (Next Hop Address), когда вы конфигурируете статический маршрут.

Введние в статичскую маршрутизацию

Статический маршруты используются по ряду причин и чаще всего, когда не существует динамического маршрута к определенному месту назначения или когда включение динамического протокола маршрутизации не выполнимо. По умолчанию статические маршруты имеют административную дистанцию равную 1, что дает им преимущество над маршрутами изученными из динамических протоколов маршрутизации. Что такое административная дистанция и как она влияет на выбор маршрута, читайте в статье “Административная Дистанция”, опубликованной ранее на CicsoLab.RU.

Когда вы увеличиваете административную дистанцию в значение большем чем значение динамического протокола маршрутизации, статический маршрут будет работать только в случае, когда пропадет динамическая маршрутизация. Например, маршруты изученные из динамического протокола IGRP имеют административную дистанцию по умолчанию 100. Для того, чтобы конфигурировать статический маршрут, который будет перекрыт IGRP маршрутом, укажите административную дистанцию больше 100. Такой вид статической маршрутизации называется “плавающей”. Такой маршрут инсталлируется в таблицу маршрутизации только, когда более предпочтительный маршрут исчезнет оттуда. Например,

ip route 172.31.10.0 255.255.255.0 10.10.10.2 101

Обратите внимание, что административная дистанция 255, рассматривается как недостижимая и статический маршрут с административной дистанцией 255 никогда не будет введен в таблицу маршрутизации.

Если вы указали статический маршрут на броадкастовый интерфейс, маршрут вставляется в таблицу маршрутизации только когда этот броадкастовый интерфейс поднят. Такая конфигурация не рекомендуется потому что следующий хоп статического маршрута указывает на интерфейс, маршрутизатор думает, что каждый из хостов в диапазоне данного маршрута напрямую подсоединены к этому интерфейсу. Например,

ip route 0.0.0.0 0.0.0.0 Ethernet0

В такой конфигурации маршрутизатор выполняет ARP запросы на интерфейсе Ethernet0 для каждого узла, который попадает в маршрут по умолчанию, потому что маршрутизатор рассматривает все эти узлы как напрямую подсоединенные к этому интерфейсу.

Такой вид маршрута по умолчанию, особенное если он используется большим количеством пакетов ко многим разным сетям может привести к большой нагрузке на CPU и огромному ARP кэшу и даже к исчерпании свободной памяти на этот самый кэш.

Указание числового следующего хопа (next hop) для маршрута, предотвратит выполнение ARP запросов на каждый адрес. Однако, если интерфейс за которым лежит next hop упадет, а числовое значение следующего хопа достижимо через рекурсивный маршрут, вы должный указать и IP адрес следующего хопа и интерфейс через который данный next hop может быть найден. Например,

ip route 0.0.0.0 0.0.0.0 Serial 3/3 192.168.20.1

Проблема

Теперь рассмотрим небольшой проблемный сценарий. В данной сетевой диаграмме, существует два статических маршрута к одному и тому же месту назначения (172.31.10.0/24). Один маршрут является “плавающим” маршрутом. Это резервный путь к целевой сети. Проблема в данном сценарии в том, что плавающий маршрут никогда не инсталлируется не таблицу маршрутизации, когда основной канал падает.

Рис.1

Рис.1

R1 имеет маршрут по умолчанию который указывает на маршрутизатор сервис провайдера (ISP) для доступа в Интернет. R1 также имеет два канала к R2. T1 это основной канал, а 56К это резервный канал. На R1 настроен статический маршрут в сторону сети 172.31.10.0/24, который указывает на IP адрес интерфейса Serial0 маршрутизатора R2 (10.10.10.2) в качестве следующего хопа. R1 также имеет плавающий маршрут для сети 172.31.10.0/24 который указывает на IP адрес интерфейса Serial1 роутера R2 (192.168.20.2). Административная дистанция для такого плавающего статического маршрута установлена в значение 250. Задача, сделать так, чтобы пакеты ходили по 56К каналу в обоих направлениях только в случае падения основного канала.

Конфигурация R1
hostname R1
!
ip subnet-zero
!
interface Serial3/0
description ISP Link
ip address 192.168.10.1 255.255.255.252
clockrate 64000
!
interface Serial3/2
description Primary Link to R2
ip address 10.10.10.1 255.255.255.252
!
interface Serial3/3
description Backup Link to R2
ip address 192.168.20.1 255.255.255.252
clockrate 64000
!
ip classless
#Это маршрут по умолчнию на ISP router
ip route 0.0.0.0 0.0.0.0 Serial3/0
!
#Это основной маршрут к LAN.
ip route 172.31.10.0 255.255.255.0 10.10.10.2
!
#Это плавающий маршрут к LAN.
ip route 172.31.10.0 255.255.255.0 192.168.20.2 250

Таблица маршрутизации на R1 выглядит следующим образом:

R1#show ip route
Gateway of last resort is 0.0.0.0 to network 0.0.0.0
10.0.0.0/30 is subnetted, 1 subnets
C 10.10.10.0 is directly connected, Serial3/2
192.168.10.0/30 is subnetted, 1 subnets
C 192.168.10.0 is directly connected, Serial3/0
192.168.20.0/30 is subnetted, 1 subnets
C 192.168.20.0 is directly connected, Serial3/3
#Основной статический маршруи к LAN через канал T1.
172.31.0.0/24 is subnetted, 1 subnets
S 172.31.10.0 [1/0] via 10.10.10.2
#Статический маршрут по умолчнию в Internet.
S* 0.0.0.0/0 is directly connected, Serial3/0

Конфигурация R2

hostname R2
ip subnet-zero
!
interface Ethernet0
description Local LAN
ip address 172.31.10.2 255.255.255.0
!
interface Serial0
description Primary Link to R1
ip address 10.10.10.2 255.255.255.252
clockrate 56000
!
interface Serial1
description Backup Link to R1
ip address 192.168.20.2 255.255.255.252
!
ip classless
!
#Это основной маршрут по умолчнию.
ip route 0.0.0.0 0.0.0.0 10.10.10.1
#Это плавающий маршрут по умолчнию, используется если канал T1 неисправен.
ip route 0.0.0.0 0.0.0.0 192.168.20.1 250

R2 имеет маршрут по умолчанию инсталлированный через 10.10.10.1, и когда вы используете команду traceroute от R2 к ISP, пакеты ходят по каналу T1.

R2#show ip route
Gateway of last resort is 10.10.10.1 to network 0.0.0.0
172.31.0.0/24 is subnetted, 1 subnets
C 172.31.10.0 is directly connected, Ethernet0
192.168.20.0/30 is subnetted, 1 subnets
C 192.168.20.0 is directly connected, Serial1
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.10.10.0/30 is directly connected, Serial0
#Это основной маршрут по умолчнию.
S* 0.0.0.0/0 [1/0] via 10.10.10.1

R2#traceroute 192.168.10.2
.
Type escape sequence to abort.
Tracing the route to 192.168.10.2
.
1 10.10.10.1 16 msec 20 msec 16 msec
2 192.168.10.2 32 msec * 32 msec

R2 посылает ICMP пакеты к Internet хосту 192.168.30.1 с адресом отправителя 172.31.10.2.

R2#ping 192.168.30.1 source 172.31.10.2
Sending 5, 100-byte ICMP Echos to 192.168.20.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/32/32 ms

Если мы опускаем интерфейс Serial3/2 на R1, то мы ожидаем, что R1 инсталирует плавающий статический маршрут к сети 172.31.10.0, а R2 инсталирует плавающий статический маршрут для 0.0.0.0 через 192.168.20.1. И по идее трафик будет ходить по 56К каналу.

Выполним указанный тест и посмотрим так ли это на самом деле:

R1#show ip interface brief
Interface IP-Address OK? Method Status Protocol
Serial3/0 192.168.10.1 YES manual up up
Serial3/2 10.10.10.1 YES manual up up
Serial3/3 192.168.20.1 YES manual up up

R1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int s3/2
R1(config-if)#shut
R1(config-if)#end
2d21h: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial3/2, changed state to down
2d21h: %LINK-5-CHANGED: Interface Serial3/2, changed state to administratively down

R1#show ip interface brief
Interface IP-Address OK? Method Status Protocol
Serial3/0 192.168.10.1 YES manual up& up
Serial3/2 10.10.10.1 YES manual administratively down down
Serial3/3 192.168.20.1 YES manual up up

Взглянем на таблицы маршрутизации обоих роутеров.

R1#show ip route
Gateway of last resort is 0.0.0.0 to network 0.0.0.0
192.168.10.0/30 is subnetted, 1 subnets
C 192.168.10.0 is directly connected, Serial3/0
192.168.20.0/30 is subnetted, 1 subnets
C 192.168.20.0 is directly connected, Serial3/3
#Статический маршрут через канал T1 остался в таблице маршрутизации.
#Это не то, что мы ожидали увидеть, когда выключали Serial 3/2
172.31.0.0/24 is subnetted, 1 subnets
S 172.31.10.0 [1/0] via 10.10.10.2
#Маршрут по умолчнию в Интерент.
S* 0.0.0.0/0 is directly connected, Serial3/0

На маршрутизаторе R2 все правильно.

R2#show ip route
Gateway of last resort is 192.168.20.1 to network 0.0.0.0
172.31.0.0/24 is subnetted, 1 subnets
C 172.31.10.0 is directly connected, Ethernet0
192.168.20.0/30 is subnetted, 1 subnets
C 192.168.20.0 is directly connected, Serial1
S* 0.0.0.0/0 [250/0] via 192.168.20.1

Однако теперь более не возможно пинговать внешний хост 192.168.20.1, поскольку R1 пытается послать ICMP ответы через Serial3/2 который выключен.

R2#ping 192.168.30.1 source 172.31.10.2
Sending 5, 100-byte ICMP Echos to 192.168.20.1, timeout is 2 seconds:
…..
Success rate is 0 percent (0/5)

Итак плавающий статический маршрут не был инсталлирован на R1 и основной маршрут все еще находиться в таблице маршрутизации R1, даже хотя интерфейс Serial3/2 лежит.

Причина этого поведения в том, что статические маршруты являются рекурсивными по природе. У вас всегда статический маршрут будет храниться в таблице маршрутизации до тех пор пока у вас есть маршрут на следующий хоп. В данном случае, R1 думает, что он может получить 10.10.10.2 через 192.168.10.2, потому, что 192.168.10.2 это следующий хоп для 0.0.0.0 0.0.0.0. Маршрут на следующий хоп может быть более специфичным, менее специфичным или маршрутом по умолчанию. В этом сценарии вы думает, что поскольку линк упал, вы не должный иметь маршрута для 10.10.10.2, но если вы посмотрите на таблицу маршрутизации R1, вы увидите, что существует статический маршрут по умолчанию, указывающий на ISP роутер. Поэтому R1 думает, что он может достичь next hop (10.10.10.2) для сети 172.31.10.0/24, через свой маршрут по умолчанию и статический маршрут 172.31.10.0/24 через 10.10.10.2 остается в таблице маршрутизации, тем самым предотвращаю инсталляцию плавающего маршрута.

Для того, чтобы предотвратить данную проблему вы должны указать интерфейс через который может быть найден следующий хоп. Тогда плавающий маршрут будет инсталлироваться только в случае, когда IP адрес next-hop будет достижим через указный интерфейс. Решение, заключается в удалении старого статического маршрута к сети 172.31.10.0 и добавлении нового, но на этот раз указываем интерфейс, через который достижим IP адрес следующего хопа. Это позволит инсталлировать плавающий маршрут, когда упадет интерфейс Serial3/2.

R1(config)#no ip route 172.31.10.0 255.255.255.0 10.10.10.2
R1(config)#no ip route 172.31.10.0 255.255.255.0 192.168.20.2 250
R1(config)#ip route 172.31.10.0 255.255.255.0 Serial3/2 10.10.10.2
R1(config)#ip route 172.31.10.0 255.255.255.0 Serial3/3 192.168.20.2 250

Статический маршрут к сети 172.31.10.0 через 10.10.10.2 будет находиться в таблице маршрутизации только, если 10.10.10.2 будет виден через интерфейс Serial3/2. Если данное условие не выполняется, статический маршрут через 10.10.10.2 удаляется их таблицы и взамен инсталлируется плавающий маршрут через Serial 3/3 и следующий хоп 192.168.20.2.

По материалам: cisco.com

Оригинал статьи тут

Ссылки:

Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 4, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту

Большинство протоколов маршрутизации имеют структуры метрик и алгоритмы, которые не совместимы с другими протоколами. В сетях с множеством протоколов маршрутизации, обмен маршрутной информацией и способностью выбрать наилучший путь для пакетов данных является критически важным моментом.

Для того чтобы выбрать наилучший путь, когда существует два или более различных маршрутов к одной и той же конечной точке от двух различных протоколов маршрутизации, роутеры используют функцию, которая называется административной дистанцией

Выбираем наилучший путь

Административная дистанция это первый критерий который использует маршрутизатор, чтобы определить какой протокол маршрутизации использовать если два протокола предоставляют маршрутную информацию к одному и тому же месту назначения. Административная дистанция это мера доверия или надежности к источнику маршрутной информации. Административная дистанция имеет только местное значение и не вещается в маршрутных обновлениях (routing updates).

Чем меньше численное значение административной дистанции, тем более надежен протокол. Например, если роутер принимает маршрут к определенной сети и через OSPF и через IGRP, маршрутизатор выберет протокол IGRP, поскольку IGRP более надежен. Это значит, что маршрутизатор добавит в свою роутинговую таблицу маршрут от протокола IGRP.

Если вдруг, вы потеряли источник IGRP информации (например, выключили питание на нем), роутер будет использовать информацию поставляемую протоколом OSPF, до тех пор пока источник IGRP маршрутов не возобновит свою работу.

Таблица значений административной дистанции

Ниже представлена таблица, где показаны численные значения административной дистанции для различных протоколов маршрутизации, используемые по умолчанию.

Connected interface 0
Static route 1
Enhanced Interior Gateway Routing Protocol (EIGRP) summary route 5
External Border Gateway Protocol (BGP) 20
Internal EIGRP 90
IGRP 100
OSPF 110
Intermediate System-to-Intermediate System (IS-IS) 115
Routing Information Protocol (RIP) 120
Exterior Gateway Protocol (EGP) 140
On Demand Routing (ODR) 160
External EIGRP 170
Internal BGP 200
Unknown 255

Если административная дистанция равна 255, роутер не доверяет источнику маршрута и никогда не инсталлирует такой маршрут в таблицу маршрутизации.

Вы можете изменить административную дистанцию для определенных маршрутов. Например, вы хотите использовать статические маршруты как резервные к динамическому протоколу маршрутизации. Это обычно используется для поднятия резервного канала, когда основной канал падает. Это называется плавающая статическая маршрутизация.

ip route 10.0.0.0 255.0.0.0 Dialer 1 250

Здесь административная дистанция для маршурута 10.0.0.0/8 установлена в значение 250.

Таблица маршрутизации может выглядеть следующий образом

R1#show ip route

Gateway of last resort is not set

172.16.0.0/24 is subnetted, 1 subnets
C 172.16.1.0 is directly connected, Ethernet0
R 10.0.0.0/8 [120/1] via 172.16.1.200, 00:00:16, Ethernet0
C 192.168.1.0/24 is directly connected, Loopback0

Если интерфейс Ethernet0 упадет, то в таблицу маршрутизации инсталлируется плавающий статический маршрут и весь трафик предназначенный для сети 10.0.0.0/8 будет маршрутизироваться через интерфейс Dialer 1 и по резервному каналу.

R1#show ip route
Gateway of last resort is not set
172.16.0.0/24 is subnetted, 1 subnets
C 172.16.1.0 is directly connected, Ethernet0
S 10.0.0.0/8 is directly connected, Dialer1
C 192.168.1.0/24 is directly connected, Loopback0

Как только Ethernet интерфейс подниматься обратно, то в таблицу сразу же инсталлируется маршрут от динамического протокола RIP и трафик снова пойдет через Ethernet 0.

По материалам: cisco.com

Оригинал статьи тут

Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 4, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту