找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 458|回复: 3

网络调整记录:单线复用 & 无PD IPv6 & TPLink AC

[复制链接]
本帖最后由 mht 于 2024-2-4 13:42 编辑

摘要:保姆级在最新版本Openwrt(23.05.2)下双线复用实现上网和IPTV,无PD前缀配置中继或Nat6来取得IPv6,IPv6端口开放及转发,与TPLink R479GP-AC 配合,网速慢的处理等。

帮朋友设置网络过程中遇到了一些问题,所以想着记录一下。本人不是专业人员,无法保证方法通用性,甚至可能是错误的
1楼按流水账的方式记录设置过程,2楼会统一列出修改的配置文件。

一、需求及方案


原网络(图左)是门口多媒体箱放置光猫和TPLink R479GP-AC一体机,光猫接客厅的电视机顶盒;R479GP拉了一根线到客厅角落的小机柜,外带若干AP和网线接口。
运营商提供的IPv6只给了一个/64的IP,没有PD前缀。是支持中继的,但是R479GP的“桥接模式”没有生效,开不开客户端都取不到IPv6地址。
(R479GP的硬件版本为:V3.0,软件:1.0.10 Build 200928,TPLink软件支持非常不友好,也许新的硬件版本已解决了此问题)
而多媒体箱太小,已放不下更多的硬件(软路由都塞不进去,路由拆出主板有可能可以放下)。
也尝试过多拉一条线到机柜,结果原来的线完全拉不动。
最终定下的方案(图右),充分利用原来IPTV的线,只要复用一下原来IPTV的线就可以了。新拉两条线被电视柜挡住,完全看不见,不影响观感。
Openwrt路由用一个闲置的 Redmi AC2100,软件更新到最新的23.05.2。


二、单线复用设置
用管理员账号进光猫,网络连接设置中,Internet连接,去掉LAN口的绑定,其他无需处理;IPTV视本地情况路由IPOE或桥接,并取消端口绑定,记住IPTV的VLAN设置,比如是45
设置Vlan绑定,将IPTV的用户侧VLAN设置为45(同上),并绑定到LAN1口。



准备将AC2100的WAN接光猫,LAN1接回R479GP,LAN2接机柜里的设备,LAN3接IPTV机顶盒。先将AC2100连接到光猫的LAN1口,其他口也不要再连接设备了。
在  网络 - 接口 - 接口- br-lan 点“配置”,”网桥VLAN过滤“ 里可以看到LAN1-LAN3三个网口,但是没有以前“交换机”里的WAN和CPU设置。
但是不用怕,WAN是可以加进来的,而界面里的“本地”大约可以认为就是之前的“CPU”。
在“常规设备选项”-“网桥端口”中将“WAN”选中,再转到“网桥VLAN过滤”做如下图设置:


Vlan1 : 上网用的内网,排除了lan3,因为它被保留给了iptv
Vlan2:光猫除Vlan之外的流量,我们直接访问光猫,甚至在内网直接连接iptv都需要。
Vlan31:上网用的,与光猫设置的Vlan对应。
Vlan35:注意,没有勾“本地”,因为IPTV的流量不需要管理,直接连接到了lan3。
注意:保存完后,千万不要点”保存并应用“,点完就只能等超时恢复设置了。
因为lan被划到了Vlan1,所以要在 接口 - lan 里设置,将 设备改成 br-lan.1。这时候才可以点”保存并应用“。
另外,这么命名容易引发误会(比如wan里也要写成br-lan.31),因此实际下并不这么改,记录下来只是我在这卡死了N次,教训。

实作:设备 - br-lan - 常规设备选项 - 网桥端口,去掉lan3,因为我们要保留给iptv。
设备 - ”添加设备配置“ ,”设备类型“选”网桥设备“,设备名:br-modem,网桥端口:lan3 + wan。转到 ”网桥VLAN过滤“ 做如下设置:




