Блок 2. Подключение к Internet
Тема 1. Протокол IPv4. Формат заголовка, классы адресов, частная адресация. Работа с DNS.
По мере роста сетей появилась необходимость маршрутизации пакетов, то есть передачи данных на большие расстояния между разными сетями, разделёнными физически. В этом случае не подходит использование MAC-адресов из-за невозможности их объединения по группам (в одной сети могут использоваться разные устройства). Для решения этой проблемы был создан протокол IPv4. Его суть заключается в использовании IP-адресов – логических адресов устройств, которые можно было бы использовать поверх физических адресов и объединять в подсети, не опираясь на физические параметры локации, в которой находится сегмент сети.
Адрес формата IPv4 состоит из 4-х октетов, записывающихся через точку, каждый из которых (кроме самого первого) может принимать значения от 0 до 255 (первый октет принимает значения от 1 до 255). Также существуют двоичные типы записи, восьми- и шестнадцатиричные. Адрес имеет формат типа 192.168.0.1 . Изначально планировалось, что каждый хост во Всемирной Сети будет иметь свой уникальный адрес, т.к. количество доступных адресов при такой схеме = 4 294 967 296 (232).
Вернемся к задаче маршрутизации. Как было сказано ранее, адреса вводились для упрощения задачи раутинга и предполагали использование маски подсети (логически выделенного сегмента сети). Маска подсети – это битовая маска, определяющая, какая часть IP-адреса указывает на адрес сети, а какая – на определённый узел сети. По сути, проводя аналогии и обычными городскими адресами одна часть маски указывает на улицу, а вторая – на дом. Использование масок необходимо для решения проблемы глобальной маршрутизации – при их отсутствиии магистральным маршрутизаторам пришлось бы хранить все 4 294 967 296 адресов, что серьезно сокращало бы ресурсы, необходимые для непосредственно раутинга трафика. Вместо этого магистральные маршрутизаторы запоминают «дорогу» только до сети, оставляя локальную марштуризацию раутерам, младшим по иерархии. Список подсетей, а также формы их записи представлены ниже:
Сетевая маска | Инверсия | CIDR-диапазон | Используется | Размер |
0.0.0.0 | 255.255.255.255 | /0 | 4,294,967,294 | весь интернет |
128.0.0.0 | 127.255.255.255 | /1 | 2,147,483,646 | 128 классов A |
192.0.0.0 | 63.255.255.255 | /2 | 1,073,741,822 | 64 класса A |
224.0.0.0 | 31.255.255.255 | /3 | 536,870,910 | 32 класса A |
240.0.0.0 | 15.255.255.255 | /4 | 268,435,454 | 16 классов A |
248.0.0.0 | 7.255.255.255 | /5 | 134,217,726 | 8 классов A |
252.0.0.0 | 3.255.255.255 | /6 | 67,108,862 | 4 класса A |
254.0.0.0 | 1.255.255.255 | /7 | 33,554,430 | 2 класса A |
255.0.0.0 | 0.255.255.255 | /8 | 16,777,214 | 1 класс A |
255.128.0.0 | 0.127.255.255 | /9 | 8,388,606 | 128 классов B |
255.192.0.0 | 0.63.255.255 | /10 | 4,194,302 | 64 класса B |
255.224.0.0 | 0.31.255.255 | /11 | 2,097,150 | 32 класса B |
255.240.0.0 | 0.15.255.255 | /12 | 1,048,574 | 16 классов B |
255.248.0.0 | 0.7.255.255 | /13 | 524,286 | 8 классов B |
255.252.0.0 | 0.3.255.255 | /14 | 262,142 | 4 класса B |
255.254.0.0 | 0.1.255.255 | /15 | 131,070 | 2 класса B |
255.255.0.0 | 0.0.255.255 | /16 | 65,534 | 1 класс B |
255.255.128.0 | 0.0.127.255 | /17 | 32,766 | 128 классов C |
255.255.192.0 | 0.0.63.255 | /18 | 16,382 | 64 класса C |
255.255.224.0 | 0.0.31.255 | /19 | 8,190 | 32 класса C |
255.255.240.0 | 0.0.15.255 | /20 | 4,094 | 16 классов C |
255.255.248.0 | 0.0.7.255 | /21 | 2,046 | 8 классов C |
255.255.252.0 | 0.0.3.255 | /22 | 1,022 | 4 класса C |
255.255.254.0 | 0.0.1.255 | /23 | 2 классов C | |
255.255.255.0 | 0.0.0.255 | /24 | 1 класс C | |
255.255.255.128 | 0.0.0.127 | /25 | 128 хостов | |
255.255.255.192 | 0.0.0.63 | /26 | 64 хоста | |
255.255.255.224 | 0.0.0.31 | /27 | 32 хоста | |
255.255.255.240 | 0.0.0.15 | /28 | 16 хостов | |
255.255.255.248 | 0.0.0.7 | /29 | 8 хостов | |
255.255.255.252 | 0.0.0.3 | /30 | 4 хоста | |
255.255.255.254 | 0.0.0.1 | /31 | 2 хоста | |
255.255.255.255 | 0.0.0.0 | /32 | 1 хост |
Для решения задачи раутинга введено понятие классовой маршрутизаци. Суть её состоит в том, что пространство адресов IPv4 разделено на классы, и каждому классу соответствует своя маска. Таким образом, сети разделились по принципу убывания количество хостов, а обращаться к группе адресов стало гораздо удобнее.
Класс | Первые биты | Распределение байт (С — сеть, Х — хост) | Число возможных адресов сетей | Число возможных адресов хостов | Маска подсети | Стартовый адрес | Конечный адрес |
A | С.Х.Х.Х | 16 777 216 | 255.0.0.0 | 0.0.0.0 | 127.255.255.255 | ||
B | С.С.Х.Х | 16 384 | 65 536 | 255.255.0.0 | 128.0.0.0 | 191.255.255.255 | |
C | С.С.С.Х | 2 097 152 | 255.255.255.0 | 192.0.0.0 | 223.255.255.255 | ||
D | Групповой адрес | 224.0.0.0 | 239.255.255.255 | ||||
E | Зарезервировано | 240.0.0.0 | 255.255.255.255 |
Вскоре стало очевидно, что такого количества адресов надолго не хватит. Для решения этой проблемы было введено понятия частной маршрутизации. Были выделены сегменты (адреса типа 10.0.0.0/24, 192.168.0.0/24, 172.16.0.0 и т.д.), не предназначенные для маршрутизации в Интернете. Таким образом, для хостов, использующихся внутри сети и не имеющих выходов в глобальную сеть, стало возможным использовать одни и те же приватные адреса, что уменьшило нагрузку на общую адресацию. Эти адреса могут общаться лишь друг с другом и только в пределах одной локальной сети, требуя использования дополнительных технологий, своего рода «костылей», для доступа к Интернету.
С развитием глобальной сети встала проблема легкого доступа к Интернет-ресурсам – обращаться к ним по IP-адресу обычным пользователям неудобно. Для решения этой проблемы была введена система DNS (Domain Name System) – система преобразования имён ресурсов в IP-адреса, основанная на иерархическом признаке.