воскресенье, 25 июля 2010 г.

Сети. Основы. Часть 4.

Продолжение =) теперь про маршрутизацию пакетов.



Напомню, что оригинал вы можете найти тут. Кроме того, еще раз выражаю свою благодарность Refresh'у. =)

Маршрутизация IP пакетов

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

Что такое таблица маршрутизации? Просто говоря эта таблица в которой сказано примерно это: если пакет пришел с узла xxx.xxx.xxx.xxx и ему нужен узел yyy.yyy.yyy, то надо отправить его через nnn.nnn.nnn.nnn маршрутизатор. Тут я все обобщил и упростил, на самом деле все сложнее.
Рассмотрим следующую сеть:

схема сети

У нас есть 4 сети класса С, которые связанны между собой маршрутизаторами, выход в Интернет осуществляется через шлюз GW.
Маршрутизатор R1 имеет 3 активных интерфейса:
1 – 192.168.1.5, подключен к сети 192.168.1.0
2 – 192.168.5.1, подключен к маршрутизатору R2
3 – 192.168.2.5, подключен к сети 192.168.2.0
Маршрутизатор R2 имеет 4 активных интерфейса:
1 – 192.168.3.5, подключен к сети 192.168.3.0
2 – 192.168.5.2, подключен к маршрутизатору R1
3 – 192.168.4.5, подключен к сети 192.168.4.0
4 – 192.168.5.3, подключен к шлюзу GW
Шлюз GW имеет 2 интерфейса:
1 – 192.168.5.4, подключен к маршрутизатору R2
2 – 86.110.119.34, подключен к сети Интернет.
Рассмотрим компьютер A1 из сети 192.168.1.0/24, его таблица маршрутизации схематично выглядит так:

Сеть 192.168.1.0/24 – A1
Остальные сети - R1
Это значит что вопросы пересылки в своей сети A1 будет решать сам. А если надо будет обратиться к другим сетям то пакет будет пересылаться маршрутизатору R1.

Таблица у С1 будет выглядеть так:
Сеть 192.168.3.0/24 – C1
Остальные сети – R2
Для остальных ПК можно без труда составить такую таблицу.

Теперь посмотрим как поведет себя пакет направленный от A1 к D1:
IP адрес отправителя (A1) – 192.168.1.1
IP адрес получателя (D1) – 192.168.4.1

Значит при создании IP пакета на компьютере A1 служебные поля заголовка IP пакета адрес будут следующие:

заголовок IP пакета А1

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

таблица маршрутизации А1

127.0.0.1 это зарезервированный адрес (loopback)
192.168.1.0/24 это адрес сети компьютера A1, значит если IP адрес получателя будет иметь вид 192.168.1.x то этот пакет пойдет в сеть 192.168.1.0/24.
В последней строчке назначение 0.0.0.0 используется для того что бы сказать «все остальные пакеты посылать на такой-то адрес», в терминологии маршрутизации это строка указывает на «шлюз по умолчанию» (Default Gateway).
Значит проанализировав заголовок нашего IP пакета A1 перешлет его на адрес 192.168.1.5 (интерфейс 1 маршрутизатора R1).

У маршрутизатора R1 таблица маршрутов выглядит так:

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

Следуя этой таблице маршрутизатор будет оперировать с пакетами так:
Если у пришедшего пакета в IP заголовке стоит адрес получателя из сети 192.168.1.0 то этот пакет пойдет через сетевой порт которому присвоен IP адрес 192.168.1.5
Если у пришедшего пакета в IP заголовке стоит адрес получателя из сети 192.168.2.0 то этот пакет пойдет через сетевой порт которому присвоен IP адрес 192.168.2.5
Если у пришедшего пакета в IP заголовке стоит другой адрес получателя, то этот пакет пойдет через сетевой порт которому присвоен IP адрес 192.168.5.1, то есть на маршрутизатор R2.

В соответствии с этой таблицей наш пакет пойдет на маршрутизатор R2 (192.168.5.2), который подключен к интерфейсу 192.168.5.1

У маршрутизатора R2 таблица маршрутов выглядит так:

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

Наш пакет пойдет на интерфейс которому присвоен адрес 192.168.4.5 дойдет до D1.

А теперь предположим что вам надо послать пакет в интернет с компьютера A1:
Удаленный адрес – 77.23.54.22
1)A1 определяет что маршрут в сеть получателя не указан в его маршрутной таблице, значит он передает пакет шлюзу по умолчанию (R1)
2)R1 так же не находит в своей таблице информацию о этом маршруте, передает его на R2
3)R2 передает его шлюзу (GW)
4)Шлюз в свою очередь передает его вышестоящему маршрутизатору, и так пока сеть получателя не будет найдена.

На этом пока все =)