原理其实同上,但是不修改br-lan,看起来舒服一些。
Vlan1是光猫非VLAN的流量,如果不想管理光猫VLAN1也可以不划。
当然如果不划Vlan1,就要另创建一个接口来启动这个网桥设备,还不如一起设置。
设置PPPOE拨号,接口 - wan,协议 “PPOE”,从DHCP切过来要先点一下“切换协议”。设备选“br-modem.10",用户名密码按实际填写。
如果修改DNS服务器,可以切换到”高级设置“ - 去掉 “自动获取DNS服务器”就可以在下面的“使用自定义的DNS服务器”里填写想要的DNS。
如果要在内网直接访问光猫,可以 “接口” - “添加新接口” ,名称:modem,协议:DHCP客户端,设备:br-modem.10
创建后,编辑,高级设置里去掉”使用默认网关“的勾选。并将防火墙设置,设置为 wan。
设置完成后,大约可以看到如下:



确认可以看到modem有IPv4地址,这时可以直接通过光猫的IP来访问光猫了。wan应该也拨号成功了,取得了IPv4地址,lan1和lan2都可以正常访问外网。
如果支持IPv6,Openwrt会自动生成一个 "wan_6" 的接口,可以看到IPv6地址。
将机顶盒连接到lan3口,机顶盒应该可以正常播放,如果原来组播正常(电信机顶盒如果组播不正常会在切换节目时会显示“已切换到其他源”,切换节目也会更慢),现在也应该正常。(另,在网桥里开igmp嗅探,组播可能会失效)

三、IPv6中继 和 nat6 (nat66)
如果运营商下发PD前缀,openwrt不需要额外的设置就可以让所有客户端都分配到IPv6。那你可以跳过这一部分。

1)IPv6 中继:如果有 /64的前缀,openwrt会建议优先使用中继。
https://openwrt.org/docs/guide-user/network/ipv6/ipv6.nat6
Avoid using NAT66 and better use relay mode if you are provided with a /64 prefix.

先确认拨号后自动生成了一个 wan_6 的接口,并且可以取得 IPv6地址;或者wan6接口上取得了IPv6地址。
如果有wan_6接口,那么我们修改 wan,否则我们修改 wan6。
接口 - wan (或wan6) - DHCP服务器 : 将RA服务、DHCPv6、NDP代理都设置成“中继模式”,并勾选 “指定的主接口”。
接口 - lan - IPv6设备: 将RA服务、DHCPv6、NDP代理都设置成“中继模式”
喜欢探究的可以参考下,对应的 dhcp 配置文件为:
  1. # https://openwrt.org/docs/guide-user/network/ipv6/configuration#ipv6_relay
  2. # cat /etc/config/dhcp
  3. config dhcp lan
  4.     option dhcpv6 relay
  5.     option ra relay
  6.     option ndp relay
  7.     ...

  8. config dhcp wan6
  9.     option dhcpv6 relay
  10.     option ra relay
  11.     option ndp relay
  12.     option master 1
  13.     option interface wan6
复制代码
至此中继的配置就完成,客户端也可以取得IPv6地址。但是,ping公网的IPv6地址却失败了,此时如果ping一下wan口上的ipv6地址,就一切都正常了。
这个神奇的问题在网上很多人报告,甚至还找到了openwrt的BUG报告。(relay mode makes it impossible to connect to the IPv6 Internet.
大概可能的原因是,对于中继模式,openwrt没法发现 新”邻居“ (可以在 状态-路由-IPv6路由-IPv6邻居看到你有多少邻居),所以就没办法正确路由。
但当你ping它一下,就发现了这个邻居。如果此时lan设置了“学习路由”(网络-接口-lan-DHCP服务器-IPv6设置-NDP代理选中继或混合,下一行就会出现),那么就会自动添加一条针对邻居的路由,网络也就正常了。
网上有各种各样的方法,比如有说删除ULA就能用,有将wan的前缀设置给ULA之类的,我试了都没用。
最后在本站找到了一个解决办法, 2021最新OpenWrt 路由 IPv6 正确上网配置 ,的置顶二楼,Knlvz 提供的方法,看似简单粗暴,但却是有效的。
  1. mkdir -p /etc/ppp/ip-up.d
  2. vi /etc/ppp/ip-up.d/00-pppoe-ipv6.sh

  3. #!/bin/sh
  4. [ "$1" = "pppoe-wan" ] || exit 0
  5. ip -6 route add default dev br-lan table 6
  6. ip -6 rule add iif $1 lookup 6

  7. chmod +x /etc/ppp/ip-up.d/00-pppoe-ipv6.sh
复制代码
具体请看原贴。

设置成功后,IPv6中继就配置完成了,客户机应该都可以取得IPv6地址,并可以访问IPv6网站。
可以通过 IPv6 连接测试 网站来确认IPv6 是否正常,还可以通过 ipw.cn 来判断 本机的设置是ipv6优先还是v4优先。

2)端口开放
中继的IPv6开放指定机器的端口,首先,要确定运营商给的地址有哪一部分是不变的。绝大部分情况下都是最后4段保持不变(根据MAC生成)。
IPv6的mask就要写成:::11:22:33:44/::ffff:ffff:ffff:ffff。其实openwrt也可以用 负号来表示mask,比如上面的相当于 ::11:22:33:44/-64,有兴趣可以看下:
  1. https://openwrt.org/docs/guide-user/firewall/fw3_configurations/fw3_ipv6_examples
  2. The negative netmask notation works only with OpenWrt firewall:
  3. /-64 equivalent for /::ffff:ffff:ffff:ffff
  4. /-56 equivalent for /::ff:ffff:ffff:ffff:ffff
  5. /-48 equivalent for /::ffff:ffff:ffff:ffff:ffff
