Format of ARP packets

advertisement
ARP and RARP
( Address Resolution Protocol and
Reverse Address Resolution Protocol )
RFC 826, 1293, 1390, 903
ARP and RARP
•
ARP
Ethernet драйвер и адаптер используют MAC-адрес.
TCP/IP использует IP-адреса.
Если узлу нужно передать данные на другой узел, то ему известен только IPадрес получателя, который он и передает в стек TCP/IP.
В стеке TCP/IP должен быть механизм определения соответствия между MAC и
IP адресом. Это – протокол ARP.
32-bit IP address
ARP
•
RARP
48-bit Ethernet address
RARP
Если система не имеет жесткого диска или дисковода и должна загружаться по
сети, то изначально она обладает только MAC-адресом и ей нужно получить
свой IP-адрес.
Для получения из сети IP-адреса по заданному MAC-адресу используется
протокол RARP.
ARP in TCP/IP Stack
Upper-Layer Protocols
Upper
~ such as SNMP, telnet, FTP, HTTP, POP3, etc. ~
Transport
User Datagram Protocol
(UDP)
Transmission Control Protocol
(ТСP)
RFC 768
~ connectionless transport ~
RFC 793
~ connection-oriented transport ~
Internet Protocol version 4 (IPv4)
Network
RFC 791
ARP
Data Link
Internet Control
Messaging Protocol
(ICMP)
RARP
Media Access Control
(Ethernet, Token Ring, FDDI, X.25, PPP, etc.)
RFC 792
Address Resolution
1
ARP Request Broadcast
Source hardware address: 00:00:1B:23:AC:34
Source network address: 10.1.0.1
Target hardware address: 00:00:00:00:00:00
Target network address: 10.1.0.99
2
ARP Reply Unicast
Source hardware address: 00:00:1B:98:93:DE
Source network address: 10.1.0.99
Target hardware address: 00:00:1B:23:AC:34
Target network address: 10.1.0.1
Host A
Hardware: 00:00:1B:23:AC:34
Network: 10.1.0.1
Host B
Hardware: 00:00:1B:98:93:DE
Network: 10.1.0.99
Address Resolution Mechanisms
– Хост отправляет широковещательный (broadcast) запрос:
“Какой MAC-адрес имеет 216.109.11.67?”
– Хост, у которого IP-адрес 216.109.11.67 отвечает:
“MAC-адрес для 216.109.11.67 - 8A:5F:3C:23:45:56”
– Broadcasts довольно затратные (время/ресурс).
– ARP ответы кэшируются (APR-cache).
– Каждый хост обновляет свою кэш-таблицу, если получает
ARP-broadcast.
ARP Cache
• Dynamic Binding
Каждый узел обновляет свою таблицу известных MAC-адресов,
если получает ARP broadcast request
Время жизни записи:
ArpCacheLife = 2 min
ArpCacheMinReferencedLife = 10 min
Table full: используется алгоритм выбрасывания наиболее старых
записей (LRU, least recently used )
• Static Binding
Статические записи не обновляются и не исчезают
Example:
С:> arp –s 10.0.20.182
C:> arp –a
00-0c-6e-c9-9c-ca
Интерфейс: 10.0.19.118 --- 0x4
Адрес IP
Физический адрес
10.0.18.2
00-d0-43-7a-c6-a6
10.0.18.91
00-02-b3-89-30-f6
10.0.20.182
00-0c-6e-c9-9c-ca
Тип
динамический
динамический
статический
Обнаружение дублированных IP-адресов:
Gratuitous ARP
•
Хост отправляет ARP-запрос о своем собственном IP-адресе
(Gratuitous ARP )
– Reply received: В сети есть хост с таким адресом (Duplicate IP)
– No reply received: Данный IP - единственный в сетевом
сегменте (Unique IP)
•
Алгоритм обнаружения дублера:
1) нападающий хост: Gratuitous ARP
2) защищающийся хост: Unicast APR Reply
3) защищающийся хост: Gratuitous ARP
Example Gratuitous ARP :
Destination: ff:ff:ff:ff:ff:ff (Broadcast)
Source: 00:03:02:A2:B2:02 (02:02:02:02:02:02)
Type: ARP (0x0806)
Sender MAC address: 00:03:02:A2:B2:02 (00:03:02:A2:B2:02)
Sender IP address: 192.168.1.1 (192.168.1.1)
Target MAC address: ff:ff:ff:ff:ff:ff (Broadcast)
Target IP address: 192.168.1.1 (192.168.1.1)
Address Resolution works:
Send IP datagram
Host
to IP address
ARP
Resolve
IP to MAC
Do I know
hardware address?
IP
Yes
ARP cache
No
Ethernet driver
ARP request
(Broadcast)
Host
Host
Ethernet driver
ARP
Is somebody looking
for my address?
No
Ignore request
Ethernet driver
Is somebody looking
for my address?
ARP
Yes
Send ARP reply
(unicast)
Ethernet Encapsulation (RFC 894)
46-1500 bytes
Destination
address
Source
address
type
6
6
2
DATA
46-1500
Type
0800
IP Datagram
2
Type
0806
2
Type
8035
2
46-1500
ARP request/reply
28
RARP request/reply
28
PAD
18
PAD
18
CRC
4
Format of ARP packets
*Note: Длина полей адресов определяется соответствующими значениями
полей Hardware Address и Protocol address.
Operation code: 1 – request ARP
2 – replay ARP
3 – request RARP
4 – replay RARP
0000
0010
0020
ff ff ff ff ff ff 00 03 47 a4 86 a8 08 06 00 01
08 00 06 04 00 01 00 03 47 a4 86 a8 c3 13 cb 66
00 00 00 00 00 00 c3 13 cb 68
Ethernet II:
Destination: ff:ff:ff:ff:ff:ff (Broadcast)
Source: 00:03:47:a4:86:a8 (Intel_a4:86:a8)
Type: ARP (0x0806)
Address Resolution Protocol (request):
Hardware type: Ethernet (0x0001)
Protocol type: IP (0x0800)
Hardware size: 6
Protocol size: 4
Opcode: request (0x0001)
Sender MAC address: 00:03:47:a4:86:a8
Sender IP address: 195.19.203.102 (195.19.203.102)
Target MAC address: 00:00:00:00:00:00
Target IP address: 195.19.203.104 (195.19.203.104)
Download