Как маршрутизатор определяет ему ли пришел байт

Обновлено: 06.07.2024

Где-то лет пять-семь назад сотовые операторы стали предоставлять тарифы с безлимитным мобильным интернетом. Объёмы пользовательского интернет-трафика тогда были на порядки ниже и для среднестатистического пользователя такие тарифы были просто не выгодны, но кое-кто покупался на безлимит, отдавая операторам больше денег, чем он тратил обычно.

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

"Ну ничего!", - думает Иван. - "Меня не проведёшь!". И покупает отдельно SIM с безлимитным интернетом, а б/у модем приобретает у хороших знакомых. В предвкушении победы над жадным оператором связи, наш герой подключает все это дело к ноутбуку, устанавливает необходимое ПО, нажимает на подключение и-и-и. Ничего! Соединение есть, а интернета нет. При попытке зайти на любой сайт его сопровождает информационное окно, оповещающее о том, что недавно купленная им SIM-карта может использоваться только в телефоне/смартфоне.

IMEI - это MAC-адрес в сети GSM

У каждого устройства, способного подключиться к сотовой связи стандарта GSM есть особый идентификационный номер, состоящий из 15 цифр. С его помощью можно определить что за устройство подключилось к сотовой сети.
Также с помощью IMEI можно определить серию устройства, его модель, страну-производителя и так далее.

Можно ли как-то обойти проверку по IMEI?

Обычный пользователь не в силах обойти такую проверку, но при достаточном уровне навыков он может сменить* imei на тот, к которому у оператора не будет претензий.

*Внимание! В Латвии, Великобритании, Республике Беларусь и других странах изменение IMEI является уголовно наказуемым деянием.

Возвращаемся к нашему герою. Иван не профессионал в перепрошивке USB-модемов, поэтому он решается на следующую хитрость: сменить, наконец, свой старенький кнопочный телефон на современный смартфон, а интернет раздавать с помощью Wi-Fi.

После покупки наш Иван первым делом пробует подключиться к интернету с новенького девайса, что у него без проблем получается. Радостно потирая руки в предвкушении "халявы", он подключается с ноутбука к Wi-Fi, но в браузере принимающего устройства открывается информационная страница оператора, информирующая о том, что за раздачу интернета нужно заплатить.

Изменение TTL устройства - прошлый век

Немного побродив по интернету наш Иван натыкается на статью, в которой объясняется почему оператор "спалил" раздачу интернета.

Все данные, пересылаемые по сети перед отправкой разделяются на пакеты, а уже затем порционно отправляются блуждать по сети в поисках своего пункта назначения. У этих пакетов есть свой срок жизни (для того, чтобы в случае ошибки сети, они не забивали канал, бесконечно блуждая по бескрайним просторам всемирной паутины, а тихонько самоуничтожались, облегчая нагрузку на сеть). Этот срок жизни указан в таком параметре, как TTL (time to live). И мало того, что у разных операционных систем этот параметр отличается, так ещё и проходя через интернет-шлюз этот параметр уменьшается на единицу.
В Windows по умолчанию TTL = 128, в Android = 64. Если раздача производится с телефона на OS Android, то на ноутбуке необходимо установить TTL = 65. В таком случае, проходя через раздающее устройство, пакеты с ноутбука и телефона будут иметь одинаковые TTL и оператору будет невозможно засечь раздачу таким способом.

Покопавшись в реестре и перезагрузив ноут, Иван вновь пробует подключиться, но результат далеко не соответствует ожиданиям: к некоторым сайтам так и не удаётся подключиться, обновления для ОС и антивируса не загружаются, в общем, беда.

Как же теперь оператору удаётся засечь раздачу интернета? Неужели есть ещё какой-то параметр у этих пакетов данных, о которых мы не знаем?

DNS и DPI - теперь оператор знает о нас всё?

К сожалению, я не большой специалист по компьютерным сетям, поэтому с матчастью знаком достаточно поверхностно, но, думаю, и этого хватит, чтобы ввести Вас в курс дела.

У оператора, как правило, есть свои DNS-сервера, с помощью которых он может видеть к какому сайту идёт обращение и при необходимости блокировать подключение.
DPI - это технология проверки сетевых пакетов по их содержимому.

С помощью такого набора инструментов оператор способен снизить скорость прохождения одних пакетов и повысить скорость других, узнать не только к каким адресам в сети Интернет вы обращаетесь, но и по какому протоколу выполняется соединение, какие порты устройства задействованы, какой трафик и какое количество подключений используется, между какими ОС происходит пересылка пакетов и т.д.

Всё это позволяет понять, что пользователь включил раздачу интернета; оборудование начинает блокировать некоторые пакеты, операторы радуются, "халявщики" плачут.

Конец халяве?

