Skip to content

Latest commit

 

History

History
182 lines (102 loc) · 30.2 KB

baza-po-setyam.md

File metadata and controls

182 lines (102 loc) · 30.2 KB

База по сетям

Глобальные и Локальные сети

Вся интернет сеть подразделяется на глобальную (WAN) и локальную (LAN).

Все пользовательские устройства в рамках одной квартиры или офиса или даже здания (компьютеры, смартфоны, принтеры/МФУ, телевизоры и т.д.) подключаются к роутеру, который объединяет их в локальную сеть.

Участники одной локальной сети могут обмениваться данными между своими устройствами без подключения к интернет провайдеру. А вот чтобы выйти в сеть (например, выйти в поисковик Яндекс или Google, зайти в VK, Instagram, YouTube или AmoCRM) необходим доступ к глобальной сети.

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

Для аналогии, сети, можно сравнить с дорогами. Например, дороги вашего города N это локальная сеть. Эти дороги соединяют вас с магазинами, учреждениями, парками и другими местами вашего города. Чтобы попасть в другой город N вам необходимо выехать на федеральную трассу и проехать некоторое количество километров. То есть выйти в глобальную сеть.

Для более наглядного представления, что такое глобальная и локальная сеть я нарисовал схематичный рисунок:

https://hsto.org/webt/yd/2p/zp/yd2pzplixjfqa9dcqujl7bvhtcq.png

Белые и серые IP-адреса

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

Это также как и наши дома и квартиры имеют свой точный адрес (индекс, город, улица, № дома, № квартиры). В рамках вашей локальной сети (квартиры, офиса или здания) есть свой диапазон уникальных адресов. Я думаю многие замечали, что ip-адрес компьютера, например, начинается с цифр 192.168.X.X. Так вот это локальный адрес вашего устройства.

Существуют разрешенные диапазоны локальных сетей:

от ip-адреса до ip-адреса кол-во возможных подключенных устройств
10.0.0.0 10.255.255.255 16777216
172.16.0.0 172.31.255.255 65536

192.168.0.0

192.168.1.0

192.168.0.255

192.168.1.255

256

256

Думаю из представленной таблицы сразу становится понятно почему самый распространенный диапазон это 192.168.X.X

Чтобы узнать, например, ip-адрес своего компьютера (на базе ос windows), наберите в терминале команду ipconfig.

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

Для большего понимания рассмотрите схему ниже. На ней я подписал каждое устройство своим ip-адресом.

https://hsto.org/r/w1560/webt/ii/bc/kf/iibckfbsqrxermagkbtpx5rdvgg.png

На схеме видно, что провайдер выпускает нас в глобальные сети (в интернет) с белого ip-адреса 91.132.25.108

Для нашего роутера провайдер выдал серый ip-адрес 172.17.135.11

И в нашей локальной сети все устройства соответственно тоже имеют серые ip-адреса 192.168.Х.Х

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

Но из всего этого стоит помнить один очень важный фактор!

В настоящее время обострилась проблема нехватки белых ip-адресов, так как число сетевых устройств давно превысило количество доступных ip. И по этой причине интернет провайдеры выдают пользователям серые ip-адреса (в рамках локальной сети провайдера, например в пределах нескольких многоквартирных домов) и выпускают в глобальную сеть под одним общим белым ip-адресом.

Чтобы узнать серый ip-адрес выдает вам провайдер или белый, можно зайти к себе на роутер и посмотреть там, какой ip-адрес получает ваш роутер от провайдера.

Например я на своем домашнем роутере вижу серый ip-адрес 172.17.132.2 (см. диапазаон локальных адресов). Для подключения белого ip-адреса провайдеры обычно предоставляют доп. услугу с абон. платой.

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

NAT

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

Но так было не всегда, изначально всем выдавались белые ip-адреса, и вскоре, чтобы избежать проблему дефицита белых ip-адресов, как раз и был придуман NAT (Network Address Translation) - механизм преобразования ip-адресов.

NAT работает на всех роутерах и позволяет нам из локальной сети выходить в глобальную.

Для лучшего понимания разберем два примера:

  1. Первый случай: у вас куплен белый ip-адрес 91.105.8.10 и в локальной сети подключено несколько устройств.

https://hsto.org/r/w1560/webt/bh/eu/nw/bheunwlkvbzlzrepyn28mcpytjy.png

