排除 SIP 连接故障

排除 SIP 连接故障

我有一台位于防火墙后面的 Linux Asterisk 服务器。防火墙有三个接口:

  • eth0 是 Asterisk 所在的 LAN,
  • eth2 是互联网的默认网关(通过 ADSL 调制解调器/路由器),
  • eth3 是辅助互联网连接

如果我保持现状,Asterisk 可以顺利连接到 SIP 中继。它将通过 eth2 的默认路由进行路由。eth2 是 MASQUERADED。

如果我通过 eth3 ( ) 定义到 SIP 提供商的静态路由ip route add sip.provider.ip via gateway.ip dev eth3,我可以 ping 通 SIP 提供商。防火墙允许往返于 SIP 提供商的一切操作。但 Asterisk 将拒绝连接(对等方变得无法访问)...

我使用 iptables TRACE 查看了数据包,它们肯定是通过 eth3 发出的。但我没有看到任何数据包返回。eth3 也有一个 MASQUERADE 规则...

通过 eth3 删除静态路由可恢复连接。

我正在寻找有助于解决问题的提示和技巧。

答案1

我怀疑您的星号服务器配置为使用无连接的 UDP,因此传出的 SIP 请求可能包含最终用户应该用来连接回您的返回 IP 地址。

检查externip你的 sip 配置文件中的设置:

另请查看以下内容,其中有很多好东西http://www.asteriskguru.com/tutorials/sip_nat_oneway_or_no_audio_asterisk.html

使用 wireshark 或 tcpdump 获取 eth2 和 eth3 的网络跟踪也能更好地阐明这个问题

相关内容