背景
我一直在努力让我的 SIP 电话在我们全新的办公室中注册到全新的路由器和交换机后面。我们的 PBX 托管在异地。我与我们的提供商合作尝试了几种不同的方法。我们尝试了常规 NAT 来连接到他们的 NAT 感知会话边界控制器。我们尝试使用 siproxd(pfSense 包)来拦截 SIP 注册请求并代表电话进行注册。最后,我们尝试手动配置电话以在我的本地网络上使用 siproxd 守护程序进行注册。
在整个测试过程中,我们看到手机成功完成了以下所有操作:
- 通过 IP 地址联系托管的 FTP 服务器
- 从上述服务器下载配置
- 执行 DNS 查询以解析 NTP 服务器的 IP 地址
- 查询 NTP 服务器来设置时间
- 执行 DNS 查询以解析 SIP 服务器的 IP 地址
症状
在电话成功完成所有预注册任务后,我们从未看到注册尝试到达 pfSense 盒或提供商的 PBX。我已在 siproxd 中启用了最高级别的调试,并且没有看到任何 TCP 连接或 UDP 数据包。但是,从工作站简单地 telnet 到端口 5060 将生成预期的日志消息。在 pfSense 盒上执行数据包捕获显示绝对没有 SIP 流量尝试。
有没有搞错?
我最后的故障排除步骤彻底难倒了我,并让我问了这个问题,步骤如下。我首先将电话插入的交换机端口镜像到我的工作站交换机端口。我对接口上的所有流量执行了数据包捕获。令我惊讶的是,我看到了来自电话的 SIP 注册数据包。以下是一个例子:
显然,电话正在尝试向 PBX 注册(这些也是正确的 IP 地址)。
我的下一步是镜像接入 pfSense 路由器 LAN 端的交换机端口。我看到来自 172.200.22.102 电话的所有 FTP、NTP 和 DNS 流量都从交换机传出,但没有 SIP 数据包的踪迹。这对我来说完全是莫名其妙的!是什么原因造成的仅有的SIP 流量在交换机内消失吗?
环境
- 硬件
- 路由器/防火墙:Netgate m1n1wall 2D2
- 转变:HP 1810G-24
- 电话:Polycom SoundPoint IP 501
- 软件:pfSense 2.0-RC3
交换机配置
IP 地址为 172.22.200.102 的电话位于此交换机的端口 4 中,路由器 LAN 链接位于端口 22 中。
我可以分享可能需要的任何其他设置。
答案1
我花了大约 40 个小时解决这个问题后找到了解决方案。
交换机中有一个设置可以启用“自动 DoS”保护。显然,它将具有匹配源端口或目标端口的 TCP 或 UDP 流量视为布拉特攻击并丢弃数据包。这是非常短视的做法,因为 SIP 流量通常(总是?)依赖于源端口和目标端口 5060。
如果文字描述不够充分: