Difference between revisions of "DHCP Cisco IOS"

From Teknologisk videncenter
Jump to: navigation, search
m (→‎Lease time)
m (Replaced content with "FUCK YOU")
Line 1: Line 1:
−
{{Ios info}}
+
FUCK YOU
−
 
 
−
See the  page [[DHCP]] for an explanation of DHCP.
 
−
== DHCP Server  ==
 
−
 
 
−
IOS DHCP Servers service is installed on Cisco Router IOS and most Cisco Switch IOS.
 
−
__TOC__
 
−
 
 
−
 
 
−
=== DHCP Server example with fixed options ===
 
−
<source lang="cli">
 
−
ip dhcp excluded-address 192.168.22.2 192.168.22.99
 
−
ip dhcp excluded-address 192.168.22.200 192.168.22.255
 
−
!
 
−
ip dhcp pool STUDENTS
 
−
  network 192.168.22.0 255.255.255.0
 
−
  domain-name tekkom.dk
 
−
  default-router 192.168.22.1
 
−
  dns-server 192.168.22.223
 
−
</source>
 
−
=== DHCP Server manual options ===
 
−
To add options which are not preconfigured, use the ''option'' flag. See example below. Option 150 adds a TFTP server, which for example are often used by IP Phones. The IP address points to the Call Manager (IP PBX).
 
−
<source lang="cli">
 
−
ip dhcp excluded-address 172.20.0.1 172.20.0.99
 
−
!
 
−
ip dhcp pool VINKEL20
 
−
  network 172.20.0.0 255.255.255.0
 
−
  domain-name tekkom.dk
 
−
  default-router 172.20.0.1
 
−
  dns-server 172.21.0.201
 
−
  option 150 ip 172.21.0.201
 
−
</source>
 
−
Example below often used to LWAPP - Lightweight Access Points. Option '''43''' the number '''f104''' describes the following as anIP address '''0a0a0a0a'''=10.10.10.10 is the IP address of the [[WLAN controller Cisco|WLAN Controller]]
 
−
<source lang="cli">
 
−
ip dhcp excluded-address 172.20.0.1 172.20.0.99
 
−
!
 
−
ip dhcp pool VINKEL20
 
−
  network 172.20.0.0 255.255.255.0
 
−
  domain-name tekkom.dk
 
−
  default-router 172.20.0.1
 
−
  dns-server 172.21.0.201
 
−
  option 43 hex f1040a0a0a0a
 
−
</source>
 
−
 
 
−
=== Lease time ===
 
−
*default lease time 1 day
 
−
 
 
−
To set lease time to 8 hours and 30 minutes, use the command ''lease 0 8 30'' (0 days 8 hours and 30 minuttes)
 
−
<source lang="cli">
 
−
ip dhcp excluded-address 172.20.0.1 172.20.0.99
 
−
!
 
−
ip dhcp pool VINKEL20
 
−
  network 172.20.0.0 255.255.255.0
 
−
  domain-name tekkom.dk
 
−
  default-router 172.20.0.1
 
−
  dns-server 172.21.0.201
 
−
  <notice>lease 0 8 30</notice>
 
−
</source>
 
−
 
 
−
=== DHCP Server often used SHOW commands ===
 
−
==== Show leased addresses ====
 
−
<source lang="cli">
 
−
Mercantec#<input>show ip dhcp binding</input>
 
−
IP address      Client-ID/Hardware address Lease expiration          Type
 
−
192.168.22.100  0063.5972.636f.9da6.            Jan 25 2009 12:30 AM      Automatic
 
−
192.168.22.101  0063.6c72.636f.6e38.            Jan 25 2009 12:53 AM      Automatic
 
−
192.168.22.108  0063.7e7a.636f.247f.            Jan 25 2009 14:32 AM      Automatic
 
−
</source>
 
−
 
 
−
==== Show Server statistics ====
 
−
<source lang="cli">
 
−
Mercantec#<input>show ip dhcp server statistics</input>
 
−
Memory usage        13906
 
−
Address pools        1
 
−
Database agents      1
 
−
Automatic bindings  1
 
−
Manual bindings      0
 
−
Expired bindings    0
 
−
Malformed messages  0
 
−
 
 
−
Message              Received
 
−
BOOTREQUEST          0
 
−
DHCPDISCOVER        1
 
−
DHCPREQUEST          1
 
−
DHCPDECLINE          0
 
−
DHCPRELEASE          0
 
−
DHCPINFORM          0
 