复制代码
Windows 和 iphone 等为了隐私默认会在每次连接时随机生成的MAC去申请一个临时的IP。在windows下使用 ipconfig可以看到,有IPv6 地址和临时IPv6地址,临时的那个每次都在变。我们写防火墙规则时要根据不变的那个。
以为 2400:1:2:3:4:5:6:7 放行 8080 端口为例:
网络 - 防火墙 - 通信规则 - “添加”
名称: Allow-PortAccept-8080 (自己起个名字)、源区域:wan
目标区域:如果是要放开路由器本身的端口(比如想要远程访问路由器),那么选 “设备(输入)”,如果是要访问lan上的设备,那么选择“lan"
目标地址:在下面 下拉框最下面有个“自定义”,填入 ::4:5:6:7/-64。
目标端口:8080 、 操作:接受
在 “高级设置” 项,“地址族限制”,改成IPv6
对应的配置文件修改为:
  1. #https://openwrt.org/docs/guide-user/firewall/fw3_configurations/fw3_ipv6_examples
  2. #cat /etc/config/firewall
  3. config rule
  4.         option src 'wan'
  5.         option proto 'tcp'
  6.         option dest 'lan'
  7.         option dest_ip '<span style="background-color: rgb(255, 255, 255);"> ::4:5:6:7/-64</span>'
  8.         option dest_port '8080'
  9.         option family 'ipv6'
  10.         option target 'ACCEPT'
复制代码
注意:Windows本身还有防火墙,要同时打开Windows本身防火墙的端口才可以访问。如果不确定可以先关闭Windows的防火墙,调通了再去设置。

3) IPv6 nat6(nat66)
虽然大家都不推荐nat6,甚至认为它有悖IPv6所代表的精神。但中继需要每个客户端用MAC都要向运营商去请求IP地址,总觉得怪怪的。各有选择的理由吧。
如果你有wan6,协议是DHCPv6,而且可以正常取得IPv6地址,可能不需要进行下面这个设置。
修改 接口 - wan - 高级设置 - 获取IPv6地址:已禁用。
如果你没有就没有wan6,那么可以新建一个 dhcpv6客户端,命名为 wan6。
修改 接口 - wan6 - 设备:从原来的 wan,修改成 “接口别名 @wan”,注意下防火墙,应该是wan。
(如果想修改DNS,在高级设置里去掉“自动获取DNS服务器”的选中,在“自定义的DNS服务器”中填写想要的DNS服务器)
设置成功后,在wan6 接口后面应该可以看到 IPv6 地址。以下的操作都必须在正常取得ipv6地址后才可以继续。

以下参考:https://openwrt.org/docs/guide-user/network/ipv6/ipv6.nat6 , 进行设置。
网络 - 防火墙 - 常规设置 - 区域 - wan - 编辑
高级设置 - IPv6伪装,选上

有兴趣可以看下对应的配置文件为:
  1. #cat /etc/config/firewall
  2. config zone
  3.         option name 'wan'
  4.         option masq6 '1'
复制代码


使用putty连接路由器,输入如下命令:
  1. uci set network.wan6.sourcefilter="0"
  2. uci commit network
  3. service network restart
复制代码
有兴趣可以看下对应的配置文件修改为:
  1. #cat /etc/config/network
  2. config interface 'wan6'
  3.         option device '@wan'
  4.         option sourcefilter '0'
