Our AVES-aware DNS server daemon is based on the named DNS server in the BIND 8.2.3 distribution  and runs on a Linux PC. We modified named to intercept any outgoing DNS reply message containing a DNS name with the avesnet.net suffix because such a reply contains the reusable-IP address of the named responder. This is accomplished by inserting a function call in ns_req() (to intercept answers from the local cache) and ns_resp() (to intercept answers from other origins). Once a reply is intercepted, a lookup table is consulted to obtain the IP address of the reusable-IP domain's NAT gateway and a waypoint IP address is chosen. NAT gateway IP addresses are obtained from the NAT gateways periodically to accommodate dynamic address assignment (see Section 5.3 for more details), while the waypoint IP addresses and the reusable-IP host addresses are kept in configuration files. A SETUP message with a unique serial number is then sent via UDP to the chosen waypoint, the intercepted DNS reply is altered to contain the chosen waypoint IP address and is set aside. When the corresponding ACCEPT message is received from the waypoint, the DNS reply is finally sent to the requester. DNS replies that have been set aside are removed if the corresponding ACCEPT messages are not received within 3 seconds.