P
US11665129B2ActiveUtilityPatentIndex 64

Adaptive source address rewrite

Assignee: CISCO TECH INCPriority: Mar 10, 2021Filed: Sep 27, 2021Granted: May 30, 2023
Est. expiryMar 10, 2041(~14.7 yrs left)· nominal 20-yr term from priority
Inventors:DESMOUCEAUX YOANNVAIDYA RUCHA SANJAYMUNIRAMAN MURALIPFISTER PIERRE
H04L 2101/659H04L 47/125H04L 61/2557H04L 61/5061H04L 61/5007H04L 61/2514H04L 61/251H04L 45/74H04L 45/85H04L 61/2503H04L 2101/677
64
PatentIndex Score
2
Cited by
24
References
20
Claims

Abstract

According to certain embodiments, a system comprises one or more processors and one or more computer-readable non-transitory storage media comprising instructions that, when executed by the one or more processors, cause one or more components of the system to perform operations. The operations comprise receiving a packet comprising a source address; selecting an uplink for the packet, the uplink selected from a plurality of uplinks based on an uplink selection policy; determining whether the source address is valid on the selected uplink; determining whether to keep or re-write the source address based on whether the source address is valid on the selected uplink; keeping the source address when the source address is valid on the selected uplink or re-writing the source address when the source address is not valid on the selected uplink; and sending the packet to the selected uplink.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A system, the system comprising:
 one or more processors; and 
 one or more computer-readable non-transitory storage media comprising instructions that, when executed by the one or more processors, cause one or more components of the system to perform operations comprising:
 receiving a packet comprising a source address; 
 selecting an uplink for the packet, the uplink selected from a plurality of uplinks based on an uplink selection policy; 
 determining whether the source address is valid on the selected uplink; 
 determining whether to keep or re-write the source address based on whether the source address is valid on the selected uplink, wherein, in response to determining to re-write the source address, selecting a new address from an address pool; 
 keeping the source address when the source address is valid on the selected uplink or re-writing the source address when the source address is not valid on the selected uplink; and 
 sending the packet to the selected uplink. 
 
 
     
     
       2. The system of  claim 1 , wherein determining whether the source address is valid on the selected uplink is based on whether a prefix of the source address corresponds to a prefix associated with the selected uplink. 
     
     
       3. The system of  claim 1 , wherein the uplink selection policy indicates to select a first uplink for which the source address is valid unless a condition occurs indicating to select a second uplink for which the source address is not valid. 
     
     
       4. The system of  claim 3 , wherein the uplink selection policy comprises at least one of the following conditions for selecting the second uplink:
 the first uplink is down; 
 the first uplink does not appear to provide network access; 
 the packet comprises a type of traffic configured to be sent via the second uplink; 
 load-balancing indicates to send the packet via the second uplink; or 
 the source address is in a unique local address (ULA) prefix that is not valid on the first uplink. 
 
     
     
       5. The system of  claim 1 , wherein selecting a new address from an address pool is based at least in part on a hash function. 
     
     
       6. The system of  claim 1 , wherein selecting a new address from an address pool is based at least in part on a stateless function. 
     
     
       7. The system of  claim 1 , wherein selecting a new address from an address pool is based at least in part on a stateful function. 
     
     
       8. The system of  claim 1 , the operations further comprising:
 receiving a list of prefixes from a service provider associated with at least one of the plurality of uplinks; and 
 reserving a portion of the prefixes for re-writing addresses. 
 
     
     
       9. A method, the method comprising:
 receiving a packet comprising a source address; 
 selecting an uplink for the packet, the uplink selected from a plurality of uplinks based on an uplink selection policy; 
 determining whether the source address is valid on the selected uplink; 
 determining whether to keep or re-write the source address based on whether the source address is valid on the selected uplink, wherein, in response to determining to re-write the source address, selecting a new address from an address pool; 
 keeping the source address when the source address is valid on the selected uplink or re-writing the source address when the source address is not valid on the selected uplink; and 
 sending the packet to the selected uplink. 
 
     
     
       10. The method of  claim 9 , wherein determining whether the source address is valid on the selected uplink is based on whether a prefix of the source address corresponds to a prefix associated with the selected uplink. 
     
     
       11. The method of  claim 9 , wherein the uplink selection policy indicates to select a first uplink for which the source address is valid unless a condition occurs indicating to select a second uplink for which the source address is not valid. 
     
     
       12. The method of  claim 11 , wherein the uplink selection policy comprises at least one of the following conditions for selecting the second uplink:
 the first uplink is down; 
 the first uplink does not appear to provide network access; 
 the packet comprises a type of traffic configured to be sent via the second uplink; 
 load-balancing indicates to send the packet via the second uplink; or 
 the source address is in a unique local address (ULA) prefix that is not valid on the first uplink. 
 
     
     
       13. One or more computer-readable non-transitory storage media embodying instructions that, when executed by a processor, cause the performance of operations comprising:
 receiving a packet comprising a source address; 
 selecting an uplink for the packet, the uplink selected from a plurality of uplinks based on an uplink selection policy; 
 determining whether the source address is valid on the selected uplink; 
 determining whether to keep or re-write the source address based on whether the source address is valid on the selected uplink, wherein, in response to determining to re-write the source address, selecting a new address from an address pool; 
 keeping the source address when the source address is valid on the selected uplink or re-writing the source address when the source address is not valid on the selected uplink; and 
 sending the packet to the selected uplink. 
 
     
     
       14. The one or more computer-readable non-transitory storage media of  claim 13 , wherein determining whether the source address is valid on the selected uplink is based on whether a prefix of the source address corresponds to a prefix associated with the selected uplink. 
     
     
       15. The one or more computer-readable non-transitory storage media of  claim 13 , wherein the uplink selection policy indicates to select a first uplink for which the source address is valid unless a condition occurs indicating to select a second uplink for which the source address is not valid. 
     
     
       16. The one or more computer-readable non-transitory storage media of  claim 15 , wherein the uplink selection policy comprises at least one of the following conditions for selecting the second uplink:
 the first uplink is down; 
 the first uplink does not appear to provide network access; 
 the packet comprises a type of traffic configured to be sent via the second uplink; 
 load-balancing indicates to send the packet via the second uplink; or 
 the source address is in a unique local address (ULA) prefix that is not valid on the first uplink. 
 
     
     
       17. The one or more computer-readable non-transitory storage media of  claim 13 , wherein, selecting a new address from an address pool is based at least in part on a hash function. 
     
     
       18. The one or more computer-readable non-transitory storage media of  claim 13 , wherein selecting a new address from an address pool is based at least in part on a stateless function. 
     
     
       19. The one or more computer-readable non-transitory storage media of  claim 13 , wherein selecting a new address from an address pool is based at least in part on a stateful function. 
     
     
       20. The one or more computer-readable non-transitory storage media of  claim 13 , the operations further comprising:
 receiving a list of prefixes from a service provider associated with at least one of the plurality of uplinks; and 
 reserving a portion of the prefixes for re-writing addresses.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.