Каждое локальное устройство имеет свой серый ip-адрес. Но выход в интернет возможен только с белого ip-адреса.

Следовательно когда, например, ПК1 с ip-адресом 192.168.1.3 решил зайти в поисковик Яндекса, то роутер, выпуская запрос ПК1 в глобальную сеть, подключает механизм NAT, который преобразует ip-адрес ПК1 в белый глобальный ip-адрес 91.105.8.10

Также и в обратную сторону, когда роутер получит от сервера Яндекса ответ, он с помощью механизма NAT направит этот ответ на ip-адрес 192.168.1.3, по которому подключен ПК1.

2. Второй случай: у вас также в локальной сети подключено несколько устройств, но вы не покупали белый ip-адрес у интернет провайдера.

https://hsto.org/r/w1560/webt/eg/iu/di/egiudi2dlq38oarasalf3bir6r4.png

В этом случае локальный адрес ПК1(192.168.1.3) сначала преобразуется NAT'ом вашего роутера и превращается в серый ip-адрес 172.17.115.3, который вам выдал интернет-провайдер, а далее ваш серый ip-адрес преобразуется NAT’ом роутера провайдера в белый ip-адрес 91.105.108.10, и только после этого осуществляется выход в интернет (глобальную сеть).

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

Такая схема имеет более высокую степень безопасности ваших устройств, но также и имеет ряд больших минусов. Например, нестабильная sip-регистрация VoIP оборудования или односторонняя слышимость при звонках по ip-телефонии.

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

DHCP - сервер и подсети

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

Также и с Wi-Fi, например со смартфона или ноутбука, вы подключаетесь к нужной вам сети, вводите пароль, устройство получает ip-адрес и у вас появляется интернет.

А что позволяет устройству получить локальный ip-адрес автоматически? Эту функцию выполняет DHCP-сервер.

Каждый роутер оснащен DHCP-сервером. IP-адреса, полученные автоматически являются динамическими ip-адресами. Почему динамические? Потому что, при каждом новом подключении или перезагрузки роутера, DHCP-сервер тоже перезагружается и может выдать устройствам разные ip-адреса.

То есть, например, сейчас у вашего компьютера ip-адрес 192.168.1.10, после перезагрузки роутера ip-адрес компьютера может стать 192.168.1.35

Чтобы ip-адрес не менялся, его можно задать статически. Это можно сделать, как на компьютере в настройках сети, так и на самом роутере. А также, DHCP-сервер на роутере вообще можно отключить и задавать ip-адреса вручную. Можно настроить несколько DHCP-серверов на одном роутере. Тогда локальная сеть разделится на подсети.

Например, компьютеры подключим к нулевой подсети в диапазон 192.168.0.2-192.168.0.255, принтеры к первой подсети в диапазон 192.168.1.2-192.168.1.255, а Wi-Fi будем раздавать на пятую подсеть с диапазоном 192.168.5.2-192.168.5.255 (см. схему ниже)

https://hsto.org/r/w1560/webt/v7/-0/nj/v7-0njzgdcepea6hkajkgsup-ug.png

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

Внимание! Если вам необходимо с ПК зайти на web-интерфейс, например, принтера или ip-телефона и при этом ваш ПК находится в другой подсети, то подключиться не получится.

Для понимания разберем пример:

https://hsto.org/r/w1560/webt/7e/03/x4/7e03x4oc0r2v2u88n_yq9ga4zxe.png

Допустим вы работаете за ПК1 с локальным ip-адресом 10.10.5.2 и хотите зайти на web-интерфейс ip-телефона с локальным ip-адресом 192.168.1.3, то подключиться не получится. Так как устройства находятся в разных подсетях. К ip-телефона, находящиеся в подсети 192.168.1.X, можно подключиться только с ПК3 (192.168.1.5).

Также и к МФУ (172.17.17.10) вы сможете подключиться только с ПК4 (172.17.17.12).

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

Устройства маршрутизации сети (маршрутизатор, коммутатор, свитч, хаб)

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

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

Давайте разбираться.

  • Роутер, маршрутизатор и сетевой шлюз: Все знают что такое роутер. Что это именно то устройство, которое раздает в помещении интернет, подключенный от интернет провайдера. Так вот маршрутизатор и сетевой шлюз это и есть роутер. Данное оборудование является основным устройством в организации сети. В инженерной среде наиболее используемое название это “маршрутизатор”. Кстати маршрутизатором может быть не только приставка, но и системный блок компьютера, если установить туда еще одну сетевую карту и накатить, например, RouterOS Mikrotik. Далее разрулить сеть на множество устройств с помощью свитча.
  • Что такое Свитч и чем он отличается от Коммутатора и Хаба: Свитч и Коммутатор это тоже синонимы. А вот хаб немного другое устройство. О нем в следующем пункте. Коммутатор (свитч) служит для разветвления локальной сети. Как тройник или сетевой фильтр, куда мы подключаем свои устройства, чтобы запитать их электричеством от одной розетки. Коммутатор не умеет маршрутизировать сеть как роутер. Он не выдаст вашему устройству ip-адрес и без помощи роутера не сможет выпустить вас в интернет. У стандартного маршрутизатора обычно 4-5 портов для подключения устройств. Соответственно, если ваши устройства подключаются проводами и их больше чем портов на роутере, то вам необходим свитч. Можно к одному порту роутера подключить свитч на 24 порта и спокойно организовать локальную сеть на 24 устройства. А если у вас завалялся еще один роутер, то можно в его web-интерфейсе включить режим коммутатора и тоже использовать как свитч.
  • Хаб: Хаб выполняет те же функции, что и коммутатор. Но его технология распределения сильно деревянная и уже устарела. Хаб раздает приходящие от роутера пакеты всем подключенным устройствам без разбора, а устройства уже сами должны разбираться их это пакет или нет. А коммутатор имеет MAC таблицу и поэтому распределяет приходящие пакеты на одно конкретное устройство, которое и запрашивало этот пакет. Следовательно передача данных коммутатором быстрее и эффективнее. В настоящее время уже редко где встретишь использование хаба, но всё таки они попадаются, нужно быть к этому готовым и обязательно рекомендовать пользователю замену хаба на свитч.

Основные команды для анализа сети

  • Команда Ping: Чтобы понять активен ли ip-адрес или само устройство, можно его “пропинговать”. Для этого в командной строке пишем команду ping “ip-адрес”. Ping намного полезней использовать с ключами:

    • -t -”пинговать” непрерывно (для остановки нажимаем комбинацию Ctrl+С);
    • -а -отображать имя “пингуемого” узла (сайта/устройства/сервера).

    При непрерывном пинге можно увидеть адекватно ли ведет себя пингуемый узел и примерное качество работы интернет канала. Внимание! Иногда на роутерах отключена отправка ICMP пакетов (кто-то отключает специально, а где-то не включена по умолчанию), в таком случае на "пинги" такой узел отвечать не будет, хотя сам будет активен и нормально функционировать в сети. Еще одна возможность “пинга” это узнать какой ip-адрес скрывается за доменом сайта. А именно, на каком сервере установлен хост сайта;

  • Трассировка: Иногда очень важно увидеть каким путем идет пакет до определенного устройства. Возможно где-то есть пробоина и пакет не доходит до адресата. Так вот утилита трассировки помогает определить на каком этапе этот пакет застревает. На ОС Windows эта утилита вызывается командой “tracert” ip-адрес или домен. На ОС Linux эта утилита вызывается командой traceroute. Утилитой трассировки также и обладают некоторые устройства, маршрутизаторы или голосовые VoIP шлюзы.

  • Утилита whois: Данная утилита позволяет узнать всю информацию об ip-адресе или о регистраторе домена.

Транспортные протоколы TCP и UDP

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

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

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

Зачем тогда нужен UDP? Дело в том, что данный транспортный протокол имеет огромное преимущество перед TCP в скорости передачи данных. Поэтому UDP широко используется для пересылки голосовых и видео пакетов в реальном времени. А именно, в ip-телефонии и видео звонках.

К примеру, любой звонок через WhatsApp или Viber использует транспортный протокол UDP. Также и при видео звонках, например, через Skype или те же мессенджеры WhatsApp и Viber.

Именно потому что UDP не гарантирует абсолютную передачу данных и целостность передаваемого пакета, зачастую возникают проблемы при звонках через интернет. Это прерывание голоса, запаздывание, эхо или робоголос. Данная проблема возникает из-за нагруженного интернет канала, двойного NATа или радиоканала. Хорошо бы конечно в таких случаях использовать TCP, но увы, для передачи голоса необходима мгновенная передача целостных пакетов, а для этой задачи идеально подходит UDP.

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

Источники:

Доп. материал: