Difference between revisions of "Cisco DHCP"

From HackerNet
Jump to: navigation, search
Line 5: Line 5:
  
 
DHCP använder samma format som BOOTP, dvs servrar lyssnar på UDP port 67 och klienter kommunicerar från UDP port 68, men har satsat mer på att vara dynamisk. Det uppnås med pooler, leasing och adressåtervinning. Det finns även extensions för att registrera klienters FQDN till DNS.
 
DHCP använder samma format som BOOTP, dvs servrar lyssnar på UDP port 67 och klienter kommunicerar från UDP port 68, men har satsat mer på att vara dynamisk. Det uppnås med pooler, leasing och adressåtervinning. Det finns även extensions för att registrera klienters FQDN till DNS.
 +
 +
Default är DHCP-tjänsten på men det går att stänga av.
 +
no service dhcp
 +
ip dhcp bootp ignore
  
 
=Server=
 
=Server=
Line 28: Line 32:
 
  ip dhcp relay information trust-all
 
  ip dhcp relay information trust-all
  
=Client=
+
=Klient=
 +
Client-Identifier är en kombination av hardware address, interface name och cisco. Detta id görs om till en HEX-sträng som presenteras för servern.
 
  interface Ethernet 1
 
  interface Ethernet 1
 
   ip dhcp client hostname R1
 
   ip dhcp client hostname R1
Line 46: Line 51:
  
 
=Relay=
 
=Relay=
 +
Gör om broadcast till unicast.
 
  interface Ethernet 1
 
  interface Ethernet 1
 
   ip helper-address 10.0.0.10
 
   ip helper-address 10.0.0.10
Line 53: Line 59:
  
 
=Snooping=
 
=Snooping=
DHCP snooping är en säkerhetsmekanism för att filtrera bort untrusted DHCP-paket och hålla koll på klienter genom att bygga en DHCP snooping binding database. Snooping hindrar rogue DHCP servers från att svara på requests och skyddar mot klienter som begär väldigt många leases, DOS-style attack. Vissa andra säkerhetsmekanismer använder sig av snooping binding database, se [[Cisco_Security|IP Source Guard]] och [[Cisco_Security|Dynamic ARP Inspection]].
+
DHCP snooping är en säkerhetsmekanism för att filtrera bort untrusted DHCP-paket och hålla koll på klienter genom att lyssna på DHCP-trafik och bygga en DHCP snooping binding database. Snooping hindrar rogue DHCP servers från att svara på requests och skyddar mot klienter som begär väldigt många leases, dvs DOS-attack. Det kollar också att MAC-adressen i DHCP-paketet matchar adressen det kommer ifrån samt kollar om release och decline kommer in på rätt portar enligt binding database. Paket som inte kommer från rätt port filtreras. Vissa andra säkerhetsmekanismer använder sig av informationen i snooping binding database, se [[Cisco_L3_Security#IPSG|IP Source Guard]] och [[Cisco_L2_Security#DAI|Dynamic ARP Inspection]].
  
 
Man måste slå på snooping för varje vlan man vill skydda.
 
Man måste slå på snooping för varje vlan man vill skydda.
 
  ip dhcp snooping
 
  ip dhcp snooping
 
  ip dhcp snooping vlan 10
 
  ip dhcp snooping vlan 10
De interface som har en legit DHCP server måste trustas. Samt sätt rate limit på DHCP-paket.
+
Globala default-inställningar
 +
no ip dhcp snooping information option allow-untrusted
 +
ip dhcp snooping information option
 +
no ip dhcp snooping database
 +
ip dhcp snooping database write-delay 300
 +
ip dhcp snooping database timeout 300
 +
ip dhcp snooping verify mac-address
 +
ip dhcp snooping verify no-relay-agent-address
 +
 
 +
De interface som har en legit DHCP-server måste trustas. Samt sätt rate limit på DHCP-paket.
 
  interface gi1
 
  interface gi1
 
   ip dhcp snooping trust
 
   ip dhcp snooping trust
 
   ip dhcp snooping limit rate 10
 
   ip dhcp snooping limit rate 10
Stäng av option 82 om servern ej accepterar requests med tomt giaddr-fält. Om en router ser option 82 förväntar den sig non-zero giaddr.
+
 
 +
Stäng av option 82 om servern ej accepterar requests med giaddr 0.0.0.0. Om en router ser option 82 förväntar den sig non-zero giaddr.
 
  no ip dhcp snooping information option
 
  no ip dhcp snooping information option
 +
 
Lägg databasen i en fil
 
Lägg databasen i en fil
 
  ip dhcp snooping database flash:/snooping.db
 
  ip dhcp snooping database flash:/snooping.db
 +
 
Har man flera switchar i sin topologi måste downstream-portas trustas också (alternativt att option 82 stängs av).
 
Har man flera switchar i sin topologi måste downstream-portas trustas också (alternativt att option 82 stängs av).
 
  ip dhcp snooping information option allow-untrusted
 
  ip dhcp snooping information option allow-untrusted
Show
+
 
 +
Verify
 
  show ip dhcp snooping
 
  show ip dhcp snooping
 +
 +
Recovery
 +
errdisable recovery cause dhcp-rate-limit
  
 
===Option 82===
 
===Option 82===
DHCP Relay Agent Information Option (RFC 3046) är framtaget för att låta relay agent skicka med circuit specific information i requesten som forwardas till DHCP-servern. Det som skickas med är exempelvis vilken ethernetport i switchen som requesten kom in på och mac-adress på relayen. Detta är påslaget default om man kör DHCP snooping.  
+
DHCP Relay Agent Information Option (RFC 3046) är framtaget för att låta relay agent skicka med circuit specific information i requesten som forwardas till DHCP-servern. Det som skickas med är exempelvis vilken ethernetport i switchen som requesten kom in på och mac-adress på relayen. Detta är påslaget default om man kör DHCP snooping vilket innebär att denna information samt giaddr 0.0.0.0 läggs till DHCP-paketen.  
 
  ip dhcp snooping information option
 
  ip dhcp snooping information option
  
 
=DHCPv6=
 
=DHCPv6=
Med DHCPv6 används UDP port 546 för klienter och port 547 för servrar. DHCP-paketen har också uppdaterade namn:
+
Med DHCPv6 används UDP port 546 för klienter och port 547 för servrar. Default gateway annonseras inte av DHCP utan det sköts av RA. DHCP-paketen har också uppdaterade namn:
* Solicit - skickas till ff02::1:2
+
* '''Solicit:''' Sent by a client to locate servers (FF02::1:2).
* Advertise - unicast till klientens link local
+
* '''Advertise:''' Sent by a server in response to a Solicit message to indicate availability.
* Request
+
* '''Request:''' Sent by a client to request addresses or configuration settings from a specific server.
* Reply
+
* '''Reply:''' Sent by a server to a specific client in response to a Solicit, Request, Renew, Rebind, Information-Request, Confirm, Release, or Decline message.
 +
 
 +
DHCPv6 rapid configuration only uses the Solicit and Reply message.
 +
ipv6 dhcp server DHCP_POOL rapid-commit
  
 
===Stateful===
 
===Stateful===

Revision as of 19:27, 5 November 2016

Dynamic Host Configuration Protocol (RFC 2131) är ett protokoll som dynamiskt distribuerar nätverkskonfiguration.

Bakgrund
DHCP har utvecklats från Bootstrap protocol (RFC 951) som i sin tur har utvecklats pga tillkortakommanden hos Reverse ARP. Alla tre protokoll bygger på att klienten initialt broadcastar en discovery och servern svarar med en IP-adress. RARP fungerar precis som ARP men frågar efter sin egen MAC-adress och har satt IP till 0.0.0.0. Servern måste vara förkonfigurerad med klientens MAC-adress och en IP-adress. Servern måste även befinna sig i samma L2-domän som klienten. BOOTP togs fram för att förbättra processen med adresstilldelning till klienter. Det använder helt egna meddelanden och rullar på IP och UDP. Den stora fördelen mot RARP är att det går att tilldela klienterna subnätmask, default gateway, DNS-servrar och boot-server (hörs på namnet att det funkar). BOOTP-discovery går även att forwarda till andra subnät. Den stora nackdelen är att det har samma administrativa börda som RARP, dvs alla MAC-adresser och IP-adresser måste förkonfigureras på servern. Nästa steg är i utvecklingen är DHCP.

DHCP använder samma format som BOOTP, dvs servrar lyssnar på UDP port 67 och klienter kommunicerar från UDP port 68, men har satsat mer på att vara dynamisk. Det uppnås med pooler, leasing och adressåtervinning. Det finns även extensions för att registrera klienters FQDN till DNS.

Default är DHCP-tjänsten på men det går att stänga av.

no service dhcp
ip dhcp bootp ignore

Server

Cisco IOS DHCP server
Exclude IP Addresses, Create DHCP Address Pool, Specify the Network, Set DNS Server, Set the Default Gateway

ip dhcp excluded-address [start ip-address] [end ip-address]
ip dhcp pool [poolname]
 network [ip-address] [subnet-mask]
 dns-server [ip-address of primary dns-server] [ip-address of secondary dns-server]
 default-router [ip-address]
exit

DB

ip dhcp database flash:/
show ip dhcp database

Verify

show ip dhcp pool
show ip dhcp binding
show ip dhcp import

Clear

clear ip dhcp binding *

Låt en IOS DHCP server acceptera requests med tomt giaddr-fält. t.o.m. om option 82 är satt (se nedan).

ip dhcp relay information trust-all

Klient

Client-Identifier är en kombination av hardware address, interface name och cisco. Detta id görs om till en HEX-sträng som presenteras för servern.

interface Ethernet 1
 ip dhcp client hostname R1
 ip address dhcp client-id <interface>
 ip address dhcp

Verify

show dhcp lease

Release & Renew

release dhcp ethernet 3/1
renew dhcp ethernet 3/1

Broadcast, bestäm om broadcastbiten ska vara satt till 1 eller 0, dvs att DHCP-svaren skickas tillbaka med broadcast eller unicast. Default är detta påslaget till skillnad från många andra operativsystem.

ip dhcp-client broadcast-flag

AD, konfigurera vad default routen man får med DHCP ska ha för administrative distance.

ip dhcp-client default-router distance <1-255>

Relay

Gör om broadcast till unicast.

interface Ethernet 1
 ip helper-address 10.0.0.10

Allows the DHCP relay agent to switch the gateway address (giaddr field of a DHCP packet) to secondary addresses when there is no DHCPOFFER message from a DHCP server.

ip dhcp smart-relay

Snooping

DHCP snooping är en säkerhetsmekanism för att filtrera bort untrusted DHCP-paket och hålla koll på klienter genom att lyssna på DHCP-trafik och bygga en DHCP snooping binding database. Snooping hindrar rogue DHCP servers från att svara på requests och skyddar mot klienter som begär väldigt många leases, dvs DOS-attack. Det kollar också att MAC-adressen i DHCP-paketet matchar adressen det kommer ifrån samt kollar om release och decline kommer in på rätt portar enligt binding database. Paket som inte kommer från rätt port filtreras. Vissa andra säkerhetsmekanismer använder sig av informationen i snooping binding database, se IP Source Guard och Dynamic ARP Inspection.

Man måste slå på snooping för varje vlan man vill skydda.

ip dhcp snooping
ip dhcp snooping vlan 10

Globala default-inställningar

no ip dhcp snooping information option allow-untrusted
ip dhcp snooping information option
no ip dhcp snooping database 
ip dhcp snooping database write-delay 300
ip dhcp snooping database timeout 300
ip dhcp snooping verify mac-address
ip dhcp snooping verify no-relay-agent-address

De interface som har en legit DHCP-server måste trustas. Samt sätt rate limit på DHCP-paket.

interface gi1
 ip dhcp snooping trust
 ip dhcp snooping limit rate 10

Stäng av option 82 om servern ej accepterar requests med giaddr 0.0.0.0. Om en router ser option 82 förväntar den sig non-zero giaddr.

no ip dhcp snooping information option

Lägg databasen i en fil

ip dhcp snooping database flash:/snooping.db

Har man flera switchar i sin topologi måste downstream-portas trustas också (alternativt att option 82 stängs av).

ip dhcp snooping information option allow-untrusted

Verify

show ip dhcp snooping

Recovery

errdisable recovery cause dhcp-rate-limit 

Option 82

DHCP Relay Agent Information Option (RFC 3046) är framtaget för att låta relay agent skicka med circuit specific information i requesten som forwardas till DHCP-servern. Det som skickas med är exempelvis vilken ethernetport i switchen som requesten kom in på och mac-adress på relayen. Detta är påslaget default om man kör DHCP snooping vilket innebär att denna information samt giaddr 0.0.0.0 läggs till DHCP-paketen.

ip dhcp snooping information option

DHCPv6

Med DHCPv6 används UDP port 546 för klienter och port 547 för servrar. Default gateway annonseras inte av DHCP utan det sköts av RA. DHCP-paketen har också uppdaterade namn:

  • Solicit: Sent by a client to locate servers (FF02::1:2).
  • Advertise: Sent by a server in response to a Solicit message to indicate availability.
  • Request: Sent by a client to request addresses or configuration settings from a specific server.
  • Reply: Sent by a server to a specific client in response to a Solicit, Request, Renew, Rebind, Information-Request, Confirm, Release, or Decline message.

DHCPv6 rapid configuration only uses the Solicit and Reply message.

ipv6 dhcp server DHCP_POOL rapid-commit

Stateful

Functions exactly the same as IPv4 DHCP in which hosts receive both their IPv6 address and additional parameters from the DHCP server.

ipv6 dhcp pool STATEFUL
 address prefix 10::/64
 dns-server 2001:4860:4860::8888
 domain-name hackernet.se

Interface

interface gi2
 ipv6 address 10::1/64
 ipv6 dhcp server STATEFUL
 ipv6 nd managed-config-flag
 ipv6 nd prefix 10::/64 14400 14400 no-autoconfig

managed-config-flag sätter en flagga i RA som säger att hostarna kan använda DHCPv6. no-autoconfig säger att stateless configuration inte ska användas.

Stateless

SLAAC is still used to get the IP address, but DHCP is used to obtain “other” configuration options, usually things like DNS, NTP, etc.

ipv6 dhcp pool STATELESS
 dns-server 2001:4860:4860::8888
 domain-name hackernet.se

Interface

interface gi2
 ipv6 address 10::1/64
 ipv6 dhcp server STATELESS
 ipv6 nd other-config-flag

Verify

show ipv6 dhcp pool

Client

interface gi3
 ipv6 enable 
 ipv6 address dhcp

Verify

show ipv6 dhcp interface

NX-OS

feature dhcp

Relay

int vlan 15
 ip dhcp relay address 10.0.0.10

Verify

show ip dhcp relay

Authorized ARP

Man kan låta DHCP-processen populera ARP-cachen, dvs ta MAC-IP-mappningar från DHCP-databasen. Med Authorized ARP stängs den vanliga dynamiska ARP:n av på interfacen.

ip dhcp pool NAME
 update arp
int gi2
 arp authorize
 arp timeout <seconds>