Для большинства обывателей -да. Но особо хитрые пользователи научились туннелировать VPN-соединение по Wi-Fi, что позволило защититься от инспекции трафика.

Наиболее распространёнными программами на OS Android для туннелирования трафика являются VPN Hotspot (есть в PlayMarket) и PdaNet+ для девайсов с root-доступом и без него соответственно. Наиболее подробно я расскажу о них в своих следующих статьях.

Так как большинство клиентов оператора не станут изощряться с туннелированием трафика, данное решение остановит более 90% "халявщиков". Что касается остальных, то они, как правило, не настолько сильно нагружают сеть, чтобы представлять из себя большую проблему.

Перед тем, как обращаться к провайдеру, необходимо разобраться - а всё ли хорошо в доме. Без этой проверки есть риск превратиться в мальчика, который постоянно кричал "у меня потери пакетов" "волки".

Моральное устаревание диагностических инструментов

В современном мире диагностика, увы не очень показательна. Во-первых, потому, что она базируется на протоколах 40-летней давности (RFC 792 - от 1981-го года) и превращается в лупу в эпоху электронных микроскопов. А во-вторых, у этих протоколов есть большие проблемы в части безопасности. Если какой-то маршрутизатор полностью отвечает RFC 792, то его можно элементарно атаковать с помощью DDoS атаки (чем хакеры в нулевых и баловались). Поэтому, даже эти протоколы работают плохо благодаря закрученным гайкам.

Прямым следствием этих ограничений является типичный сценарий решения сетевых проблем:

Пользователь обращается к провайдеру и говорит, что с сайтом А у него проблемы и плохая связь. Провайдер обычно всегда говорит: у нас всё хорошо, проблемы у сайта.

Когда пользователь обращается в поддержку сайта, то ему там говорят то же самое – у нас всё хорошо, обратитесь к провайдеру.

В итоге, проблема конечно же не решается.

Ниже мы всё-таки попробуем определиться, где именно проблема.

К сожалению для статьи, и к счастью для автора, у автора всё в порядке с интернетом. Потому, примеров «смотрите – слева всё плохо, а справа всё хорошо» практически не будет. Но, где возможно – я всё-таки попробую что-нибудь сломать для наглядности.

Маршруты интернета

В первой части статьи я рассказывал, что трафик ходит по маршрутам. Их два : BGP и IP. Один поверх другого. BGP - определяет маршрут через физические маршрутизаторы, а IP - уже логическая составляющая пути. На этом этапе диагностика затруднена тем, что :

Вводная по BGP это TTTLDR.

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

Так же есть MPLS и иное туннелирование. Разобрать маршруты тоннелей, простыми инструментами не получится.

Пакет "туда" и пакет "обратно" может пойти разными путями.

Пакет "туда" может пойти по нескольким путям в разное время. Инструментов для диагностики ECMP на домашних OS немного, они сложнее простого tracert, а иногда, стоят дорого.

Будем работать с тем что есть. А есть у нас команда traceroute.

На windows она выполняется из Пуск/cmd и ввести tracert. Так же есть графическая утилита WinMTR. Она дает больше полезной информации и, в некоторых случаях, будем пользоваться ей.

Можно не запускать cmd и там выполнять команды, а делать это windows-style:

Пуск/выполнить cmd /k tracert -d что-нибудь

Ключевые правила диагностики:

Если вы не можете продемонстрировать и повторить проблему, то никто не сможет.

Данные нужно собирать за несколько временных периодов – как минимум, за период, когда проблем нет, и за период, когда проблемы есть.

Как быстро определить, что всё приемлемо

Автор использует универсальную метрику «Пинг на 1000 километров». Он считается следующим образом:

Определяете, где находится сервер.

На Яндекс.картах измеряете расстояние от вас до сервера.

Выполняете команду ping до нужного вам хоста. Если получается не больше, чем 20 миллисекунд на 1000 километров, то у вас с инпут-лагом не должно быть никаких проблем.

Автор находится в

1000 км от Москвы. Его пинги выглядят следующим образом:

На расстояниях до 200 км данное правило, кстати, не будет выполняться, ввиду того, что скорость работы оборудования вносит бОльшую лепту. На таких расстояниях пинг должен быть в рамках 5-6 миллисекунд. Если больше – у вас проблема.

Как читать PING


Соединение до домашнего роутера

1 1 ms 1 ms <1 ms 192.168.88.1

Первый IP адрес в результатах tracert скорее всего и будет IP-адресом вашего роутера.

Так же можно сделать вывод, что автор любитель Mikrotik.

Пинг, обычно, отправляет пакеты размером 64 байта, что показывает скорее физические качества канала– нет ли плохого кабеля по пути.

