[МУЗЫКА]
[МУЗЫКА] [МУЗЫКА] Здравствуйте.
С вами снова я, Николай Булахов.
И мы продолжаем изучать компьютерные сети.
Что, если схема объединения нескольких сетей будет сложнее?
Для начала отключим трансляцию сетевых адресов на нашем маршрутизаторе.
Запустите его.
Перейдите на вторую консоль, залогиньтесь.
Запустите Midnight Commander.
Перейдите в папку usr/local/etc.
Откройте для редактирования файл firewall.conf.
Добавьте символ # перед строчкой, содержащей текст десятитысячного правила.
То есть там, где мы с вами писали add 10000 divert natd ip и т.д.
Сохраните файл при помощи клавиши F2.
Выключите компьютер командой init 0.
[БЕЗ_ЗВУКА] Далее
сделайте четыре копии маршрутизатора с именами Router 1,
Router 2, Router 3 и Router 4.
Не забудьте во время копирования сгенерировать новые mac-адреса
для всех сетевых адаптеров.
Соедините маршрутизаторы согласно схеме в кольцо.
Эту схему вы видите на экране.
У нас получится четыре локальные сети, соединенные в кольцо.
Выдайте адреса всем сетевым интерфейсам.
Интерфейсы в одной локальной сети соответственно должны иметь ip-адреса,
принадлежащие одной сети.
Чтобы сопоставить физическое подключение и название интерфейса в
операционной системе, используйте mac-адреса.
Я выдам IP-адреса согласно схеме.
Router 1 em0 — 10.1.1.0/16,
Router 1 em1 — 10.4.1.1/16.
Router 2 em0 — 10.1.2.0/16,
Router 2 em1 — 10.2.2.1/16.
Router 3 em0 — 10.2.3.0/16,
Router 3 em1 — 10.3.3.1/16.
Router 4 em0 — 10.3.4.0/16,
и Router 4 em1 — 10.4.4.1/16.
Таким образом в одной сети попарно Router 1 em0 и Router 4 em1.
Также Router 1 em1 и Router 2 em0,
Router 2 em1 и Router 3 em0,
Router 3 em1 и Router 4 em0.
Это отражает физическое устройство наших локальных сетей.
Проверяя работоспособность данной схемы,
можно видеть, что ICMP Echo запросы ходят внутри локальных сетей,
однако сети, присоединенные через маршрутизатор, недоступны.
Запингуйте с любого маршрутизатора интерфейс соседнего маршрутизатора,
который расположен в одной и той же локальной сети,
что и интерфейс маршрутизатора, с которого вы будете отправлять ICMP Echo запрос,
а также интерфейс маршрутизатора, который не находится ни в одной
локальной сети с вашим маршрутизатором, с которого вы осуществляете эти действия.
Как наладить пересылку пакетов во всех наших локальных сетях?
Первый вариант — это указать всем маршрутизаторам, что в случае,
если пакет предназначен компьютеру из неизвестной локальной сети,
его надо переслать следующему по часовой стрелке маршрутизатора или против часовой.
Для этого используем команду route add, которая в качестве аргументов воспринимает
сеть назначения и адрес маршрутизатора, через который эта сеть доступна.
Запись об этом попадет в специальную таблицу — так называемую таблицу
маршрутизации.
Если некоторый пакет принадлежит нескольким сетям, которые есть в таблице
маршрутизации, то приоритет имеет маршрут с наибольшим количеством единиц в маске.
То есть сеть 0.0.0.0/0 будет включать в себя все возможные адреса,
но иметь наименьший приоритет, так как в ее маске вообще нет единиц.
Эту сеть обозначают default.
Просмотреть содержимое таблиц маршрутизации можно командой netstat с
ключом -rn.
Таким образом для реализации этой схемы на Router 1
выполним команду route add default 10.1.2.0.
На Router 2: route add default 10.2.3.0.
На Router 3: route add default 10.3.4.0.
На Router 4: route add default 10.4.1.1.
Теперь связь установлена между всеми локальными сетями.
Попробуйте вновь запинговать различные интерфейсы с любого из маршрутизаторов.
Но в этой схеме пакеты всегда ходят по кругу в одном направлении.
Удостовериться в этом можно, воспользовавшись утилитой traceroute,
которая в качестве аргумента воспринимает адрес назначения.
Эта утилита высылает пакет на указанный адрес сначала со значением TTL = 1,
затем — 2 и т.д., пока не достигнет адресата.
При пересылке через маршрутизатор TTL уменьшается на единицу,
об этом мы говорили с вами в предыдущих лекциях.
При TTL = 0 пакет отбрасывается,
а источнику отсылается уведомление о том, что пакет отброшен.
Таким образом сначала вернет ответ первый маршрутизатор на пути нашего пакета,
затем второй, затем третий и т.д.
Посмотрите, что будет, если отослать пакет на адрес, не указанный в нашей схеме сети.
Я отправлю пакет на адрес 172.16.0.1.
Пакет зациклился, но благодаря TTL не навечно.
Второй вариант — это указать на каждом маршрутизаторе маршруты для
всех сетей непосредственно.
Для этого сначала удалите уже имеющиеся маршруты в маршрутизаторе либо
просто перезапустите все маршрутизаторы, маршруты удалятся автоматически.
Ну а чтобы реализовать вторую схему, нам надо выполнить следующие команды.
На Router 1: route add 10.2.0.0/16
10.1.2.0 route add 10.3.0.0/16 10.4.1.1.
На Router 2: route add 10.4.0.0/16
10.1.1.0 route add 10.3.0/16 10.2.3.0.
Для Router 3: route add 10.1.0.0/16 10.2.2.1.
route add 10.4.0.0/16 10.3.4.0.
Для Router 4: route add 10.2.0.0/16 10.3.3.1
route add 10.1.0.0/16 10.4.1.1.
Теперь информация ходит кратчайшим маршрутом,
и если мы отправим информацию адресату вне этих сетей, она не будет отослана,
так как операционная система не знает, куда именно ее передавать.
Проверьте это при помощи утилиты traceroute.
На этом очередная лекция подошла к концу.
Далее мы приступим к изучению сетевых протоколов TCP и UDP.
[МУЗЫКА]
[МУЗЫКА]