2015-06-26 48 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)不支持:

注:這是所支持的協議的一個詳盡的清單。只有出現在這裏的協議才支持協議轉發。

相關問題