Как уже говорилось ранее – диагностика работает только в сравнении. Ниже - два примера пинга.

С сервера, который подключен к роутеру кабелем.

А это с компьютера, который подключен к той же сети, но по wi-fi.

Какие выводы можно здесь сделать:

WIFI вносит свою лепту. Во-первых, у нас появился Джиттер (видим, что время пинга скачет). Во-вторых, пинг стал немного хуже.

И вот подтверждение моих слов - тест участка компьютер-домашний роутер.

Пакеты, даже не выходя в интернет, иногда проходят плохо. Без потерь, но задержки присутствуют.

Чтоб запустить "длинный ping" - необходимо ввести команду ping -t . В этом случае ping будет продолжаться пока вы не нажмете Control+C

Видим, что при приеме больших объемов информации скорость падает существенно меньше, чем при передаче.

Одна из причин – мощность антенны в точке доступа выше, чем у ноутбука. Ноутбук работает на аккумуляторе и не подключен к сети. Аккумулятор - почти севший и windows находится в режиме «Best battery life»

Вот тот же самый тест, но с подключенным блоком питания.

Видно, что прием стал гораздо лучше, и передача тоже улучшилась. 200мс пинг при передаче отсутствует.

Что в этой ситуации можно настроить:

Мощность передатчика на точке доступа.

Мощность передатчика на ноутбуке.

В первых тестах мощность передатчика ноутбука была выкручена на максимум. Ниже – выкручена на минимум:

Как видно, появились потери, и пинг стал гораздо хуже, даже при работе от блока питания.

Стоит помнить, что Wi-Fi это диалог. Если точка доступа «кричит», а компьютер «шепчет», то точка может плохо слышать компьютер, хотя палочки будут показывать, что всё хорошо.

Если вы везде выставите мощность на максимум, то могут начать страдать ваш Smart TV и телефон, подключенный к той же сети – компьютер будет их «перекрикивать». Ноутбук будет меньше работать от батарей. Мощность всегда нужно выбирать исходя из условий, и ставить минимальную мощность, которая дает вам приемлемый результат. Мощность с запасом ставить не рекомендуется.

Факторы, влияющие на Wi-Fi

Здесь опустим исключительно программные факторы вроде beacons, размеры пакетов, 80 мегагерц и прочее – про них можно написать еще десяток страниц. Приведу только ключевые физические факторы и факторы окружения.

Частоты : «2.4» в городах – всегда хуже 5 гигагерц. При возможности выбирайте 5.

При выборе канала – проведите анализ спектра, когда «соседи дома». Точки обычно позволяют сканировать эфир. Выберите канал, который не занят и у которого меньше всего соседей. При выборе канала старайтесь выбирать как можно меньший канал. 5-й канал бьет «дальше», чем 159-й.


Ищем частоту, вокруг которой либо самая слабая передача - Signal Quality самый плохой, либо вообще на этой частоте ничего нет.

У ноутбуков антенна встроена в экран. Антенна точки и устройства должны находиться в одной плоскости. Если у вас экран стоит вертикально, то и антенны на роутере должны стоять вертикально, а не так, как обычно показывается на рекламных материалах:

Плохая ориентация антенн :

Правильная ориентация антенн.

Вокруг и над антенной, в радиусе 40-50 сантиметров по горизонту НЕ ДОЛЖНО быть металла и стен. Т.е. – на столе/полке роутер ставить – неизбежное зло, с которым придется смириться. А вот возле стены – плохо. Популярные гипсокартонные стены содержат в себе металлические направляющие каждые 40 сантиметров.

Работающие микроволновки – злейшие враги Wi-Fi в тот момент, когда в них готовят.

Конспект

Найти IP-адрес домашнего роутера.

Запустить длинный пинг до роутера. Замерить потери и скорость.

Запустить спидтест и параллельно длинный пинг.

Сравнить результаты. Если ухудшения показателей пинга нет, то у вас соединение до роутера - быстрее чем канал в интернет, и в целом, дома всё хорошо.

Выбрать частоту и незанятый канал.

По возможности, убрать точку от стен.

Правильно ориентировать антенны. Кстати, запустив длинный "пинг", и покрутив антенны - можно найти оптимальный вариант, но не забывайте, что цифры достоверные только когда вы НЕ КАСАЕТЕСЬ антенн.

Выбрать минимальную мощность передатчика, дающую максимальную скорость в локальной сети.

Вернемся к терминологии сетевых технологий и рассмотрим алгоритм работы маршрутизатора.

ПРИМЕЧАНИЕ Необходимо отметить, что каждый из портов маршрутизатора находится в своей сети и может рассматриваться как узел этой сети.

