a mobile node includes a processor , a network interface , and a storage device having computer program code for execution by the processor . the computer program code includes a network layer for transmitting and receiving packets and an intermediate driver that transmits packets to the network layer and receives packets from the network layer using a virtual interne protocol address to identify the mobile node . the intermediate driver transmits packets to the network interface and receives packets from the network interface using a routable actual ip address to identify the mobile node . the intermediate driver permits the actual ip address to change when the mobile node moves from a first subnet to a second subnet without a corresponding change in the virtual ip address . a corresponding nat associates the virtual ip address with a second actual ip address when the nat is notified that the mobile node is in the second subnet .