我有一个星号服务器,通过WAN连接到上游提供商。 上游提供商支持IPv4和IPv6连接,星号服务器位于NAT后面。
当星号通过IPv6连接到上游SIP对端时,一切正常。
我遇到的问题是,当我通过DHCPv6configuration星号服务器IPv6地址时,争用条件意味着星号有时会试图通过IPv4联系上游对等方(SIP DNS名称同时具有A和AAAAlogging)。 这是因为在系统具有有效的IPv6地址之前,星号启动。 由于NAT,连接不能通过IPv4工作。
有没有一种方法来configuration对端,指定它只能通过IPv6联系? 我想这可能是一起破解防火墙规则来拒绝所有IPv4stream量到这个IP,但它会更容易configuration在星号本身。
这是怎么回事 这个解释适用于Red Hat派生系统:
服务器的启动脚本以特定顺序执行,某些脚本依赖于其他脚本成功完成。
在星号的情况下,它要求(或者应该要求)networking在启动之前启动。 你会在init脚本中看到这样的行:
# Required-Start: $local_fs $remote_fs $network
$network存在。
问题是,即使IPv6configuration没有完成,如果IPv4configuration完成,默认情况下networking被视为“up”。
要改变这种行为,编辑/etc/sysconfig/network-scripts/ifcfg-eth0 (或你的特定接口)来指定IPv6也必须出现:
IPV6_FAILURE_FATAL=yes
请注意,只有NetworkManager注意此设置,因此如果您禁用了NetworkManager并正在使用旧的networking脚本,它将被忽略。 您也可以在NetworkManager GUI中进行等效设置。