复制代码

IPv6 ULA前缀,将第一个字符从"f"修改为"d"
这一步是因为,ULA第一位为"f",客户端会认为自己没有可以访问外网的IPv6地址,所以就不会积极的使用IPv6进行访问。
https://openwrt.org/docs/guide-user/network/ipv6/ipv6.nat6?rev=1648383468
The default ULA (Unique local address) prefix represents an address that is not globally routed on the internet by design. A lot of clients will prefer IPv4 over a ULA IPv6 address if there is no global IPv6 address assigned, so you may need to change your existing ULA prefix to indicate a global address to ensure traffic goes over IPv6 by default when possible.
When changing the ULA prefix, it doesn't necessarily have to start with d, but to avoid conflicts, you should use a prefix that is not being used yet. The letters are unassigned and therefore safe choices.

提交完设置后,可能需要重启一下路由器。正常情况下客户端应该可以拿到以ULA开头的IP地址,而且可以正常访问外网的IPv6网站。

4)端口转发(端口映射)
以将外部端口 8123,映射到 某台机器的 8080 端口为例:(注:原生或中继没有必要使用映射,这里仅针对nat6)
网络 - 防火墙 - 端口转发 - “添加”
名称:你想起的名字 、 地址族:仅IPv6、协议:按需,源区域:wan,外部端口:8123,目标区域:lan,
内部IP地址: 可以直接选,或在自定义那填写完整的不会变的那个以ULA开头的IPv6地址。(不能选以fe80开头的地址)
内部端口:8080
同样要注意,本机的防火墙要开放8080端口的访问。

四、与TPLink R479GP-AC配合工作
开始想的是R479GP关闭DHCP,不用wan口,把AC2100的lan口接R479GP的lan口(标准的交换机用法),但是遇到了AC不工作的问题,所有AP都不能正常上线,AP上的灯一直在闪烁。
类似的问题在论坛上也有报告 (Tplink ac+ap配合软路由问题),后来搜到tplink自己的说明:
https://smb.tp-link.com.cn/service/detail_article_4196.html
[2] AP连接方式不正确或者路由器网络设置存在问题。如路由器地址池不足,AP获取到网络中其他DHCP服务器分配的IP,AP指示灯闪烁;

AP还必须由他自己的DHCP来分配IP,没办法,使用TPLink不就图他的AC控制器嘛,只能迁就它了。
需要将AC2100和R479GP的地址段设置成同一地址段,比如我们改AC2100的地址:
网络 - 接口 - 接口 - lan,
协议:改成“静态地址
IPv4地址:改成和R479GP同网段,又不能相同,比如R479GP是192.168.5.1,这里可以设置成192.168.5.2。
IPv4网关:保持空的,我看做单臂的都喜欢把这个又指向主路由,即192.168.5.1,但我想不出这么设的用处是什么。
相反,我把 “高级设置” - 使用默认网关,给去掉了。反正目前用着没什么问题。(我试过网关设成192.168.5.1也没什么问题)
DHCP服务器 - 基本设置 - 忽略此接口,勾选上。
这里 “保存并应用”,会弹出提示,告诉你改了后可能会失联,这里可以选第三项来强制应用。(你应用后就真失联了,只能强制)
因为没有DHCP,在R479GP设置好之前,如果我们还想访问AC2100,只能自己设置IP地址。比如,Windows的网络,可以修改适配器的IPv4设置:


对AC2100的操作就结束,下面将AC2100的lan1或lan2口连接到R479GP的任意lan口(注意,不是连到wan)
通过有线或无线方式访问R479GP,
基本设置 - LAN设置 - 接口设置 : 模式设置:手动,IP地址:192.168.5.1
基本设置 - LAN设置 - DHCP :开始地址:192.168.5.20 (个人习惯,保留前面一些地址给静态设置用,比如AC2100就用到了 .2,不自动分配就不会有冲突。)
网关地址:192.168.5.2,首选DNS:192.168.5.2
保存后,可能需要重启一下R479GP,或者拨一下网线。重新分配IP后会发现,默认网关和DNS指向了192.168.5.2,DHCP指向是192.168.5.1。
如果一切正常,电脑、手机现在都可以正常上网、访问IPv6网址了。