Задачу выбора маршрута из нескольких возможных и продвижении пакета маршрутизаторы решают на основе таблиц маршрутизации, которые содержат информацию о том, куда в дальнейшем пакет направлять. Типичная таблица маршрутизации имеет следующий вид (таблица заполнена в соответствии со структурой сети изображенной на рис …. и справедлива для маршрутизатора М2).

Сетевой адрес узла назначения (Network Address) Выходной номер порта текущего маршрутизатора Сетевой адрес входного порта следующего маршрутизатора Метрика (Metric)
S1 M1.1
S2 -
S3 -
S4 M4.4
S5 M4.4
S6 М3.1
S7 M4.4
S8 M4.4
S9 -
S10 M4.4
S10 M6.1
Default M4.4

ПРИМЕЧАНИЕ Некоторые сети могут присутствовать в таблице более чем в одной строке, это означает что к этим сетям существуют альтернативные маршруты. На практике маршрутизатор выберет путь с наилучшей на этот момент метрикой.

Каждая сеть известная маршрутизатору сопоставляется со своей строкой таблицы маршрутизации. В таблице, как правило, должна присутствовать строка, которая позволит маршутизатору продвигать пакеты адресованные сетям о которых маршрутизатор ничего не знает. Такая строка вместо адреса сети назначения отмечается как строка по умолчанию (Default). Пакеты направляются на какой либо ключевой маршрутизатор, который может быть знает, куда эти пакеты отправлять дальше.

Перечислим ключевые параметры, необходимые для работы маршрутизатора:

· адрес сети назначения (или что тоже самое сетевой адрес узла назначения),

· адрес входного порта следующего маршрутизатора,

· метрика — параметр характеризующий удаленность сети от маршрутизатора. В простейшем случае метрика будет равна количеству передач между сетями, или хопов. В более сложном случае метрика учитывает загруженность линии связи, скорость передачи, качество канала. Если метрика равна 0 это означает, что эта сеть непосредственно подключена к порту маршрутизатора.

Разберем последовательность шагов, которую выполняет маршрутизатор при продвижении пакета:

1. На порт маршрутизатора поступает кадр, внутри которого инкапсулирован пакет сетевого уровня. Маршрутизатор извлекает пакет из кадра и помещает его в буфер.

2. Маршрутизатор читает заголовок пакета и проверяет время его существования. Прежде всего проверяется контрольная сумма, и если пакет пришел поврежденным, то он отбрасывается. Выполняется проверка, не превысило ли время, которое провел пакет в сети (время жизни пакета), допустимой величины. Если время жизни пакета превышает допустимый срок, то такой пакет считается «заблудившимся» и также отбрасывается (уничтожается).

3. Если пакет должен быть отправлен дальше, маршрутизатор анализирует адрес сети-адресата, извлеченный из заголовка пакета. По номеру сети, извлеченному из заголовка пакета, находим в таблице маршрутизации строку, содержащую сетевой адрес следующего маршрутизатора, и номер порта, на который нужно передать данный пакет, чтобы он двигался в правильном направлении. Иначе, если соответствующей строки в таблице не найдено для маршрутизации пакета будет использоваться строка по умолчанию (Default). Если в таблице отсутствует запись о сети назначения пакета и к тому же нет записи о маршрутизаторе по умолчанию, то данный пакет отбрасывается.

5. Рассмотрим два возможных варианта. Первый – сеть назначения не подключена непосредственно к порту маршрутизатора, т.е. пакету чтобы достигнуть узла назначения нужно пройти еще хотя бы один маршрутизатор. В этом случае пакет должен быть отправлен на входной порт следующего маршрутизатора. Сетевой адрес этого порта будет извлечен из записи таблицы маршрутизации.

6. Для пересылки пакета на этот порт необходимо упаковать его в кадр сетевой технологии для сети, которая соединяет два порта – выходной порт текущего маршрутизатора и входной порт следующего. Для того чтобы маршрутизатор мог создать такой кадр, необходимо знать локальный МАС-адрес следующего порта (нам известен его сетевой адрес). Для определения локального адреса по сетевому адресу используется протокол разрешения адреса (Address Resolution Protocol, ARP).

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

8. Все узлы локальной сети получают ARP-запрос и сравнивают указанный там сетевой адрес с собственным. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой сетевой адрес и свой локальный адрес, а затем отправляет его уже направленно на порт его запросивший.

9. Порт маршрутизатора создает кадр, упаковывает в него пакет. В поле адреса назначения заголовка кадра помещается локальный адрес входного порта следующего маршрутизатора. Готовый кадр отправляется в сеть и достигает следующего маршрутизатора. Следующий маршрутизатор повторяет эту же самую последовательность. Это будет повторяться до тех пор пока пакет не достигнет маршрутизатора к порту которого подключена сеть назначения.

