运行类似ntpq -p
或的命令时apt-get update
,需要很长时间才能显示结果。如果我删除所有 ipv6 规则,一切正常。
我检查了系统日志,没有删除任何 iptables,因此规则正在运行。我猜是我缺少了一些规则,导致进程变慢。
我如何才能提高性能?IPv4 流量没有这个问题。
下面是我的 ip6tables 配置示例:
# Allow loopback access
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A OUTPUT -o lo -j ACCEPT
# Allow link-local
ip6tables -A INPUT -s fe80::/10 -j ACCEPT
ip6tables -A OUTPUT -s fe80::/10 -j ACCEPT
# Allow multicast
ip6tables -A INPUT -d ff00::/8 -j ACCEPT
ip6tables -A OUTPUT -d ff00::/8 -j ACCEPT
# Allow inbound PING
ip6tables -A INPUT -i eth0 -p icmpv6 --icmpv6-type echo-request -j ACCEPT
ip6tables -A OUTPUT -o eth0 -p icmpv6 --icmpv6-type echo-reply -j ACCEPT
# Allow outbound PING
ip6tables -A OUTPUT -o eth0 -p icmpv6 --icmpv6-type echo-request -j ACCEPT
ip6tables -A INPUT -i eth0 -p icmpv6 --icmpv6-type echo-reply -j ACCEPT
# Allow outbound DNS
ip6tables -A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT
ip6tables -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT
# Allow outbound NTP
ip6tables -A OUTPUT -o eth0 -p udp --dport 123 -j ACCEPT
ip6tables -A INPUT -i eth0 -p udp --sport 123 -j ACCEPT
# Allow outbound SMTP
ip6tables -A OUTPUT -o eth0 -p tcp --dport 25 -m conntrack --ctstate NEW,ESTABLISHED -j$
ip6tables -A INPUT -i eth0 -p tcp --sport 25 -m conntrack --ctstate ESTABLISHED -j ACCE$
# Allow outbound HTTP
ip6tables -A OUTPUT -o eth0 -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j$
ip6tables -A INPUT -i eth0 -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCE$
答案1
您似乎过滤了太多 ICMPv6。IPv6 使用 ICMP 的次数比 IPv4 多得多,而且您过滤了太多 ICMP,以至于实际上破坏了 IPv6。不起作用的包括邻居发现、数据包过大错误消息和其他错误消息。这些对于 IPv6 至关重要。
在构建自己的防火墙规则时,你应该查看RFC 4890其中包含有关如何过滤 ICMPv6 的良好指南。