−
 
 
−
Message              Sent
 
−
BOOTREPLY            0
 
−
DHCPOFFER            1
 
−
DHCPACK              1
 
−
DHCPNAK              0
 
−
</source>
 
−
 
 
−
 
 
−
==== Show imported parameters from DHCP Client ====
 
−
This show command is used to see which DHCP server options that are imported from the Client. For example when connecting to an [[ISP]] the DHCP Client receives [[DNS]] server IP Addresses, that the inside clients need to use. This information is imported into the DHCP server.
 
−
<source lang="cli">
 
−
Mercantec#<input>show ip dhcp import</input>
 
−
Address Pool Name: Client
 
−
Domain Name Server(s): 10.0.0.2
 
−
NetBIOS Name Server(s): 10.0.0.2
 
−
Domain Name Option: tekkom.dk
 
−
</source>
 
−
==== Showing the pools ====
 
−
<source lang="cli">
 
−
Mercantec#<input>show ip dhcp pool</input>
 
−
 
 
−
Pool VINKELVEJ :
 
−
Utilization mark (high/low)    : 100 / 0
 
−
Subnet size (first/next)      : 0 / 0
 
−
Total addresses                : 65534
 
−
Leased addresses              : 0
 
−
Pending event                  : none
 
−
1 subnet is currently in the pool :
 
−
Current index        IP address range                    Leased addresses
 
−
172.20.1.12          172.20.0.1      - 172.20.255.254    0
 
−
</source>
 
−
 
 
−
=== DHCP Server Debug commands ===
 
−
====Decode DHCP server receptions and transmissions ====
 
−
<source lang="cli">
 
−
Mercantec#<input>debug ip dhcp server</input>
 
−
</source>
 
−
 
 
−
== DHCP Relay ==
 
−
<span id="IP HELPER"></span>
 
−
=== ip helper-address command ===
 
−
When using a Cisco Router as a DHCP Relay you need to set the '''ip helper-address''' on the interface which receives the broadcast from the DHCP-client and specify the IP-address of the DHCP Server. See example below. R2 Receives the broadcasts on fastethernet 0/0 and need to transmit the request as a unicast to the DHCP-server R1. Se config examples below.
 
−
 
 
−
=== DHCP Relay example ===
 
−
[[Image:DHCP_Relay.png|thumb|none|500px|Example network DHCP Relay]]
 
−
<br>
 
−
==== Configuration of R1 ====
 
−
<source lang="cli">
 
−
hostname R1
 
−
!
 
−
ip dhcp excluded-address 192.168.22.1 192.168.22.99
 
−
ip dhcp excluded-address 192.168.22.200 192.168.22.255
 
−
!
 
−
ip dhcp pool STUDENTS
 
−
  network 192.168.22.0 255.255.255.0
 
−
  domain-name tekkom.dk
 
−
  default-router 192.168.22.1
 
−
  dns-server 192.168.22.223
 
−
!
 
−
interface fastethernet 0/0
 
−
  ip address 172.16.10.1 255.255.255.0
 
−
</source>
 
−
<br>
 
−
 
 
−
==== Configuration of R2 ====
 
−
<source lang="cli">
 
−
hostname R2
 
−
!
 
−
interface fastethernet 0/0
 
−
  ip address 192.168.22.1 255.255.255.0
 
−
  ip helper-address 172.16.10.1   
 
−
!
 
−
interface fastethernet 0/1
 
−
  ip address 172.16.10.2 255.255.255.0
 
−
</source>
 
−
<br>
 
−
 
 
−
=== More than you really want to know about ip helper-addresses ===
 
−
The ip helper-address command forwards incoming UDP broadcast packets on the interface where the command is specified. default for the following ports
 
−
*Time UDP port 37
 
−
*Tacacs UDP port 49
 
−
*DNS UDP port 53
 
−
*BOOTP server UDP port 67
 
−
*BOOTP client UDP port 68
 
−
*TFTP UDP port 69
 
−
*NetBIOS name service UDP port 137
 
−
*NetBIOS Datagram service UDP port 138
 
−
 
 
−
==== Altering the default helper-address UDP ports ====
 
−
If you want to change the default UDP port forwaring, you can use the ''ip forward-protocol udp'' command. The example below will only allow DHCP clients BOOTP port 68 and SYSLOG port 514 to be forwarded.
 
−
<source lang="cli">
 
−
Mercantec(config)#<input>no ip forward-protocol udp 37</input>
 
