XiZi's Blog

配置OpenWRT 校园网实现 IPv4 over IPv6。

目前网络状况:两个位置:位置1和位置2,位置1可以正常访问IPv6网络(校内和校外),位置2可以访问IPv6和IPv4网络。

 

目的:实现位置1处无差别上网,即正常访问IPv4和IPv6网络,关键是IPv4。

基本原理:通过openvpn路由所有的IPv4数据给远程电脑。

基础设施:位置1处路由器(mdir-615),位置2处做好路由和openvpn()监听IPv4和IPv6地址。

1、基础准备。配置位置2处的电脑,做好openvpn服务器,使用正常的客户端测试openvpn的连通性。网上教程很多,这里不做具体说明了。 

2、路由的openwrt配置。这里使用我的DLink dir615 为例说明。

1)刷openwrt,这里需要提到一点,我的dir615刷openwrt,ie11和chrome都不能刷,下了个firefox4可以。

2)安装必备的软件包,由于我的dir615闪存只有4m,所以都不能安装图形界面,还有后面选择polarssl和popenvpn-polarssl,也是次原因,完全命令行操作。必备的软件包有: kmod-tun,liblzo,libpolarssl,openvpn-polarssl。

3)配置

(1)配置/etc/config/system

config system
        option hostname OpenWrt #路由器的名称
        option timezone CST-8   #时区,这个就是Asia/Chongqing,也就是中国的时区。

config 'led' 'wlan_led'   #这个是我的dir615配置无线led灯的
        option 'name'   'WLAN'
        option 'sysfs'  'd-link:green:wlan'
        option 'trigger'        'netdev'
        option 'dev'    'wlan0'
        option 'mode'   'link tx rx'

config 'led' 'wan_led'   #段配置wan口led灯
        option 'name'     'WAN'
        option 'sysfs'    'd-link:green:wan'
        option 'trigger'  'netdev'
        option 'dev'      'tun0'
        option 'mode'     'link tx rx'

(2)配置/etc/config/network

config interface 'wan'
        option ifname 'eth1' #指定wan口网卡
        option proto 'none' #这个地方配置修改为none,我们不需要ipv4网络
        option macaddr '00:24:01:76:B2:27' #这句指定wan口的mac地址。

config interface 'ovpn'  #这段内容是我们增加的,为后续的防火墙做准备。
        option ifname 'tun0' #openvpn使用的interface名称
        option proto 'none' #这里也不用配置,他的网络是由程序配置的。

(3)配置/etc/config/firewall

#对wan区域增加我们配置的openvpn,ovpn我们上面刚配置的名字。
config zone
        option name             wan
        list   network          'wan'
        list   network          'wan6'
        list   network          'ovpn' #增加这一行把openvpn增加的wan区域里面,否则即使你连接上了,路由器可以正常上网,但局域网客户端不能上。
        option input            REJECT
        option output           ACCEPT
        option forward          REJECT
        option masq             1
        option mtu_fix          1

(4)配置dns解析服务,这里我们修改/etc/dnsmasq.conf

#在文件尾部增加DNS服务器,越靠下优先级越高
server=2001:4860:4860::8844 # google ipv6 public dns
server=2001:4860:4860::8888 # 同上 
server=xxx.xxx.xxx.xxx # 学校IPv4 DNS

(5) 关于openvpn的配置,由于我们没有IPv4网络,redirect gateway回出现错误失效,我们手动添加路由即可。 /etc/config/openvpn

config openvpn sample_client

        # Set to 1 to enable this instance:
        option enabled 1
        ....
        #插入以下段到你配置的openvpn client 配置部分
        list route "0.0.0.0 0.0.0.0"

 

(6)顺便把无线的配置也贴出来吧。/etc/config/wireless

config wifi-device  radio0
        option type     mac80211
        option channel  11
        option hwmode   11ng
        option path     'platform/ath9k'
        list ht_capab   SHORT-GI-40
        list ht_capab   DSSS_CCK-40
        option htmode   HT20
        # REMOVE THIS LINE TO ENABLE WIFI:
        # option disabled 1  #注意这里原来是没有前面那个#的

config wifi-iface
        option device   radio0
        option network  lan
        option mode     ap  #无线工作模式,ap路由,sta客户端
        option ssid     myssid #OpenWrt #默认是OpenWrt改为你想要的名字
        option encryption psk2 #none #默认是none改为你想要的加密方式,psk,psk2,wep等
        option key password #当然是密码喽。

DIR615 F/W:C2+OpenWrt 上 六维

        处于内网,又恋上了“六维”的资源,没办法。想办法。偶然发现当初买的Dlink Dir615C2,当时它的ipv6害得我很是苦恼,手机用wifi通过路由器上网,一会儿就不能上了。后来刷了DD-Wrt,没了ipv6,这个世界清净了。手机上网也正常了。可是我的六维也上不了。后来发现了gw6c这个软件,装在电脑上,还行,挺方便。不过偶然发现原来OpenWrt支持gw6c,又开始折腾,还好现在能上了。总结一下大体步骤。

        1、刷OpenWrt,在OpenWrt的官方网站down一个对应的刷机bin文件,我down的是(目前最新)的10.3.1-rc4下面,给个网址参考(http://downloads.openwrt.org/backfire/10.03.1-rc4/ar71xx/),新版本的可能会不同。下载openwrt-ar71xx-dir-615-c1-squashfs-factory.bin文件。

       2、刷入下载的文件。只有一种方式,就是进入dlink的恢复出场设置界面:拔掉路由器(DIR615C2,以下所受哦路由器特指这个)的电源,用笔、螺丝刀等物“按住”电源旁边的reset键,插上电源,一直等,大概30秒左右松开就可一了,这时候,可以看到路由器的电源指示灯呈橘黄色闪烁。说明进入了恢复固件的模式。修改你的电脑的ip地址为192.168.0.2(和路由器统一网段皆可,即最后一个数字2可以是2~254的任何数)。打开浏览器,输入192.168.0.1,你会看到刷固件的页面,浏览,选择下载的openwrt固件,发送,等待。页面会有动态提示,但那个不是很准。

      3、大概3-5分钟后,把电脑的ip调成“自动获取”ip地址,如果获取地址成功,说明你的OpenWrt刷入成功。登录192.168.1.1注意和Dlink的地址(192.168.0.1)是不一样的。进行相关的网络设置。

      4、安装gw6c组件,在网页的Administration->System->SoftWare, 打开软件管理页面,“Update package lists” 更新软件列表。在更新后的列表里,点gw6c前面的“Insall”进行安装,会安装gw6c依赖的必要组建。至此路由器的软件安装完成。

      5、配置gw6c,在Administration->Service->InitScript, 里面打开gw6c使其处于enable状态。telnet到路由器(xp自带,vista和win7推荐使用putty软件),vi /etc/config/gw6c 修改成如下:

       config gw6c basic

	#Comment out next line to enable gw6c
	#option disabled		1

	#Leave empty if connecting anonymously	
	option userid username# 你注册gogonet6用户名
	option passwd p@ssw0d#  密码
	
	#For anonymous use anon.frenet6.net and
	#account holders should use broker.freenet6.net
	option server		authenticated.freenet6.net
	
	#auth_method <anonymous|any|passds-3des-1|digest-md5|plain>
	#Use anonymous with anonymous access and
	#any if you are account holder
	option auth_method	any

config gw6c routing
	#host_type <host|router>
	option host_type	router
	option prefixlen	56
	option ifprefix		br-lan
	
	#DNS server list to which the reverse prefix
	#will be delegated. Separate servers with :
	option dns_server 2001:470:20::2
	
config gw6c advanced
	#Location where to store configuration file
	option gw6c_conf	/tmp/gw6c.conf
	option gw6c_dir		/usr/share/gw6c
	option auto_retry	yes
	option retry_delay	30
	option keepalive	yes
	#keepalive interval
	option interval		30
	#tunnel_mode <v6v4|v6udpv4|v6anyv4|v4v6>
	option if_tunnel_mode	v6anyv4
	option if_v6v4		sit1
	option if_v6udpv4	tun
	option if_v4v6		sit0
	option client_v4	auto
	option client_v6	auto
	option template		openwrt
	option proxy_client	no

config gw6c broker
	option broker_list	/tmp/gw6c-broker-list.txt
	option last_server	/tmp/gw6c-last-server.txt
	# Always use last known working server? <yes|no>
	option always_same_serv	no

config gw6c logging
	option log_console	0
	option log_stderr	1
	option log_file		0
	option log_syslog	0
	
	option log_filename	/var/log/gw6c.log
	option log_rotation	yes
	#Max size when using log file rotation
	#possible values: 16|32|128|1024
	option log_maxsize	32
	
	#<USER|LOCAL[0-7]>
	option syslog_facility	USER

          以上设置完成,基本上就可以了。

          P.S.: 刷完OpenWrt后,路由器的Led灯是不亮的,可以在System的Led里面设置。怎么设置?来张图吧

       led设置图

P.S.:为什么我还是连不上ipv6?检查过程,检查路由器的ipv6联通状态。用putty,ssh到路由器,ping ipv6.google.com,如果能够正常,说明路由器的ipv6链接正常。否则,说明你的gw6c连接的服务器有问题,请重新启动gw6c服务(/etc/init.d/gw6c restart)。期待能够正差吧,这个跟rp可能有点关系。不用瞎试验别的东西,没用!OpenWrt官方的ipv6_HowTo, 的关于iptables的设置在我们这儿是不需要的。如果多次都不行,尝试重启路由器,或者,换其他时间段再试。




Host by is-Programmer.com | Power by Chito 1.3.3 beta | © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee