Amarao ([info]amarao_san) wrote,
@ 2008-09-28 04:26:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Компьютерные сети - простейшие основы принципов работы (часть 7)
Ура. Второй уровень закончился, приходит третий уровень (я хотел было написать про 802.1X, про протокол идентификации по паролю на канальном уровне, но, честно говорю, "я о нём только читал", и объяснение его сочетания с всякими крипто-заморочками в WiFi приведёт к ахинее, так что просто упомянем, что такой протокол есть).

Третий уровень. Сетевой. Уровень, на котором происходит самое важное и сложное.

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

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

Заметим, на втором уровне есть некие робкие зачатки этого (коммутатор умеет определять в какой именно порт передать кадр), но сделать сеть на 100000 человек из одних только коммутаторов не получится. Потому что сам протокол не подразумевает "разумного выбора" в направлении передачи данных.

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

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

О маршрутизации мы поговорим чуть позже, пока остановимся на "формате имён". В настоящий момент используется версия 4 протокола, хотя горячие головы порываются перейти на ipv6, всё нижеследующее касается ipv4.

IP-адрес состоит из двух частей: номер сети и номер узла. (Примерно так можно считать, что почтовый адрес (бумажный) состоит из индекса и фамилии получателя). В Большом Интернете (той его части, которую никогда не увидит простой человек у себя дома) используется ещё более важная величина - автономная система, но об этом мы (может быть) поговорим потом. Для дальнейшей терминологии, мы добавим помимо слов "устройство" и "порт", слово "узел" (как объект принимающий/отправляющий данные на третьем уровне).

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

Основное условие - комбинация номера узла и номера сети должна давать 4 байта. Ровно.

Номер сети указывается первым, за ним указывается номер узла. Сети бывают разного размера (от 1 узла до сотен тысяч), так что для определения "где сеть, а где узел" используется маска сети. Если кто знает двоичное счисление, то вот простые формулы (формула применяется к каждому биту по-очереди).

NET=IP AND MASK
HOST = IP AND NOT MASK

Если кто не знает, то вот (занудное) объяснение:

Представим себе адрес (4 байта) в двоичном виде (что такое двоичная система счисления объяснять не буду, из принципа).

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

ИП адрес и маску принято записывать не как число, а как 4 однобайтовых числа через точку.

Например, 192.168.15.4. Маска при этом 255.255.255.0 (т.е. три байта состоят из чистых единиц, четвёртый байт из нулей, это означает, что три байта это номер сети 192.168.15.0, а последний байт - номер узла (.4)).

Повторю, что число бит в номерах может быть не кратным 8. Например, 192.168.129.44 при маске сети 255.255.128.0 будет иметь номер сети 192.168.128, и номер узла 1.44.

Сказать честно, в реальной жизни, это немного неудобно.

Кстати, обратите внимание, маска 255.255.255.255 означает сеть, в которой есть только 1 узел (на самом деле 0, но для удобства работы принято считать, что 1), а маска 0.0.0.0 означает "весь интернет".

Деление на "сеть" и "узел" с одной стороны важно (почему - в следующем уроке), с другой стороны, довольно условно. Например, если у нас есть две сети 192.168.1.0 и 192.168.2.0, то в некоторых случаях, мы их можем объявить одной сетью 192.168.0.0. Это можно сделать только в некоторых случаях (подробности потом).

Заметим, так как биты в маске сети должны идти до победного конца (без промежуточных нулей), то глупо записывать их в длинной форме, когда можно просто указать количество этих самых единиц. Это делают через дробь. Например, 192.168.1.1/24 это то же самое, что 192.168.1.1 mask 255.255.255.0.

ИП адреса бывают 4 видов. Во-первых, это адреса "обратной петли" (т.е. адреса, назначенные узлу для самого себя, т.е. не использующиеся для общения с устройствами снаружи). К таковым относятся адреса 127.0.0.0/8 (/8 - это очень много, это сеть с номером 127 и 2^(3*8) = 24 миллиона адресов).

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

