Маршрутизируй это!

Часть первая: все дело в маске

С чего же начинается родина? В нашем случае - с IP-адреса и маски подсети. Эти две составляющие однозначно идентифицируют компьютер (при условии, что администратор ничего не перепутал).


Маски-шоу

Итак, в оригинале IP-адрес и маска представлены в двоичном виде. Многие пугаются, когда вместо привычного числа 192 видят 11000000. А зря, хоть это и слегка непривычно, зато разбираться с адресацией гораздо проще именно в таком виде. Кстати, каждое число в адресе, разделенное точкой, называется октетом. Таким образом, адрес 192.168.2.1 состоит из 4 октетов. В двоичном виде каждый октет содержит 8 бит.

Наверняка многие видели в настройках протокола TCP/IP следующее:

IP-адрес: 192.168.2.1

Маска подсети: 255.255.255.0

Что это значит? Данная запись говорит о том, что адрес вашей подсети (да, у нее тоже есть адрес) 192.168.2.0, а адрес компьютера в ней фактически 0.0.0.1. Как видите, мы просто разложили IP-адрес на составляющие. Почему разложили именно так? Потому что основывались на значении маски подсети. Три первых октета маски равны 255, это говорит о том, что в IP-адресе первые три октета указывают на адрес подсети. Если бы маска была 255.255.0.0, то адрес подсети был бы 192.168.0.0, а адрес компьютера в этой подсети - 0.0.2.1.

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

К слову, можете поэкспериментировать с этим в своей домашней сети. У меня дома адрес подсети 192.168.0.0, и если я посылаю сообщение по адресу 192.168.0.255, то оно приходит на все компьютеры (в том числе и на мой собственный). Выглядит это так: "net send 192.168.0.255 привет всем".

А теперь я попробую вам доказать, что двоичное представление адресов и масок только упрощает жизнь. Допустим, в маленьком университете имеется сеть из нескольких десятков компьютеров. Логично было бы разделить ее на две подсети - студенческую и сотрудников. Поскольку из-за плохого финансирования роста количества компьютеров не предвидится, то нет смысла резервировать большой диапазон IP-адресов (хочется сделать все красиво и элегантно). Посему сеть класса C (подробнее об этом во врезке) будет великовата, и мы ее разделим на две части. Чтобы этого добиться, будем использовать маску подсети 255.255.255.128. Вот ее двоичный эквивалент: 11111111.11111111.11111111.10000000

Как видите, в четвертом октете старший бит равен 1, а не 0 (именно из-за этого и появилось число 128). Итак, в данном случае для адреса подсети будет выделено 3 октета и один бит. Чтобы пояснить, представим показательный IP-адрес 192.168.0.1 в двоичном виде. Получится: 11000000.10101000.00000000.00000001.

Часть, выделенная жирным шрифтом, является адресом подсети. А если бы маска была 255.255.255.0, то выглядело бы все так: 11000000.10101000.00000000.00000001. Как видите, разница всего в одном бите.

Что же меняется от одного бита? Мы получаем две подсети с диапазоном адресов: 192.168.0.1-126 и 192.168.0.129-254.

Для полной ясности осталось только разобраться, почему у первой подсети адрес 192.168.0.126 является последним, почему не 192.168.0.127... Потому что для данной подсети этот адрес является широковещательным (помните, как 192.168.0.255?). "Помнить-то помню, но что общего у адресов 192.168.0.127 (маска 255.255.255.128) и 192.168.0.255 (маска 255.255.255.0)?" - возмутится пытливый читатель. А то, что в обоих случаях в двоичном обозначении адрес компьютера, отделенный от адреса подсети, состоит из единиц (это и является признаком широковещательного запроса). Смотрите сами.

В первом случае: 11000000.10101000.00000000.01111111 (маска 255.255.255.128).

Во втором: 11000000.10101000.00000000.11111111 (маска 255.255.255.0).

Как оказалось, все дело в маске, а не в шляпе, как многие подумали.


Шлюзы - сливать сюда

