星号:强制 SIP 对等体通过 ipv6 进行连接?

星号:强制 SIP 对等体通过 ipv6 进行连接?

我有一台通过 WAN 连接到上游提供商的星号服务器。上游提供商支持 IPv4 和 IPv6 连接,星号服务器位于 NAT 后面。

当 asterisk 通过 IPv6 连接到上游 sip 对等体时,一切都运行正常。

我遇到的问题是,当我通过 DHCPv6 配置 Asterisk 服务器 IPv6 地址时,竞争条件意味着 Asterisk 有时最终会尝试通过 IPv4 联系上游对等方(SIP DNS 名称同时具有 A 和 AAAA 记录)。这是因为 Asterisk 在系统具有有效的 IPv6 地址之前启动。由于 NAT,连接无法通过 IPv4 进行。

有没有办法配置对等端以指定它只能通过 IPv6 进行联系?我猜想可能可以制定一条防火墙规则来拒绝所有到该 IP 的 IPv4 流量,但在 asterisk 内部进行配置会更容易。

答案1

事情是这样的。此解释针对的是 Red Hat 衍生系统:

服务器的启动脚本按照特定的顺序执行,其中一些脚本依赖于其他脚本的成功完成。

对于 asterisk 来说,它要求(或应该要求)在启动之前网络已启动。您会在 init 脚本中看到如下行:

# Required-Start: $local_fs $remote_fs $network

在哪里$network存在。

问题是,如果 IPv4 配置完成,即使 IPv6 配置尚未完成,网络也会默认被视为“启动”。


要更改此行为,请编辑/etc/sysconfig/network-scripts/ifcfg-eth0(或您的特定接口)以指定 IPv6 也必须出现:

IPV6_FAILURE_FATAL=yes

请注意,只有 NetworkManager 会关注此设置,因此如果您已禁用 NetworkManager 并使用旧网络脚本,它将被忽略。您也可以在 NetworkManager GUI 中进行等效设置。

相关内容