路逢剑客须呈剑
不是诗人莫献诗
       

信息黄埔校园网ipv6路由处理

北邮校内总共有两种方法可以实现

两个方法都有自己的优劣,自行抉择。
设备 NeWIFI 3(D2) Openwrt base system.
网络环境:ipv6 不需要登陆,ipv4 需要。学校网关代拨,不需要自行pppoe。

方法1. IPV4 NAT + IPV6 Bridge

原理

  • 路由器NAT处理ipv4数据包
  • 对于ipv6,直接从wan6对应的device 转发到 br-lan

优劣势

  • 非常稳定,不会出bug
  • 路由器没有v6,无法挂PT(byr pt)

代码

实现这个原理需要

ebtables -t broute -A BROUTING -p ! ipv6 -j DROP -i apclii0
brctl addif br-lan apclii0

解释下,由于沙邮为全WiFi,所以我选择使用我的 5G网卡作为一个Client连接到学校的AP上。这个wireless connection的名字就是你要连的wifi的SSID

创建方式:

  • 纯WIFI用户
    网络.无线.扫描
    选择后点击加入网络
    新的网络名称(随意,我用wwan)
    选择防火墙区域**wan** 

    截至这一步,你完成IPV4 NAT。下一步:

    网络.接口
    把最下面的 IPv6 ULA前缀 里的地址删干净
    保存并应用
    添加新接口
    新接口名称(随意,我用wwan6)
    协议,dhcpv6客户端
    无线网络选择你的待桥接SSID
    提交

    截至这一步,你完成了路由器ipv6的获取,如果你没获取就完蛋啦,不对,你就没法上ipv6了。
    在这里你可能遇见你的5G网卡不能同时创建AP和Client,那就是网卡不支持或者固件垃圾,建议更换固件(例如使用原厂驱动的Pandorabox)

  • 有线用户

    你的wan6应该直接是好的。不需要任何操作。否则你就无法获取ipv6。

代码应用:

  • 无线用户部分
    ebtables -t broute -A BROUTING -p ! ipv6 -j DROP -i apclii0
    brctl addif br-lan apclii0

    apclii0是你的无线网卡在wan上的链接,这个一般固件不同而不同,可以通过ssh到路由器上ifconfig看,一般有类似数据的就是你的无线网卡。而br-lan就是你的LAN域(WIFI AP + LAN)。

    apclii0   Link encap:Ethernet  HWaddr 22:76:XX:43:XX:AC  
          inet addr:10.122.232.XX  Bcast:10.122.255.255  Mask:255.255.192.0
          inet6 addr: 2001:da8:215:8f01:XXXX:XXff:fXX3:6XXc/64 Scope:Global
          inet6 addr: fe80::2076:XXff:fXX3:6XXc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:319321 errors:0 dropped:0 overruns:0 frame:0
          TX packets:237847 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
  • 有线用户部分
    ebtables -t broute -A BROUTING -p ! ipv6 -j DROP -i eth0.2
    brctl addif br-lan eth0.2

    这个eth0.2的找法和apclii0一样

  • 通用部分
    但是每次重启后你的操作就会消失,所以我们要把它放到/etc/rc.local中去(rc.local自己补知识),但由于这个操作在系统刚启动,WiFi初始化没完成的时候操作,会产生Unexpected Bugs,所以我们要等启动完了再操作。但是由于rc.local是阻塞的,所以我们要将这段代码放到脚本里后台执行,启动时如果rc.local产生了输出也会产生bug,所以我们这么做:
    1. /etc/config目录(关机不清空)下新建boot.sh
    2. 内容如下,sleep 20(睡眠20秒)用来保证WiFi已经连接
      #!/bin/sh
      sleep 20
      ebtables -t broute -A BROUTING -p ! ipv6 -j DROP -i apclii0
      brctl addif br-lan apclii0
    3. chmod +x boot.sh(执行权限)
    4. 编辑 /etc/rc.local,在exit 0前加入
      /etc/config/boot.sh > /dev/null 2>&1 &

      后半部分原理自行百度

    5. 避免odhcpd 分配ipv6与桥接冲突
      /etc/init.d/odhcpd stop
      /etc/init.d/odhcpd disable
    6. 重启并检测

方法2. IPV4 NAT + IPV6 Delay

原理

  • 路由器NAT处理ipv4数据包
  • 对于ipv6,进行中继。
  • 校园v6使用SLAAC模式发布,所以进行ndp relay,由于我并未仔细研究,不再做讲解避免误导

优劣势

  • 不稳定,usually has bug
  • 路由器有v6,可以挂PT

创建方式

准备工作:

  1. 直到创建了wwan6(wifi用户),或者你本来就有wan6(有线用户)
    这里进行一个定义,将wwan6wan6定义为net_interface_6,方便后面处理
  2. 熟练使用ssh

代码应用:

  • 通用
    /etc/config/dhcp部分代码修改如下
    config dhcp 'lan'
    option interface 'lan'
    ……(省略)
    option ndp 'relay'
    option ra 'relay'
    config dhcp 'net_interface_6'
    option interface 'net_interface_6'
    #option ignore '1' (注释掉这行)
    option ndp 'relay'
    option ra 'relay'
    option master '1'

    同时再如下操作:

    所以还需要给lan口增加你所在网段的路由:
    route -A inet6 add 2001:da8:201:xxxx::/64 dev br-lan
    或者用:
    iproute2:ip -6 r a 2001:da8:201:xxxx::/64 dev br-lan

    最后重启生效:

    如果有service/systemctl
    service network restart
    service odhcpd restart
    没有则
    /etc/init.d/network restart
    /etc/init.d/odhcpd restart

参考文章
1.OpenWRT IPv6 三种配置方式(NEED OVER WALL)
2.OpenWRT 设置 IPv6 的问题

赞(0)
未经允许请勿转载:Makira的咸鱼小站 » 信息黄埔校园网ipv6路由处理

相关推荐

  • 暂无文章

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    沙发,Maki太强了

    Sixar 8个月前 (05-17) 这家伙可能用了美佬的代理 谷歌浏览器Windows 10回复