В третьих, это адреса для "частного использования" (т.е. адреса, которые может использовать любой желающий, при условии, что в интернет данные с такими адресами не попадут). Это 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12).

Ну и в четвёртых, это обычные адреса, которые используются в интернете. Заметим, они постепенно кончаются, именно по этой причине товарищи рвутся сделать ipv6, в котором на адрес отводится аж 16 байт, так что "хватит всем" (они наивные).

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

Можно ли использовать другие адреса? Да, можно. Хотите 89.0.0.0/8 для домашней сети? Нет проблем. Только не обижайтесь, если при этом у вас не будет связи с 3/4 питера. Частные адреса нужны, чтобы быть уверенным, что используя этот адрес, не оказаться в ситуации, что с этим номером у вас и локальная машина, и удалённая (с которой вам очень хочется связаться).

С этой проблемой, кстати, сталкиваются домонетки, в которых есть пирринг между сетями. Если у вас в одной сети адреса 192.168.10.0/24, и в другой 192.168.10.0/24, то связи между ними не будет 100%.

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



(Post a new comment)


[info]gunslinger2
2008-09-28 09:04 am UTC (link)
Если на каждую домосетку брать нормальный диапазон - там никакого ipv6 не хватит, не то что v4. Тем более, что в небольших городах (в больших - таки берут, но это вообще отдельная тема) все друг друга знают, адреса один пес раздают через dhcp, и договориться о разграничении диапазонов никаких проблем нет.

(Reply to this) (Thread)


[info]nekonyaa
2008-09-28 10:05 am UTC (link)
лолшто? в6 не хватит?)))

(Reply to this) (Parent)(Thread)


[info]gunslinger2
2008-09-28 10:08 am UTC (link)
Художественное преувеличение. ;)

(Reply to this) (Parent)(Thread)


[info]nekonyaa
2008-09-28 10:29 am UTC (link)
на практике хватает даже в4.
сейчас лвиная доля домонеток предлогает нормальный динамический айпи, а за деньги ты получаешь статику. внутренние адреса только у совсем уж бедных товарищей.

(Reply to this) (Parent)(Thread)


[info]gunslinger2
2008-09-28 10:35 am UTC (link)
Мнэ-э... Как я уже заметил, "большие города - это отдельная тема". А я говорил про маленькие, где на весь город - в лучшем случае 4-5 домосеток по полтыщи клиентов.

(Reply to this) (Parent)(Thread)


[info]nekonyaa
2008-09-28 10:40 am UTC (link)
ну а они тем более погоды не делают при вопросе о нехватке адресов)

(Reply to this) (Parent)(Thread)


[info]gunslinger2
2008-09-28 10:47 am UTC (link)
Один не делает, два не делают, а 10-20-етц уже делают.

(Reply to this) (Parent)


[info]amarao_san
2008-09-28 10:41 am UTC (link)
v4 _ПОКА_ хватает. Скоро перестанет.

(Reply to this) (Parent)(Thread)


[info]nekonyaa
2008-09-28 10:54 am UTC (link)
"скоро" и в6 будет)

(Reply to this) (Parent)(Thread)


[info]amarao_san
2008-09-28 10:58 am UTC (link)
У меня есть гипотеза: v6 в массы пойдёт не раньше, чем IP начнёт стоить денег. Не как у провайдера для домашнего пользователя, а ДЕНЕГ.

До этого момента никто не пошевелится.

(Reply to this) (Parent)(Thread)


[info]xellh
2008-09-29 08:56 am UTC (link)
Они и стоят денег. http://www.ripe.net/ripe/docs/charging.html Неужели вы думали, что провайдеры их получают нахаляву? :)))

(Reply to this) (Parent)(Thread)


[info]amarao_san
2008-09-29 09:14 am UTC (link)
Это не деньги. Вот когда ИП адрес будет стоить (в аренду, на чёрном рынке) баксов 100-200 за шт, вот тогда появится стимул переходить на ipv6.

(Reply to this) (Parent)(Thread)


[info]xellh
2008-09-29 09:23 am UTC (link)
Т.е. банальная сеть С 25600$ ??? А более-менее стандартная /22 - больше 100 килобаксов в год? :))) Эээ... Нет уж, спасибо :))))
И не забываем, что существует стандарт преобразования ipv4->ipv6->ipv4. Вообщем расслабляемся. Всё будет хорошо :)

(Reply to this) (Parent)(Thread)


[info]amarao_san
2008-09-29 09:53 am UTC (link)
Представь себе, адреса закончились. (не так много их осталось, кстати). Тебе (компании) нужно иметь свою инфраструктуру. Нужна сетка /28. Адресов для автономки НЕТ. Провайдер говорит, "можем, у нас их есть" - $700 за блок (сто баксов скидка). Или $100 за один внешний ИП.

А насчёт стандартов преобразования - во что будет преобразовываться? Откуда циферки возьмутся, если они все заняты?

(Reply to this) (Parent)(Thread)


[info]xellh
2008-09-29 10:05 am UTC (link)
А теперь представь, какие суммы в таком случае будут платить провайдеры райпу. Я уже начинаю сочувствовать корбине, рткомму и всем остальным... Дай бог, чтоб всё это были лишь твои фантазии.
Преобразование - это на переходный период, когда юзерам всё ещё раздаются ipv4, но магистральное оборудование, интернет-сервера и т.п. уже работают на ipv6. Т.е. для перевода интернета на ipv6 не нужно это делать наскоком. Собственно в Китае, если я не ошибаюсь, ipv6 уже более-менее начинает использоваться.

(Reply to this) (Parent)(Thread)


[info]amarao_san
2008-09-29 10:11 am UTC (link)
Ты не понял. Рип сколько денег получал, столько и получает. Вот я за домашний ИП до недавнего времени платил 100р месяц. Означало ли это, что провайдер платил за /22 сетку 10000р в месяц? нет.

Рипе и прочие шарашки, сколько получали, столько и получают. Просто больше выдавать нечего. А у провайдера его пул тоже не резиновый, так что цена за адрес сначала станет 100р у всех, потом 200р, потом $10, потом $30... Рассказать, как цены на нефть растут? :)

А магистральное оборудование для ipv6 - кто его будет покупать, на какие шиши и на хрена? (как объяснить начальнику, что надо ipv6? профита от этого никакого, одни расходы).

(Reply to this) (Parent)(Thread)


[info]xellh
2008-09-29 10:22 am UTC (link)
Провайдеры в первую очередб станут умнее и всех пользователей пересадят за НАТ, и будут продавать реальные адреса как отдельную услугу. Думаю, что в таком случае лет на 10 ещё хватит.
Поддержка ipv6 в магистральном оборудовании обычно появляется вместе с новыми прошивками. Объяснить начальнику легко, особенно после того, как пропадёт инет и перестанут работать его любимые аська с одноклассниками :)

(Reply to this) (Parent)

нужен ртфм по туннелированию ipv6
[info]vlad2135.ya.ru
2008-09-29 10:05 am UTC (link)
Кстати да, очень хотелось бы информации об использовании ipv6 в современном интернете. А именно, может ли конченый пользователь, сидящий за натом провайдера, получить себе реальный ipv6 адрес и использовать его для подключения к поддерживающим его ресурсам? Конкретно интересуют торрент трекеры. А также поддержка teredo/ipv6 в последней версии uTorrent'a.

PS: Поназадавал вопросов, пойду гуглить... :)

(Reply to this) (Parent)(Thread)

Re: нужен ртфм по туннелированию ipv6
[info]amarao_san
2008-09-29 10:08 am UTC (link)
Ну, я бы не отказался тоже почитать и поиграться (сделать локалку на ipv6 - есть ли более смешная прихоть у админа?). Но в списке приоритетов оно минимум "через год".

(Reply to this) (Parent)