Маршрутизаторы - именно они связывают разрозненные подсети воедино. С точки зрения TCP/IP маршрутизатор, указанный на компьютере, связывающем его подсеть с другими сетями, называется "основным шлюзом". Основная роль шлюза - "сливать" пакеты из одной подсети в другую. Происходит это следующим образом.

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

Дмитрий БАРДИЯН,
x403@yandex.ru


Классы сетей

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

Сети класса A по умолчанию используют маску подсети 255.0.0.0 и имеют значения от 0 до 127 в первом октете. Адрес 10.52.36.12 является адресом класса A.

Сети класса B по умолчанию используют маску подсети 255.255.0.0 и имеют в первом октете значение от 128 до 191. Адрес 172.17.52.63 является адресом класса B.

Сети класса C по умолчанию используют маску подсети 255.255.255.0 и имеют в первом октете значение от 192 до 223. Адрес 192.168.124.132 является адресом класса C.

Версия для печатиВерсия для печати

Номер: 

38 за 2004 год

Рубрика: 

Internet
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя alexei
так что же получается, если задать маску 255.255.255.128 для двух адресов

192.168.0.100 и 192.168.0.200, то они друг друга не увидят?

супер конечно.

получается запрос уйдет на шлюз :))))

Аватар пользователя Savely
Именно. А в чем прикол?
Аватар пользователя vitfil
"Сети класса C по умолчанию используют маску подсети 255.255.255.0 и имеют в первом октете значение от 192 до 223. Адрес 192.168.124.132 является адресом класса C."

Т.е., если я у себя в офисе строю сетку класса Ц, то я могу назначить своему компу адрес 193.232.248.2?

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

Аватар пользователя Savely
2 vitfil: Есть момент - у тебя в офисной сети ВСЕ купленные IP или есть один купленный, через которого выходит вся сеть? Если ты купишь N (<255, естественно) IP и заявишь сетку класса С - тебе дадут именно из того диапазона, что и написано в статье...

А вообще - ты можешь назначить (реально) ЛЮБОЙ диапазон IP своей офисной сети, если эти адреса не попадут в глобальную сеть (т.е. ты используешь NAT, к примеру). Но это - моветон...

А статья - полезная. С расплодившимися самопальными сетями - их админам будет не вредно прочитать. А то до RFC у них руки не доходят иногда...

Аватар пользователя vitfil
Просто мне кажется, что в данной статье надо было немного больше рассказать об адресах. А еще хорошо было бы указать парочку FM, которые надо RT новоявленным админам самопальных сетей. Просто у меня после прочтения появилось ощущение сбоя в матрице. Залез на книжную полку, откопал "Протоколы Internet" и в разделе по TCP\IP нашел-таки пару абзатцев, несущих такую же смысловую нагрузку, как и статья.

Нам с вами понятно, о чем в ней речь. И она будет полезной, если новоявленный админ кроме знания слов "плуг-энд-плей", "линукс форевер", "виндуз сакс", обладает необходимыми начальными знаниями в области сетевых протоколов. IMHO имеет смысл сделать цикл статей на эту тему?

Вам никогда не приходилось перестраивать сеть, сотворенную длинноволосым (признак крутого хакера?) юнцом за копейки? На вопрос: "зачем в офисной сетке рядом с TCP\IP установлен IPX\SPX?" Как правило с умным видом отвечают: "я не ламер, эти протоколы друг с другом не конфликтуют и надо их ставить вместе, потому как один другому не мешает."

Я не админ (уже), а все выссказанное - скромное мнение программера.

Аватар пользователя Savely
Ну, с циклом статей - к автору. IMHO - задачей было разъяснение значения маски. А то народ ее как константу 255.255.255.0 воспринимает...

Я сам длинноволосый, правда уже не юнец, к сожалению :-))) Насчет "надо их ставить вместе, потому как один другому не мешает" - логика хромает у "юнца". Но ведь не мешает же :-)) Насчет нужности IPX - это по месту надо смотреть. Кстати, вон Doom I (и тогдашние игрушки) - только по нему и бегали.

Да и я не админ (уже почти) :-)))