Não é possível fazer com que o FreePBX roteie com NICs duplos

Não é possível fazer com que o FreePBX roteie com NICs duplos

Eu tenho um servidor FreePBX que precisa adicionar uma segunda interface do mundo real. Por exemplo, eth0 e eth1 possuem endereços IP roteáveis. Configurar o segundo endereço foi relativamente simples de acordo com uma rápida pesquisa no Google:

https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System

  1. edite /etc/iproute2/rt_tables e adicione uma entrada "200 segundos"

  2. adicionadas rotas para a tabela chamada "second":

    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
    

(onde "ip.subnet.on.eth1" "ip.address.on.eth1" e "router.ip.for.eth1" são os endereços necessários)

  1. regras adicionadas para enviar tráfego pela interface correta via roteamento de origem:

    ip rule add from ip.address.on.eth1/32 table second
    ip rule add to ip.address.on.eth1/32 table second
    

O que me deu algum sucesso parcial: agora eu poderia rotear para o segundo endereço IP do servidor, de modo que ele respondesse imediatamente às solicitações normais (ou seja, icmp, sshd, apache, etc.).

Mas está falhando totalmente em trabalhar com os serviços udp necessários para o Asterisk. Qualquer cliente pode se conectar perfeitamente ao endereço IP "normal" na eth0. Mas ao tentar se conectar ao ip da eth1, o cliente simplesmente expira.

Até tentei configurar o servidor para aceitar tcp para sip, o que me permitiu fazer login; mas não teve sucesso, pois o tráfego RTP (voz) também é UDP.

Agora, configurações semelhantes FUNCIONAM, como quando o segundo dispositivo eth1 não precisa ser roteável globalmente, ou seja. para uma LAN interna. Portanto, se o PABX tiver um IP do mundo real na eth0 e um IP privado na eth1, ele estará usando apenas uma única tabela de roteamento unificada e tudo funcionará.

Posso confirmar definitivamente que NÃO há firewall bloqueando o tráfego de/para o servidor SIP. Na verdade, eu até tenho um conjunto explícito de entradas que permitem TODO o tráfego tcp e udp para a sub-rede do meu cliente sip, ignorando todo o fail2ban e outras travessuras.

PS. se não fui pedantemente claro, o objetivo final é fazer com que o Freepbx/asterisk funcione em AMBAS as interfaces eth0 e eth1, ambas com endereços IP do mundo real totalmente roteáveis. Da forma como está atualmente, apenas eth0 é funcional

informação relacionada