How is the local network interface mapping determined for Floating IPs?

May 2, 2019 212 views
DigitalOcean Networking Ubuntu 16.04

I am using a Floating IP (45.55.x.x) as a secondary IP for a droplet (which has a default IP, 157.230.x.x). When I look at the network interfaces on the droplet using ip -a, I see the following:

momo@droplet:~$ ip a | head -n 20
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether [...] brd ff:ff:ff:ff:ff:ff
    inet 157.230.x.x/20 brd 157.230.x.x scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.10.0.5/16 brd 10.10.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 [...]/64 scope link 
       valid_lft forever preferred_lft forever

After some testing using nginx, I can see that requests going through the floating IP are mapped to the second inet in the eth0 interface, 10.10.0.5. My question is, how is that local IP address determined and mapped from the external IP (45.55.x.x)?

1 Answer

I found the answer here: https://www.digitalocean.com/docs/networking/floating-ips/how-to/find-anchor-ips/

The local IP is an "anchor address", which is mapped from the Floating IP.

Have another answer? Share your knowledge.