Routing table что это

Таблица маршрутизации

Материал из Xgu.ru

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

Пример таблицы маршрутизации (ОС Linux):

При отправке сетевого пакета, операционная система смотрит, по какому именно маршруту он должен быть отправлен, основываясь на таблице маршрутизации. Как правило, выбирается наиболее конкретный (то есть, с наболее длинной сетевой маской) маршрут из тех, которые соответствуют адресу отправителя. Если ни один из маршрутов не подходит, пакет уничтожается, а его отправителю возвращается ICMP-сообщение No route to host.

[править] Просмотр таблицы маршрутизации

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

В Linux это можно сделать также при помощи команд route и ip.

А также напрямую просмотрев файл /proc/net/route:

Таблица маршрутизации в устройствах Cisco ASA:

В Android (как и в любом Linux):

[править] Модификация таблицы маршрутизации

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

В момент начальной загрузки системы таблица маршрутизации пуста, и пополняется потом, по мере загрузки системы и её дальнейшей работы.

[править] В маршрутизаторах Cisco

По умолчанию (пока маршрутизатор не настроен) таблица маршрутизации пуста. Источников заполнения её может быть несколько:

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

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

Administrative distance (AD) — это число, присвоенное каждому из возможных источников маршрутов, которое является некой степенью доверия к источнику. В таблицу маршрутизации попадет маршрут от того источника у которого меньше значение AD. AD имеет только локальное значение и никак не влияет на принятие решения на других маршрутизаторах.

Например, у непосредственно присоединенных сетей значение AD — 0, у статических — 1, OSPF — 110.

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

Значения AD для маршрутизаторов Cisco указаны на странице Маршрутизация в Cisco.

Источник

Linux.yaroslavl.ru

Как пакеты находят путь к машине назначения? Эта задача подробно рассматривается в этой главе.

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

IP-сети построены подобным образом. Весь Inetrnet состоит из набора сетей, названных автономными системами ( autonomous systems ). Каждая такая система производит всю маршрутизацию между своими членами так, что задача посылки пакетов сведена к обнаружению пути к сети с требуемым хостом. Это означает, что как только пакет вручен любому хосту, который находится в нужной сети, обработка выполняется исключительно данной сетью.

Эта структура отражена в разбиении IP-адреса на хост и сетевую часть, как объяснено выше. По умолчанию, сеть места назначения получается из сетевой части IP-адреса. Таким образом, хосты с идентичными IP-адресами сети должны располагаться в пределах одной подсети и наоборот.

Имеет смысл предложить подобную схему также и внутри сети, так как она может состоять из набора сотен меньших сетей, где самыми маленькими единицами являются физические сети типа Ethernet. Поэтому IP позволяет поделить IP-сеть на несколько подсетей ( subnets ).

Стоит заметить, что subnetting (техника создания подсетей) чисто внутреннее дело сети. Подсети создаются сетевым владельцем (или администратором). Часто подсети создаются, чтобы отразить существующие границы, будь они физические (две сети Ethernet), административные (между двумя отделами) или географические. Однако, эта структура воздействует только на внутреннее поведение сети и полностью невидима для внешнего мира.

Subnetting не только организационное деление, но часто и естественное следствие границ аппаратных средств. Знания хостов о строении данной физической сети, типа Ethernet, являются очень ограниченными: единственные хосты, с которыми они способны говорить непосредственно, те, что находятся в той же сети. Ко всем другим хостам они могут обращаться только через так называемый gateway (шлюз). Gateway, это хост, который связан с двумя или больше физическими сетями одновременно и конфигурирован так, чтобы перекачивать пакеты между ними.

ИнтерфейсАдресМаска подсети
eth0149.76.4.1255.255.255.0
fddi0149.76.1.1255.255.255.0
lo127.0.0.1255.0.0.0

Вообще, вы можете не обращать внимание на различия между адресами хоста и интерфейса. Относитесь к адресу хоста, который находится только в одной сети, как к адресу того и другого, хотя строго говоря, это Ethernet-интерфейс имеет IP-адрес. Однако, это различие ощутимо только, когда вы работаете с gateway.

Теперь сосредоточим наше внимание на том, как IP выбирает gateway при доставке пакетов определенной сети.

СетьNetmaskGatewayИнтерфейс
149.76.1.0255.255.255.0fddi0
149.76.2.0255.255.255.0149.76.1.2fddi0
149.76.3.0255.255.255.0149.76.1.3fddi0
149.76.4.0255.255.255.0eth0
149.76.5.0255.255.255.0149.76.1.5fddi0
0.0.0.00.0.0.0149.76.1.2fddi0

Маршруты к сетям, с которыми sophus связан непосредственно, обозначаются знаком «-» в столбце gateway.

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

Процесс определения правильного маршрута прост, но требует знания логики и двоичной арифметики: маршрут совпадает с пунктом назначения, если (адрес сети AND netmask)=(адрес назначения AND netmask).

