2010-04-25 搞定aftr
? 今天終于完全地把a(bǔ)ftr給搞定了。
? 剛開始的時候,建了三臺機(jī)器,甲,乙,丙,甲和乙通過ipv6相連,甲的ipv6地址為2001:0:0:1::2/64,乙的ipv6地址為2001:0:0:1::1/64,乙和丙通過ipv4相連,乙的ipv4地址為219.243.40.40/24,丙的地址為219.243.40.35/24。如上所述,已經(jīng)在丙上面建立了一個http服務(wù)器。
在甲上面配置好隧道,端點為2001:0:0:1::2和2001::1,隧道的地址為10.0.1.24,然后在乙上面運(yùn)行aftr,./aftr -g。aftr是ISC的一個軟件,有興趣可以看看www.isc.org/software/aftr。然后在甲上面訪問丙上面的http服務(wù)器,http://219.243.40.35。
剛開始的時候,是使用ping 219.243.40.35,可以檢測到發(fā)過去的包被轉(zhuǎn)發(fā)的,可能看到轉(zhuǎn)發(fā)回來的包,但是ping程序沒有任何響應(yīng),不知道怎么回事,以為是對icmp的支持不好,后來選擇了通過web來連接,發(fā)送tcp協(xié)議的報文,才發(fā)現(xiàn)所有被轉(zhuǎn)發(fā)的文件都是錯誤的,校驗碼不對。我非常奇怪,然后看了看轉(zhuǎn)發(fā)后的包和原來的包,發(fā)現(xiàn)都短了4個byte,我非常奇怪,怎么是4個byte,然后我看了看aftr.c發(fā)現(xiàn)在給ipv6封裝頭部的時候,使用的len是原來的len,但是后來又加入了一個gre頭部,改過來之后,tcp能夠被正確轉(zhuǎn)發(fā)了。
但是突然發(fā)現(xiàn)了另外一個問題,就是發(fā)送完了第一個http get命令之后,后面的包全部收不到,而且從乙機(jī)器上面檢測到ipv6的碎片,我突然非常慌,難道是linux不支持ipv6的分片?晚上睡覺都在想解決的辦法。
還好,今天我看了看linux發(fā)現(xiàn)里面有一個reassembly.c的文件,上面定義了對ipv6分片的重組。然后看到Makefile文件里面寫的是已經(jīng)把它集成到ipv6的內(nèi)核模塊里面去了,所以覺得應(yīng)該是aftr里面的分片寫得有問題。終于寫好,從甲訪問丙上面的http服務(wù)器完全沒有問題,可以給交差了。
有時間介紹介紹Ds-lite場景的配置,使用linux自帶的ipip6隧道和aftr.c。
轉(zhuǎn)載于:https://www.cnblogs.com/wudanzy/archive/2010/04/25/1720819.html
總結(jié)
以上是生活随笔為你收集整理的2010-04-25 搞定aftr的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何利用MySQL加密函数保护Web网站
- 下一篇: 我在Freebsd下安装帝国CMS系统整