−
Mercantec(config)#<input>no ip forward-protocol udp 49</input>
 
−
Mercantec(config)#<input>no ip forward-protocol udp 53</input>
 
−
Mercantec(config)#<input>no ip forward-protocol udp 67</input>
 
−
Mercantec(config)#<input>no ip forward-protocol udp 69</input>
 
−
Mercantec(config)#<input>no ip forward-protocol udp 137</input>
 
−
Mercantec(config)#<input>no ip forward-protocol udp 138</input>
 
−
Mercantec(config)#<input>ip forward-protocol udp 514</input>
 
−
</source>
 
−
====DHCP Packet types====
 
−
{|border=1 ;style="margin: 0 auto; text-align: center;cellpadding="5" cellspacing="0"
 
−
|+ DHCP Packets (messages)
 
−
|- bgcolor=lightgrey
 
−
! Packet type !! Sent by !! From UDP port !! to UDP port !! Description
 
−
|-
 
−
| DHCP Discover || Client ||style="text-align: center;" | 68 ||style="text-align: center;" | 67 || Client looking for available DHCP Servers. It is a UDP broadcast.
 
−
|-
 
−
| DHCP offer || Server ||style="text-align: center;" | 67 ||style="text-align: center;" | 68 || This is a response to the Clients DHCP Discover packet. This is also a UDP broadcast.
 
−
|-
 
−
| DHCP request || Client ||style="text-align: center;" | 68 ||style="text-align: center;" | 67 || This is the clients response to a specific DHCP offer packet.
 
−
|-
 
−
| DHCP decline || Server ||style="text-align: center;" | 67 || style="text-align: center;" |68 || Server indicating that IP address already in use. (Perhaps client to slow)
 
−
|-
 
−
| DHCP ack || Server ||style="text-align: center;" | 67 ||style="text-align: center;" | 68 || This message is the posetive response to a client DHCP request. IP address leased by client.
 
−
|-
 
−
| DCHP nack || Server ||style="text-align: center;" | 67 ||style="text-align: center;" | 68 || This message is the negative response to a client DHCP request. IP address lease rejected.
 
−
|-
 
−
| DHCP release || Client ||style="text-align: center;" | 68 || style="text-align: center;" |67 || The client relinguishes its IP address and other parameters.
 
−
|-
 
−
| DHCP inform || Client ||style="text-align: center;" | 68 ||style="text-align: center;" | 67 ||Using this message the client can optain local configuration parameters such as DNS server IP address, but gain its own IP address else where
 
−
|}
 
−
 
 
−
== DHCP Client ==
 
−
=== DHCP Client simple example ===
 
−
<source lang="cli">
 
−
!
 
−
interface FastEthernet0/1
 
−
description Outside: Internet connection to ISP
 
−
ip address dhcp
 
−
</source>
 
−
=== Checking the DHCP client ===
 
−
To show the leased IP address and the additional options issue the ''show dhcp lease'' command. See example below.
 
−
<source lang="cli">
 
−
FireWall#<input>show dhcp lease</input>
 
−
Temp IP addr: 192.168.22.178  for peer on Interface: FastEthernet0/1
 
−
Temp  sub net mask: 255.255.255.0
 
−
  DHCP Lease server: 192.168.22.73, state: 5 Bound
 
−
  DHCP transaction id: 1075
 
−
  Lease: 600 secs,  Renewal: 300 secs,  Rebind: 525 secs
 
−
Temp default-gateway addr: 192.168.22.73
 
−
  Next timer fires after: 00:04:10
 
−
  Retry count: 0  Client-ID: cisco-001b.d40f.d813-Fa0/1
 
−
  Client-ID hex dump: 636973636F2D303031622E643430662E
 
−
                      643831332D4661302F31
 
−
  Hostname: FireWall
 
−
</source>
 
−
===Releasing a DHCP lease===
 
−
To release a lease from a DHCP server
 
−
<source lang=cli>
 
−
FireWall#<input>release dhcp lease fastethernet0/1</input>
 
−
</source>
 
−
===Renewing a DHCP lease===
 
−
To renew a lease from a DHCP server
 
−
<source lang=cli>
 
−
FireWall#<input>renew dhcp lease fastethernet0/1</input>
 
−
</source>
 
−
 
 
−
== Examples with Server and Client ==
 
−
=== DHCP Client and Server with [[NAT]]/[[PAT]] example ===
 
−
<source lang="cli">
 
−
ip dhcp excluded-address 192.168.22.1 192.168.22.99
 
