2015-06-26 49 views
5

作为Google支持native IPv6 on Google Compute Engine之前的一个缺口,我想配置一个6in4 (IP protocol 41) tunnel如何通过GCE防火墙允许协议-41(6in4)?

我添加了一个防火墙规则来允许我的虚拟机的网络协议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 

我改变了终点时刻y到我可以运行tcpdump的地址,并确认数据包没有到达目的地。我甚至在GCE没有为6in4包做这件事情的时候尝试过NAT,但是没有运气(iptables -t nat -A POSTROUTING -p ipv6 -j SNAT --to-source 130.211.xxx.xxx)。

是否有人获得了6in4隧道在GCE虚拟机上工作?有什么魔法设​​置我错过了某个地方?

回答

4

TL; DR:你不能。

Networking and Firewalls:使用比TCP,UDP等协议,和ICMP被阻塞,除非通过协议转发明确允许

流量。

Protocol Forwarding

谷歌计算引擎支持以下 协议协议的转发:

AH:指定IP认证报头协议。

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

SCTP:指定流控制传输协议。

TCP:指定传输控制协议。

UDP:指定用户数据报协议。

因此,协议转发规则需要为下面IP protocol numbers之一:

  • 51(AH)
  • 50(ESP)
  • 132(SCTP)
  • 6 (TCP)
  • 17(UDP)

Protocol Forwarding页清楚地表明,其他协议号,如41 (6in4)不支持:

注:这是所支持的协议的一个详尽的清单。只有出现在这里的协议才支持协议转发。

相关问题