IP Library Granted Patent US 7,979,903
Granted Patent B2
US 7,979,903 · App. 12/392,398 · Granted Jul 12, 2011

System and method for source IP anti-spoofing security

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,979,903
App. No.
12/392,398
Granted
Jul 12, 2011
Kind
B2
Abstract

A system and method that provides for using source IP addresses and MAC addresses in a network to provide security against attempts by users of the network to use false source IP addresses in data packets. The system and method provide for analyzing MAC addresses and source IP addresses at the datalink (layer 2) level, and to use the information derived from such analysis to block access through a port where a host device is using a false, or spoofed, source IP address in transmitted data packets.

Claims (56)

1. A method comprising:

determining, by a network device, whether a source IP address included in a data packet received on a port of the network device is stored in a table of the network device; and

if the source IP address is not stored in the table:

determining, by the network device, whether a number of source IP addresses stored in the table for the port equals or exceeds a maximum number of source IP addresses predetermined for the port; and

if the number of source IP addresses stored in the table for the port does not equal or exceed the maximum number:

determining, by the network device, whether a MAC address included in the data packet is stored in the table; and

if the MAC address is not stored in the table:

learning, by the network device, the source IP address; and

storing, by the network device, the MAC address and the source IP address in the table.

2. The method of claim 1 further comprising, if the MAC address and source IP address are stored in the table, allowing the data packet to pass through the port.

3. The method of claim 1 further comprising, if the MAC address is not stored in the table or if the source IP address is not stored in the table, preventing the data packet from passing through the port.

4. The method of claim 1 further comprising using the table to control transmission of data packets through one or more ports of the network device.

5. The method of claim 1 further comprising, if the source IP address is stored in the table, allowing the data packet to pass through the port.

6. The method of claim 1 further comprising, if the number of source IP addresses stored in the table for the port equals or exceeds the maximum number, preventing the data packet from passing through the port.

7. The method of claim 1 wherein learning the source IP address comprises:

generating a reverse Address Resolution Protocol (ARP) message based on the MAC address included in the data packet; and

determining whether a source IP address included in a response to the reverse ARP message matches the source IP address included in the data packet.

8. The method of claim 7 further comprising confirming that the learned source IP address is correct by performing a reverse IP check.

9. The method of claim 1 further comprising, subsequently to storing the source IP address in the table, removing the source IP address from the table after a predetermined time interval.

10. The method of claim 1 wherein the table is configured to store a plurality of MAC address and source IP address pairs.

11. The method of claim 1 wherein the table is stored in a Content Addressable Memory (CAM) device of the network device.

12. A network device comprising:

a plurality of ports;

a memory configured to store a table of MAC address and source IP address pairs; and

a processor configured to:

determine whether a source IP address included in a data packet received on a port in the plurality of ports is stored in the table; and

if the source IP address is not stored in the table:

determine whether a number of source IP addresses stored in the table for the port equals or exceeds a maximum number of source IP addresses predetermined for the port; and

if the number of source IP addresses stored in the table for the port does not equal or exceed the maximum number:

determine whether a MAC address included in the data packet is stored in the table; and

if the MAC address is not stored in the table:

 learn the source IP address; and

 store the MAC address and the source IP address in the table.

13. The network device of claim 12 wherein the processor is further configured to use the table to control transmission of data packets through the port.

14. The network device of claim 12 wherein the processor is further configured to prevent the data packet from passing through the port if the number of source IP addresses stored in the table for the port equals or exceeds the maximum number.

15. The network device of claim 12 wherein learning the source IP address comprises:

generating a reverse Address Resolution Protocol (ARP) message based on the MAC address included in the data packet; and

determining whether a source IP address included in a response to the reverse ARP message matches the source IP address included in the data packet.

16. The network device of claim 15 wherein the processor is further configured to confirm that the learned source IP address is correct by performing a reverse IP check.

17. The network device of claim 12 wherein the processor is further configured to, subsequently to storing the source IP address in the table, remove the source IP address from the table after a predetermined time interval.

18. The network device of claim 12 wherein the memory is a Content Addressable Memory (CAM) device.

19. A method comprising:

determining, by a network device, whether a number of source IP addresses stored in a table of the network device for a port on which a data packet is received equals or exceeds a maximum number of source IP addresses predetermined for the port; and

if the number of source IP addresses stored in the table for the port does not equal or exceed the maximum number:

determining, by the network device, whether a MAC address included in the data packet is stored in the table; and

if the MAC address is not stored in the table:

storing, by the network device, the MAC address and a source IP address included in the data packet in the table.

20. A network device comprising:

a plurality of ports;

a memory configured to store a table of MAC address and source IP address pairs; and

a processor configured to:

determine whether a number of source IP addresses stored in the table for a port in the plurality of ports on which a data packet is received equals or exceeds a maximum number of source IP addresses predetermined for the port; and

if the number of source IP addresses stored in the table for the port does not equal or exceed the maximum number:

determine whether a MAC address included in the data packet is stored in the table; and

if the MAC address is not stored in the table:

store the MAC address and a source IP address included in the data packet in the table.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047270/0247 →
RELEASE OF SECURITY INTEREST Recorded Jan 22, 2015
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC
Reel/Frame 034804/0793 →
RELEASE OF SECURITY INTEREST Recorded Jan 21, 2015
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC
Reel/Frame 034784/0609 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT Recorded Sep 26, 2011
From: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC; INRANGE TECHNOLOGIES CORPORATION; MCDATA CORPORATION; MCDATA SERVICES CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 026971/0042 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT Recorded Sep 20, 2011
From: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC; MCDATA CORPORATION
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 026938/0922 →
CHANGE OF NAME Recorded Jul 21, 2010
From: FOUNDRY NETWORKS, INC.
To: FOUNDRY NETWORKS, LLC
Reel/Frame 024733/0739 →
SECURITY AGREEMENT Recorded Jan 20, 2010
From: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC; INRANGE TECHNOLOGIES CORPORATION; MCDATA CORPORATION; MCDATA SERVICES CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 023814/0587 →