3.1 Знакомство с хостами и подсетями

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

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

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

Знакомство с IP-адресами

IP-адрес состоит из четырех частей, записанных в виде десятичных чисел с точками (например, 192.168.1.1). Каждую из этих четырех частей называют октетом. Октет представляет собой восемь двоичных цифр, например 00001111.

Tаким образом, каждый октет может принимать в двоичном виде значения от 00000000 до 11111111 или от 0 до 255 в десятичном виде.

Структура IP-адреса

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

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

Пример номера сети и хоста

На следующем рисунке показан пример IP-адреса, в котором первые три октета (192.168.1) представляют собой номер сети, а четвертый октет (16) – идентификатор хоста.

Пример номера сети и хоста

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

3.2 Маски подсетей

Частные IP-адреса

У каждого хоста в интернете должен быть уникальный адрес. Исключение – это IP-адреса внутри локальных сетей.

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

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

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

Для них зарезервированы следующие три блока IP-адресов:

  • 10.0.0.010.255.255.255
  • 172.16.0.0172.31.255.255
  • 192.168.0.0192.168.255.255

IP-адреса указанных частных подсетей иногда называют "серыми".

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

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

Допустим у вас есть IP-адрес, записанный в двоичном виде:


        11110101  01010101 11111111 00000001
    

Красным цветом отмечены биты, ответственные за номер сети, зеленым – за номер хоста. Да, так тоже можно. Тут нет жесткой привязки к байтам.

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


        11111111  11111111 11110000 00000000
    

Все биты подсети равны 1, все биты хоста равны 0.

Пример выделения номера сети и идентификатора хоста в IP-адресе:

1-ый октет: (192) 2-ой октет: (168) 3-ий октет: (1) 4-ый октет: (2)
IP-адрес (двоичный) 11000000 10101000 00000001 00000010
Маска подсети (двоичная) 11111111 11111111 11111111 00000000
Номер сети 11000000 10101000 00000001
Идентификатор хоста 00000010

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

Маску подсети можно определить, как количество бит в адресе, представляющих номер сети (количество бит со значением "1"). Например, "8-битной маской" называют маску, в которой 8 бит – единичные, а остальные 24 бита – нулевые.

Маски подсети записываются в формате десятичных чисел с точками, как и IP-адреса. В следующих примерах показаны двоичная и десятичная запись 8-битной, 16-битной, 24-битной и 29-битной масок подсети.

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

Десятичная Двоичная 1-ый октет: Двоичная 2-ой октет: Двоичная 3-ий октет: Двоичная 4-ый октет:
8-битная маска 255.0.0.0 11111111 00000000 00000000 00000000
16-битная маска 255.255.0.0 11111111 11111111 00000000 00000000
24-битная маска 255.255.255.0 11111111 11111111 11111111 00000000
29-битная маска 255.255.255.248 11111111 11111111 11111111 11111000

3.3 DHCP

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

Dynamic Host Configuration Protocol (DHCP) — прикладной протокол, позволяющий сетевым устройствам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP.

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

Распределение IP-адресов

Протокол DHCP предоставляет три способа распределения IP-адресов:

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

Автоматическое распределение. При данном способе каждому компьютеру на постоянное использование выделяется произвольный свободный IP-адрес из определенного администратором диапазона.

Динамическое распределение. Этот способ аналогичен автоматическому распределению, за исключением того, что адрес выдается компьютеру не на постоянное пользование, а на определенный срок. Это называется арендой адреса. По истечении срока аренды IP-адрес вновь считается свободным и клиент обязан запросить новый (он, впрочем, может оказаться тем же самым). Кроме того, клиент сам может отказаться от полученного адреса.

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

Опции DHCP

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

Некоторыми из наиболее часто используемых опций являются:

  • IP-адрес маршрутизатора по умолчанию;
  • маска подсети;
  • адреса серверов DNS;
  • имя домена DNS.

3.4 localhost и 127.0.0.1

Есть несколько IP-адресов, которые полезно знать. Например, IP-адрес твоего маршрутизатора. Еще один IP-адрес, который полезно знать – это 127.0.0.1. Сейчас мы поговорим о нем немного подробнее.

Что такое 127.0.0.1?

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

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

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

Что такое localhost?

localhost – это фактически доменное имя для 127.0.0.1. Особой разницы между 127.0.0.1 и localhost нет. Можно писать и так, и так, кому как нравится.

Ты можешь представить localhost, как «имя» для адреса 127.0.0.1, также, как «www.google.com» является "именем" для IP-адреса Google. Однако, когда ты посещаешь www.google.com, он должен пройти через DNS-сервер, чтобы твой компьютер мог определить, какой IP-адрес соответствует имени.

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