Prerrequisitos de Red
Complete con este contenido https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/ipvs/README.md
No se puede hablar sobre networking sin entender lo básico de redes.
Interfaces
Las interfaces son las placas de red, físicas o virtuales, del host. Pueden o no estar asociadas a una red. Cuando hablamos de interfaces de red, puede ser vía cable (Ethernet), wireless, etc.
Para listar los dispositivos podemos utilizar el comando:
ip link
Generalmente la placa de red principal es la eth0. El medio físico no importa mucho en la nomenclatura de la red. Un cable Ethernet o fibra podrían ser el medio físico de la interfaz eth0.
Switch
Si dos computadoras están conectadas en la misma red, ¿cómo se comunican? A través del switch. Un switch sirve para conectar dispositivos en la MISMA RED.

Para configurar una ip en una interfaz usamos el comando.
ip addr add IP/CIDR dev interface_name
Router
Si B necesita conectarse con C pero están en redes diferentes, ¿cómo se comunican?

Cuando necesitamos comunicar dos máquinas en diferentes redes, un router entra en acción. La función del router es INTERCONECTAR REDES.
Un router es otro servidor (generalmente un dispositivo dedicado que solamente ejecuta un Linux con ese propósito) con muchas interfaces, pero configuradas en diferentes redes. Normalmente estas interfaces están conectadas en diferentes switches.
Una vez que están conectados en diferentes redes, poseen IPs dentro de esas redes, generalmente la primera IP, que es llamada de gateway, pero podría ser cualquier IP de aquella red.

Cuando B necesita enviar paquete para C, ¿cómo sabe dónde está el router en la red?
Cuando configuramos la red en un dispositivo necesitamos apuntar quién es el gateway, que en este caso será el router. El router es la puerta de entrada y salida de esta red.
Si pensamos que la red es un cuarto el gateway es la puerta.
El sistema necesita saber dónde aquella puerta va a dar. Saliendo por aquel gateway ¿puedo llegar dónde? ¿En cuáles redes?
Es necesario tener esas configuraciones en cada sistema operativo.
Para ver esta información podemos solamente ejecutar el comando route.
# Este es un comando en mi propia máquina
route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default unifi.localdoma 0.0.0.0 UG 100 0 0 enx00e04c6810f3
default unifi.localdoma 0.0.0.0 UG 600 0 0 wlp0s20f3
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enx00e04c6810f3
10.0.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp0s20f3
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 enx00e04c6810f3
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-93a4fed73578
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-56339616a3bf
192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 vboxnet0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Si no existe ninguna ruta no es posible tener acceso a nada excepto a tu propia red.
En la máquina B si ejecutamos el comando.
ip route add 192.168.2.0/24 via 192.168.1.1
Estamos diciéndole que para llegar a la red 192.168.2.0/24 necesitamos salir por la IP 192.168.1.1 que es la IP del router, pero no sabemos si el router llegará a la red que queremos. En nuestro caso aquí nosotros sabemos.
Las rutas necesitan ser conocidas por todos los dispositivos de la red, no vale uno saber y otro no, pero vamos a imaginar que todo mundo sabe.
Si el router está conectado a Internet podríamos tener una ruta para cada sitio.

Pero esto no es viable, entonces todo lo que no sabemos colocamos la ip 0.0.0.0/0.
Para simplificar aún más, podemos tener solamente una ruta default. En la red 192.168.2.1 podemos simplemente decir que todo sale por un gateway para simplificar la tabla.

Del mismo modo, cuando estamos en la misma red usamos el 0.0.0.0 para decir que no necesitamos un gateway, pues estamos en la misma red. La imagen abajo está mostrando el host C.

Si tuviéramos este escenario con más de un gateway tendríamos que tener dos entradas.

Si una máquina no está consiguiendo comunicarse con otra, verificar las rutas es un buen lugar para iniciar un troubleshooting.
Ahora vamos a pensar en la visión del router. Vamos a colocar el router siendo un hostB conectado en dos redes (X e Y) ¿cómo haríamos la comunicación de un hostA en la red X para un hostC en la red Y a través de este hostB que conoce ambas?

Definimos en hostA y hostC las rutas a través del gateway para la ip del hostB.

Aún así no conseguimos la comunicación, a pesar de conocer la ruta. En este caso no recibimos respuestas en el ping, ¿verdad?
Si fuera así de simple, ¿ya pensaste en cuántos ataques tomaríamos? ¿Entonces es solo apuntar en el lugar correcto que todo estará resuelto?
En Linux una interfaz no está autorizada a reenviar paquetes para otra interfaz por defecto. La regla padrón es denegar todo y habilitar solamente lo que necesitamos.
Para eso es necesario alterar algunas configuraciones en el sistema.
cat /etc/sysctl.conf
...
net.ipv4.ip_forward=1 # El padrón es 0, configurar para 1
...
Si se está acordando, esto es uno de los requisitos que necesitan ser hechos en cualquier nodo de Kubernetes.