10. Когда пакет доходит до сети назначения реализуется второй вариант упаковки пакета в новый кадр (первый вариант был рассмотрен в п.5). При помощи протокола ARP находится МАС-адрес узла-адресата. Порт маршрутизатора создает кадр и пересылает в нем пакет через присоединенную сеть к узлу-адресату.

Протоколы маршрутизации

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

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

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

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

Алгоритмы маршрутизации должны отвечать нескольким важным требованиям. Во-первых, они должны обеспечивать, если не оптимальность, то хотя бы рациональность маршрута. Во-вторых, алгоритмы должны быть достаточно простыми, чтобы при их реализации не тратилось слишком много сетевых ресурсов, в частности они не должны требовать слишком большого объема вычислений или порождать интенсивный служебный трафик. И наконец, алгоритмы маршрутизации должны обладать свойством сходимости, то есть всегда приводить к однозначному результату за приемлемое время.

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

· дистанционно-векторные алгоритмы (Distance Vector Algorithms, DVA);

· алгоритмы состояния связей (Link State Algorithms, LSA).

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

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

Алгоритмы состояния связей обеспечивают каждый маршрутизатор информацией, достаточной для построения точного графа связей сети. Все маршрутизаторы работают на основании одинаковых графов, что делает процесс маршрутизации более устойчивым к изменениям конфигурации. «Широковещательная» рассылка (то есть передача пакета всем непосредственным соседям маршрутизатора) используется здесь только при изменениях состояния связей, что происходит в надежных сетях не так часто. Вершинами графа являются как маршрутизаторы, так и объединяемые ими сети. Распространяемая по сети информация состоит из описания связей различных типов: маршрутизатор - маршрутизатор, маршрутизатор – сеть.

Чтобы понять, в каком состоянии находятся линии связи, подключенные к его портам, маршрутизатор периодически обменивается короткими пакетами HELLO со своими ближайшими соседями.

Адресация в IP-сетях

Классы IP-адресов

IP-адреса представляют собой основной тип адресов, на основании которых сетевой уровень передает пакеты между сетями.

IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел, представляющих значения каждого байта в десятичной форме и разделенных точками, например, 128.10.2.30 — традиционная десятичная форма представления адреса, а 10000000 00001010 00000010 00011110 - двоичная форма представления этого же адреса (байты разделены пробелами). Иногда вместо термина байт используют термин октет.

Так как IP-адрес является сетевым адресом он состоит из двух логических частей — номера сети и номера узла в сети. Какая часть адреса относится к номеру сети, а какая — к номеру узла, определяется значениями первых бит адреса. Значения этих бит являются также признаками того, к какому классу относится тот или иной IP-адрес.

На рис. … показана структура IP-адреса разных классов.

Класс А. Если адрес начинается с 0, то сеть относят к классу А и номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети. Сети класса А имеют номера в диапазоне от 1 до 126, чтобы было понятно почему, представим этот диапазон в двоичном виде, от 00000001 до 01111110. (Номер 0 не используется, а номер 127 зарезервирован для специальных целей, о чем будет сказано ниже.) Сетей класса А немного (точнее 126), зато количество узлов в них может достигать 2 24 , то есть 16 777 216 узлов.

Класс В. Если первые два бита адреса равны 10, то сеть относится к классу В. В сетях класса В под номер сети и под номер узла отводится по 16 бит, то есть по 2 байта. Таким образом, сеть класса В является сетью средних размеров с максимальным числом узлов 2 16 , что составляет 65 536 узлов. Номера сетей для класса В лежат в диапазоне от 128.0 до 191.255 (от 10000000 00000000 до 10111111 11111111).

Класс С. Если адрес начинается с последовательности 110, то это сеть класса С. В этом случае под номер сети отводится 24 бита, а под номер узла — 8 бит. Сети этого класса наиболее распространены, число узлов в них ограничено 2 8 , то есть 256 узлами. Номера сетей для класса С лежат в диапазоне от 192.0.0 до 223.255.255 (от 11000000 00000000 00000000 до 11011111 11111111 11111111).

Класс D. Если адрес начинается с последовательности 1110, то он является адресом класса. D и обозначает особый, групповой адрес — multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес, поэтому говорить о числе сетей и узлов бессмысленно. Всего адресов класса D будет 2 28 . К адресам этого класса относятся адреса от 224.0.0.0 до 239.255.255.255 (от 11100000 00000000 00000000 00000000 до 11101111 11111111 11111111 11111111).

Групповая адресация предназначена для экономичного распространения в Internet или большой корпоративной сети аудио- или видеопрограмм, предназначенных сразу большой аудитории слушателей или зрителей.

Один и тот же узел может входить в несколько групп. Члены какой-либо группы multicast не обязательно должны принадлежать одной сети. В общем случае они могут распределяться по совершенно различным сетям.

