美文网首页
校园网环境配置 OpenWRT 路由器作为 IPv6 网关(XJ

校园网环境配置 OpenWRT 路由器作为 IPv6 网关(XJ

作者: 王工二一 | 来源:发表于2018-05-11 20:19 被阅读0次

    为了用 IPv6 访问一些机器学习的相关教程,最近又搞了一下路由器!

    准备工作:

    1. 支持刷固件的路由器;
    2. 能够正常访问的镜像源;
    3. WinSCP(官网下载即可)
    4. 能连 SSH 的东西(推荐使用 PuTTY 本人使用 Linux 子系统,别问为什么!)
    5. 良好的心态;
    6. 这篇教程。

    下载对应版本的 OpenWRT 固件(我用的是潘多拉17.09)刷路由器系统,完成后按以下方法配置(文章内部代码已经按照当前校园网络环境 (XJTU) 进行修改,可以无视相关解释直接将其复制到相应目录)

    路由器刷机

    此部分参考各厂商相应教程,不过听说有一个叫 breed 的固件,刷了以后好像路由器就不容易变砖了!

    更改路由器的默认镜像源以及准备工作

    使用 SSH 连接路由器,默认情况下为:

    # SSH
    ssh root@192.168.1.1
    

    密码为admin,如果弹出一个潘多拉的界面,就说明连上了!

    使用 WinSCP 访问路由器路径/etc/opkg按如下形式修改文件distfeeds.conf

    # WinSCP
    src/gz 17.09_core http://pandorabox.leoslion.top/pandorabox/17.09/targets/ralink/mt7620/packages
    src/gz 17.09_base http://pandorabox.leoslion.top/pandorabox/17.09/packages/mipsel_24kec_dsp/base
    src/gz 17.09_lafite http://pandorabox.leoslion.top/pandorabox/17.09/packages/mipsel_24kec_dsp/lafite
    src/gz 17.09_luci http://pandorabox.leoslion.top/pandorabox/17.09/packages/mipsel_24kec_dsp/luci
    src/gz 17.09_mtkdrv http://pandorabox.leoslion.top/pandorabox/17.09/packages/mipsel_24kec_dsp/mtkdrv
    src/gz 17.09_newifi http://pandorabox.leoslion.top/pandorabox/17.09/packages/mipsel_24kec_dsp/newifi
    src/gz 17.09_packages http://pandorabox.leoslion.top/pandorabox/17.09/packages/mipsel_24kec_dsp/packages
    

    顺便一提,WinSCP 可以直接启动 PuTTY !还蛮好用的!

    OpenWRT 路由器作为 IPv6 网关的配置

    OpenWRT 是一种嵌入式 Linux 操作系统,广泛应用于家用路由器/网关。本文将介绍几种在清华校园网中,使用 OpenWRT 路由器为接入设备提供 IPv6 服务的配置方法。本文内容综合有多位贡献者,如有疑问、建议,可以参与内容讨论

    IPv6 NAT

    虽然 IETF 的设计中,IPv6 不再有 NAT (网络地址转换), 但 Linux 内核从 3.7 版本开始实现了 IPv6 的 NAT。早年也曾有过 NAT66 等非官方项目,但缺乏维护,目前已经不再推荐使用。OpenWRT IPv6 NAT 配置部分,由 @Blaok 贡献。

    零: 检查内核模块和有用的软件包

    # SSH
    opkg install ip6tables kmod-ipv6 kmod-ipt-nat6
    opkg install kmod-ip6tables kmod-ip6tables-extra
    opkg install luci-proto-ipv6 iputils-traceroute6
    

    kmod开头的内核模块一般无法通过 opkg 直接安装,其他软件包虽然可以通过opkg install直接安装,但会多占路由器存储空间,推荐在编译固件时就将这些软件包都放入固件

    上述软件包除kmod-ipv6外并非必须。kmod-ipt-nat6提供IPv6 NAT支持,ip6tables kmod-ip6tables kmod-ip6tables-extra等提供 IPv6 防火墙,luci-proto-ipv6为 LuCI 提供 IPv6 设置选项,iputils-traceroute6为 IPv6 提供 traceroute 功能(mtr是个不错的支持双栈的traceroute替代品,如果路由器存储空间够大的话)

    总之安装 ip6tables 和 kmod-ipt-nat6。

    # SSH
    opkg update
    opkg install ip6tables
    opkg install kmod-ipt-nat6
    

    壹: 打开 OpenWRT IPv6 私网地址分配

    OpenWRT 默认会分配 IPv6 私网地址,在Network->Interfaces页面底下有个Global network optionsIPv6 ULA-Prefix这里应该有一个随机的fd开头的/64地址,LAN客户端应该能自动获得这个地址范围内的 IPv6 地址,DHCPv6 和 SLAAC 默认都开了

    为了让 OpenWRT 后面的设备始终能够获得 IPv6 网关,需要在Network->Interfaces->LAN下方的DHCP Server部分的IPv6 Settings部分,勾选Always announce default router。否则,由于默认分配的是私网地址,OpenWRT 不会向下游设备公布 IPv6 默认路由(即网关),可能导致路由器上 IPv6 连通但下游设备不通的情况 (感谢@terro提醒)

    使用 WinSCP 更改/etc/config/network文件内容,在config globals 'globals'修改(添加)以下内容:

    option ula_prefix 'AAAA:BBBB:CCCC:DDDD::/64'
    

    更改/etc/config/network文件内容,在config interface 'wan'修改(添加)以下内容:

    option peerdns '0'
    option dns '2001:4860:4860::8844 2001:4860:4860::8888'
    

    更改/etc/config/dhcp文件内容,将config dhcp 'lan'那一栏改为以下内容:

    config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv6 'server'
        option ra 'server'
        option ra_management '1'
        option ra_default '1'
    

    贰: 打开 IPv6 NAT

    客户端有了正确的地址以后,需要在路由器上打开 IPv6 NAT。OpenWRT 默认的防火墙配置不会管 IPv6 的 NAT 表,可以在/etc/firewall.user里面加上

    # WinSCP
    WAN6=pppoe-wan
    LAN=br-lan
    ip6tables -t nat -A POSTROUTING -o $WAN6 -j MASQUERADE
    ip6tables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    ip6tables -A FORWARD -i $LAN -j ACCEPT
    

    WAN6 和 LAN 分别改成外网 IPv6 和内网网卡 ( interface ) 的名字,注意不是防火墙区域 ( zone ) 的名字,也不是 LuCI 里面Network->Interfaces里面看到的名字,而是ifconfig看到的名字

    叁: 正确配置网关

    在路由器上ip -6 route看一下自己的默认网关。如果获得的是

    default from 2001:250:x:x::/64 via fe80::x:x:x:x dev eth0  proto static  metric 512
    

    这样坑爹的网关,在转发 NAT 包的时候会有问题,需要把去掉from 2402:f000:x:x::/64这一部分的以后的默认路由添加到路由表中。可以新建一个/etc/hotplug.d/iface/99-ipv6,它的内容是

    # WinSCP
    #!/bin/sh
    [ "$ACTION" = ifup ] || exit 0
    iface=wan
    [ -z "$iface" -o "$INTERFACE" = "$iface" ] || exit 0
    ip -6 route add `ip -6 route show default|sed -e 's/from [^ ]* //'`
    logger -t IPv6 "Add IPv6 default route."
    

    这里iface是 LuCI 里面Network->Interfaces里面看到的名字,一般叫 wan6 。这个脚本的意思是在 wan6 起来以后读取默认网关,把带 from 的内容去掉,再加到系统路由表里。记得

    # SSH
    chmod +x /etc/hotplug.d/iface/99-ipv6
    

    参考资料:
    在 OpenWrt 上配置原生 IPv6 NAT
    OpenWRT 路由器作为 IPv6 网关的配置
    可以正常访问的镜像源

    相关文章

      网友评论

          本文标题:校园网环境配置 OpenWRT 路由器作为 IPv6 网关(XJ

          本文链接:https://www.haomeiwen.com/subject/dmjqdftx.html