Это означает, что маршрут правильный, если числу бит адреса сети, указанное netmask (начиная с левого бита) соответствует то же самое число битов в адресе назначения.

Когда реализация IP ищет самый лучший маршрут к адресату, может найтись ряд записей маршрутизации, которые соответствуют целевому адресу. Например, мы знаем, что заданный по умолчанию маршрут соответствует каждому адресату, но пакеты, предназначенные для местных сетей, будут соответствовать и их локальному маршруту. Как узнать, какой маршрут использовать? Здесь netmask играет важную роль. В то время как оба маршрута соответствуют адресату, один из маршрутов имеет большую netmask, чем другой. Я уже упомянул, что netmask используется, чтобы разбить наше адресное пространство на меньшие сети. Больший netmask более определенно задает целевой адрес, значит, при маршрутизации мы должны всегда выбирать маршрут, который имеет самую большую netmask. Заданный по умолчанию маршрут имеет netmask из нулевых битов, и в конфигурации, приведенной выше, местные сети имеют 24-разрядный netmask. Если пакет соответствует местной сети, он будет направлено на соответствующее устройство, а не на заданный по умолчанию маршрут, потому что локальный сетевой маршрут соответствует netmask с большим числом битов. Единственный пакет, который будет направлен через заданный по умолчанию маршрут это тот, который не соответствует вообще никакому другому маршруту.

Динамическая маршрутизация, основанная на RIP, выбирает самый лучший маршрут к некоторому хосту или сети, основываясь на наборе hops (переходов), то есть пакетов, рассылаемых перед передачей основной информации. Чем более короткий маршрут, тем лучше RIP его оценивает. Очень длинные маршруты с 16 или больше hops рассматриваются как неподходящие и отвергаются.

Чтобы использовать RIP для управления информацией, маршрутизируемой внутри вашей сети, вы должны запустить gated на всех хостах. Во время загрузки gated проверяет все активные сетевые интерфейсы. Если имеется больше одного активного интерфейса (не считая loopback), он предполагает, что хост передает пакеты между несколькими сетями и будет активно обмениваться маршрутной информацией. Иначе, он будет только пассивно получать RIP-пакеты и модернизировать локальную таблицу маршрутизации.

Источник

Таблица маршрутизации

Материал из Xgu.ru

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

Пример таблицы маршрутизации (ОС Linux):

При отправке сетевого пакета, операционная система смотрит, по какому именно маршруту он должен быть отправлен, основываясь на таблице маршрутизации. Как правило, выбирается наиболее конкретный (то есть, с наболее длинной сетевой маской) маршрут из тех, которые соответствуют адресу отправителя. Если ни один из маршрутов не подходит, пакет уничтожается, а его отправителю возвращается ICMP-сообщение No route to host.

[править] Просмотр таблицы маршрутизации

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

В Linux это можно сделать также при помощи команд route и ip.

А также напрямую просмотрев файл /proc/net/route:

Таблица маршрутизации в устройствах Cisco ASA:

В Android (как и в любом Linux):

[править] Модификация таблицы маршрутизации

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

В момент начальной загрузки системы таблица маршрутизации пуста, и пополняется потом, по мере загрузки системы и её дальнейшей работы.

[править] В маршрутизаторах Cisco

По умолчанию (пока маршрутизатор не настроен) таблица маршрутизации пуста. Источников заполнения её может быть несколько:

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

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

Administrative distance (AD) — это число, присвоенное каждому из возможных источников маршрутов, которое является некой степенью доверия к источнику. В таблицу маршрутизации попадет маршрут от того источника у которого меньше значение AD. AD имеет только локальное значение и никак не влияет на принятие решения на других маршрутизаторах.

Например, у непосредственно присоединенных сетей значение AD — 0, у статических — 1, OSPF — 110.

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

Значения AD для маршрутизаторов Cisco указаны на странице Маршрутизация в Cisco.

Источник

Маршрутизация — принцип работы и таблица маршрутизации

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

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Маршрутизация состоит из двух этапов:

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Варианты действий маршрутизатора

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

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Рассмотрим маршрутизатор D, на него пришел пакет, и маршрутизатор должен решить, что ему делать с этим пакетом. Начнем с того, какие вообще возможны варианты действий у маршрутизатора. Первый вариант, сеть которой предназначен пакет подключена непосредственно к маршрутизатору. У маршрутизатора D таких сетей 3, в этом случае маршрутизатор передает пакет непосредственно в эту сеть.

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Второй вариант, нужная сеть подключена к другому маршрутизатору (А), и известно, какой маршрутизатор нужен. В этом случае, маршрутизатор D передает пакет на следующий маршрутизатор, который может передать пакет в нужную сеть, такой маршрутизатор называется шлюзом.

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

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

Что нужно знать маршрутизатору для того чтобы решить куда отправить пакет?

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Таблица маршрутизации

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

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Первые два столбца это адрес и маска подсети, вместе они задают адрес подсети. Затем столбцы шлюз, интерфейс и метрика. Столбец интерфейс говорит о том, через какой интерфейс маршрутизатора нам нужно отправить пакет.

