我试图用NGINX在CentOS 7.2上安装IPv6networking服务器。 我testing了我的IPv6连接传出和传入 – 一切正常。 我的IP,AAAAlogging等也很好。 基本上,一切正常,直到我启用FirewallD。
我已经设置为默认到eth0接口的放置区域。 我启用了dhcpv6-client,http,https和ssh(ssh是在一个自定义的端口上)。 当启用防火墙时,没有IPv6通信可以离开或进入机器。 Traceroute6到任何东西(甚至网关)只能到本地主机。 如果我禁用了防火墙,那一切都很好。
我不知道为什么会这样。 为了使FirewallD对IPv6stream量应用相同的IPv4configuration,我在网上找不到任何东西。 我个人认为,它会自动执行,因为它的所有命令都是IP协议不可知的。
任何帮助深表感谢。
我遇到了同样的问题。 在遵循firewalld放入的规则的逻辑之后,我发现放置区阻塞了findipv6邻居所需的ipv6 icmp。 有一条规则允许所有的ipv6 icmp,但firewalld把它放在input区,这是放置规则去的地方。
如果你想自己看看这个,只要看看'ip6tables -L -n -v'
所以,一个快速和肮脏的修复是这样做的:
firewall-cmd --permanent --direct --add-rule ipv6 filter INPUT 0 -p icmpv6 -j ACCEPT
Firewalld将直接规则放在其他input规则之前,以便在放置规则之前发生。 如果你想阻止ping这样的事情,你也可以使用直接的规则,但是在上面的规则之前你需要它。
你会做这样的事情:
firewall-cmd --permanent --direct --add-rule ipv6 filter INPUT 0 -p icmpv6 --icmpv6-type 128 -j DROP firewall-cmd --permanent --direct --add-rule ipv6 filter INPUT 1 -p icmpv6 -j ACCEPT
优先事项将保持秩序。