Google compute engine 如何允许协议-41(6in4)通过GCE防火墙?

Google compute engine 如何允许协议-41(6in4)通过GCE防火墙?,google-compute-engine,ipv6,tunnel,Google Compute Engine,Ipv6,Tunnel,作为一个权宜之计,直到谷歌支持,我想配置一个 我添加了防火墙规则以允许VM网络上的协议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 ifa

作为一个权宜之计,直到谷歌支持,我想配置一个

我添加了防火墙规则以允许VM网络上的协议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-到source 130.211.xxx.xxx


有人在GCE虚拟机上使用6英寸4的隧道吗?有什么神奇的场景我错过了吗?

TL;医生:不行。

Per:

除非通过协议转发明确允许,否则将阻止使用TCP、UDP和ICMP以外协议的流量

Per:

Google计算引擎支持以下协议转发 协议:

AH:指定IP身份验证头协议

ESP:指定IP封装安全有效负载协议

SCTP:指定流控制传输协议

TCP:指定传输控制协议

UDP:指定用户数据报协议

因此,协议转发规则需要适用于以下情况之一:

  • 51(啊)
  • 50(ESP)
  • 132(SCTP)
  • 6(TCP)
  • 17(UDP)
该页面明确说明不支持其他协议编号,例如:

注意:这是受支持协议的详尽列表。协议转发仅支持此处显示的协议


看起来谷歌云平台仍在使用陈旧的基础设施。没有本机ipv6,甚至不允许隧道。