FreePBX kann nicht mit zwei Netzwerkkarten geroutet werden

FreePBX kann nicht mit zwei Netzwerkkarten geroutet werden

Ich habe einen FreePBX-Server, dem eine zweite reale Schnittstelle hinzugefügt werden muss. Sowohl eth0 als auch eth1 haben routbare IP-Adressen. Das Einrichten der zweiten Adresse war laut einer schnellen Google-Suche relativ einfach:

https://www.thomas-krenn.com/de/wiki/Zwei_Standard-Gateways_auf_einem_System

  1. editiere /etc/iproute2/rt_tables und füge einen Eintrag "200 Sekunden" hinzu

  2. Routen für die Tabelle „Second“ hinzugefügt:

    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
    

(wobei „ip.subnet.on.eth1“, „ip.address.on.eth1“ und „router.ip.for.eth1“ die benötigten Adressen sind)

  1. Regeln hinzugefügt, um den Datenverkehr über die richtige Schnittstelle per Quellrouting zu senden:

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

Das brachte mir einen Teilerfolg: Ich konnte jetzt zur zweiten IP-Adresse des Servers weiterleiten, sodass dieser sofort auf normale Anfragen (z. B. ICMP, SSHD, Apache usw.) antwortete.

Aber es funktioniert überhaupt nicht mit den UDP-Diensten, die für Asterisk erforderlich sind. Jeder Client kann problemlos eine Verbindung mit der „normalen“ IP-Adresse auf eth0 herstellen. Aber beim Versuch, eine Verbindung mit der IP von eth1 herzustellen, tritt beim Client einfach eine Zeitüberschreitung auf.

Ich habe sogar versucht, den Server so einzustellen, dass er TCP für SIP akzeptiert, wodurch ich mich dann anmelden konnte. Dies war jedoch letztendlich erfolglos, da der RTP-Verkehr (Sprache) ebenfalls UDP ist.

Ähnliche Konfigurationen funktionieren jedoch, wenn das zweite eth1-Gerät nicht global routbar sein muss, d. h. für ein internes LAN. Wenn die Telefonanlage also eine reale IP auf eth0 und eine private IP auf eth1 hat, wird nur eine einzige einheitliche Routing-Tabelle verwendet und alles funktioniert einfach.

Ich kann definitiv bestätigen, dass es KEINE Firewall gibt, die den Datenverkehr zum/vom SIP-Server blockiert. Tatsächlich habe ich sogar einen expliziten Satz von Einträgen, die DEN GESAMTEN TCP- und UDP-Datenverkehr zum Subnetz meines SIP-Clients zulassen und dabei alle Fail2Ban- und anderen Spielereien umgehen.

PS: Falls ich mich nicht pedantisch klar ausgedrückt habe: Das Endziel ist, dass Freepbx/Asterisk auf BEIDEN Schnittstellen eth0 und eth1 funktioniert, die beide vollständig routebare reale IP-Adressen haben. Derzeit ist nur eth0 funktionsfähig.

verwandte Informationen