5.2. Непрямая маршрутизация
На рисунке 7 представлен более реальный пример internet — сеть содержит три сети Ethernet (три сети IP), соединенных IP-маршрутизатором (компьютер D). Каждая из сетей IP содержит по 4 компьютера и каждый из этих компьютеров имеет свои адреса IP и Ethernet.
A B C ----D---- E F G | | | | | | | | | --o------o------o------o- | -o------o------o------o-- Ethernet 1 | Ethernet 2 IP network "development" | IP network "accounting" | | | H I J | | | | --o-----o------o------o-- Ethernet 3 IP network "factory" Рисунок 7. Три сети IP в одной сети internet
На всех компьютерах, за исключением D, используется стек TCP/IP, показанный на рисунке 1. Компьютер D является IP-маршрутизатором — он подключен ко всем 3 сетям и, следовательно, имеет три адреса IP и 3 адреса Ethernet. В компьютере D используется стек TCP/IP, схематически изображенный на рисунке 3 (вместо двух адаптеров используется три). В компьютере D используются 3 модуля ARP и 3 драйвера Ethernet, но модуль IP по-прежнему один.
Администратор сети присваивает уникальный номер (IP-адрес) каждому из адаптеров Ethernet. Адреса IP не показаны на рисунке 7 — сети обозначены именами.
Когда компьютер A передает пакет IP компьютеру B, процесс не отличается от описанной выше прямой маршрутизации. Любой обмен пакетами между компьютерами одной сети IP осуществляется с использованием прямой маршрутизации.
При взаимодействии компьютеров D и A также используется прямая маршрутизация, аналогично протекает и процесс взаимодействия между компьютерами D и E, D и H (каждая из этих пар находится в одной сети IP).
Однако при обмене пакетами между компьютером A, расположенным по одну сторону маршрутизатора, и компьютером, расположенным по другую сторону маршрутизатора IP, прямая маршрутизация уже не будет работать. Компьютер A должен использовать маршрутизатор D для пересылки пакетов IP в другую IP-сеть. Такой процесс называется непрямой маршрутизацией (indirect routing).
Маршрутизация пакетов IP осуществляется IP-модулями и прозрачна для TCP, UDP и сетевых приложений.
Если A передает пакет IP компьютеру E, в качестве адресов отправителя указаны адреса IP и Ethernet компьютера A. Получателем пакетов IP является компьютер E и его адрес IP указывается в заголовке пакета, но, поскольку IP-модуль компьютера A посылает пакет маршрутизатору D для дальнейшей пересылки, в качестве Ethernet-адреса получателя указывается адрес D.
Адрес | Отправитель | Получатель |
Заголовок IP | A | E |
Заголовок Ethernet | A | D |
Модуль IP компьютера D получает пакет IP и проверяет IP-адрес получателя, после чего может сказать: «Это не мой адрес» — и переслать пакет IP компьютеру E, используя прямую маршрутизацию.
Адрес | Отправитель | Получатель |
Заголовок IP | A | E |
Заголовок Ethernet | D | E |
В заключении отметим, что для прямой маршрутизации используются явно указанные пары адресов IP — Ethernet отправителя и получателя, а в случае непрямой маршрутизации такие пары использоваться не могут.
Приведенный пример internet очень прост. В реальных сетях ситуация осложняется множеством факторов и приходится использовать многочисленные маршрутизаторы IP и различные типы физических сетей. Приведенный выше пример показывает, как администратор может разбить большую сеть Ethernet на несколько сетей для снижения размеров областей распространения широковещательного трафика Ethernet.