Рис. 1. Internet
Как работает Internet? Как оказалось, это не такой уж и простой вопрос и он звучит очень часто! При этом многие просто стесняются задавать этот вопрос, не желая "упасть в грязь лицом". Но даже те, кто думает, что знает смысл этого слова, очень часто не понимает принцип работы.
В этом посте я попробую доходчиво объяснить как устроен наш Интернет на примере понятных аналогий.
"Интернет - огромная сеть из множества сетей поменьше". Обычно я именно так и отвечаю, когда необходимо дать короткое объяснение. Иногда еще рисую для примера картинку как на рисунке 1. Интернет это самая отказоустойчивая сеть в мире! Нет такого кабеля, перерезав который можно выключить Интернет во всем мире. Достигается это за счет множественных соединений между интернет провайдерами (как на рисунке 1). Резервирование достигается за счет использования специального протокола динамической маршрутизации - BGP. Но сейчас разговор не об этом.
Все взаимодействие в сети Интернет осуществляется на основе IP адресов. На данный момент доминирует четвертая версия интернет протокола (IPv4). Что такое IP - адрес? Это некое число, которое должно однозначно определять устройство в сети. Но думаю не всех устроит такое определение, поэтому мы попробуем упростить это понятие. Давайте приведем понятную для всех аналогию и рассмотрим как организована адресация в глобальной сети в принципе. Представьте следующее:
1) Глобальная сеть Интернет это всего лишь виртуальная копия нашей планеты Земля. В Интернете как и на Земле есть свои континенты, страны, города, улицы, дома и даже квартиры.
2) Весь процесс взаимодействия в сети Интернет сводится к обмену пакетами, большими или маленькими. Так и в реальной жизни, мы отправляем друг другу письма, посылки. Но для этого мы должны знать адрес человека.
3) IPv4 подразумевает 4,22 миллиарда адресов. Естественно за этими адресами нужно следить, должен быть глобальный справочник. Для этого была создана организация IANA (Internet Assigned Numbers Authority), которая управляет всеми адресами. Т.е. у них находится вся карта нашей виртуальной планеты Земля. Можно сравнить с картой мира.
4) Думаю вы понимаете, что отобразить все адреса на одной карте просто невозможно, она будет нечитабельной. Поэтому виртуальная карта IPv4 делится на свои континенты - большие блоки IP адресов (т.е. сети). Эти блоки выдаются Региональным интернет-регистраторам (RIR), каждый из которых следит за своим континентом. Виртуальная карта IPv4 адресов выглядит следующим образом:
Рис. 2. Карта RIR
На нашей карте есть следующие континенты (Региональные интернет-регистраторы):
AfriNIC - для Африки;
APNIC - для Азии и Тихоокеанского региона;
ARIN - для Северной Америки;
LACNIC - для Латинской Америки и Карибского региона;
RIPE NCC - для Европы, Ближнего Востока и Центральной Азии.
5) Региональным интернет-регистраторам тоже довольно сложно управлять целым континентом адресов. Поэтому они разбивают свой континент на страны, передавая большие блоки (сети) IPv4 адресов Интернет-провайдерам.
6) Таким образом каждый Интернет-провайдер отвечает за адреса своей страны - большой диапазон адресов.
7) В свою очередь, каждый Интернет-провайдер дробит свою сеть на более мелкие, т.е. выделяет в своей стране города и улицы, для удобства управления. Для чего это делается мы поговорим чуть позже.
8) И только после всего этого мы уже можем получить наш адрес на наш домашний маршрутизатор для выхода в сеть Интернет. IP адрес можно сравнить с нашим домашним адресом. Где в качестве IP выступает наш город (Москва), улица (Некрасова), дом (10) и наконец квартира (5).
В общем виде: 210.230.10.50 -> г. Москва, ул. Некрасова, д. 10, кв. 5.
Как видите IP адрес это не просто число, это довольно сложная структура, призванная соблюдать порядок в глобальных и локальных сетях.
Допустим, что все нуждающиеся получили IP-адреса. Что дальше? Почему выбран именно такой механизм распределения адресов? Почему так важно соблюдать эти правила и грамотно планировать распределение адресов и их количество? Для ответа на эти вопросы нам необходимо понимать каким образом происходит взаимодействие различных IP-адресов. Мы снова попробуем привести аналогию с реальной жизнью.
Рис. 3. Аналогия сетевого взаимодействия
Представим аналогию сетевого взаимодействия изображенную на рисунке 3. Как было сказано ранее, все взаимодействие в сети Интернет сводится к обмену пакетами, от одного IP-адреса к другому. Так и в реальной жизни, чтобы отправить письмо своему другу мы должны указать на конверте его адрес, где он живет, а так же указать свой собственный адрес, на случай если он захочет нам ответить. В сам конверт мы вкладываем наше сообщение. Причем если сообщение слишком большое, нам придется разбить его на несколько писем. Мы не сможем засунуть “Война и мир” в один конверт. Точно так же с IP-пакетом. Каждый IP-пакет содержит адрес-источник, адрес-получатель и передаваемые данные (на самом деле в пакет входит гораздо больше полей). Причем если в пакет вкладывается слишком много данных, то может произойти фрагментация (разбитие) пакета. Происходит это из-за настроек MTU - максимальный объем данных, которые можно засунуть в один пакет (по аналогии - размер или максимальная толщина конверта). Рассмотрим путь пакета (ориентируйтесь по рисунку 3):
1) После того как письмо написано, конверт заклеен, адреса подписаны, нам необходимо его отправить. К примеру отправим письмо из Москвы в Волгоград на ул. Ленина 1, дом 1, кв 1. Иванову Ивану Ивановичу.
Или 210.230.10.50 ->215.234.15.10
Рис. 3. Адрес источника, адрес получателя, данные
Думаю вы понимаете, что мы не сами понесем это письмо своему другу (особенно если он живет в США). Во-первых, это практически невозможно, т.к. очень далеко и нет прямой дороги. Во-вторых, мы просто не знаем где это. Согласитесь, что будет довольно трудно помнить дорогу до всех наших друзей, особенно до тех, кто живет в другой стране. Мы знаем только их адрес, но не дорогу! Мы знаем дорогу до наших соседей на нашей улице. Для всех остальных адресов есть наше почтовое отделение, туда мы и понесем наше письмо. Для нас это будет являться маршрутом по умолчанию, т.е. это маршрут до всех адресов, куда мы не знаем дороги. В сетевых терминах наше почтовое отделение это ничто иное, как маршрутизатор провайдера и его адрес является для нас маршрутом по умолчанию (default gateway). При этом наша сеть является нашей улицей, а наш IP-адрес - адрес нашей квартиры или дома. Поэтому если мы обращаемся к IP-адресу из нашей сети, то мы обращаемся к нему на прямую, т.к. знаем где этот адрес находится и нам не нужен маршрут по умолчанию.
2) Почтовое отделение Советского района, получив письмо, смотрит адрес назначения. Если оно предназначено человеку с соседней улицы, то письмо сразу же отправляется ему, т.к. почтовое отделение знает все улицы в своем районе. Если же адресат находится в другом городе (в нашем случае это Волгоград), то письмо отправляется в главпочтамт города Москвы (в больших городах как правило несколько почтовых отделений), т.к. локальное почтовое отделение не знает дороги до адресата. В сетевой терминологии соседняя улица это другая подсеть, которая подключена к тому же маршрутизатору что и мы. Маршрут от районного почтового отделения до главпочтамта можно сравнить с маршрутом по умолчанию на маршрутизаторе провайдера в сторону пограничного маршрутизатора.
3) В свою очередь в главпочтамте Москвы смотрят в каком городе находится адресат и отправляют это письмо так же в главпочтамт города Волгоград, т.к. другие почтовые отделения этого города они не знают. Их даже не интересует на какой улице и в каком доме живет адресат, эта информация избыточна. Для Москвы достаточно знать город. И все письма, отправляемые в Волгоград будут идти именно через Волгоградский главпочтамт. Это можно сравнить с пересылкой пакета от пограничного маршрутизатора города Москвы до пограничного маршрутизатора города Волгоград При этом у Московского маршрутизатора есть лишь один маршрут в весь диапазон IP-адресов Волгоградской сети. Согласитесь, это удобнее чем маршруты абслютно до всех адресов Волгограда.
4) Получив письмо в Волгоградском главпочтамте, просматривается улица адресата, после чего письмо отправляется в соответствующее почтовое отделение в этом районе. При этом центральное отделение так же не интересует номер дома или квартира, для них эта информация тоже является излишней. Т.е. пограничный маршрутизатор Волгограда пересылает пакет на соответствующий узловой роутер. При этом у пограничного маршрутизатора есть только один маршрут до всех сетей, за которые отвечает узловой роутер.
5) И наконец в районном почтовом отделении смотрят улицу, дом, квартиру и отправляют письмо уже непосредственно адресату. IP-пакет прошел через роутер и попал на компьютер пользователя.
Представленная аналогия очень упрощенная версия сетевого взаимодействия в глобальной сети Интернет. И тем не менее, давайте на секунду представим, что нет такой четкой структуры в IPv4. Что сети дробятся на огромное количество подсетей и раздаются кому попало в произвольном порядке. Мы больше не сможем ориентироваться в сети с такой легкостью. Пропадают наши виртуальные континенты, страны и города. Отсутствие больших блоков IP адресов вынудит нас прописывать на каждом маршрутизаторе огромное количество маршрутов, буквально до каждого IP-адреса (а их 4 миллиарда). Большинство роутеров в принципе не поддерживают такую таблицу маршрутизации. Кроме того не будет возможности следить за адресами и их уникальностью, никто не даст гарантию, что один и тот же адрес не применят в нескольких местах. Наступит полный хаос и пользоваться привычным нам Интернетом станет просто невозможно.
Кроме того, следует еще помнить о таком делении IP-адресов как “Публичные” и “Приватные”. Приватные IP-адреса используются исключительно в локальных сетях. Эти сети могут быть любого размера, начиная от домашней сети, заканчивая сетью трансконтинентальной корпорации. По сути, большие корпоративные сети - это маленький аналог сети Интернет. Неправильно спланированная сеть может привести к таким проблемам как:
- Полное или частичное дублирование адресов;
- Увеличение количества маршрутов и как следствие - нагрузки на маршрутизатор;
- Нехватка IP-адресов при росте сети;
- Усложнение сети.
Все эти проблемы могут доставить существенные трудности, как администратору сети, так и всей компании в целом (особенно при возникновении неполадок).
Какой можно сделать вывод? Разберитесь в IPv4! Планированию сетей посвящена целая глава в программе курса CCNA. Слишком уж часто мне встречаются инженеры, которые не умеют планировать сети. Без этих знаний вы не сможете ни создавать, ни обслуживать большие и средние корпоративные сети.
Надеюсь данная статья кому-то пригодится.