УДК 004.72
Interlayer Network Stack Protocols Kruchinin Sergei Vladimirovich, chief research engineer, Wellborn LLC.
Abstract. There are some difficulties in interpreting the precise position of many protocols, system-forming in modern telecommunications. This applies to network routing protocols (which can be implemented both at the network and application layer) and address resolution protocols (which are related to the application, transport, network, and even the link layer). The article introduces and justifies the category of inter-layer protocols of network stacks.
Keywords: OSI/ISO, OSI, TCP/IP, ARP, RARP, DHCP, DNS Межуровневые протоколы сетевых стеков Кручинин Сергей Владимирович, гл.н.с., ООО «ВЭЛБОРН»
Аннотация. Существуют некоторые сложности в интерпретации точного положения ряда протоколов, системообразующих в современных телекоммуникациях. В частности, это относится к сетевым протоколам маршрутизации (которые могут быть реализованы как на сетевом, так и на прикладном уровне) и протоколам разрешения адресов (которые имеют отношение к прикладному, транспортному, сетевому и даже канальному уровню). В статье вводится и обосновы-ается категория межуровневых протоколов сетевых стеков.
Ключевые слова: ЭМВОС, OSI, ARP, RARP, DNS, DHCP
Введение. Ряд протоколов имеют неоднозначное отношение к тому или иному уровню модели TCP/IP и OSI/ISO (ЭМВОС). К примеру, протоколы маршрутизации, такие как RIP, BGP, OSPF, AODV относятся к сетевому уровню модели TCP/IP и OSI/ISO. Тем не менее, технически протокол RIP — прикладного уровня (использует в качестве транспорта протокол UDP), — прикладного уровня (использует в качестве транспорта протокол TCP) BGP , OSPF — сетевого (инкапсулируется непосредственно в IP), AODV — сетевого. Но даже если протокол маршрутизации технически является прикладным, обмен пакетами осуществляется до выполнения передачи данных (аналогично ARP), что позволяет судить о том, что протоколы маршрутизации обслуживают сетевой уровень независимо от стека протоколов.
Аналогичная ситуация складывается с протоколами DHCP и DNS. Традиционно они относятся к прикладному уровню. Но, на наш
взгляд, технически находясь на прикладном уровне, они также обслуживают сетевой уровень (что лишний раз подтверждается тем, что переход к IPv6 требует модернизации и соответствующих протоколов).
Цели работы.
Уточнить место протоколов RARP, DHCP, DNS в сетевых моделях (OSI/ISO, ЭМВОС, TCP/IP.
Часть 1. ARP
Протокол ARP часто относится к канальному или сетевому уровню. Даже будучи отнесенным к сетевому, на схемах ARP отображают ниже, чем IP, показывая тяготение к Ethernet. Фактически ARP вкладывается в кадры (фреймы) и выступает как сетевой протокол, с другой стороны, ARP-запросы и ответы не вкладываются в IP. Более того, возможность указать произвольной длины для физического и логического адрсеа делают протокол ARP универсальным. Из проблем ARP можно отнести его небезопасность (в связи с чем для полноценной реализации безопасности следует применять статические ARP-таблицы и исключать применение протокола ARP как такового, либо использовать VLAN для максимальног ограничения домена коллизий). Развитием протокола ARP являются RARP и InARP. Последний применялся только в сетях Frame Relay и ATM. RARP более интересен. Он позволяет получить машине, которой не известенн ее IP-адрес по MAC-адресу. Симуляция RARP доступна в Cisco Packet Tracer.
Часть 2. DNS
Протокол DNS (фактически система DNS) обслуживает множество протоколов, осуществляя преобразование доменных имен в данные. При этом если исходным данным является всегда доменное имя (даже обратное разрешение имен требует записи IP-адреса в виде доменного имени в зонах in-addr.arpa или ip6.arpa), то результат может быть произвольным (в зависимости от типа запрашиваемой информации).
Какой результат дают записи?
A ^ IPv4;
AAAA ^ IPv6;
CNAME ^ доменное имя;
PTR ^ доменное имя;
MX — обслуживает работу SMTP;
SRV — обслуживает работу других транспортных протоколов;
TXT — служит для разных целей, в т.ч. и для SMTP (SPF).
Более того, DNS является частью реализации стека сокетов Беркли и перед отправкой сообщения часто происходит обращение к системному вызову gethostbyname механизма сокетов Беркли. Таким образом, последовательность работы протоколов при установки, например TCP соединения к веб-серверу (протокол HTTP) можно наблюдать следующую последовательность вызова протоколов: DNS (доменное имя ^ IPv4) ARP (IPv4 ^ MAC) HTTP. Более точно
ARP (IPv4 DNS-сервера ^ MAC) DNS (доменное имя ^ IPv4) ARP (IPv4 ^ MAC) HTTP.
Рис. 1. Симуляция HTTP-запроса в Cisco Packet Tracer — DNS, ARP
Рис. 2. Симуляция HTTP-запроса в Cisco Packet Tracer — ARP, TCP, HTTP
Можно проследить аналогию между DNS и ARP, каждый преобразует адресацию вышестояющего уровня в адресацию нижестоящего уровня и отправка запроса-ответа предваряет целевую отправку.
Часть 3. DHCP
Протокол DHCP является развитием протокола BOOTP для загрузки бездисковых станций и фактически также является протоколом прикладного уровня. Но фактические в настоящее время DHCP служит для получения настроек сетевого уровня, включая
• IP-адрес машины (сетевой уровень)
• маска сети (сетевой уровень)
• IP-адрес шлюза (сетевой уровень)
• IP-адрес DNS-сервера
IP-адрес шлюза, фактически будет использоваться только на канальном уровне. Единственная его задача — быть преобразованным в MAC-адрес протоколом ARP. При отправке IP-пакета на шлюз IP-адрес шлюза в заголовках сетевого уровня не присутствует. Отправка ведется на MAC-адрес на канальном уровне, и MAC-адрес выяснен протоколом ARP.
Косвенно DHCP тесно связан с канальным уровнем.
Во-первых, среди атак на безопасность канального уровня выделяют DHCP-Spoofing наряду с ARP-Spoofing [1].
Во-вторых, DHPC играет ту же роль в стеки TCP/IP что и RARP (который по MAC-адресу сообщал IP-адрес клиенту. Хотя RARP и является расширением ARP, в отличие от стандартной работы ARP требовался RARP-сервер, аналогичный серверу DHCP.
Также можно ответить механизм работы DHCP.
Можно сравнить работу ARP-запроса/ARP-ответа и 4 стадии работы DHCP (обнаружение сервера, предложение сервера, запрос адреса и подтверждение адреса) [2].
В случае ARP-запроса IP-адрес места назначения известен, не известен MAC-адрес. На канальном уровне используется широковещательный адрес ff:ff:ff:ff:ff:ff и такой же адрес дублируется в поле физического адреса назначения в протоколе ARP (что означает, что MAC-адрес не известен). В ответе все поля заполнены.
В реализации DHCP есть два возможных варианта работы.
В RFC 2131 [2] описан механизм, когда DHCP сразу использует IP-адрес в месте назначения.
Тем не менее, это не вполне корректно, технически сетевой интерфейс не обязан принимать IP-пакет, адресованный на IP-адрес не
принадлежащий сетевому интерфейсу, а сетевой интерфейс может быть назначен только после четвертой стадии.
Поэтому есть реализация, когда до самой последней стадии даже предлагая клиенту Ш-адрес, сервер все равно обращается к клиенту по широковещательному Ш-адресу (255.255.255.255). См. рисунок 3. Также, если DHCP-сервер известен, может выполняться сразу этап 3 и 4, в случае короткого обрыва связи (симитирован отключением и подключением Ethemet-кабеля).
Q Capturing from Ethernet
File Edit View Go Capture Analyze Statistics Telephony Wireless Tools Help
Н | Apply a display filter .. . <Ctrl-/>
-х- Vlo. Time Source Destination Protocol Length Info
1 0.000000 0.0.0.0 255.255.255 255 DHCP 351 DHCP Request - Transaction ID 0x4S67dl5a
2 0.014679 192.16B.1.1 255,255,255 .255 DHCP 590 DHCP ACK - Transaction ID 0x4S67dl5a
В 0.037224
> Frame 2: 599 bytes o
> Ethernet II, Src: D-Internet Protocol Ve
> User Datagram Frotoc v Bootstrap Protocol (
Message type: Boo Hardware type: Et Hardware address Hops: 0
Transaction ID: 9 Seconds elapsed: > Bootp flags: 9x80 Client IP address Your (client) IP Next server IP ad Relay agent IP ad Client MAC addres Client hardware a Server host name Boot file name no Magic cookie: DHC
0000 ff ff ff ff ff f
0010 02 40 00 00 00 0
0020 ff ff 00 43 00 4
0030 dl 5a 00 00 80 0
0040 00 00 00 00 00 0
0050 00 00 00 00 00 0
0060 00 00 00 00 00 0
0070 00 00 00 00 00 0
0080 00 00 00 00 00 0
0090 00 00 00 00 00 0
00a0 00 00 00 00 00 0
M Wireshark • Packet 2 • wireshark_
pcapng^l
> Ethernet II, Src: (:f5), Dst: Broadcast (ffiff:ff:ff:ff:ff)
> Internet Protocol Version 4, Src: 192.168.1.1, Dst: 255.255-255-255
> User Datagram Protocol., Src Port: 67 (67), Dst Port: 6S (68) v Bootstrap Protocol (ACK)
Message type: Boot Reply (2) Hardware type: Ethernet (9x91) Hardware address length: 6 Hops: 9
Transaction ID: 9x4867dl5a Seconds elapsed: 9
Bootp flags: 0x8999, Broadcast flag (Broadcast) Client IP address: 9,0,9,9 Your (client) IP address: 192.168.1.4 Next server IP address: 9.9.9.9 Relay agent IP address: 9.9.9.9 Client MAC address: OTHVH Client hardware address padding: Server host name not given Boot file name not given Magic cookie: DHCP Option: (53) DHCP Message Type (ACK) Option: (54) DHCP Server Identifier Option: (51) IP Address Lease Time Option: (1) Subnet Mask
> Option: (3) Router Option: (6) Domain Name Server
> Option: (255) End Padding: 000000000000000000000000000000000000000000000000.
P: 56
90909090909090909099
No,: 2 • Time; 0,014579 • Source: Ï92,l GS, 1,1 - Destination: 255.255,255,255 - Protocol: DHCP ■ Length: 590 ■ Info: DHCP ACK- Transaction ID 0x4S67dl5a
Рис. 3. DHCP-запрос и подтверждение Ш-адреса после короткого разрыва связи (в Wireshark)
Выводы
На наш взгляд, механизм работы DHCP и DNS, наряду с ARP и RARP позволяют предложить новую трактовку данных протоколов. Как мы вышеописали, указанные протоколы занимают промежуточное положение в стеке протоколов (независимо от используемой модели, TCP/IP или OSI/ISO/ЭМВОС).
Так:
ARP — вкладывается в кадры канального уровня, преобразует сетевой адрес в физический
RARP — вкладывается в кадры канального уровня, преобразует физический адрес в сетевой
DHCP — вкладывается в UDP-дейтаграммы (канального уровня), преобразует физический адрес в сетевой (если соответствующим образом настроен DHCP-сервер), или служит для получения сетевого адреса без привязки к физическому
DNS — преобразует доменное имя (адресация на прикладном уровне) в сетевой адрес или другую группу данных стека TCP/IP (домен, домен и порт, IP-адрес и т.д.)
На наш взгляд имеет выделить описанные протколы в особую группу межуровневых протоколов (interlayer protocols).
Уровни в TCP/IP Наименование Примеры в TCP/IP Межуровне-вые протоколы
4 уровень Прикладной HTTP, FTP, SMTP DNS, DHCP, RARP, ARP
3 уровень Транспортный UDP, TCP
2 уровень Сетевой IP, ICMP
1 уровень Сетевых интерфейсов IEEE 802.3, IEEE 802.11
Введение межуровневой категории сетевых протоколов позволяет существенно дополнить концепции интерпретациии взаимоотношений многоуровневых сетевых моделей OSI/ISO,3MBOC и TCP/IP [3-8]
Библиографический указатель
1. Безопасность канального уровня кйр:/^и.т/шМ/Безопас-ность_канального_уровня#DHCP_Snooping
2. RFC 2131 DHCP https://tools.ietf.org/html/rfc2131
3. Кручинин С.В. Стеки сетевых технологий TCP/IP и OSI/ISO // Вопросы науки. 2015. Т. 3. С. 145-147.
4. Кручинин С.В. Децентрализованные сети и стек протоколов TCP/IP//Актуальные проблемы прикладной математики, информатики и механики/Сборник трудов Международной научно-технической конференции, посвященный 70-летию Победы в Великой отечественной войне. 2015. -С. 285-286.
5. Кручинин С.В. Интерпретация семиуровневой модели OSI/ISO //Актуальные проблемы прикладной математики, информатики и механики сборник трудов международной научно-технической конференции. 2016. С. 389-390.
6. Кручинин С.В. Реализация модели OSI/ISO телекоммуникационным модулем сопряжения для MESH-сетей //Научно-исследовательские публикации, 2016, № 5(37) c. 27-32
7.Кручинин С. В. Семиуровневая сетевая модель и современные телекоммуникации//Научно-исследовательские публикации. -2015. -№ 13. -С. 4-14.
8. Кручинин С. В. Семиуровневая сетевая модель OSI/ISO и стек протоколов TCP/IP: исследование взаимоотношения и интерпре-тации//Научно-исследовательские публикации. -2015. -№5(25) -С. 115-120.