FreePBXサーバーがあり、2番目の物理インターフェイスを追加する必要があります。図に示すように、eth0とeth1の両方にルーティング可能なIPアドレスがあります。クイックGoogle検索によると、2番目の住所を設定するのは比較的簡単です。
https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System
/etc/iproute2/rt_tablesを編集し、「200秒」エントリを追加します。
「セカンド」というテーブルへのパスが追加されました。
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
(ここで、「ip.subnet.on.eth1」「ip.address.on.eth1」と「router.ip.for.eth1」は必須アドレスです。)
ソースルーティングを介して正しいインターフェイスを介してトラフィックを送信するルールが追加されました。
ip rule add from ip.address.on.eth1/32 table second ip rule add to ip.address.on.eth1/32 table second
これは部分的な成功を収めました。これで、サーバーの2番目のIPアドレスにルーティングして、一般的な要求(たとえば、icmp、sshd、apacheなど)にすぐに応答できるようになりました。
しかし、Asteriskが要求するudpサービスではまったく機能しません。すべてのクライアントは問題なくeth0の「一般」IPアドレスに接続できます。ただし、eth1のIPに接続しようとすると、クライアントはタイムアウトします。
sipを介してtcpを許可するようにサーバーを設定し、ログインを許可しようとしましたが、rtp(音声)トラフィックもudpであるため、最終的には機能しませんでした。
これで同様の設定が機能します。たとえば、2番目のeth1デバイスをグローバルにルーティングする必要がない場合です。内部LANの場合。したがって、pbxがeth0に実際のIPを持ち、eth1にプライベートIPを持つ場合は、統合ルーティングテーブルのみを使用し、すべてがうまく機能します。
Sipサーバーに入ってくるトラフィックをブロックするファイアウォールがないことを確実に確認できます。実際には、すべてのtcpおよびudpトラフィックがすべてのsipクライアントサブネットに送信されることを可能にする明示的なエントリセットもあります。
PS。私が賢明に言わない場合、最終的な目標は、eth0とeth1という2つのインターフェースでFreepbx /アスタリスクを実行することです。両方のインターフェイスには、完全にルーティング可能な物理 IP アドレスがあります。現時点ではeth0のみを使用できます。