最近一直在使用gfw6,感覺不錯。
試着做如下黑箱分析:
- 阻斷ipv6反向代理地址的工作方式:阻斷地址通過計算獲得:RFC 6147中指出,dns64反向代理服務器返回的ip由服務器決定,「一般情況下,返回一個帶ipv6固定前綴的地址」;現在看來大部分dns64服務器都是按照「一般情況」,GFW6隻要將所有ipv6請求目標地址和源地址某兩個塊(一般為最後兩個塊)倒推成ipv4地址,即可選擇性地發送RST包。如此土豪的方式,果然是一坨曙光計算機撐腰的大項目啊(笑)。
- 阻斷固定ipv6地址的工作方式:和以前ipv4的時候是一樣的,RST攻擊。
- 開始污染DNS64解析感覺這個沒啥作用
- 有兩點值得注意:對反向代理,似乎只對請求方發送RST包;https連接沒有被RST。
實驗(與上文對應):
- 選定任意一個DNS64地址,用nslookup得到返回值,增加hosts條目;本例測試X望の聲(牆外)和度娘(牆內)。wireshark抓包結果發現,X望の聲的第一個返回包被reset,導致連接失敗;度娘連接正常。
- 略
- 略
- 略
解決方案:
- 如果能找到一個「非典型」DNS64服務器,那GFW6的TCP阻斷就痿了。假設某個DNS64服務器的算法為,最後兩個地址塊為 FFFF:FFFF-ipv4轉換地址,那麼GFW6無法確定阻斷地址,要阻斷,只能把block list中的地址一一詢問該DNS64服務器;如果算法變一下,比如之前的計算結果再和一個常數異或一下,或者再每兩天(正好和本地DNS cache的TTL重合)換一個常數,那麼GFW6將會非常苦逼。RFC6147似乎沒有明確指出「optional parameter」的含義,從5.2節來看,似乎奇葩的算法也是可以的。
- 西廂代理v6?括弧笑
- 這個好辦,反正被牆的網站只是少數,nslookup一個沒被牆的DNS64地址,按算法寫到hosts里就好了嘛
- 可能是一個突破口,關注中。DNS64時X望の聲有時竟然是可以上去的。
現在有ipv6版?
騷年真棒,做我強大的技術後盾,我來摧毀罪惡的。。。[感冒][感冒][感冒]
回復@cup君:嗯最近v6也被搞了
回復@Cueson_沈:[饞嘴]
回復@fffonion:= = 以後只能vpn了
回復@cup君:TOT
回復@fffonion:來國外念書學校會給一個vpn帳戶終身有效,回國不用擔心= =
回復@cup君:【堅定了我出國的信念233