![No se puede hacer que FreePBX enrute con NIC duales](https://rvso.com/image/192232/No%20se%20puede%20hacer%20que%20FreePBX%20enrute%20con%20NIC%20duales.png)
Tengo un servidor FreePBX al que se le debe agregar una segunda interfaz del mundo real. Como en, tanto eth0 como eth1 tienen direcciones IP enrutables. Configurar la segunda dirección fue relativamente simple según una búsqueda rápida en Google:
https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System
edite /etc/iproute2/rt_tables y agregue una entrada "200 segundos"
rutas agregadas para la tabla llamada "segunda":
ip route add ip.subnet.on.eth1/27 dev eth1 src ip.address.on.eth1 table second ip route add default via router.ip.for.eth1 dev eth1 table second
(donde "ip.subnet.on.eth1" "ip.address.on.eth1" y "router.ip.for.eth1" son las direcciones necesarias)
Se agregaron reglas para enviar tráfico a través de la interfaz correcta a través del enrutamiento de origen:
ip rule add from ip.address.on.eth1/32 table second ip rule add to ip.address.on.eth1/32 table second
Lo que me dio un éxito parcial: ahora podía enrutar a la segunda dirección IP del servidor, de modo que respondiera inmediatamente a las solicitudes normales (es decir, icmp, sshd, apache, etc.).
Pero no funciona en absoluto con los servicios udp necesarios para Asterisk. Cualquier cliente puede conectarse bien a la dirección IP "normal" en eth0. Pero al intentar conectarse a la IP de eth1, el cliente simplemente agota el tiempo de espera.
Incluso intenté configurar el servidor para que aceptara tcp para sip, lo que luego me permitió iniciar sesión; pero finalmente no tuvo éxito, ya que el tráfico rtp (voz) también es udp.
Ahora, configuraciones similares SÍ funcionan, como cuando el segundo dispositivo eth1 no necesita ser enrutable globalmente, es decir. para una LAN interna. Entonces, si el PBX tiene una IP del mundo real en eth0 y una IP privada en eth1, entonces solo usa una única tabla de enrutamiento unificada y todo funciona.
Puedo confirmar definitivamente que NO hay ningún firewall que bloquee el tráfico hacia/desde el servidor SIP. De hecho, incluso tengo un conjunto explícito de entradas que permiten TODO el tráfico tcp y udp a la subred de mi cliente SIP, evitando todos los fail2ban y otras travesuras.
PD. Si no he sido pedantemente claro, el objetivo final es que Freepbx/asterisk funcione en AMBAS interfaces eth0 y eth1, las cuales tienen direcciones IP del mundo real totalmente enrutables. Tal como está actualmente, sólo eth0 es funcional