我已经设置了 FreePBX,它有 2 个 NIC。我一直在尝试将其配置为:
eth0
将继续作为所有办公电话和内部通话使用;并且eth1
是可以连接到互联网的新 NIC,以便我可以通过我们的 SIP 提供商 Faktortel 拨打和接听外部电话。
我一直在与这个伟大的例子,但路由仍然不正确。
不同之处在于,两个 NIC 都使用相同的 IP 地址范围。上的服务器地址eth0
是:192.168.0.20/255.255.255.0
。我宁愿eth1
使用来自我们的互联网路由器的 DHCP,但它也使用192.168.0.1/255.255.255.0
。我不确定这是否可行,或者它真的应该在不同的网络上吗?
我的理解是,如果您拨打电话,它会首先检查eth0
。然后我应该有一个路由(例如route-eth0
)sip.faktortel.com.au
到eth1
(如果是同一个 IP 地址怎么办?)?还是只需要在route-eth1
?
ifcfg-eth0
:
DEVICE=eth0
IPADDR=192.168.0.20
NETMASK=255.255.255.0
BOOTPROTO=static
ONBOOT=yes
ifcfg-eth1
:
DEVICE=eth1
IPADDR=192.168.0.10
NETMASK=255.255.255.0
BOOTPROTO=static
ONBOOT=yes
/etc/sysconfig/network
:
NETWORKING=yes
GATEWAY=192.168.0.1
/etc/sysconfig/network-scripts/route-eth1
:
202.43.66.5/24 via 192.168.0.1
202.43.66.5
此处需要sip.faktortel.com.au
添加正确的地址吗?
那么,为了接听电话,整个过程是如何运作的呢?
答案1
您的问题是两个接口都位于同一子网中。当您提供到下一跳 192.168.0.1 的路由时,服务器上的路由会发现它可以使用任一接口到达那里。也许可以用其他方式完成,但您违背了编程原则,我不建议这样做。
如果您将电话子网放入新的子网,那么您的问题就会自行解决。
答案2
从技术上讲,你可以将同一个子网用于 VOIP 和数据,但强烈建议不要这样做。理想情况下,你应该至少创建 2 个子网;1 个用于 VOIP,1 个用于数据。如果这样做,你可以使用适当的静态路由来管理哪个子网遍历服务器上的哪个 NIC。
答案3
解决方案分为两部分。首先,您的 NIC 必须位于不同的子网中。上面的设置将导致一些奇怪的行为(例如流量从一个 NIC 传出,然后从另一个 NIC 返回)
其次,您需要设置一个或多个静态路由来告诉您的系统互联网流量采用哪条路由,以及(如果您的电话在另一个子网上)电话采用哪条路由(可选)。