L2 security – IP Source Guard.
In the last post I presented Dynamic ARP Inspection, the feature which extends DHCP Snooping security feature on the Cisco switches. Today I’m going to talk about IP Source Guard, the next feature that restricts traffic from hosts not presented in the DHCP Snooping binding table (dynamic or static entries). The feature can validate IP or IP and MAC addresses.
I’m going to test the feature on the below example:
DHCP SERVER
/----\
| R1 |
\----/
| / fa1/0/9
-------
| SW1 |
|_____|
fa1/0/11- / \ -fa1/0/13
/ \
/ \
/ \
/----\ /----\
| R2 | | R3 |
\----/ \----/
DHCP CLIENT1 DHCP CLIENT2
Initial configuration of R1:
!
interface GigabitEthernet0/0
description link to SW1 Fas 1/0/9
ip address 192.168.1.10 255.255.255.0
no sh
!
ip dhcp excluded-address 192.168.1.1 192.168.1.30
!
ip dhcp pool DHCP-POOL
network 192.168.1.0 255.255.255.0
!
R2:
!
hostname R2
!
interface gig0/0
ip address dhcp
no shu
!
R3:
!
hostname R3
!
interface FastEthernet0/0
ip address dhcp
no sh
!
SW1:
ip dhcp snooping vlan 1
no ip dhcp snooping information option
ip dhcp snooping database flash:DHCP.txt
ip dhcp snooping database write-delay 30
ip dhcp snooping
errdisable recovery cause dhcp-rate-limit
errdisable recovery interval 30
!
interface FastEthernet1/0/11
switchport mode access
spanning-tree portfast
ip dhcp snooping limit rate 50
!
interface FastEthernet1/0/13
switchport mode access
spanning-tree portfast
ip dhcp snooping limit rate 50
!
interface FastEthernet1/0/9
description to R1-2911 gi0/0
ip dhcp snooping trust
!
DHCP Snooping created bindings:
SW1#sh ip dhcp snooping binding
MacAddress IpAddress Lease(sec) Type VLAN Interface
------------------ --------------- ---------- ------------- ---- --------------------
E8:B7:48:42:45:C8 192.168.1.34 86350 dhcp-snooping 1 FastEthernet1/0/11
04:C5:A4:3F:D6:D0 192.168.1.35 86382 dhcp-snooping 1 FastEthernet1/0/13
Total number of bindings: 2
Now I assign IP address: 192.168.1.70 for R3, which is not presented in the bindings table.
r3#
r3#conf t
Enter configuration commands, one per line. End with CNTL/Z.
r3(config)#int fa0/0
r3(config-if)#ip address 192.168.1.70 255.255.255.0
r3(config-if)#end
r3#
r3#ping 192.168.1.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.10, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/4 ms
r3#
As we see there is no restriction on traffic from hosts with static IPs. Let’s now enable IP Source Guard and test the ping once again:
SW1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
SW1(config)#int ra Fa1/0/11 , Fa1/0/13
SW1(config-if-range)#ip verify source
SW1(config-if-range)#end
SW1#sh ip verify source interface Fa1/0/11
Interface Filter-type Filter-mode IP-address Mac-address Vlan Log
--------- ----------- ----------- --------------- ----------------- ---- ---
Fa1/0/11 ip active 192.168.1.34 1 enabled
SW1#sh ip verify source interface Fa1/0/13
Interface Filter-type Filter-mode IP-address Mac-address Vlan Log
--------- ----------- ----------- --------------- ----------------- ---- ---
Fa1/0/13 ip active deny-all 1
SW1#
As we see traffic from R3 is denied because we assigned the static IP.
r2#ping 192.168.1.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms
r2#
r3#ping 192.168.1.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.10, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
r3#
Now I remove static IP to check if R3 can communicate using dynamic IP address:
r3#conf t
Enter configuration commands, one per line. End with CNTL/Z.
r3(config)#int Fa0/0
r3(config-if)#ip address dhcp
r3(config-if)#end
r3#
*Apr 22 18:14:49.014: %DHCP-6-ADDRESS_ASSIGN: Interface FastEthernet0/0 assigned DHCP address 192.168.1.36, mask 255.255.255.0, hostname r3
Let’s try to ping R1:
r3#
r3#ping 192.168.1.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.10, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/4 ms
r3#
and we see the traffic is allowed by IP Source Guard:
SW1#sh ip verify source interface Fa1/0/13
Interface Filter-type Filter-mode IP-address Mac-address Vlan Log
--------- ----------- ----------- --------------- ----------------- ---- ---
Fa1/0/13 ip active 192.168.1.36 1 enabled
SW1#