五、AC2100网速慢的处理
在网速测试时,不管是手机还是电脑下载都只能达到300Mb左右,而用TPLINK拨号或电脑直接拨号速度都可以达到标称的1000Mb,网速直接打了三折。
还原AC2100,只设置PPPOE拨号(排除其他设置的影响)还是只有300Mb,但是WAN口设置到dhcp,内网拷贝却可以达到1000Mb。
这问题搞到我都想放弃了,后来在一个论坛上看也有人问网速的问题,有人回了一句,有没有开启硬件加速。
突然想到,我也没开硬件加速!!!前面发现就PPPOE达不到速度,还看了下CPU占用,大约有个60多,感觉还能抗住就没往这个方向想,还是经验太少了。
网络 - 防火墙 - 常规设置 - 路由/NAT分载,软件流量分载选中,硬件流量分载 选中。
网速立即可以跑满了。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
 楼主| | 显示全部楼层
本帖最后由 mht 于 2024-1-25 04:49 编辑

总结一下修改的文件,以na6的设置为例,仅列出初始安装版本被修改的部分内容:
1。 /etc/config/network

  1. config globals 'globals'
  2.         option ula_prefix 'd123:456:789::/48'      #ULA前缀,首字符从 ‘f' 改为 ’d'
  3.         option packet_steering '1'

  4. config interface 'lan'
  5.         option device 'br-lan'
  6.         option proto 'static'
  7.         option ipaddr '192.168.1.2' #设置为与主路由相同网段的不冲突IP
  8.         option netmask '255.255.255.0'
  9.         option ip6assign '60'
  10.         option gateway '192.168.1.1'

  11. config interface 'wan'
  12.         option device 'br-modem.31' #拨号用的设备,也可以写成wan.31
  13.         option proto 'pppoe'
  14.         option username '用户名'
  15.         option password '密码'
  16.         option ipv6 '0'

  17. config interface 'wan6'
  18.         option device '@wan' # wan的别名
  19.         option proto 'dhcpv6'
  20.         option reqaddress 'try'
  21.         option reqprefix 'no'
  22.         option sourcefilter '0'

  23. config interface 'modem'
  24.         option proto 'dhcp'
  25.         option device 'br-modem.1' #访问光猫的设备
  26.         option peerdns '0'

  27. #以下为br-modem的Vlan划分
  28. config device
  29.         option type 'bridge'
  30.         option name 'br-modem'
  31.         list ports 'lan3'
  32.         list ports 'wan'

  33. config bridge-vlan
  34.         option device 'br-modem'
  35.         option vlan '1'
  36.         list ports 'wan'

复制代码

2。/etc/config/dhcp

  1. config dhcp 'lan'
  2.         option interface 'lan'
  3.         option start '100'
  4.         option limit '150'
  5.         option leasetime '12h'
  6.         option dhcpv4 'server'
  7.         option ra 'server'     #RA设置为服务器模式
  8.         option ra_default '1' #RA默认路由器设置为:在可用的前缀上
  9.         option dynamicdhcp '0' #关闭IPv4的DHCP,让主路由做DHCP
复制代码


3。/etc/config/firewall

  1. config defaults
  2.         option input 'REJECT'
  3.         option output 'ACCEPT'
  4.         option forward 'REJECT'
  5.         option synflood_protect '1'
  6.         option flow_offloading '1'         #路由/NAT分载
  7.         option flow_offloading_hw '1'   #硬件加速

  8. config zone
  9.         option name 'wan'
  10.         option input 'REJECT'
  11.         option output 'ACCEPT'
  12.         option forward 'REJECT'
  13.         option masq '1'    #
  14.         option mtu_fix '1'
  15.         list network 'wan'
  16.         list network 'wan6'
  17.         list network 'modem'
  18.         option masq6 '1'  # IPV6伪装

  19. config redirect
  20.         option dest 'lan'
  21.         option target 'DNAT'  # 端口转发示例
  22.         option name 'mytest'
  23.         option family 'ipv6'
  24.         list proto 'tcp'
  25.         option src 'wan'
  26.         option src_dport '8123'
  27.         option dest_ip 'd123:456:789:0:111:222:333:444'
  28.         option dest_port '8080'
复制代码
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

这个总结得很全面,很到位。
经常见到吐槽设置了v6中继模式获取到地址,但不能访问的兄弟,快来这找答案...
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

非常详细,感谢分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-29 02:18

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表