Групповой адрес не делится на поля номера сети и узла и обрабатывается маршрутизатором особым образом. Чтобы маршрутизаторы могли автоматически распространять пакеты с адресом multicast по составной сети, необходимо использовать в конечных маршрутизаторах модифицированные протоколы обмена маршрутной информацией.

Класс Е. Если адрес начинается с последовательности 11110, то это значит, что данный адрес относится к классу Е. Адреса этого класса зарезервированы для будущих применений.

В табл. …. приведены диапазоны номеров сетей и максимальное число узлов, соответствующих каждому классу сетей.

Класс Первые биты Наименьший номер сети Наибольший номер сети Максимальное число узлов в сети
A 1.0.0.0 126.0.0.0 2 24
B 128.0.0.0 191.255.0.0 2 16
C 192.0.1.0 223.255.255.0 2 8
D 224.0.0.0 239.255.255.255 Multicast
E 240.0.0.0 247.255.255.255 Зарезервирован

Большие сети получают адреса класса А, средние — класса В, а маленькие — класса С.

Особые IP-адреса

В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов.

· Если в поле номера сети стоят только нули, то по умолчанию считается, что узел назначения принадлежит той же самой сети, что и узел, который отправил пакет.

При адресации необходимо учитывать те ограничения, которые вносятся особым назначением некоторых IP-адресов. Так, ни номер сети, ни номер узла не может состоять только из одних двоичных единиц или только из одних двоичных нулей. Отсюда следует, что максимальное количество узлов, приведенное в таблице для сетей каждого класса, на практике должно быть уменьшено на 2. Например, в сетях класса С под номер узла отводится 8 бит, которые позволяют задавать 256 номеров: от 0 до 255. Однако на практике максимальное число узлов в сети класса С не может превышать 254, так как адреса 0 и 255 имеют специальное назначение.

Особый смысл имеет IP-адрес, первый октет которого равен 127 (01111111). Он используется для тестирования программ и взаимодействия процессов в пределах одной машины. Когда программа посылает данные по IP-адресу 127.0.0.1, то образуется как бы «петля». Данные не передаются по сети, а возвращаются модулям верхнего уровня как только что принятые. Поэтому в IP-сети запрещается присваивать машинам IP-адреса, начинающиеся со 127. Этот адрес имеет название loopback. Любой адрес сети 127.0.0.0 служит для обозначения своего узла, а не только 127.0.0.1, например 127.0.0.3.

Если некоторая IP-сеть создана для работы в «автономном режиме», без связи с Internet, тогда администратор этой сети волен назначить ей произвольно выбранный номер. Но и в этой ситуации для того, чтобы избежать каких-либо коллизий, в стандартах Internet определено несколько диапазонов адресов, рекомендуемых для локального использования. Эти адреса не обрабатываются маршрутизаторами Internet ни при каких условиях. Адреса, зарезервированные для локальных целей, выбраны из разных классов: в классе А — это сеть 10.0.0.0, в классе В — это диапазон из 16 номеров сетей 172.16.0.0-172.31.0.0, в классе С — это диапазон из 255 сетей - 192.168.0.0-192.168.255.0.

p, blockquote 1,0,0,0,0 -->

Марутшрутизация в компьютерных сетях

p, blockquote 2,0,0,0,0 -->

Маршрутизация состоит из двух этапов:

Этапы маршрутизации

p, blockquote 4,0,0,0,0 -->

Варианты действий маршрутизатора

В качестве примера, рассмотрим схему составной сети, здесь показаны отдельные подсети, для каждой подсети есть ее адрес и маска, а также маршрутизаторы, которые объединяют эти сети.

p, blockquote 5,0,0,0,0 -->

Схема маршрутизации пример

p, blockquote 6,0,0,0,0 -->

Рассмотрим маршрутизатор D, на него пришел пакет, и маршрутизатор должен решить, что ему делать с этим пакетом. Начнем с того, какие вообще возможны варианты действий у маршрутизатора. Первый вариант, сеть которой предназначен пакет подключена непосредственно к маршрутизатору. У маршрутизатора D таких сетей 3, в этом случае маршрутизатор передает пакет непосредственно в эту сеть.

p, blockquote 7,0,0,0,0 -->

Сети маршрутизатора

p, blockquote 8,0,0,0,0 -->

Второй вариант, нужная сеть подключена к другому маршрутизатору (А), и известно, какой маршрутизатор нужен. В этом случае, маршрутизатор D передает пакет на следующий маршрутизатор, который может передать пакет в нужную сеть, такой маршрутизатор называется шлюзом.

p, blockquote 9,0,0,0,0 -->

Передача пакетов у маршрутизаторов

p, blockquote 10,0,0,0,0 -->

