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