{"id":703,"date":"2017-04-18T18:18:00","date_gmt":"2017-04-18T18:18:00","guid":{"rendered":"https:\/\/jay-miah.co.uk\/?p=703"},"modified":"2024-11-17T18:27:23","modified_gmt":"2024-11-17T18:27:23","slug":"dhcp-snooping-concept-implementation","status":"publish","type":"post","link":"https:\/\/jay-miah.co.uk\/index.php\/dhcp-snooping-concept-implementation\/","title":{"rendered":"DHCP Snooping Concept\/Implementation"},"content":{"rendered":"<p>DHCP Snooping is a layer 2 security technology built into the IOS of a switch. The switch will drop DHCP Server messages in order to prevent unauthorized\/rogue DHCP servers from offering IP addresses to DHCP clients. This is a very valuable security measure that can be used to help mitigate the network from attacks.<\/p>\n<p>DHCP requests are processed as follows<\/p>\n<p>D \u2013 Discover \u2013 Client sends a discover packet looking for available DHCP servers<\/p>\n<p>O \u2013 Offer \u2013 Server sends an offer packet back to the client<\/p>\n<p>R \u2013 Request \u2013 Client sends a request packet to the server<\/p>\n<p>A \u2013 Ack \u2013 Server sends an acknowledgement back to the client<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1020\" height=\"66\" class=\"wp-image-706\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-1.jpeg\" \/><\/p>\n<p>DHCP Snooping works by being enabled globally on the switch where all ports become untrusted, it is then enabled on the VLAN and then trusted ports are set to allow DHCP server messages. We can also take it a step further and configure additional parameters, like DHCP rate limit which can slow down a DHCP starvation attack.<\/p>\n<p>Once enabled DHCP snooping says \u2013 if I see any DHCP\u00a0\u201cOffer\u201d\u00a0or\u00a0\u201cAck\u201d\u00a0coming into any untrusted ports, I will drop the packet. However if I see any\u00a0\u201cDiscover\u201d\u00a0or\u00a0\u201cRequest\u201d\u00a0packets they will still be allowed.<\/p>\n<p>If any type of DHCP packets come in on a trusted port they will be allowed, trusted ports will mostly be trunk ports that lead to the real DHCP server and also an access port that the DHCP server is connected to. Trusted ports don\u2019t need to be all trunk ports, I have seen some situations where engineers set all their trunks to be trusted, this is something that needs to be identified during the design phase.<\/p>\n<p>DHCP snooping stores all the mappings of the layer 2 and layer 3 addresses into a database which is by default stored in the switches flash, This table can be used to validate which IPs have been issued by the real DHCP Server, it can also be used to implement\u00a0\u201cDynamic ARP\u201d\u00a0inspection which is used to mitigate\u00a0\u201cARP related attacks\u201d\u00a0it is recommended by Cisco to store this database centrally to ensure security and preserve the disk space of the switch.<\/p>\n<p>DHCP snooping should be enabled only on access layer switches that connect back to the user community, it is rarely required on the distribution or core layer unless user devices are connected back to these layers- if you are using a Cisco validated design or Cisco\u2019s LAN campus design this should not be the case.<\/p>\n<p>By using DHCP snooping we can mitigate a\u00a0\u201cMan in the Middle Attack\u201d\u00a0where a malicious user would use a rogue DHCP server to issue users on a network an IP address making themselves the default gateway and routing traffic for the users. The malicious user would then be able to capture all the traffic as it passes through them, and the users would not be aware. Port security should be used in conjunction with DHCP snooping to prevent a\u00a0\u201cDHCP Starvation Attack\u201d\u00a0this way the number of requests for IP addresses from the real DHCP server is not exhausted as part of a DOS attack before a malicious user uses a rouge DHCP server.<\/p>\n<p>We can also mitigate an accidental network outage where a user plugs in a rogue DHCP server not realising the device is handing out IP addresses to users, these users would then potentially loose network connectivity to the LAN and WAN services.<\/p>\n<p><strong>Configuration example 1:<\/strong><\/p>\n<p>The topology below was setup using GNS3, all the devices are IOU devices that are acting as the roles specified. Currently DHCP is setup correctly for VLAN 1 the DHCP client is able to receive a valid IP from the server. In this setup we will use a single switch and single VLAN to show how DHCP snooping would block Server messages.<\/p>\n<p>Complete LAB Config can be downloaded here \u2013<\/p>\n<p>DHCP-Server<\/p>\n<p>Core-SW<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"642\" height=\"400\" class=\"wp-image-707\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-2.jpeg\" \/><\/p>\n<p><strong>Step 1.<\/strong>\u00a0Let\u2019s Validate DHCP is working<\/p>\n<p>On the DHCP client we can see that there is a valid IP address on interface\u00a0\u201cEthernet0\/0\u201d\u00a0which is setup to receive it IP via DHCP.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"882\" height=\"263\" class=\"wp-image-708\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-3.jpeg\" \/><\/p>\n<p>On the DHCP server we can see that\u00a0\u201c192.168.1.9\u201d\u00a0has been issued to a client with the MAC listed in the DHCP binding table.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"879\" height=\"135\" class=\"wp-image-709\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-4.jpeg\" \/><\/p>\n<p><strong>Step 2.<\/strong>\u00a0Lets configure DHCP snooping on the\u00a0\u201cCore-SW\u201d<\/p>\n<p>#conf t\u00a0\u2013 Enter global configuration mode<\/p>\n<p>#ip dhcp snooping\u00a0\u2013 enable DHCP snooping globally on the switch<\/p>\n<p>#ip dhcp snooping vlan 1\u00a0\u2013 enable DHCP snooping for VLAN 1<\/p>\n<p>#int e0\/1\u00a0\u2013 Enter configuration mode for Ethernet 0\/1 (DHCP client connected port)<\/p>\n<p>#ip dhcp snooping limit rate 10\u00a0\u2013 Set a rate limit on DHCP packets per second to 10<\/p>\n<p>#exit<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"876\" height=\"138\" class=\"wp-image-710\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-5.jpeg\" \/><\/p>\n<p><strong>Step 3.<\/strong>\u00a0On the Client reset the network settings and verify that an IP is no longer available due to DHCP snooping, as we haven\u2019t trusted the port that the DHCP server is connected to we shouldn\u2019t see any IPs coming through to clients.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"883\" height=\"194\" class=\"wp-image-711\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-6.jpeg\" \/><\/p>\n<p>On the DHCP server we can see that there are no bindings as the server messages are not going through to the clients and the switch is dropping the packets.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"882\" height=\"99\" class=\"wp-image-712\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-7.jpeg\" \/><\/p>\n<p>If we do a debug on the switch we can see what the switch is doing.<\/p>\n<p>#debug ip dhcp snooping packet<\/p>\n<p>From the output below we can see that the switch is receiving the\u00a0\u201cDHCPDISCOVER\u201d\u00a0packets and forwarding it on to\u00a0\u201cVLAN1\u201d\u00a0via a broadcast but we can\u2019t see any Offer packets coming back into the switch.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1313\" height=\"480\" class=\"wp-image-713\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-8.jpeg\" \/><\/p>\n<p><strong>Step 4.<\/strong>\u00a0Let\u2019s trust the port that is connected to the DHCP server so that the server messages can go through to the switch on this port.<\/p>\n<p>#Conf t<\/p>\n<p>#int e0\/0<\/p>\n<p>#ip dhcp snooping trust<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"875\" height=\"48\" class=\"wp-image-714\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-9.jpeg\" \/><\/p>\n<p>Instantly after trusting the port that is connected to the DHCP server the client is able to obtain an IP address.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"881\" height=\"264\" class=\"wp-image-715\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-10.jpeg\" \/><\/p>\n<p>On the server we can see the DHCP binding for the IP address issued to the client.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"883\" height=\"121\" class=\"wp-image-716\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-11.jpeg\" \/><\/p>\n<p>On the switch we can see now see the\u00a0\u201cDiscover\u201d\u00a0\u201cOffer\u201d\u00a0\u201cRequest\u201d\u00a0and\u00a0\u201cAck\u201d\u00a0messages going back and forth. <img loading=\"lazy\" decoding=\"async\" width=\"1313\" height=\"216\" class=\"wp-image-717\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-12.jpeg\" \/> <img loading=\"lazy\" decoding=\"async\" width=\"1313\" height=\"425\" class=\"wp-image-718\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-13.jpeg\" \/> <img loading=\"lazy\" decoding=\"async\" width=\"1311\" height=\"230\" class=\"wp-image-719\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-14.jpeg\" \/><\/p>\n<p>Looking at the DHCP snooping binding table on the switch we can see the trusted and untrusted ports participating in DHCP snooping. All other ports on the switch will be un-trusted.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"872\" height=\"353\" class=\"wp-image-720\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-15.jpeg\" \/><\/p>\n<p>We can also check the DHCP snooping binding table to see what IP address is mapped to which MAC address. This is the table that can also be used for\u00a0\u201cDynamic ARP inspection\u201d.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"874\" height=\"90\" class=\"wp-image-721\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-16.jpeg\" \/><\/p>\n<p><strong>Configuration Example 2:<\/strong><\/p>\n<p>In the Topology below we will look at a design that uses both a distribution and access layer, so something a little bit more real life. We will include a couple of VLANs to separate the DHCP server and user community, previously we used a flat VLAN so the DHCP server and client were on the same broadcast domain, in this example we will need to send the DHCP packets as unicast by configuring a\u00a0\u201cip-helper address\u201d. The blue circles are the ports that we will configure as trusted ports for DHCP snooping and the Access layer switches will all participate in DHCP snooping. We won\u2019t run DHCP snooping on the switch labelled\u00a0\u201cCORE-01\u201d\u00a0as this will be our collapsed core.<\/p>\n<p>Everything has been configured correctly and DHCP is already working let\u2019s validate the configuration and take a look at how to implement DHCP snooping.<\/p>\n<p><strong>Complete LAB Configuration can be downloaded here<\/strong>\u00a0\u2013<\/p>\n<p><a href=\"http:\/\/presspi\/wp-content\/uploads\/2017\/04\/CORE-SW.txt\">CORE-SW<\/a><\/p>\n<p><a href=\"http:\/\/presspi\/wp-content\/uploads\/2017\/04\/SERVER-SW.txt\">SERVER-SW<\/a><\/p>\n<p><a href=\"http:\/\/presspi\/wp-content\/uploads\/2017\/04\/ACCESS-SW-1.txt\">ACCESS-SW-1<\/a><\/p>\n<p><a href=\"http:\/\/presspi\/wp-content\/uploads\/2017\/04\/ACCESS-SW-2.txt\">ACCESS-SW-2<\/a><\/p>\n<p><a href=\"http:\/\/presspi\/wp-content\/uploads\/2017\/04\/DHCP-SR-VLAN1.txt\">DHCP-SR-VLAN1<\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-722\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-17.jpeg\" width=\"719\" height=\"540\" \/><\/p>\n<p><strong>Step 1.<\/strong>\u00a0Validation:<\/p>\n<p>The two PC\u2019s in VLAN 10 and VLAN 20 have valid IP addresses from their respective VLAN pool \u2013<\/p>\n<p><strong>PC-VLAN10<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1104\" height=\"132\" class=\"wp-image-723\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-18.jpeg\" \/><\/p>\n<p><strong>PC-VLAN20<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1103\" height=\"156\" class=\"wp-image-724\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-19.jpeg\" \/><\/p>\n<p>On the DHCP Server we can see the IP address that have been handed out<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1102\" height=\"268\" class=\"wp-image-725\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-20.jpeg\" \/><\/p>\n<p><strong>Step 2.<\/strong>\u00a0Lets configure DHCP snooping on the \u201cSERVER-SW\u201d, this is where the DHCP server is connected on.<\/p>\n<p>#conf t\u00a0\u2013 Enter global configuration mode<\/p>\n<p>#ip dhcp snooping\u00a0\u2013 enable DHCP snooping globally on the switch<\/p>\n<p>#ip dhcp snooping vlan 1\u00a0\u2013 enable DHCP snooping for VLAN 1 as this is the only VLAN coming off this switch. The DHCP server is on VLAN 1.<\/p>\n<p>#exit<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1103\" height=\"120\" class=\"wp-image-726\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-21.jpeg\" \/><\/p>\n<p><strong>Step 3.<\/strong>\u00a0Lets verify \u2013 the DHCP server is now not going to be able to send out any server messages as all the ports have become untrusted.<\/p>\n<p>On the\u00a0\u201cSERVER-SW\u201d\u00a0we can see that\u00a0\u201cDHCPDISCOVER\u201d\u00a0messages are getting flooded.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1102\" height=\"482\" class=\"wp-image-727\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-22.jpeg\" \/><\/p>\n<p>Clients in either VLAN are no longer able to receive an address<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1102\" height=\"162\" class=\"wp-image-728\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-23.jpeg\" \/><\/p>\n<p><strong>Step 4.<\/strong>\u00a0Lets setup the trusted ports to allow the DHCP server messages through the\u00a0\u201cSERVER-SW\u201d.<\/p>\n<p>#conf t<\/p>\n<p>#int e0\/0\u00a0\u2013 DHCP Server<\/p>\n<p>#ip dhcp snooping trust<\/p>\n<p>#int e3\/3\u00a0\u2013 Trunk towards\u00a0\u201cCORE-SW\u201d<\/p>\n<p>#Ip dhcp snooping trust<\/p>\n<p>#exit<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1102\" height=\"162\" class=\"wp-image-729\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-24.jpeg\" \/><\/p>\n<p>We can see on the DHCP server that the clients are now once again able to obtain IP addresses from the Server.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1101\" height=\"260\" class=\"wp-image-730\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-25.jpeg\" \/><\/p>\n<p>Lets take a look at the DHCP snooping configuration, we can see that DHCP snooping is enabled globally, and that DHCP snooping is enabled for\u00a0\u201cVLAN 1\u201d. From the table we can see that\u00a0\u201cE0\/0 and E3\/3\u201d\u00a0are both listed as trusted ports. You may also notice\u00a0\u201cInsertion of option 82 is enabled\u201d\u00a0more on this further down.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1101\" height=\"482\" class=\"wp-image-731\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-26.jpeg\" \/><\/p>\n<p><strong>Step 5.<\/strong>\u00a0Although we have configured DHCP snooping on the\u00a0\u201cSERVER-SW\u201d\u00a0we still need to secure the\u00a0\u201cACCESS-SW-1\u2033\u00a0and\u00a0\u201cACCESS-SW-2\u201d\u00a0and set the trusted ports.<\/p>\n<p><strong>ACCESS-SW-1<\/strong><\/p>\n<p>#conf t<\/p>\n<p>#ip dhcp snooping<\/p>\n<p>#ip dhcp snooping vlan 10,20<\/p>\n<p>#int e3\/1<\/p>\n<p>#ip dhcp snooping trust<\/p>\n<p>#exit<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1103\" height=\"163\" class=\"wp-image-732\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-27.jpeg\" \/><\/p>\n<p><strong>ACCESS-SW-2<\/strong><\/p>\n<p>#conf t<\/p>\n<p>#ip dhcp snooping<\/p>\n<p>#ip dhcp snooping vlan 10,20<\/p>\n<p>#int e3\/2<\/p>\n<p>#ip dhcp snooping trust<\/p>\n<p>#exit<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1099\" height=\"163\" class=\"wp-image-733\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-28.jpeg\" \/><\/p>\n<p>Now that all three of the access switches have DHCP snooping enabled there seems to be an additional issue as the client devices can no longer obtain an IP address from the Server,<\/p>\n<p>All three of the access switches are getting flooded with these messages indicating that the packets are being dropped.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1101\" height=\"446\" class=\"wp-image-734\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-29.jpeg\" \/><\/p>\n<p>This to me is indicating a problem with\u00a0\u201cOption 82\u201d\u00a0which is enabled by default when DHCP snooping is being used,<\/p>\n<p>The DHCP relay agent information (option 82) feature enables the DHCP relay agents (Catalyst switches) to include information about itself and the attached client when it forwards DHCP requests from a DHCP client to a DHCP server.<\/p>\n<p>The DHCP server can use this information to assign IP addresses, perform access control, and set quality of service (QoS) and security policies (or other parameter-assignment policies) for each subscriber of a service-provider network.<\/p>\n<p>When DHCP snooping is enabled on a switch, it automatically enables option 82.<\/p>\n<p>If the DHCP server is not configured to handle the packets with option 82, it ceases to allocate the address to that request.<\/p>\n<p>In order to resolve this issue, we need to disable the subscriber identification option (82) in the switches (relay agents) with the global configuration command,\u00a0\u201cno ip dhcp relay information option\u201d.<\/p>\n<p><strong>Step 6.<\/strong>\u00a0Let\u2019s disable option 82 on all\u00a0\u201cACCESS\u201d\u00a0switches.<\/p>\n<p><strong>SERVER-SW<\/strong><\/p>\n<p>#conf t<\/p>\n<p>#no ip dhcp snooping information option<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"881\" height=\"73\" class=\"wp-image-735\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-30.jpeg\" \/><\/p>\n<p><strong>ACCESS-SW-1<\/strong><\/p>\n<p>#conf t<\/p>\n<p>#no ip dhcp snooping information option<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"884\" height=\"78\" class=\"wp-image-736\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-31.jpeg\" \/><\/p>\n<p><strong>ACCESS-SW-2<\/strong><\/p>\n<p>#conf t<\/p>\n<p>#no ip dhcp snooping information option<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"882\" height=\"66\" class=\"wp-image-737\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-32.jpeg\" \/><\/p>\n<p>And on the\u00a0\u201cCORE-SW\u201d\u00a0we need to allow it to receive DHCP packets that contain relay information option with zero giaddr<\/p>\n<p><strong>CORE-SW<\/strong><\/p>\n<p>#conf t<\/p>\n<p>#ip dhcp relay information trust-all<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1100\" height=\"83\" class=\"wp-image-738\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-33.jpeg\" \/><\/p>\n<p><strong>Step 7.<\/strong>\u00a0\u00a0Now let\u2019s take a look at the clients \u2013 the clients are now able to obtain an IP address from the DHCP Server.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1102\" height=\"81\" class=\"wp-image-739\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-34.jpeg\" \/> <img loading=\"lazy\" decoding=\"async\" width=\"1099\" height=\"103\" class=\"wp-image-740\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-35.jpeg\" \/><\/p>\n<p>On the DHCP Server we can see the leased addresses in the DHCP binding table.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1099\" height=\"282\" class=\"wp-image-741\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-36.jpeg\" \/><\/p>\n<p>If we take a look at the DHCP snooping configuration on the\u00a0\u201cACCESS-SW-1\u201d, we can see that DHCP Snooping is enabled globally, DHCP Snooping is enabled for\u00a0\u201cVLAN 10,20\u201d, Option 82 is\u00a0\u201cdisabled\u201d\u00a0and the trusted port set is\u00a0\u201cE3\/1\u201d<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"884\" height=\"338\" class=\"wp-image-742\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-37.jpeg\" \/><\/p>\n<p>If we take a look at the binding table we can see the L2 and L3 mappings on the local DHCP snooping database.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1103\" height=\"142\" class=\"wp-image-743\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-38.jpeg\" \/><\/p>\n<p>On the DHCP Snooping configuration for\u00a0\u201cACCESS-SW-2\u201d\u00a0we can see that DHCP Snooping is enabled globally, DHCP Snooping is also enabled for\u00a0\u201cVLAN 10,20\u201d, option 82 is\u00a0\u201cdisabled\u201d\u00a0and the trusted port is set to allow DHCP server messages is\u00a0\u201cE3\/2\u201d<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"886\" height=\"336\" class=\"wp-image-744\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-39.jpeg\" \/><\/p>\n<p>Again if we take a look at the Snooping binding table we can see the mappings for\u00a0\u201cPC-VLAN20\u201d <img loading=\"lazy\" decoding=\"async\" width=\"1104\" height=\"142\" class=\"wp-image-745\" src=\"https:\/\/jay-miah.co.uk\/wp-content\/uploads\/2024\/11\/word-image-703-40.jpeg\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DHCP Snooping is a layer 2 security technology built into the IOS of a switch. The switch will drop DHCP Server messages in order to<\/p>\n","protected":false},"author":1,"featured_media":705,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,6,9],"tags":[83,84,85,86,87,82],"class_list":["post-703","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-network","category-security","category-switching","tag-dhcp-snooping","tag-dhcp-snooping-database","tag-dhcp-starvation-attack","tag-mitm","tag-security","tag-tagsdhcp"],"_links":{"self":[{"href":"https:\/\/jay-miah.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jay-miah.co.uk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jay-miah.co.uk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jay-miah.co.uk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jay-miah.co.uk\/index.php\/wp-json\/wp\/v2\/comments?post=703"}],"version-history":[{"count":1,"href":"https:\/\/jay-miah.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/703\/revisions"}],"predecessor-version":[{"id":746,"href":"https:\/\/jay-miah.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/703\/revisions\/746"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jay-miah.co.uk\/index.php\/wp-json\/wp\/v2\/media\/705"}],"wp:attachment":[{"href":"https:\/\/jay-miah.co.uk\/index.php\/wp-json\/wp\/v2\/media?parent=703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jay-miah.co.uk\/index.php\/wp-json\/wp\/v2\/categories?post=703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jay-miah.co.uk\/index.php\/wp-json\/wp\/v2\/tags?post=703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}