我曾尝试阅读许多关于在 NAT'd 路由器后面运行 VoIP 系统、连接到 Internet、然后通过 VoIP 服务器的专用连接返回的文档。我的研究一无所获。
我继承了一个设置,其中所有 VoIP 服务器设备都在自己的网络上,并带有专用的 ADSL 连接。互联网上任何地方的电话都可以工作!我的问题是,从我的网络内部。
我已经尝试了通常的故障排除步骤:重新启动路由器,禁用防火墙,更改我插入 IP 电话的端口,但这些都不起作用。
我们使用 Linux 服务器作为我们的路由器和iptables
防火墙。默认策略是丢弃不匹配的数据包,但即使我告诉他们接受,问题仍然存在。tcpdump -ni eth1 host 192.168.0.89
当手机尝试连接时,运行 a输出以下内容:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
13:45:24.487637 ARP, Request who-has 192.168.0.89 tell 192.168.0.89, length 46
13:45:33.285767 ARP, Request who-has 192.168.0.89 tell 192.168.0.89, length 46
13:45:43.333432 ARP, Request who-has 192.168.0.89 tell 0.0.0.0, length 46
13:45:49.331224 ARP, Reply 192.168.0.89 is-at 00:15:b7:48:04:cd, length 46
13:45:49.337216 ARP, Request who-has 192.168.0.89 tell 192.168.0.89, length 46
13:45:49.341575 ARP, Request who-has 192.168.0.89 tell 192.168.0.89, length 46
13:45:49.444252 ARP, Request who-has 192.168.0.89 tell 192.168.0.89, length 46
13:45:49.612308 ARP, Request who-has 192.168.0.3 tell 192.168.0.89, length 46
13:45:49.612319 ARP, Reply 192.168.0.3 is-at 00:22:b0:70:9a:eb, length 28
13:45:49.613504 IP 192.168.0.89.50138 > xxx.xxx.xxx.xxx.1719: UDP, length 125
13:45:49.631597 IP xxx.xxx.xxx.xxx > 192.168.0.89: ICMP host 216.57.190.87 unreachable - admin prohibited filter, length 36
这xxx.xxx.xxx.xxx
是 VoIP 服务器的公共 IP 地址(与我们的主网络不同的 ISP)。如果我跳过我的服务器并将电话直接插入我们的 Internet 连接(我们有一个/24
子网),它的连接速度非常快。如果它在我们的任何服务器后面,它将在握手的那一部分停止。我试过不同的网关,效果一样。
从我的网络内部,我可以 RDP 进入管理系统,ping 服务器等。我只是无法让我的手机连接。当我倾倒我iptables
的,所以一切都设置为ACCEPT
,它仍然没有连接。
我在哪里可以让这些手机正常工作?他们曾经工作,但现在不再工作;回到旧配置是不可能的,因为备份只有 3 个月左右。
此问题已在内部修复。我们政府规定的 ISP“无法处理 SIP 和 RTP 类型的流量”,所以我创建了一个新的 VLAN。交换机上的端口允许 TAGGED 流量到 man LAN VLAN 或 VoIP VLAN,并允许未标记端口进入电话系统。
然后,我可以在每部 VoIP 电话上分别标记语音流量和计算机流量。