本文介绍了如何允许协议-41(6in4)通过GCE防火墙?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
作为Google支持native IPv6 on Google Compute Engine之前的权宜之计,我想配置一个6in4 (IP protocol 41) tunnel。
我添加了防火墙规则以允许我的虚拟机网络上的协议41:
Name Source tag / IP range Allowed protocols / ports Target tags
allow-6in4 216.66.xxx.xxx 41 Apply to all targets
并在/etc/network/interfaces
中配置通道:
auto 6in4
iface 6in4 inet6 v4tunnel
address 2001:470:xxxx:xxxx::2
netmask 64
endpoint 216.66.xxx.xxx
gateway 2001:470:xxxx:xxxx::1
ttl 64
up ip link set mtu 1280 dev $IFACE
和ping6 2001:470:xxxx:xxxx::1
,并验证6in4流量出站:
$ sudo tcpdump -pni eth0 host 216.66.xxx.xxx
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
22:52:03.732841 IP 10.240.xxx.xxx > 216.66.xxx.xxx: IP6 2001:470:xxxx:xxxx::2 > 2001:470:xxxx:xxxx::1: ICMP6, echo request, seq 1, length 64
22:52:04.740726 IP 10.240.xxx.xxx > 216.66.xxx.xxx: IP6 2001:470:xxxx:xxxx::2 > 2001:470:xxxx:xxxx::1: ICMP6, echo request, seq 2, length 64
22:52:05.748690 IP 10.240.xxx.xxx > 216.66.xxx.xxx: IP6 2001:470:xxxx:xxxx::2 > 2001:470:xxxx:xxxx::1: ICMP6, echo request, seq 3, length 64
我临时将端点更改为可以运行tcpdump的地址,并确认数据包没有到达目的地。我甚至亲自尝试了NAT,以防GCE没有对6in4数据包执行此操作,但没有成功(iptables -t nat -A POSTROUTING -p ipv6 -j SNAT --to-source 130.211.xxx.xxx
)。有人使用6in4隧道在GCE VM上工作吗?我是不是错过了什么神奇的场景?
推荐答案
TL;DR:您不能。
因此,协议转发规则需要用于以下IP protocol numbers之一:
- 51(AH)
- 50(ESP)
- 132(SCTP)
- 6(TCP)
- 17(UDP)
Protocol Forwarding页面明确表示不支持41 (6in4)等其他协议号:
这篇关于如何允许协议-41(6in4)通过GCE防火墙?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!