Lektionens innehåll
De flesta nätverksstudenter känner till ARP (Address Resolution Protocol), men Proxy ARP är inte alltid bekant. I den här lektionen kommer jag att förklara hur proxy ARP fungerar, vi kommer att använda följande topologi för detta:
I exemplet ovan har vi två undernät: 10.1.1.0 /24 och 10.2.2.0 /24. Routern i mitten är ansluten till båda delnäten. I botten ser du två värdar (H1 och H2) och i toppen har vi en server (S1).
När du tittar närmare på värdarna kan du se att H1 har en /24 delnätsmask och H2 har en /8 delnätsmask. När H1 försöker nå servern på 10.2.2.100 kommer följande att hända:
- H1 jämför sin IP-adress och subnätmask med serverns IP-adress (10.2.2.100) och bestämmer sig för att servern befinner sig i ett annat subnät.
- H1 bestämmer sig för att skicka paketet för servern till sin standardgateway (10.1.1.1.254).
- H1 kontrollerar sin ARP-tabell för att se om det finns en post för 10.1.1.254, om så inte är fallet kommer den att skicka en ARP-förfrågan.
- Routern kommer att svara på ARP-förfrågan genom att skicka MAC-adressen för sitt FastEthernet 0/0-gränssnitt.
Detta är hur ARP fungerar normalt, när H2 försöker skicka ett IP-paket till servern kommer något annat att hända:
- H2 jämför sin IP-adress och subnätmask med serverns IP-adress (10.2.2.100) och bestämmer sig för att servern finns i samma subnät.
- H2 kontrollerar sin ARP-tabell för att se om det finns en post för 10.2.2.100. Om så inte är fallet skickar den en ARP-förfrågan.
Servern befinner sig dock inte i undernätet 10.1.1.0 /24 och routrar vidarebefordrar inte broadcast-trafik, så ARP-förfrågan når aldrig fram till servern. Allt hopp är dock inte förlorat….Det är här proxy ARP kommer till undsättning!
När proxy ARP är aktiverat på routern händer följande:
- Routern ser ARP-förfrågan från H2 på 10.1.1.1.0 /24-subnätet och ser att det är en ARP-förfrågan för något i 10.2.2.0 /24-undernätet.
- Routern inser att den vet hur man når 10.2.2.0 /24-undernätet och bestämmer sig för att svara på ARP-förfrågan för att hjälpa H2.
- Routern skickar ett ARP-svar till H2 med dess MAC-adress på gränssnittet FastEthernet 0/0.
Hänger du med så här långt? Låt mig visa dig hur detta ser ut på en riktig router.
Konfiguration
Jag kommer att använda följande topologi för att demonstrera proxy ARP:
Det är samma sak som på bilden som jag just visade dig, men jag använder routrarna i mitt labb. Genom att inaktivera ”ip routing” kan jag förvandla routrarna till vanliga värddatorer. Låt oss börja med att inaktivera routing på R1, R2 och servern:
H1, H2 & S1(config)#no ip routing
Låt oss konfigurera standard-gatewayen på dessa enheter:
H1 & H2(config)#ip default-gateway 10.1.1.254
S1(config)#ip default-gateway 10.2.2.254
Låt oss konfigurera alla IP-adresser som vi behöver:
H1(config)#interface fastEthernet 0/0H1(config-if)#ip address 10.1.1.1 255.255.255.0
H2(config)#interface fastEthernet 0/0H2(config-if)#ip address 10.1.1.2 255.0.0.0
S1(config)#interface FastEthernet 0/0S1(config-if)#ip address 10.2.2.100 255.255.255.0
Bemärk att jag använde /8 subnet mask på H2 här. Här är routern:
R1(config)#interface FastEthernet 0/0R1(config-if)#ip address 10.1.1.254 255.255.255.0R1(config-if)#interface FastEthernet 0/1R1(config-if)#ip address 10.2.2.254 255.255.255.0
Det är allt vi behöver konfigurera…låt oss verifiera vårt arbete!
Verifiering
För att testa proxy ARP kommer jag först att skicka lite trafik från H1 till servern så att du kan se hur normal ARP ser ut, och sedan kommer vi att skicka lite trafik från H2 till servern.
Proxy ARP är aktiverad som standard som du kan se här:
R1#show ip interface FastEthernet 0/0 | include Proxy Proxy ARP is enabled
För att se i realtid vad som händer kommer jag att använda följande felsökning på R1:
R1#debug arpARP packet debugging is on
Låt oss skicka några pings från värd A till servern: