信息黄埔校园网路由器IPV6配置
本文最后更新于 766 天前,其中的信息可能已经有所发展或是发生改变。

北邮 国内高校的通用方案之一介绍

给每栋楼一个/64,然后SLAAC拨出去,用户自行通过NDP获取和发现ipv6`。
针对该方案有桥接和NDP Relay两种方案。都有自己的优势和缺点,自行抉择,两种方法在BUPT和UCAS都已经过验证。

环境介绍

设备

  • NeWIFI 3 Openwrt
  • N5015 X86 openwrt

网络环境

  • ipv6 无认证,ipv4 有认证
  • 学校网关代拨,不需要自行pppoe

方案介绍

NDP Relay

推荐方案!

原理

  • 针对 IPV4 进行 NAT
  • 针对 IPV6 SLAAC 进行 NDP Relay

Tradeoff

  • 不稳定,usually has bug 2021年开始已经稳定修复
  • 路由器有v6,可以挂PT

实现

准备工作

  • 删除wan6创建wwan6(wifi接入用户),或者使用默认的wan6(有线接入用户)
  • 为方便描述,将wwan6或wan6统一定义为INET6,在后续的配置文件中请自行替换
  • 熟练使用ssh

配置文件:

如果你是最新版的Openwrt,对/etc/config/dhcp的修改可以在LUCI界面完成:

  • LAN 接口:设置IPV6DHCPv6为禁用,其他为中继
  • INET6接口: 设置为 IPV6 主接口

否则修改配置文件 /etc/config/dhcp 的部分内容如下:

config dhcp 'lan'
    option interface 'lan'
    ……(省略)
    option ndp 'relay'
    option ra 'relay'

config dhcp 'INET6'
    option interface 'INET6'
    #option ignore '1' (注释掉这行)
    option ndp 'relay'
    option ra 'relay'
    option master '1'

同时再配置路由:

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

备注

  • 配置路由是因为目前NDP转发存在一些问题,需要这么操作来保持客户端持续被发现。
  • 务必不要打开IGMP组播嗅探,会拦截NDP pack

Ebtables Bridge

原理

  • 针对 IPV4 进行 NAT
  • 针对所有 IPV6 数据包进行 转发

Tradeoff

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

实现

检查环境

由于沙邮为全WiFi,所以我使用WIFI的5Ghz作为一个Client连接到学校的AP上,同时也作为AP发射信号。如果你的驱动不支持,会无法同时作为 AP & Client。

  • WIFI接入用户
    apclii0是无线网卡在wan上的接口,因固件而异。可以ssh到路由器上ifconfig看,一般有类似数据的就是你的无线网卡。而br-lan就是你的LAN域(WIFI AP + LAN)。

    root@Openwrt:~ $ ifconfig
    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
  • 有线接入用户
    如果物理接口选对,wan6应该直接是好的。不需要任何操作。否则你就无法获取ipv6。

配置网桥:

请跟据自己的接口配置寻找WAN接口(apclii0或是eth0.2或是eth1之类的)

  • WIFI接入用户
ebtables -t broute -A BROUTING -p ! ipv6 -j DROP -i apclii0
brctl addif br-lan apclii0
  • 有线接入用户
    
    ebtables -t broute -A BROUTING -p ! ipv6 -j DROP -i eth0.2
    brctl addif br-lan eth0.2

持久化:

每次重启后操作会消失,因此需要将其置于/etc/rc.local中持久化(rc.local自己补知识)。但由于系统刚启动时WiFi初始化没完成,直接运行会产生未预期行为,因此要等启动完了再操作。
又由于rc.local是阻塞的,所以将这段代码放到脚本里后台执行,同时如果启动时如果rc.local产生了输出也会导致Bug,因此如下操作:

  • 在/etc/config目录(关机不清空)下新建 boot.sh

  • 内容如下,sleep 20(睡眠20秒)用来保证作为Client的WiFi已经上

    #!/bin/sh
    sleep 20 # 如果你是有线网可以不需要这一条
    ebtables -t broute -A BROUTING -p ! ipv6 -j DROP -i apclii0
    brctl addif br-lan apclii0
  • chmod +x boot.sh(执行权限)

  • 编辑 /etc/rc.local , 在 exit 0 前加入

    /etc/config/boot.sh > /dev/null 2>&1 &
  • 避免odhcpd 分配ipv6与桥接冲突(不要把自己的v6暴露到外网)

    /etc/init.d/odhcpd stop
    /etc/init.d/odhcpd disable

    重启并检测

温馨提醒

不要把网线插到LAN口,否则你的底裤不保!

一次 UCAS 校园网 IPV6 RA 污染的屏蔽及反攻


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

评论

  1. Sixar
    Windows Chrome 74.0.3729.131
    6 年前
    2019-5-17 0:48:45

    沙发,Maki太强了

  2. 匿名
    Macintosh Safari 14.0.3
    4 年前
    2021-4-06 19:37:32

    tql

  3. 匿名
    Linux Firefox 89.0
    3 年前
    2021-6-06 9:30:13

    byr支持一下

  4. 匿名
    Windows Chrome 86.0.4240.198
    2 年前
    2023-3-30 18:17:58

    强无敌,感谢!

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