Patent ID: 7606191

Claim:
In a communication system comprising a private network, a public network, a plurality of private addresses routable on the private network, a plurality of public addresses routable on the public network, a mobile node residing on the private network and having a private address, a network-address-translation (NAT) device residing on both the private network and the public network and having a public address, and a Mobile IP home agent residing on the public network and having a public address, a method comprising: establishing a virtual-private-network (VPN) tunnel extending between the mobile node and the home agent, wherein establishing the VPN tunnel comprises the mobile node communicating with the home agent at the home agent's public address via the private network, the NAT device, and the public network, wherein the home agent comprises a VPN function co-located at the home agent's public address, and wherein establishing the VPN tunnel further comprises the home agent assigning the mobile node a first public address for the mobile node to use in communicating with the home agent via the VPN tunnel; and registering the mobile node with the home agent, wherein registering the mobile node with the home agent comprises the mobile node communicating via the VPN tunnel with the home agent at the home agent's public address, and wherein registering the mobile node with the home agent further comprises establishing the first public address as a Mobile IP home address for the mobile node, wherein the mobile node thereafter exchanges packets with the home agent inside the VPN tunnel, wherein the packets are encrypted according to the VPN tunnel and encapsulated with a transport header and an outer header, wherein the encrypted packets are not modifiable by the NAT device, and wherein the transport header and the outer header are modifiable by the NAT device, and wherein the encrypted packets do not include separate IP headers for (i) the VPN tunnel and (ii) Mobile IP communication.