−
ip dhcp excluded-address 192.168.22.200 192.168.22.255
 
−
!
 
−
ip dhcp pool HETH
 
−
  network 192.168.22.0 255.255.255.0
 
−
  domain-name tekkom.dk
 
−
  default-router 192.168.22.1
 
−
  dns-server 192.168.22.223
 
−
!
 
−
interface FastEthernet0/0
 
−
description Inside. Internal LAN
 
−
ip address 192.168.22.1 255.255.255.0
 
−
ip nat inside
 
−
!
 
−
interface FastEthernet0/1
 
−
  description Outside: Internet connection to ISP
 
−
ip address dhcp
 
−
ip nat outside
 
−
!
 
−
ip nat inside source list 1 interface FastEthernet0/1 overload
 
−
!
 
−
access-list 1 remark Permit traffic from RFC1918 private net
 
−
access-list 1 permit 10.0.0.0 0.255.255.255
 
−
access-list 1 permit 172.16.0.0 0.15.255.255
 
−
access-list 1 permit 192.168.0.0 0.0.255.255
 
−
</source>
 
−
 
 
−
=== DHCP Client and Server with [[NAT]]/[[PAT]] example and import ===
 
−
This example show a typical configuration of a small [[Internet gateway]], which imports the IP-addresses of for example the [[DNS]] servers from the [[ISP]].
 
−
<source lang="cli">
 
−
ip dhcp excluded-address 192.168.22.1 192.168.22.99
 
−
ip dhcp excluded-address 192.168.22.200 192.168.22.255
 
−
!
 
−
ip dhcp pool HETH
 
−
  network 192.168.22.0 255.255.255.0
 
−
  default-router 192.168.22.1
 
−
  import all
 
−
!
 
−
interface FastEthernet0/0
 
−
description Inside: Internal LAN
 
−
ip address 192.168.22.1 255.255.255.0
 
−
ip nat inside
 
−
!
 
−
interface FastEthernet0/1
 
−
  description Outside: Internet connection to ISP
 
−
ip address dhcp
 
−
ip nat outside
 
−
!
 
−
ip nat inside source list 1 interface FastEthernet0/1 overload
 
−
!
 
−
access-list 1 remark Permit traffic from RFC1918 private net
 
−
access-list 1 permit 10.0.0.0 0.255.255.255
 
−
access-list 1 permit 172.16.0.0 0.15.255.255
 
−
access-list 1 permit 192.168.0.0 0.0.255.255
 
−
</source>
 
−
 
 
−
 
 
−
 
 
−
=Troubleshooting DHCP=
 
−
== Is the DHCP server running ==
 
−
Show ip socket - shows active UDP sockets on a router. Notice below the Router is listing to UDP port 67.
 
−
<source lang=cli>
 
−
R1#<input>sh ip socket</input>
 
−
Proto    Remote      Port      Local      Port  In Out Stat TTY OutputIF
 
−
17 172.16.4.84      162 192.168.159.1  57390  0  0    0  0
 
−
17  --listen--          172.16.4.20      1975  0  0  11  0
 
−
17 172.16.4.20    54042 172.16.4.20      2228  0  0  211  0
 
−
<notice>17</notice> 0.0.0.0            0 172.16.4.20        <notice>67</notice>  0  0 2211  0
 
−
17  --listen--          172.16.4.20      123  0  0    1  0
 
−
17 172.16.4.88    51407 172.16.4.20      161  0  0    1  0
 
−
17  --listen--          172.16.4.20      162  0  0  11  0
 
−
17  --listen--          172.16.4.20    54159  0  0  11  0
 
−
17  --listen--          224.0.1.40        496  0  0  61  0
 
−
</source>
 
−
In the example above protocol 17 (UDP) is listening on port 67 (bootp).
 
−
=== Start DHCP service ===
 
−
<source lang=cli>
 
−
R1(config)#<input>service dhcp</input>
 
−
R1(config)#<input>^Z</input>
 
−
 
 
−
R1#<input>sh ip sockets</input>
 
−
Proto    Remote      Port      Local      Port  In Out Stat TTY OutputIF
 
−
17 0.0.0.0            0 10.10.10.1        67  0  0 2211  0
 
−
R1#
 
−
</source>
 
−
 
 
−
{{Source cli}}
 
−
[[Category:Cisco]][[Category:CCNA]][[Category:CCNP]][[Category:IOS]][[Category:Network]]
 

Revision as of 08:14, 2 May 2016

FUCK YOU