Таблица маршрутизации Windows

Продолжим рассматривать маршрутизатор D, у него есть три интерфейса. Ниже на картинке представлен вид таблицы маршрутизации для windows, которые в качестве идентификатора интерфейса используют ip-адрес, который назначен этому интерфейсу. Таким образом в столбце интерфейс есть 3 ip-адреса, которые соответствуют трем интерфейсам маршрутизатора.

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Столбец шлюз, говорит что делать с пакетом, который вышел через заданный интерфейс. Для сетей, которые подключены напрямую к маршрутизатору D, в столбце шлюз, указывается «подсоединен», которое говорит о том, что сеть подключена непосредственно к маршрутизатору и передавать пакет нужно напрямую в эту сеть.

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Если же нам нужно передать пакет на следующий маршрутизатор то в поле шлюз указывается ip-адрес этого маршрутизатора.

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Таблица маршрутизации Linux

В операционной системе linux таблица маршрутизации выглядит немного по-другому, основное отличие это идентификатор интерфейсов. В linux вместо ip-адресов используется название интерфейсов. Например, wlan название для беспроводного сетевого интерфейса, а eth0 название для проводного интерфейса по сети ethernet.

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Также здесь некоторые столбцы удалены для сокращения (Flags, Ref и Use). В других операционных системах и в сетевом оборудовании вид таблицы маршрутизации может быть несколько другой, но всегда будут обязательны столбцы ip-адрес, маска подсети, шлюз, интерфейс и метрика.

Только следующий шаг!

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

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

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

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

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Метрика

Можно заметить, что в нашей схеме в одну и ту же сеть, например вот в эту (10.2.0.0/16) можно попасть двумя путями, первый путь проходят через один маршрутизатор F, а второй путь через два маршрутизатора B и E.

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

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

Какой путь выбрать? Для этого используются поле метрика таблицы маршрутизации.

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Метрика это некоторое число, которые характеризует расстояние от одной сети до другой. Если есть несколько маршрутов до одной и той же сети, то выбирается маршрут с меньшей метрикой.

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Раньше, метрика измерялось в количестве маршрутизаторов, таким образом расстояние через маршрутизатор F было бы один, а через маршрутизаторы B и E два.

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Однако сейчас метрика учитывает не только количество промежуточных маршрутизаторов, но и скорость каналов между сетями, потому что иногда бывает выгоднее пройти через два маршрутизатора, но по более скоростным каналам. Также может учитываться загрузка каналов, поэтому сейчас метрика — это число, которое учитывает все эти характеристики. Мы выбираем маршрут с минимальной метрикой в данном примере выше, будет выбран первый маршрут через маршрутизатор F.

Записи в таблице маршрутизации

Откуда появляются записей в таблице маршрутизации? Есть два варианта статическая маршрутизация и динамическая маршрутизация.

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

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

Маршрут по умолчанию

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

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

Предполагается что этот маршрутизатор лучше знает структуру сети, и способен найти маршрут в составной сети. Для обозначения маршрута по умолчанию, в таблице маршрутизации используются четыре нуля в адресе подсети и четыре нуля в маске (0.0.0.0, маска 0.0.0.0), а иногда также пишут default.

Ниже пример маршрута по умолчанию в таблице маршрутизации в операционной системе linux.

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

Ip-адрес и маска равны нулю, в адрес и шлюз указываются ip-адрес маршрутизатора по умолчанию.

Длина маски подсети

Рассмотрим пример. Маршрутизатор принял пакет на ip-адрес (192.168.100.23), в таблице маршрутизации есть 2 записи (192.168.100.0/24 и 192.168.0.0/16) под который подходит этот ip-адрес, но у них разная длина маски. Какую из этих записей выбрать? Выбирается та запись, где маска длиннее, предполагается, что запись с более длинной маской содержит лучший маршрут интересующей нас сети.

Чтобы понять почему так происходит, давайте рассмотрим составную сеть гипотетического университета. Университет получил блок ip-адресов, разделил этот блок ip-адресов на две части, и каждую часть выделил отдельному кампусу.

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

На кампусе находятся свои маршрутизаторы, на которых сеть была дальше разделена на части предназначенные для отдельных факультетов. Разделение сетей производится с помощью увеличения длины маски, весь блок адресов имеет маску / 16, блоки кампусов имеют маску / 17, а блоки факультетов / 18.

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

Routing table что это. lazy placeholder. Routing table что это фото. Routing table что это-lazy placeholder. картинка Routing table что это. картинка lazy placeholder

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

И так получается, что выбирается всегда маршрут с маской максимальной длины. Общие правила выбора маршрутов следующие.

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

Для того чтобы просмотреть таблицу маршрутизации, можно использовать команды route или ip route (route print (Windows); route и ip route (Linux)).

Маршрутизация — поиск маршрута доставки пакета между сетями через транзитные узлы — маршрутизаторы.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *