Маршрутизация в сетях TCP/IP. Сети класса D. Семейство протоколов ТСР/IР. Диапазон адресов. Диапазон значений, страница 5

192.173.7.48                     255.255.255.240                прямая                                отсутствует        Eth2

Как вы наверное уже догадались, «Интерфейс» – это внутренне имя сетевой платы. На шлюзе их три – по количеству видимых сетей, на узле – одна. Справа – рисунок, поясняющий топологию сети и иллюстрирующий распределение адресов (все в соответствии с примером разбиения сети класса С на несколько подсетей, просто переведите шестнадцатеричные цифры в десятичные). Для удобства распознавания, компьютеры обозначены, кроме адресов, еще и именами. Заметьте, шлюз во всех трех сетях для доступа к любому узлу использует прямую маршрутизацию – между ним и любым другим узлом нет шлюзов (хотел сказать – секретов).

Теперь о том, как конкретно будет «мыслить» модуль IP в различных ситуациях. Рассмотрим прямую маршрутизацию. Это, например, когда узел А хочет отправить пакет узлу В. Или узел E узлу Н, или узел L узлу K, или узел S любому из узлов. Как бы то ни было, модуль IP выделяет из конечного IP-адреса адрес сети, обращается к таблице маршрутов и обнаруживает запись о том, что маршрут до этой сети прямой. Тогда модуль, не долго думая, обращается к ARP-таблице, выбирает оттуда Ethernet адрес узла, формирует кадр Ethernet и отправляет его конечному потребителю. Немногим сложнее дело обстоит с косвенной маршрутизацией: модуль IP, обнаружив, что сеть несколько отличается от его собственной (например, узлы К, сеть – 192.173.7.48, и А, сеть – 192.173.7.16), о чем будет свидетельствовать запись в таблице маршрутов (таблица маршрутов узла К: тип маршрутизации – косвенная), он выберет оттуда же адрес шлюза (193.173.7.53), которому имеет смысл переслать пакет и забыть про него. Дальнейший алгоритм аналогичен предыдущему случаю: ARP-таблица, Ethernet кадр, отправка. Тут есть одна тонкость, обратим внимание на адреса в Ethernet кадре и в пакете IP. В первом случае пакет IP и кадр Ethernet будут содержать в поле адреса получателя соответственно IP адрес и Ethernet адрес одного и того же компьютера, а во втором случае, IP-адрес будет соответствовать компьютеру-получателю, а Ethernet адрес – шлюзу. То есть, во втором случае модуль IP оставит в заголовке IP-пакета адрес узла А, а в кадр Ethernet после выборки из ARP-таблицы вставит адрес шлюза S.

Интересно, спросите вы, а как формируются таблицы маршрутов, откуда они вообще берутся? Законно. Можно пойти двумя путями: задать таблицу фиксированной (статичной), например, при запуске модуля IP, либо формировать ее динамически в процессе работы. С первым случаем все ясно (надеюсь): создаем файл, что-то типа networks, и при запуске модуль IP «схватывает» его и потом постоянно работает. Этот путь громоздок и неудобен – представьте на секунду, что вы администратор компании Microsoft, в вашем ведении порядка сотни сетей, и несколько тысяч компьютеров, и это еще по самым оптимистичным прогнозам. И вот Могучий Билли решил перетасовать пару отделов с этажа на этаж. Изменится ли при этом расположение компьютеров? Изменится! А изменится ли при этом подключение сегментов переехавших отделов? Изменится! А изменятся ли, наконец, таблицы маршрутов? Ага, прикинули? То-то. А если Бил решит делать перестановки каждую неделю? Я бы застрелился. Или уволился. Как хорошо, что в этой связи придуман динамический «раутинг»! Задача формирования таблицы маршрутов переложена с наших плеч на IP-модуль.