好文档 - 专业文书写作范文服务资料分享网站

2013-09-15openwrt下的ipv6单一地址做网关(附mentohust、njitclient)

天下 分享 时间: 加入收藏 我要投稿 点赞

IPv6中单一地址做网关的三种方案【续】 - openwrt下的配

置 http://blog.asxzy.net/blog/2011/ ... v6-gateway-openwrt/

IPv6中单一地址做网关的三种方案 http://blog.asxzy.net/blog/2011/ ... -make-ipv6-gateway/

首发于Openwrt中文网

asxzy

相信很多大学的路由都是通过自动配置给客户端分配ipv6地址的,所有用户获取到的ipv6地址的prefix都是/64,无法继续划分子网,为了使/64的用户也能做网关,大家玩命的想各种方法,NAT,网桥,NDP Proxy。

今天我给大家分享一下我是如何使用prefix为/64的ipv6地址做路由网关的,旨在抛砖引玉,欢迎各位探讨(倾向于邮件交流)

方案一:NAT

IPV6标准协议中无NAT,原因请谷歌。

本IPv6 的NAT方案和IPv4的NAT方案思路一致,在IPv6下划分一段“子网”的IPv6地址给客户端(其实是假IPV6地址),openwrt通过内核转发完成NAT功能。

由于本方案并非官方支持。故本文仅给出几个现成的解决方案 NAPT66:http://code.google.com/p/napt66/

北邮方案,小巧精悍,内核级别的,不易安装使用。

ipv6nat Qycaitian:http://sourceforge.net/projects/ipv6nat/ 西电研究生作品。支持局域网ipv6自动配置、局域网端口映射、多WAN口负载均衡。

方案二:IPv4 NAT + IPv6 bridge

本方案思路为,IPv4路由+IPv6交换机,将wan+lan口桥接并屏蔽掉网桥上的ipv4封包,实现ipv6链路。

严格意义上来说,本方案并不是将单一地址做网关,而是给IPv6搭了一座桥出来,让IPv6的封包从路由器直接穿过。

实现起来也非常简单。

1.桥接wan口lan口。

2.屏蔽掉所有非IPv6的包。

约定:

wan口eth1

lan口eth0、wlan0、wlan1 依赖:

ebtables、birdge-utils 命令样例

1. brctl addbr br-lan 2. ifconfig br-lan up 3. brctl addif br-lan eth0 4. brctl addif br-lan eth1 5. brctl addif br-lan wlan0 6. brctl addif br-lan wlan1

7. ebtables -t broute -A BROUTING -p ! ipv6 -j DROP

复制代码

openwrt的trunk版提供了6scripts包可以使用该方法实现ipv6。 操作

1. opkg update

2. opkg install ebtables 6scripts

复制代码

编辑配置文件/etc/config/6bridge

1. vi /etc/config/6bridge

复制代码

修改配置文件

1. config 6bridge

2. option bridge 'bripv6' # 将bripv6修改为你的bridge设备名,

通过brctl show查看

复制代码

启用脚本

1. /etc/init.d/6bridge start

复制代码

设置开机自启动

1. /etc/init.d/6bridge enable

复制代码

但实际上,在某些环境下,这种方法还是有缺陷的。比如需要IPv4通过交换机验证的环境中,由于客户端没有通过联网验证,上端路由器不会相应来自客户端的任何请求,故本方案只是用于IPv6无需认证的网络环境使用。

NOTE:6script依赖ebtables包,该软件包只有trunk版提供,backfire版无ebtables,自12.09之后,非trunk版也提供ebtalbes与6script

接下来请出我的杀手锏

方案三:proxy_ndp

众所周知,IPv4中有个arp协议,他在IPv4的网络中有着非常重要的作用。但IPv6取消了ARP协议,取而代之的是NDP(Neighbor Discovery Protocol),即邻居发现协议。而Linux在2.6.19版中加入了proxy_ndp这个特性,使得linux有了代理ipv6的能力。本方案就是基于这一特性实现的。

