ARP

Transkrypt

ARP
Sieci Komputerowe
Protokół ARP
Address Resolution Protocol
Protokół RARP
Reverse Address Resolution Protocol
dr Zbigniew Lipiński
[email protected]
Zagadnienia
Opis protokołu ARP
Zastosowanie protokołu ARP
Struktura komunikatu ARP
Struktura adresu MAC karty sieciowej
Producenci kart sieciowych
Narzędzie: arp
Protokół Proxy ARP
Protokół Reverse ARP (RARP)
Protokół InARP
2
Protokół ARP
ARP, (ang.) Address Resolution Protocol.
RFC 826.
Protokół ARP jest protokołem warstwy Sieci modelu OSI.
Protokół ARP naleŜy do rodziny protokołów TCP/IP.
KaŜde urządzenie sieciowe musi posiadać kartę sieciowa (kartę NIC - Network Interface Card).
Karty sieciowe są identyfikowane w sieci na podstawie fizycznych adresów MAC, (ang.) Media Access Control address.
Protokół ARP słuŜy do znajdowania adresów fizycznych kart sieciowych na podstawie adresów IP.
3
Zastosowanie protokołu ARP
W warstwie Łącza Danych urządzenia sieciowe rozpoznają się na podstawie adresów fizycznych (adresów MAC) kart
sieciowych.
Datagram IP przechodząc z warstwy Sieci do warstwy Łącza Danych zostaje przekształcony w ramkę ethernetową
poprzez dołączenie nagłówka z informacjami o adresach fizycznych kart sieciowych nadawcy i odbiorcy.
Nadawca przed wysłaniem ramki musi znaleźć adres fizyczny odbiorcy.
Hosty, przełączniki w sieci tworzą lokalne tablice arp zawierające informacje o adresach MAC i adresach IP.
Protokół ARP słuŜy do:
•
wysyłania zapytań do sieci o adres MAC
•
uaktualniania tablic arp.
JeŜeli adres MAC odbiorcy nie znajduje się w tablicy arp nadawcy, to nadawca w ceu identyfikacji adresu MAC odbiorcy
wysyła wiadomość 'ARP request'.
Wiadomość wysyłana jest na adres broadcast'owy, tzn. do wszystkich węzłów w danej sieci.
JeŜeli jakiś węzeł rozpozna swój adres IP w zapytaniu arp to dopowiada komunikatem 'ARP reply' zawierający swój
adres fizyczny.
Nadawca i odbiorca komunikatów arp uaktualniają swoje tablice arp.
4
Struktura komunikatu ARP
Bity
4
1
1
2
8
12
16
20
Typ adresu nadawcy
Dl. adresu MAC
24
28
32
Typ adresu odbiorcy
Dl. adresu protokolu
Operacja
Pierwsze 32 bity adresu MAC nadawcy
3
Ostanie 16 bitow adresu MAC nadawcy
Pierwsze 16 bitow adresu protokolu nadawcy
4
Ostatnie16 bitow adresu protokolu nadawcy
Pierwsze 16 bitow adresu MAC odbiorcy
5
Ostatnie 32 bity adresu MAC odbiorcy
6
Ostatnie32 bity adresu protokolu odbiorcy
Struktura komunikatu ARP
5
Struktura komunikatu ARP
Pole:
Typ adresu fizycznego, (Hardware Type). Wielkość: 16 bitów.
Pole określa typ adresu MAC (typ karty sieciowej).
Typy adresów:
Wartość: 1. Znaczenie: Ethernet.
Wartość: 2. Znaczenie: Experimental Ethernet.
Wartość: 3. Znaczenie: X.25.
Wartość: 4. Znaczenie: Proteon ProNET (Token Ring).
Wartość: 5. Znaczenie: Chaos.
Wartość: 6. Znaczenie: IEEE 802.X.
Wartość: 7. Znaczenie: ARCnet.
Pole:
Typ adresu protokołu, (Protocol Type). Wielkość: 16 bitów.
Pole określa typ protokołu jakiego uŜył host wysyłający zapytanie.
Dla rodziny TCP/IP uŜyty protokół jest typu 'Ethernet'.
6
Wartości pola 'Protocol Type' dla adresu typu Ethernet
Wartość
Opis
Wartość
Opis
512
XEROX PUP
24579
DEC DECnet Phase IV
513
PUP Address Translation
24580
DEC LAT
1536
XEROX NS IDP
24582
DEC
2048
Internet Protocol (IP)
24583
DEC
2049
X.75
32773
HP Probe
2049
NBS
32784
Excelan
2051
ECMA
32821
Reverse ARP
2052
Chaosnet
32824
DEC LANBridge
2053
X.25 Level 3
32823
AppleTalk
2054
Address Resolution Protocol
2055
XNS
4096
Berkeley Trailer
21000
BBN Simnet
24577
DEC MOP Dump/Load
24578
DEC MOP Remote Console
7
Struktura komunikatu ARP
Pole:
Dł. adresu MAC, (Hardware Address Length). Wielkość: 8 bitów.
Długość (wyraŜona w bajtach) adresu fizycznego w datagramie. Dla adresu MAC wartość = 6 bajtów.
Pole:
Dł. adresu protokołu, (Protocol Address Length). Wielkość: 8 bitów.
Długość (wyraŜona w bajtach) adresu protokołu. Dla adresu IP wartość pola = 4 bajty.
Pole:
Operacja, (Operation Code, Opcode). Wielkość: 16 bitów.
Wartość kodu 1 dla wiadomości typu 'ARP reply' (odpowiedz),
Wartość kodu 2 dla wiadomości typu 'ARP request' (zapytanie).
Pole:
Adres MAC nadawcy, (Sender Hardware Address).
Wielkość: wartość z pola 'Hardware Address Length'. Adres MAC hosta wysyłającego ARP request.
Pole:
Adres nadawcy, (Sender Protocol Address).
Wielkość: wartość z pola 'Protocol Address Length'. Adres IP hosta wysyłającego ARP request.
Pole:
Adres MAC odbiorcy, (Target Hardware Address).
Wielkość: wartość z pola 'Hardware Address Length'.
Adres MAC hosta odbierającego wiadomość.
Pole:
Adres odbiorcy, (Target Protocol Address).
Wielkość: wartość z pola 'Protocol Address Length'.
Adres IP hosta odbierającego wiadomość.
8
Struktura komunikatu ARP
# ----- Naglowek Ethernetowy ----ETYPE = 0x0806 : Protocol = ARP: Address Resolution Protocol
Destination address : FFFFFFFFFFFF
.......1 = Group address
......1. = Locally administered address
Source address : 00600852F9D8
.......0 = No routing information present
......0. = Universally administered address
Frame Length : 42 (0x002A)
Ethernet Type : 0x0806 (ARP: Address Resolution Protocol)
Ethernet Data: Number of data bytes remaining = 28 (0x001C)
# ----- Naglowek ARP ----ARP: Request, Target IP: 157.54.160.1
Hardware Type = Ethernet (10Mb)
Protocol Type = 2048 (0x800)
Hardware Address Length = 6 (0x6)
Protocol Address Length = 4 (0x4)
Opcode = Request
Sender's Hardware Address = 00600852F9D8
Sender's Protocol Address = 157.54.160.186
Target's Hardware Address = 000000000000
Target's Protocol Address = 157.54.160.1
9
Przykład: komunikat ARP Request, ARP Reply
# ----- Naglowek Ethernetowy ----ETYPE = 0x0806 : Protocol = ARP: Address Resolution Protocol
Destination address : 00600852F9D8
.......0 = Individual address
......0. = Universally administered address
Source address : 001054CAE140
.......0 = No routing information present
......0. = Universally administered address
Frame Length : 60 (0x003C)
Ethernet Type : 0x0806 (ARP: Address Resolution Protocol)
Ethernet Data: Number of data bytes remaining = 46 (0x002E)
# ----- Naglowek ARP ----ARP: Reply, Target IP: 157.54.160.186 Target Hdwr Addr: 00600852F9D8
Hardware Type = Ethernet (10Mb)
Protocol Type = 2048 (0x800)
Hardware Address Length = 6 (0x6)
Protocol Address Length = 4 (0x4)
Opcode = Reply
Sender's Hardware Address = 001054CAE140
Sender's Protocol Address = 157.54.160.1
Target's Hardware Address = 00600852F9D8
Target's Protocol Address = 157.54.160.186
Frame Padding
10
Struktura adresu MAC karty sieciowej
Przykład: Adres fizyczny
00-B0-D0-2C-FC-B6
Pole I/G. Wartości: 0/1. 1 bit. Znaczenie: adres Indywidualny/Grupowy.
Pole U/L. Wartości: 0/1. 1 bit. Znaczenie: adres Uniwersalny/Lokalny.
Adres Univerwersaly: Karty sieciowe uniwersalne są zgodne ze standardem IEEE.
Adres Lokalny: Karty z takim adresem mogą nie być zgodne ze standardem IEEE.
Pole OUI (Organization Unique Identifier). 22 bity.
Część adresu MAC określająca producenta karty sieciowej.
Pole 24 bity. Znaczenie: numer karty sieciowej.
Numer karty sieciowej przydzielany przez producenta karty.
Przykłady kodów producentów kart:
00000C Cisco
0000D8 3Com, Novell PS/2
0080C2 IEEE 802.1 Committee
00AA00 Intel
02608C 3Com IBM PC; Imagen; Valid; Cisco
080020 Sun machines
Przykład: Karta o adresie 08:00:20:00:70:DF
została wyprodukowana przez Sun Microsystems.
11
Narządzie: arp
Narzędzie arp słuŜy do edycji, dodawania, usuwania rekordów w tablicy arp.
Tablica arp zawiera informacje o adresach fizycznych MAC i adresach IP hostów.
Składania:
ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr]
Opcje:
-a
Displays current ARP entries by interrogating the current protocol data. If inet_addr is specified, the IP and
Physical addresses for only the specified computer are displayed.
If more than one network interface uses ARP, entries for each ARP table are displayed.
-g
Same as -a. inet_addr Specifies an internet address.
-N if_addr Displays the ARP entries for the network interface specified by if_addr.
-d
Deletes the host specified by inet_addr. inet_addr may be wildcarded with * to delete all hosts.
-s
Adds the host and associates the Internet address inet_addr with the Physical address eth_addr.
The Physical address is given as 6 hexadecimal bytes separated by hyphens.
The entry is permanent. eth_addr Specifies a physical address.
if_addr If present, this specifies the Internet address of the interface whose address translation table should
be modified. If not present, the first applicable interface will be used.
12
Narzędzie: arp
Tablicę arp moŜna edytować za pomocą polecenia:
\> arp -a
Przykładowa zawartość tablicy ARP:
Address
HWtype
HWaddress
Flags Mask
Iface
212.51.207.221 ether
00:60:83:7C:A2:38
C
eth1
212.51.219.1
ether
00:A0:24:56:13:C9
C
eth0
212.51.219.4
ether
08:00:20:1F:37:F7
C
eth0
13
Protokół: Proxy ARP
Proxy ARP,
RFC 1027, 'Using ARP to Implement Transparent Subnet Gateways', 1987.
Protokół Proxy ARP pozwala na wysyłanie zapytań ARP (pytanie o adres MAC hosta o danym adresie IP) do hostów
znajdujących się w róŜnych podsieciach.
Role agenta proxy pełni gateway (router) danej podsieci.
Gateway przesyła zapytanie ARP do podsieci w której znajduje się host o danym adresie IP i zwraca informacje o adresie
MAC do hosta generującego zapytanie.
14
Protokół Reverse ARP
RARP, (ang.) Reverse Address Resolution Protocol.
RFC 903.
Protokół RARP jest protokołem warstwy lacza danych modelu OSI.
Protokół RARP słuŜy do określania adresu IP na podstawie adresu MAC karty sieciowej.
Istnieją sytuacje w których komputer nie posiada na stale zapisanego adresu IP (np. brak twardego dysku), ale posiada
kartę sieciowa z adresem MAC.
JeŜeli w sieci jest serwer RARP przydzielający adresy IP to komputer moŜe uzyskać na podstawie adresu MAC swój
adres IP.
InARP, (ang.) Inverse Address Resolution Protocol.
RFC 1293, 'Inverse Address Resolution Protocol', 1992.
Protokół InARP słuŜy do określenia adresu protokołu odbiorcy (adres MAC odbiorcy jest znany).
W zapytaniu InARP pole z adresem protokołu odbiorcy ma wartość 0.
W odpowiedzi pole zostaje wypełnione odpowiednim adresem protokołu odbiorcy.
Protokół InARP jest stosowany w sieciach Frame Relay.
15
Protokół Reverse ARP
Odpowiednikiem adresu MAC w sieciach Frame Relay jest identyfikator DLCI, (ang.) Data Link Connection Identifier.
Identyfikator DLCI słuŜy do identyfikacji:
•
wirtualnych połączeń PVC, (ang.) Permanent Virtual Circuit lub
•
SVC, (ang.) Switched Virtual Circuits.
Protokół InARP słuŜy do identyfikacji nowego połączenia DLCI.
Format pakietu InARP jest taki sam jak pakietu ARP.
Typy wiadomości InARP (pole Operation):
InARP request = 8
InARP reply
=9
16
Przykład zapytania i odpowiedzi InARP
Struktura wiadomości 'InARP request':
ar$hrd - 0x000F wartość oznacza protokół Frame Relay
ar$pro - typ szukanego protokołu (np. IP = 0x0800)
ar$hln - długość adresu, 2,3, lub 4 bajty
ar$pln - długość (w bajtach) adresu szukanego protokołu (np. dla IP=4)
ar$op - 8; InARP request
ar$sha - adres fizyczny odbiorcy zapytania
ar$spa - szukany adres protokołu odbiorcy (np. adres IP)
ar$tha - adres nowego 'virtual circuit'
ar$tpa - 0;
Struktura wiadomosci 'InARP response':
ar$hrd - 0x000F wartość oznacza protokół Frame Relay
ar$pro - typ szukanego protokolu (np. IP = 0x0800)
ar$hln - dlugosc adresu, 2,3, lub 4 bajty
ar$pln - dlugosc (w bajtach) adresu szukanego protokolu (np. dla IP=4)
ar$op - 9; InARP response
ar$sha - adres odpowiadajacego węzła
ar$spa - adres szukanego protokolu
ar$tha - adres odpowiadajacego węzła
ar$tpa - adres protokolu odpowiadajacego węzła
17

Podobne dokumenty