Detecting source network address translation in a communication system
First Claim
1. A method of determining source network address translator (NAT) status between a source node and a target node in a communication system, the method comprising:
- storing, by the target node, in a computer storage, (a) last received source information from a header field of a last link monitoring protocol message received from the source node and (b) last actual address metadata from a metadata field of the last link monitoring protocol message received from the source node;
receiving a second link monitoring protocol message from the source node by the target node, the second link monitoring protocol message having a second header field including received source information and a second metadata field including received actual address metadata;
comparing, by the target node, the received source information from the second header field to the last received source information stored by the target node;
when the received source information from the second header field is different than the last received source information stored by the target node, determining, by the target node, that source NAT status has changed on a communication path from the source node to the target node;
comparing, by the target node, the received actual address metadata from the second metadata field to the last actual address metadata stored by the target node; and
when the received actual address metadata from the second metadata field is different than the last actual address metadata stored by the target node, determining, by the target node, that source NAT status has changed on a communication path from the target node to the source node.
1 Assignment
0 Petitions
Accused Products
Abstract
Two nodes in a communication system exchange link monitoring protocol messages including special metadata that allows each node to determine the status of source NAT on communication links to and from the other node, e.g., if source NAT is present on the communication link, or if there is a change in source NAT configuration (e.g., from enabled to disabled, from disabled to enabled, or from one translation to another translation). The special metadata also allows true source information (e.g., source address and source port number) to be conveyed between nodes even in the presence of source NAT, because the source NAT device does not change the metadata in the message because the metadata is considered to be part of the message payload. In certain exemplary embodiments, knowledge regarding the presence of source NAT devices as well as the true source information conveyed through the source NAT devices via the special metadata can be used in the context of “stateful” routing.
97 Citations
25 Claims
-
1. A method of determining source network address translator (NAT) status between a source node and a target node in a communication system, the method comprising:
-
storing, by the target node, in a computer storage, (a) last received source information from a header field of a last link monitoring protocol message received from the source node and (b) last actual address metadata from a metadata field of the last link monitoring protocol message received from the source node; receiving a second link monitoring protocol message from the source node by the target node, the second link monitoring protocol message having a second header field including received source information and a second metadata field including received actual address metadata; comparing, by the target node, the received source information from the second header field to the last received source information stored by the target node; when the received source information from the second header field is different than the last received source information stored by the target node, determining, by the target node, that source NAT status has changed on a communication path from the source node to the target node; comparing, by the target node, the received actual address metadata from the second metadata field to the last actual address metadata stored by the target node; and when the received actual address metadata from the second metadata field is different than the last actual address metadata stored by the target node, determining, by the target node, that source NAT status has changed on a communication path from the target node to the source node. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A router comprising:
-
a plurality of communication interfaces; a computer storage; and at least one processor coupled to the communication interfaces and to the computer storage and configured to implement a packet router for determining source network address translator (NAT) status between a source node and the router comprising; storing, by the packet router, in the computer storage, (a) last received source information from a header field of a last link monitoring protocol message received from the source node and (b) last actual address metadata from a metadata field of the last link monitoring protocol message received from the source node; receiving, by the packet router, a second link monitoring protocol message from the source node on a communication interface, the second link monitoring protocol message having a second header field including received source information and a second metadata field including received actual address metadata; comparing, by the packet router, the received source information from the second header field to the last received source information stored by the packet router; when the received source information from the second header field is different than the last received source information stored by the packet router, determining, by the packet router, that source NAT status has changed on a communication path from the source node to the router; comparing, by the packet router, the received actual address metadata from the second metadata field to the last actual address metadata stored by the packet router; and when the received actual address metadata from the second metadata field is different than the last actual address metadata stored by the packet router, determining, by the packet router, that source NAT status has changed on a communication path from the router to the source node. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer program product comprising a tangible, non-transitory computer readable medium having embodied therein a computer program that, when run on at least one computer processor, implements a packet router for a router, the packet router implementing a method of determining source network address translator (NAT) status between a source node and the router, the method comprising:
-
storing, by the packet router, in a computer storage, (a) last received source information from a header field of a last link monitoring protocol message received from the source node and (b) last actual address metadata from a metadata field of the last link monitoring protocol message received from the source node; receiving a second link monitoring protocol message from the source node on a communication interface of the router, the second link monitoring protocol message having a second header field including received source information and a second metadata field including received actual address metadata; comparing the received source information from the second header field to the last received source information stored by the packet router; when the received source information from the second header field is different than the last received source information stored by the packet router, determining that source NAT status has changed on a communication path from the source node to the router; comparing the received actual address metadata from the second metadata field to the last actual address metadata stored by the packet router; and when the received actual address metadata from the second metadata field is different than the last actual address metadata stored by the packet router, determining that source NAT status has changed on a communication path from the router to the source node. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A system comprising:
-
a source node; and a target node, wherein; the source node comprising at least one processor configured to transmit via a communication interface of the source node a first link monitoring protocol message to the target node, the first link monitoring protocol message having a first header field including first original source information and a first metadata field including first actual address metadata; and the target node comprising at least one processor configured to store in a computer storage of the target node (a) last received source information from a header field of a last link monitoring protocol message received from the source node and (b) last actual address metadata from a metadata field of the last link monitoring protocol message received from the source node, receive via a communication interface of the target node a second link monitoring protocol message corresponding to the first link monitoring protocol message, the second link monitoring protocol message having a second header field including received source information corresponding to the first original source information and a second metadata field including the first actual address metadata as received actual address metadata;
compare the received source information from the second header field to the last received source information stored by the target node;
determine that source network address translator (NAT) status has changed on a communication path from the source node to the target node when the received source information from the second header field is different than the last received source information stored by the target node, compare the received actual address metadata from the second metadata field to the last actual address metadata stored by the target node, and determine that source NAT status has changed on a communication path from the target node to the source node when the received actual address metadata from the second metadata field is different than the last actual address metadata stored by the target node. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
Specification