这一方案中,网关中单一的IPv6地址可以认定为是其子网的网关,通过任意方式给子网分配与网关相同前缀的IPv6之后,将子网的IPv6地址加入网关的ndp代理之中,从而实现子网的IPv6。

过程也是非常简单。

1.在网关上打开ipv6 forwarding和proxy_ndp。

2.用任意方式给网关wan口lan口设定合法IPv6地址,所谓合法,就是要能与外网相连。 3.用任意方式给子网划分与wan口相同前缀的合法IPv6地址。 4.在网关上将子网的IPv6地址加入proxy_ndp

需要注意的几点:

1.网关必须使用静态IPv6地址,否则IPv6 forwarding会出问题。

2.网关上的路由表一定要正确,最好添加静态路由,外网网关和内网子网都要注意,最好相互ping6检测一下是否路由正确。

3.网关添加neigh proxy,dev应为wan口。

约定:

wan口eth1 lan口br-lan

wan对外网关:2001:250:1006:3006::1

lan内客户端:2001:250:1006:3006:1112:2222:3333:4444 依赖:

linux >= 2.6.19、ip 命令样例

1. ip -6 route add default 2001:250:1006:3006::1 dev eth1

2. ip -6 route add 2001:250:1006:3006:1112:2222:3333:4444 dev br-lan 3. ip -6 neigh add proxy 2001:250:1006:3006:1112:2222:3333:4444 dev eth1

复制代码

如果客户端是固定的,可以将命令写成脚本,加入/etc/init.d/network或/etc/sysconfig/network-script/ifup-eth1中。

但这样做会很蛋疼,因为你要将客户端一个一个写入脚本。

于是乎,第三方软件出现了。

此处更新(2013/4/19) 本文之前所提供的npd6由于没有受到官方支持,且配置具有一定的不稳定性,故现使用Openwrt官方提供的ndppd包取代npd6。

声明:以下配置参考于http://rockuw.sinaapp.com/openwrt-buffalo-g300n-v2-router-hack/,并根据个人经验做以改动

开始openwrt下的配置吧

1.安装radvd,给客户端分配合法ip

1. opkg update 2. opkg install radvd

复制代码

编辑配置文件/etc/config/radvd

前两个配置项的ignore去掉,prefix项中的list prefix填写正确的prefix即可:

1. vi /etc/config/radvd

复制代码

1. config interface

2. option interface 'lan' 3. option AdvSendAdvert 1 4. option AdvManagedFlag 0 5. option AdvOtherConfigFlag 0 6. list client ''

7.

8. config prefix

9. option interface 'lan'

10. # If not specified, a non-link-local prefix of the interface is used 11. list prefix '2001:250:1006:3006::/64' 12. option AdvOnLink 1 13. option AdvAutonomous 1 14. option AdvRouterAddr 0 15.

复制代码

启动radvd

1. /etc/init.d/radvd start

复制代码

设置开机自启动

1. /etc/init.d/radvd enable

复制代码

此处更新(2013/4/19) 此文发布已久,现发现npd6可以使用openwrt官方trunk版的ndppd

包代替,安装及配置方法如下 安装ndppd包

1. opkg install ndppd

复制代码

配置ndppd

1. vim /etc/ndppd.conf

复制代码

找到配置文件中的proxy标签和rule标签,设置成你的内网网段:

1.

2. proxy eth1{ 3. router yes 4. timeout 500 5. ttl 30000 6.

7. rule2001:250:1006:3006::/64 { 8. auto 9. } 10. } 11.

2013-09-15openwrt下的ipv6单一地址做网关(附mentohust、njitclient)

IPv6中单一地址做网关的三种方案【续】-openwrt下的配置http://blog.asxzy.net/blog/2011/...v6-gateway-openwrt/IPv6中单一地址做网关的三种方案http://blog.asxzy.net/blog/2011/...-make-ipv6-gatewa
推荐度:
点击下载文档文档为doc格式
65osr59r7g4ddq243gx7
领取福利

微信扫码领取福利

微信扫码分享