Re: нужен ртфм по туннелированию ipv6
[info]xellh
2008-09-29 11:11 am UTC (link)
Пользователь сидящий за натом провайдера с такой же лёгкостью может получить и реальный ip-адрес другого провайдера через туннель. Абсолютное большинство провайдеров этого не запрещают.

(Reply to this) (Parent)

поправка
[info]vlad2135.ya.ru
2008-09-28 10:07 am UTC (link)
172.16.0.0/16 - на самом деле для этого диапазона частных адресов маска /20.

(Reply to this) (Thread)

Re: поправка
[info]amarao_san
2008-09-28 10:38 am UTC (link)
пардон, опечатался.

(Reply to this) (Parent)

Re: поправка
[info]amarao_san
2008-09-28 10:39 am UTC (link)
алсо, не /20, а /12

(Reply to this) (Parent)(Thread)

Re: поправка
[info]vlad2135.ya.ru
2008-09-28 10:58 am UTC (link)
%-/ Да, а я перепутался, сорри.

(Reply to this) (Parent)


[info]vlad2135.ya.ru
2008-09-28 10:11 am UTC (link)
А вообще - посты супер! Тебе это нужно оформить в виде мини-учебника. Написано великолепно, компактно, понятным языком, процент полезной информации близок к 100!
Я просто балдею, вот!

(Reply to this)


[info]xellh
2008-09-29 08:48 am UTC (link)
803.2X - это flow control в full-duplex режиме, а не протокол идентификации (BTW, а что имелось ввиду под идентификацией? Есть же стандартное понятие ААА Authentication, Authorization, Accounting).

(Reply to this) (Thread)


[info]amarao_san
2008-09-29 09:12 am UTC (link)
IEEE 802.1X; я ещё и номер перепутал.

(Reply to this) (Parent)


[info]xellh
2008-09-29 09:05 am UTC (link)
>использование "частных" адресов в домонетках - дурной тон
Полный бред. RIPE уже достаточно давно НАСТАИВАЕТ на использовании приватных адресов везде, где это возможно. Кроме того, в НОРМАЛЬНЫХ домонетках для различных физических сегментов сети используются различные диапазоны ip-адресов и между провайдерами в процессе присоединения сетей (при установлении пиринговых отношений) согласовать использование каких-то диапазонов - это нормальная практика. После этого перенастроить DHCP-сервер в сегментах и переподключить юзеров для того, чтобы они использовали адреса из нового диапазона - это тривиальная задача для админа. В то же время использование приватных адресов, и следовательно NAT - довольно сильно уменьшает количество вирусов в сети ввиду того, что достучаться на комп пользователя-чайника из вражеского инета без использования бубна становится сложнее. Во-вторых, использование приватных адресов для домосеток ЗНАЧИТЕЛЬНО повышает масштабируемость и облегчает администрирование.

(Reply to this) (Thread)


[info]amarao_san
2008-09-29 09:18 am UTC (link)
С моей точки зрения, как потребителя, сеть провайдера (локалка) - это не локальная сеть, а внешняя. И почему я должен во внешней сети (в которой я связываюсь с враждебными узлами вне моей зоны ответственности) использовать частные адреса?

Утверждение, что NAT уменьшает количество вирусов, смешно (топор позволяет решить проблему перхоти). Обыкновенный acl сделает то же самое куда как более просто. deny ip any usernet imask - всё. Плюс возможность открывать отдельные порты для желающих.

(Reply to this) (Parent)(Thread)


[info]xellh
2008-09-29 09:30 am UTC (link)
Я не спорю с тем, что локалка для вас - внешняя сеть. А для провайдера - это внутренняя сеть, и никто ему не мешает использовать в ЕГО локальной сети приватные адреса.
deny ip any usernet imask - и вы остались без инета :)))
Про открывать отдельные порты для конкретного юзера в метросети - это вообще по-моему смешно :)
Вы на сети масштаба предприятия тоже рекомендуете не пользоваться NAT'ом? :)

(Reply to this) (Parent)(Thread)


