在FreeBSD4.0以上内核支持了IPV6,所以想搞搞这个玩意,当然要和IPV6网络 通信,有一个比较好的地方,那就是(http://www.6bone.net). 6bone是一个 测试IPV6开发的网络,它那里有比较好的关于怎样使用IPV6,怎样工作的资料。 如果你要在你的网络上很好的支持IPV6,不妨多花点时间在6bone上转转,当然 还有其他的一些PIV6网络测试,如www.kame.net等,日本也有不少关于IPV6网络 测试,现在听说国内也有一个教育网(是不是中科院)也有IPV6的实现,不过忘 了,到时再查查。 对于你的网络上使用IPV6,你最好有一个静态IP供你测试,当然你也可以使用PPP 来使用IPV6,具体文档请看:Connecting to the 6bone through PPP with a dynamically-allocated IPv4 address-- http://www.bieringer.de/linux/IPv6/sitctrl/index.html。 OK,如果你现在有一个静态IP地址,想测试IPV6最简单的方法就是去Freenet6 (http://www.freenet6.net). Freenet6是一个比较好的WEB接口,通过它你可以 甚至一个IPV6到IPV4的隧道到达6bone。你要做的就是在FREENET6站点上填写下 你WEB名字和你公开的IP地址,然后他们就会配置他们的隧道末端并会给你一 PERL脚本,你可以运行这个脚本并配置你自己机器上的一端。它能使你很好很快 的开始IPV6之旅。你不妨去测试下的说。 但使用Freenet6中的问题是它不支持NAT。下面就讲讲FreeBSD 4.0-Stable系统上 使用IPFILTER NAT/Firewall环境中,来设置这个IPV6。这当然也适合其他系统的 设置。 最先要做的就是你检查下你NAT/FIREWALL的设置,在NAT中,你需要使用一静态的 NAT,NAT分两种工作情况:多对一和一对一的NAT,这里你需要使用静态的一对一NAT。 然后我们就来处理这个隧道--tunnel,做这步之前,你就去Freenet6的站点填写 表格并提交你使用NAT了的公开IP地址。FREENET6就会发一PERL脚本给你,在你 运行这个脚本之前,你需要如下更改一个地方: 在设置你的gifconfig时你需要用你privat ip来代替public ip,如下: system(`gifconfig $if public.routeable.IP 206.123.31.102`); 变为: system(`gifconfig $if private.nonrouteable.IP 206.123.31.102`); 这样后运行你的脚本时,你的输出就会提示一些错误(在"Your IP v4 address is" 读取PUBLIC IP) ,但对你系统的配置仍然是正确的,如果你实在是要让你的输出 正确的话,你只要改变每一条的PUBLIC接口改为你自己私有的接口。 OK,脚本改变以后,你就以ROOT身份运行它,你的隧道--tunnel就会在本地HOST上 建立了。然后你需要增加些防火墙规则。 在如下的防火墙规则里,假设已经在IPFILTER是使用了规则组,这些GOURPS如下: 100 - Inbound on fxp0 150 - Outbound on fxp0 200 - Inbound on fxp1 250 - Outbound on fxp1 其中你这里的fxp0是公开的接口,也就是连接INTERNET的接口,FXP1连接的是你 内部的网络。OK,然后你就增加4条火墙规则。 先来解释下下面的名字: $YOURPPRIVATEIP 代表你内部网络的IP地址而 $YOURPEERSPUBLICIP 是FREENET6脚本里输出的IP地址,这里还假定你使用了默认 的拒绝规则: pass in quick proto ipv6 from $YOURPEERSPUBLICIP to $YOURPPRIVATEIP group 100 允许$YOURPEERSPUBLICIP发信息包到你的内部IP。 pass out quick proto ipv6 from $YOURPPRIVATEIP to $YOURPEERSPUBLICIP group 150 允许$YOURPPRIVATEIP路由到$YOURPEERSPUBLICIP经过外部接口。 pass in quick proto ipv6 from $YOURPPRIVATEIP to $YOURPEERSPUBLICIP group 200 允许信息包从你本地主机通过内部接口到你的$YOURPEERSPUBLICIP。 pass out quick proto ipv6 from $YOURPEERSPUBLICIP to $YOURPPRIVATEIP group 250 允许$YOURPEERSPUBLICIP路由信息包通过内部接口到你的本地主机。 当然上面的操作说到底需要一些IPv6 stack的支持,你可以先到http://www.kame.net 下载kame ipv6 stack,然后再来测试。 这些实在太麻烦,要下载后安装,现在叫你一个简单的办法使你PING6通到 www.6bone.net,当然是简介,你要好好设置IPV6就看IPV6-HOW-TO吧。 OK,全部需要的你只要一个IP静态地址,并有内核支持的系统,我这里使用了 Freebsd 4.0-RELEASE来进行了测试。 那就是设置6to4来即时使用IPV6机制,而不需要很多其他的安排。 使用这个方法就是其特殊前缀2002::, 3 13 32 16 64 --------------------------------------------------------- |001|TLA0x002| ipv4 TRA | SLA | interface ID | --------------------------------------------------------- 定义16位的前缀2002::/16作为"6to4"的标志。 OK,要设置成6to4机制,你只需要把你网关的IPV4的转化为16进制的格式,如 192.168.57.99是0xc0a83963,那么你把你的网关变为2002:c0a8:3963::/48。 然后把下面的几个条目放到rc.conf中: ipv6_enable="YES" ipv6_router_enable="YES" ipv6_network_interfaces="lo0 nn0" ipv6_prefix_nn0="2002:c0a8:3963" stf_interface_ipv4addr="192.168.57.99" 注意上面的nn0你要改为自己网络的接口表示,并配置你的内核加入如下一条: "pseudo-device stf 1" 然后中心编译下内核。 OK,这样的配置还不够与其他6to4用户通信了,你需要找到一个6to4的路由器来 路由你的信息。我选择了这个路由器地址:6to4.kfu.com,当然还有很多其他的 地址,你可以选择你自己认为最好的。最后把下面的条目加到rc.conf中: ipv6_static_routes="default" ipv6_route_default="default 6to4.kfu.com" 重新启动。 然后你试着ping6 www.6bone.net看看行不行。呵呵,NND,我测试了下发现来回 时间可够长的: $ ping6 -c 5 www.6bone.net PING6(56=40+8+8 bytes) 2002:d35b:d06::1 --> 3ffe:b00:c18:1::10 16 bytes from 3ffe:b00:c18:1::10, icmp_seq=1 hlim=61 time=1005.78 ms 16 bytes from 3ffe:b00:c18:1::10, icmp_seq=2 hlim=61 time=1022.12 ms 16 bytes from 3ffe:b00:c18:1::10, icmp_seq=3 hlim=61 time=1000.82 ms 16 bytes from 3ffe:b00:c18:1::10, icmp_seq=4 hlim=61 time=1017.48 ms --- 6bone.net ping6 statistics --- 5 packets transmitted, 4 packets received, 20% packet loss round-trip min/avg/max = 1000.82/1011.55/1022.12 ms $ 呵呵,有兴趣可以试试哦,但我发现一个我自己不能很了解的东西,发现ping localhost到不行了,呵呵,是不是这句惹的祸: stf_interface_ipv4addr="192.168.57.99"。(这个IP地址不是我的,要加你自己 公开的IP地址) 太匆忙了,到时仔细看看以后再重新配置。 |