|
|
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]]
| |