[info]amarao_san
2008-09-29 09:51 am UTC (link)
Почему это для провайдера это ВНУТРЕННЯЯ сеть? Он имеет доступ к моему компьютеру или (даже) сетевому оборудованию? No way!

Я про это и говорю: ISP может использовать приватные адреса для работы со СВОИМ железом, но никак не во взаимодействии с МОИМ.

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

(Reply to this) (Parent)(Thread)


[info]xellh
2008-09-29 10:00 am UTC (link)
Для провайдера это внутренняя сеть, потому что поГРАНИЧНЫЕ маршрутизаторы, ограничивающие сеть провайдера, стоят на внешнем периметре сети. Т.е. Вы для провайдера - пользователь ЕГО сети, но никак не внешний ресурс. То есть то, какие адреса он использует для вашего подключения - это исключительно его забота. Как говорится - не нравится? - смени провайдера. А то, что он не имеет доступа к вашему компьютеру - так это, извините, но и мой сосед не имеет доступа к моему компу и к нашему активному сетевому оборудованию, хотя мы с ним сидим в одной локальной сети :)

(Reply to this) (Parent)(Thread)


[info]amarao_san
2008-09-29 10:06 am UTC (link)
В моём представлении ISP - это поставщик подключения к интернету. Он обеспечивает коннективити между сетью потребителя и другими сетями. Например, Tier1 будет считать всех остальных "лузерами и своей внутренней сетью"? Есть сеть потребителя (в тривиальном случае - 1 узел). Есть сети наружние, через которые осуществляется связь со всеми остальными сетями. Провайдер берёт деньги за связь сети потребителя и внешних сетей.

Это моя модель (и моё представление) о том, что такое ISP.

(Reply to this) (Parent)(Thread)


[info]xellh
2008-09-29 10:28 am UTC (link)
Для Tier1 все соседи будут "за границей сети", за пограничными роутерами, т.е. внешним миром. Надеюсь, что не надо объяснять, как работает BGP? ;)
Вообщем для меня, если смотреть со стороны ISP - есть внешний мир (аплинки, соседи по BGP), есть внутренняя сеть (юзеры, внутри моей AS) и есть несколько моих подсетей во внутренней сети (магистральное оборудование, офис, DMZ, etc).

(Reply to this) (Parent)(Thread)


[info]amarao_san
2008-09-29 10:40 am UTC (link)
А если есть клиент с BGP? Он внутренний мир или внешний?

(Reply to this) (Parent)(Thread)


[info]xellh
2008-09-29 10:47 am UTC (link)
С такими клиентами, как правило, заключаются межоператорские договора или соглашения и его сеть рассматривается как внешняя. Но к ней обычно имеются некоторые привелегии, как к соседу. BTW, по последним правилам райпа, клиенту не выдаётся своя AS, если у него предполагается только один сосед. Я уже не говорю о том, что нормальный BGP и NAT - вещи, мягко говоря, совсем разные. Т.е. если я подключен к прову по BGP и он начнёт натить какую-то мою сеть, то я ему не просто настучу по голове, но он может лишиться лицензии.

(Reply to this) (Parent)(Thread)


[info]amarao_san
2008-09-29 10:51 am UTC (link)
ну а почему тогда особое отношение к пользователю с арендованным IP?

(Reply to this) (Parent)(Thread)


[info]xellh
2008-09-29 11:07 am UTC (link)
Во-первых, как я уже говорил - таковы рекомендации райпа. Во-вторых, есть и крупные пользователи, к которым у провайдеров тоже особые отношения и свои менеджеры и там об L2TP и PPPoE даже и не заикаются. Ну и в третьих - есть розничный рынок и есть оптовый, и на каждом - свои правила игры. Т.е. если на розничном провайдер будет продавать реальный ip за 100 баксов и даже глазом не моргнёт, то крупному клиенту сеть С вполне может уйти за 1000 баксов и все останутся довольны.

(Reply to this) (Parent)


Create an Account
Forgot your login?
Login w/ OpenID
English • Español • Deutsch • Русский…