Третий вариант, пришел пакет для сети, маршрут которой не известен, в этом случае маршрутизатор отбрасывает пакет. В этом отличие работы маршрутизатора от коммутатора, коммутатор отправляет кадр который он не знает куда доставить на все порты, маршрутизатор так не делает. В противном случае составная сеть очень быстро может переполнится мусорными пакетами для которых не известен маршрут доставки.

p, blockquote 11,0,0,0,0 -->

  • Во-первых у маршрутизатора есть несколько интерфейсов, к которым подключены сети. Нужно определить в какой из этих интерфейсов отправлять пакет.
  • Затем нужно определить, что именно делать с этим пакетом. Есть 2 варианта, можно передать пакет в сеть (192.168.1.0/24), либо можно передать его на один из маршрутизаторов подключенные к этой сети. Если передавать пакет на маршрутизатор, то нужно знать, какой именно из маршрутизаторов подключенных к этой сети, выбрать для передачи пакета.

Знать какой маршрутизатор выбрать

p, blockquote 13,0,0,0,0 -->

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

Эту информацию маршрутизатор хранит в таблице маршрутизации. На картинке ниже показан ее упрощенный вид, в которой некоторые служебные столбцы удалены для простоты понимания.

p, blockquote 14,0,0,0,0 -->

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

p, blockquote 15,0,1,0,0 -->

p, blockquote 16,0,0,0,0 -->

Таблица маршрутизации Windows

Продолжим рассматривать маршрутизатор D, у него есть три интерфейса. Ниже на картинке представлен вид таблицы маршрутизации для windows, которые в качестве идентификатора интерфейса используют ip-адрес, который назначен этому интерфейсу. Таким образом в столбце интерфейс есть 3 ip-адреса, которые соответствуют трем интерфейсам маршрутизатора.

p, blockquote 17,0,0,0,0 -->

Интерфейс маршрутизации

p, blockquote 18,0,0,0,0 -->

p, blockquote 19,0,0,0,0 -->

Шлюз подсоединен (Маршрутизация)

p, blockquote 20,0,0,0,0 -->

Если же нам нужно передать пакет на следующий маршрутизатор то в поле шлюз указывается ip-адрес этого маршрутизатора.

p, blockquote 21,0,0,0,0 -->

Шлюз (Маршрутизация)

p, blockquote 22,0,0,0,0 -->

Таблица маршрутизации Linux

В операционной системе linux таблица маршрутизации выглядит немного по-другому, основное отличие это идентификатор интерфейсов. В linux вместо ip-адресов используется название интерфейсов. Например, wlan название для беспроводного сетевого интерфейса, а eth0 название для проводного интерфейса по сети ethernet.

p, blockquote 23,0,0,0,0 -->

Таблица маршрутизации в Linux

p, blockquote 24,0,0,0,0 -->

Также здесь некоторые столбцы удалены для сокращения (Flags, Ref и Use). В других операционных системах и в сетевом оборудовании вид таблицы маршрутизации может быть несколько другой, но всегда будут обязательны столбцы ip-адрес, маска подсети, шлюз, интерфейс и метрика.

p, blockquote 25,0,0,0,0 -->

Только следующий шаг!

Часто возникает вопрос, что делать, если сеть для который пришел пакет находится не за одним маршрутизатором? Чтобы в неё попасть, нужно пройти не через один, а через несколько маршрутизаторов, что в этом случае нужно вносить в таблицу маршрутизации.

p, blockquote 26,0,0,0,0 -->

Следующий шаг в маршрутизации

p, blockquote 27,0,0,0,0 -->

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

p, blockquote 28,0,0,0,0 -->

Считаем, что следующий маршрутизатор должен знать правильный маршрут до нужной нам сети, он знает лучше следующий маршрутизатор, тот знает следующий шаг и так далее, пока не доберемся до нужные нам сети.

p, blockquote 29,0,0,0,0 -->

маршрутизатор знает следующий шаг

p, blockquote 30,1,0,0,0 -->

Метрика

Можно заметить, что в нашей схеме в одну и ту же сеть, например вот в эту (10.2.0.0/16) можно попасть двумя путями, первый путь проходят через один маршрутизатор F, а второй путь через два маршрутизатора B и E.

p, blockquote 31,0,0,0,0 -->

2 пути маршрутизации

p, blockquote 32,0,0,0,0 -->

В этом отличие сетевого уровня от канального. На канальном уровне у нас всегда должно быть только одно соединение, а на сетевом уровне допускаются и даже поощряются для обеспечения надежности несколько путей к одной и той же сети.

p, blockquote 33,0,0,0,0 -->

Какой путь выбрать? Для этого используются поле метрика таблицы маршрутизации.

p, blockquote 34,0,0,0,0 -->

Таблица метрика в маршрутизации

p, blockquote 35,0,0,0,0 -->

Метрика это некоторое число, которые характеризует расстояние от одной сети до другой. Если есть несколько маршрутов до одной и той же сети, то выбирается маршрут с меньшей метрикой.

p, blockquote 36,0,0,0,0 -->

Метрика в маршрутизации

p, blockquote 37,0,0,0,0 -->

Раньше, метрика измерялось в количестве маршрутизаторов, таким образом расстояние через маршрутизатор F было бы один, а через маршрутизаторы B и E два.

p, blockquote 38,0,0,0,0 -->

метрика измерялось в количестве маршрутизаторов

p, blockquote 39,0,0,0,0 -->

p, blockquote 40,0,0,0,0 -->

Записи в таблице маршрутизации

Откуда появляются записей в таблице маршрутизации? Есть два варианта статическая маршрутизация и динамическая маршрутизация.

p, blockquote 41,0,0,0,0 -->

При статической маршрутизации, записи в таблице маршрутизации настраиваются вручную, это удобно делать если у вас сеть небольшая и изменяется редко, но если сеть крупная, то выгоднее использовать динамическую маршрутизацию, в которой маршруты настраиваются автоматически. В этом случае маршрутизаторы сами изучают сеть с помощью протоколов маршрутизации RIP, OSPF, BGP и других.

p, blockquote 42,0,0,0,0 -->

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

p, blockquote 43,0,0,0,0 -->

Маршрут по умолчанию

p, blockquote 44,0,0,0,0 -->

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

p, blockquote 45,0,0,1,0 -->

Предполагается что этот маршрутизатор лучше знает структуру сети, и способен найти маршрут в составной сети. Для обозначения маршрута по умолчанию, в таблице маршрутизации используются четыре нуля в адресе подсети и четыре нуля в маске (0.0.0.0, маска 0.0.0.0), а иногда также пишут default.

p, blockquote 46,0,0,0,0 -->

Ниже пример маршрута по умолчанию в таблице маршрутизации в операционной системе linux.

p, blockquote 47,0,0,0,0 -->

пример маршрута по умолчанию в таблице маршрутизации в операционной системе linux

p, blockquote 48,0,0,0,0 -->

Ip-адрес и маска равны нулю, в адрес и шлюз указываются ip-адрес маршрутизатора по умолчанию.

p, blockquote 49,0,0,0,0 -->

Длина маски подсети

Рассмотрим пример. Маршрутизатор принял пакет на ip-адрес (192.168.100.23), в таблице маршрутизации есть 2 записи (192.168.100.0/24 и 192.168.0.0/16) под который подходит этот ip-адрес, но у них разная длина маски. Какую из этих записей выбрать? Выбирается та запись, где маска длиннее, предполагается, что запись с более длинной маской содержит лучший маршрут интересующей нас сети.

p, blockquote 50,0,0,0,0 -->

Чтобы понять почему так происходит, давайте рассмотрим составную сеть гипотетического университета. Университет получил блок ip-адресов, разделил этот блок ip-адресов на две части, и каждую часть выделил отдельному кампусу.

p, blockquote 51,0,0,0,0 -->

Длина маски подсети в маршрутизации

p, blockquote 52,0,0,0,0 -->

На кампусе находятся свои маршрутизаторы, на которых сеть была дальше разделена на части предназначенные для отдельных факультетов. Разделение сетей производится с помощью увеличения длины маски, весь блок адресов имеет маску / 16, блоки кампусов имеют маску / 17, а блоки факультетов / 18.

p, blockquote 53,0,0,0,0 -->

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

p, blockquote 54,0,0,0,0 -->

фрагмент таблицы маршрутизации

p, blockquote 55,0,0,0,0 -->

p, blockquote 56,0,0,0,0 -->

p, blockquote 57,0,0,0,0 -->

И так получается, что выбирается всегда маршрут с маской максимальной длины. Общие правила выбора маршрутов следующие.

Следует отметить, что таблица маршрутизации есть не только у сетевых устройств маршрутизаторов, но и у обычных компьютеров в сети. Хотя у них таблица маршрутизации гораздо меньше.

  • Как правило такая таблица содержит описание присоединенной сети, который подключен данный компьютер.
  • Адрес маршрутизатора по умолчанию (шлюз или gateway) через который, выполняется подключение к интернет, или к корпоративной сети предприятия.
  • А также могут быть дополнительные маршруты к некоторым знакомым сетям, но это необязательно.

Для того чтобы просмотреть таблицу маршрутизации, можно использовать команды route или ip route (route print (Windows); route и ip route (Linux)).

p, blockquote 60,0,0,0,0 --> p, blockquote 61,0,0,0,1 -->

Читайте также: