Компьютерные сети

Компьютерные сети

Н. Олифер

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

Далее приведена копия экранной формы, выведенной утилитой tracert (Windows) при трассировке хоста ds.jnternic.net [198.49.45.29]:
1 311 ms 290 ms 261 ms 144.206.192.100
2 281 ms 300 ms 271 ms 194.85.73.5
3 2023 ms 290 ms 311 ms moscow-m9-2-S5.relcom.eu.net [193.124.254.37]
4 290 ms 261 ms 280 ms MSK-M9-13.Relcom.EU.net [193.125.15.13]
5 270 ms 281 ms 290 ms MSK.RAIL-l-ATM0-155Mb.Relcom.EU.net [193.124.254.82]

6 300 ms 311 ms 290 ms SPB-RASC0M-l-E3-l-34Mb.Relcom.EU.net [193.124.254.78]
7 311 ms 300 ms 300 ms Hssill-0.GW1.STK2.ALTER.NET [146.188.33.125]
8 311 ms 330 ms 291 ms 421.ATM6-0-0.CR2.STK2.Alter.Net [146.188.5.73]
9 360 ms >331 ms 330 ms 219.Hssi4-0.CR2.LND1.A1ter.Net [146.188.2.213]
10 351 ms 330 ms 331 ms 412.Atm5-0.BRl.LNDl.Alter.net [146.188.3.205]
11 420 ms 461 ms 420 ms 167.ATM8-0-0.CR1.ATL1.Alter.Net [137.39.69.182]

12 461 ms 441 ms 440 ms 311.ATM12-0-0.BR1.ATL1.A1ter.Net [137.39.21.73]
13 451 ms 410 ms 431 ms atlantal-brl.bbnplanet.net [4.0.2.141]
14 420 ms 411 ms 410 ms viennal-br2.bbnplanet.net [4.0.3-.154]
15 411 ms 430 ms 2514 ms viennal-nbr3.bbnplanet.net [4.0.3.150]
16 430 ms 421 ms 441 ms viennal-nbr2.bbnplanet.net [4.0.5.45]
17 431 ms 451 ms 420 ms cambridgel-brl.bbnplanet.net [4.0.5.42]

18 450 ms 461 ms 441 M C cambridgel-crl4.bbnplanet.net [4.0.3.94]
19 451 M C 461 M C 460 M C attbcstoll.bbnplanet.net [206.34.99.38]
20 501 M C 460 M C 481 M C shutdown.ds.internic.net [198.49.45.29]

Последовательность строк соответствует последовательности маршрутизаторов, образующих маршрут к заданному узлу. Первое число в строке — число хопов до соответствующего маршрутизатора. Утилита traceroute тестирует каждый маршрутизатор трижды, поэтому следующие три числа в строке — это значения RTT, вычисленные путем посылки трех пакетов, время жизни которых истекло на этом маршрутизаторе. Если ответ от какого-либо маршрутизатора не приходит за заданное время, то вместо времени на экране печатается звездочка (*).

Далее идут IP-адрес и доменное имя (если оно имеется) маршрутизатора. Видно, что почти все интерфейсы маршрутизаторов поставщиков услуг Интернета зарегистрированы в службе DNS, а первые два, относящиеся к локальным маршрутизаторам, — нет.

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

А сейчас давайте рассмотрим представителей другой группы ICMP-сообщений — эхо-запросы и эхо-ответы и поговорим об использовании этих сообщений в известной утилите ping.

Эхо-запрос и эхо-ответ, в совокупности называемые эхо-протоколом, представляют собой очень простое средство мониторинга сети. Компьютер или маршрутизатор посылает по составной сети ICMP-сообщение эхо-запроса, указывая в нем IP-адрес узла, достижимость которого нужно проверить. Узел, получивший эхо-запрос, формирует и отправляет эхо-ответ отправителю запроса. Так как эхо-запрос и эхо-ответ передаются по сети внутри IP-пакетов, то их успешная доставка означает нормальное функционирование всей транспортной системы составной сети.

Формат эхо-запроса и эхо-ответа показан на рис. 17.25. Поле типа для эхо-ответа равно 0, для эхо-запроса — 8; поле кода всегда равно 0 и для запроса, и для ответа. В байтах 5 и 6 заголовка содержится идентификатор запроса, в байтах 7 и 8 — порядковый номер. В поле данных эхо-запроса может быть помещена произвольная информация, которая в соответствии с данным протоколом должна быть скопирована в доле данных эхо-ответа.
<—1 байт^-^
г<—1 байт->
<-2 байта-►
Тип * 0/8
Код *0
Контрольнаясумма

Идентификаторзапроса
Порядковыйномер
Потданных
•' astern"
Рис. 17.25. Формат ICMP-сообщений типа эхо-запрос и эхо-ответ

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

Утилита ping обычно посылает серию эхо-запросов к тестируемому узлу и предоставл пользователю статистику об утерянных эхо-ответах и среднем времени реакции сетг запросы. Утилита ping выводит на экран сообщения следующего вида обо всех постуг ших ответах:
# ping serverl.citmgu.ru
Pinging serverl.citmgu.ru [193.107.2.200] with 64 bytes of data:
Reply from Reply from Reply from Reply from
193.107.2.200
193.107.2.200
193.107.2.200
193.107.2.200

bytes=64 time=256ms bytes=64 time=310ms bytes=64 time=260ms bytes=64 time=146ms
TTL= 123 TTL= 123 TTL= 123 TTL= 123

Из приведенной распечатки видно, что в ответ на тестирующие запросы, посланные узлу server! .mgu.ru, было получено 4 эхо-ответа. Длина каждого сообщения составляет 64 байта. В следующей колонке помещены значения времени оборота (RTT), то есть времени от момента отправки запроса до получения ответа на этот запрос. Как видим, сеть работает достаточно нестабильно — время в последней строке отличается от времени во второй более чем в два раза. На экран выводится также оставшееся время жизни поступивших пакетов.

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

Системные очереди к точкам входа прикладных процессов называют портами. Порты идентифицируются номерами и однозначно определяют приложение в пределах компьютера. Если процессы представляют собой популярные общедоступные службы, такие как FTP, telnet, HTTP, TFTP, DNS и т. п., то за ними централизовано закрепляются стандартные (назначенные) номера.
TCP решает задачу надежного обмена данными путем установления логических соединений. Соединение однозначно идентифицируется парой сокетов.

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

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

Протокол ICMP играет в сети вспомогательную роль. Он используется для диагностики и мониторинга сети. Так, в основе работы популярных утилит мониторинга IP-сетей ping и tracert лежат ICMP-сообщения.
Вопросы и задания
1. Какой объем данных получен в течение TCP-сеанса отправителем TCP-сегмента, в заголовке которого в поле квитанции помещено значение 180005? Известно, что первый полученный байт имел номер 15000.

2. Может ли работать маршрутизатор, не имея таблицы маршрутизации? Варианты ответов:
а) может, если выполняется маршрутизация от источника;
б) нет, это невозможно;
в) может, если в маршрутизаторе задан маршрут по умолчанию;
г) может, если выполняется лавинная маршрутизация.
3. Можно ли обойтись в сети без протоколов маршрутизации?

4. Система DNS может использовать для доставки своих сообщений как протокол UDP, так и TCP. Какой вариант вы считаете более предпочтительным? Аргументируйте свой ответ.
5. По какой причине в протоколе RIP расстояние в 16 хопов между сетями полагается недостижимым? Варианты ответов:
а) поле, отведенное для хранения значения расстояния, имеет длину 4 двоичных разряда;
б) сети, в которых работает RIP, редко бывают большими;
в) для получения приемлемого времени сходимости алгоритма.

6. Какие параметры сети учитывают метрики, поддерживаемые протоколом OSPF? Варианты ответов:
а) пропускная способность;
б) количество хопов;
в) надежность каналов связи.
7. ICMP-сообщение об ошибке не посылается, если ошибка возникла при передаче IP-пакета:
а) несущего ICMP-сообщение об ошибке;
б) являющегося последним фрагментом пакета;
в) несущего ЮМР-запрос;
г) упакованного в кадр с широковещательным МАС-адресом.

8. Кому адресовано ICMP-сообщение? Варианты ответов:
а) протоколу IP узла-отправителя пакета, вызвавшего ошибку;
б) протоколу IP ближайшего маршрутизатора, от которого поступил пакет, вызвавший ошибку;
в) протоколу транспортного или прикладного уровня узла-отправителя пакета, вызвавшего ошибку.
9. Предложите варианты метрики, которая одновременно учи+ывает пропускную способность, надежность и задержку линий связи.
ГЛАВА 18 Дополнительные
функции
маршрутизаторов
IP-сетей

Основными функциями IP-маршрутизатора являются создание таблицы маршрутизации и продвижение IP-пакетов на основе данных этой таблицы. Для выполнения этих функций маршрутизатор должен поддерживать протокол IP, рассмотренный в главе 16, а также протоколы маршрутизации, с которыми мы познакомились в главе 17. Помимо этих базовых функций современные IP-маршрутизаторы поддерживают ряд важных и более сложных функций, которые превращают IP-маршрутизаторы в гибкие и мощные многофункциональные устройства по обработке трафика. В этой главе мы рассмотрим наиболее важные из нетривиальных возможностей IP-маршрутизаторов, часто используемые администраторами сетей.

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

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

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

Завершает главу рассмотрение особенностей новой версии протокола IP — IPv6. Мы наиболее подробно остановимся на модернизации схемы адресации, сделавшей ее более масштабируемой, атакже на изменении формата заголовка IP, что позволило повысить пропускную способность сети за счет сокращения объема работы, выполняемой маршрутизаторами.
Фильтрация

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

Однако такая всеобщая достижимость узлов и сетей не всегда отражает потребности их владельцев. Поэтому многие маршрутизаторы поддерживают развитые средства фильтрации пользовательского трафика, а также фильтрации объявлений протоколов маршрутизации, что позволяет дифференцированно управлять достижимостью узлов.
Фильтрация пользовательского трафика
Под фильтрацией понимается нестандартная обработка |Р-пакет08 маршрутизаторами, приво*

С дящая к отбрасыванию некоторых пакетов или изменение йх мзрщрута.
Фильтрация пользовательского трафика маршрутизаторами аналогична по принципу действия фильтрации, выполняемой коммутаторами локальных сетей (см. главу 14).
Условия фильтрации маршрутизаторов обычно существенно сложнее и в них учитывается гораздо больше признаков, чем у коммутаторов локальных сетей. Например, это могут быть:
□ IP-адреса источника и приемника;
□ МАС-адреса источника и приемника;

□ идентификатор интерфейса, с которого поступил пакет;
□ тип протокола, сообщение которого несет IP-пакет (то есть TCP, UDP, ICMP или OSPF);
□ номер порта TCP/UDP (то есть тип протокола прикладного уровня).

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

Рассмотрим примеры фильтров, написанных на командном языке маршрутизаторов Cisco. Эти фильтры, называемые списками доступа, сегодня в IP-маршрутизаторах являются очень распространенным средством ограничения пользовательского трафика.
Наиболее простым является стандартный список доступа; в нем в качестве условия фильтрации учитывается только IP-адрес источника.
Общая форма такого условия выглядит следующим образом:
access-list номер_списка_доступа { deny | permit }

{ адрес_источника [ метасимволы_источника ] | any}

Стандартный список доступа определяет два действия с пакетом, который удовлетворяет описанному в фильтре условию: отбросить (deny) или передать для стандартной обработки в соответствии с таблицей маршрутизации (permi t). Условием выбора того или иного действия в стандартном списке доступа является совпадение IP-адреса источника пакета с адресом источника, заданным в списке. Совпадение проверяется в том же стиле, что и при проверке таблицы маршрутизации, при этом метасимволы являются аналогом маски, но в несколько модифицированном виде. Двоичный нуль в поле метасимволов источника означает, что требуется совпадение значения этого разряда в адресе пришедшего пакета и в адресе, заданном в списке доступа. Двоичная единица означает, что совпадения в этом разряде не требуется. Практически, если вы хотите задать условие для всех адресов некоторой подсети, то должны использовать инвертированное значение маски этой подсети. Параметр any означает любое значение адреса — это просто более понятная и краткая форма записи значения 255.255.255.255 в поле метасимволов источника.

Пример стандартного списка доступа:
access-list 1 deny 192.78.46.0 0.0.0.255 Здесь:
□ 1 — номер списка доступа;
□ deny — действие с пакетом, который удовлетворяет условию данного списка доступа;
□ 192.78.46.0 — адрес источника;
□ 0.0.0.255 — метасимволы источника.
Этот фильтр запрещает передачу пакетов, у которых в старших трех байтах адреса источника имеется значение 192.78.46.0.

Список доступа может включать более одного условия. В этом случае он состоит из нескольких строк с ключевым словом access-1 i st и одним и тем же номером списка доступа. Так, если мы хотим разрешить прохождение через маршрутизатор пакетов хоста 192.78.46.12, запрещая передачу пакетов одному из хостов сети 192.78.46.0/24, то список доступа будет выглядеть следующим образом:
access-list 1 permit 192.78.46.12 0.0.0.0 access-list 1 deny 192.78.46.0 0.0.0.255 access-list 1 permit any

Условия списка доступа проверяются по очереди, если какое-либо из них дает совпадение, то выполняется действие permi t или deny, определенное в этом условии. После этого остальные условия списка уже не проверяются. Считается по умолчанию, что в конце каждого списка имеется неявное условие вида:
[access-list 1 deny any]
Однако, если вам все же требуется пропускать все пакеты, не определенные явно в условиях, необходимо добавить в последней строке условие:
access-list 1 permit any

Список доступа можно применять к любому интерфейсу маршрутизатора и в любом направлении: если список применяется с ключевым словом i п, то он действует на входящие в интерфейс пакеты, а если с ключевым словом out — на выходящие. Например, написанный нами список доступа 1 можно применить к некоторому интерфейсу для обработки входящего трафика, используя следующую команду: access-group 1 in

Существуют также и более мощные типы списков доступа для маршрутизаторов Cisco, например, расширенные списки доступа. Общий формат этих списков следующий:
access-list номер_списка_доступа { deny | permit }
{ protocol | ключевое_слово_протокола }
{ адрес_источника [ метасимволы_источника ]] [ порт_источника ] | any }
[ адрес_приемника [ метасимволы_приемника ]] [ порт_приемника ]

Пользуясь расширенными списками доступа, можно запретить прохождение во внутреннюю сеть предприятия FTP-пакетов. Как известно, служба FTP использует для приема запросов от клиентов протокол TCP с хорошо известным портом 21. Для этого в список доступа нужно включить условие: access-list 102 deny TCP any 21 any
Затем можно применить его к интерфейсу маршрутизатора, к которому подключена внутренняя сеть, с ключевым словом out.
Администраторы корпоративных сетей из соображений безопасности
1

часто запрещают возможность трассировки извне внутренних хостов утилитой ping. Это делается с помощью условия:
access-list 101 deny ICMP any 192.78.46.8 0.0.0.0 eq 8
Как видно из условия, его синтаксис для протокола ICMP несколько отличается от общего синтаксиса расширенных списков доступа. Параметр eq 8 означает, что запрещается передача ICMP-сообщений типа 8, соответствующего эхо-запросам, с помощью которых функционирует утилита ping.


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

Report Page