找回密码
 加入我们
搜索
      
查看: 46415|回复: 62

[网络] 软路由 No! 万兆硬路由+ROS交换机IPTV踩坑笔记 (ER2260T+CRS309)

  [复制链接]
发表于 2022-8-6 21:05 | 显示全部楼层 |阅读模式
起因是很快要准备装修改造线路, 都21世纪20年代了再不上光就说不过去了。初期考察了不少方案, 包括各种网吧机、软路由、交换, 最终选定ER2260T 和 CRS309的硬路由+ROS交换机的组合。ER2260T是能买到的最便宜的万兆硬路由 (820r~), CRS309(1600r~)因为可以跑RouterOS和SwitchOS, 既可以做纯交换机也当路由器, 可玩性很高所以看上了。除此之外TP的TL-ST5008F(850r~)也是带网管全光的性价比很高的选择。带网管是为了IPTV设置VLAN和组播相关。选的两款都是无风扇被动散热, 尺寸能塞进大部分弱电箱, 非常适合家用。

▲路由器+交换机, 大小对比

▲PCIe网卡外接, 见以前的帖子

除了主菜以外, 剩下的材料包括:
        1) TP-Link NT521F 单口万兆光卡, AQC100方案, 非AQC107, 仅支持1G/10G, 不支持2.5G。到手还刷了新的固件。 全新 ~200r
        2) Mellanox CX341a 洋垃圾单口万兆光卡 ~130r。买两种网卡测试兼容性 (因为路由是TP的)
        3) Huawei 10G-1310nm-1.4km-SM-SFP+ 光模块 ~15r/pcs
        4) 成品LC-LC单模光纤跳线若干, 单芯约0.6r/m, 因为万兆模块要接两根, 所以实际是1.2r/m
        5) Raisecom USFP-GE/AN-R千兆自适应电口模块。同方案(Marvell 88E111)的很多, 像Avago ABCU-5731ARZ, 因为要求不高而且这玩意基本用不坏, 就挑最便宜的买, ~35r/pcs
        6) Huawei MA5671a ONU (GPON Stick/猫棒), 资料比较多就买了这款, ~140r/pcs

以上全部都是黄鱼采购的价格。TP在淘宝都是指导价, 注意避坑。

构思的主要是单线复用的方案, 即路由及交换机之间只有一根线, 因为考虑到未来弱电箱不会太大。想到两种接法:
        1) 猫棒接路由器光口1, IPTV机顶盒接到路由器电口, 然后一根光纤连接路由器光口2和交换机。这种比较简单, 但因为TP的路由器的网桥缺少组播相关选项, 经过若干失败的尝试没有采纳(后面排查发现可能是别的原因)
        2) 猫棒、IPTV、电口模块全都接到MikroTik的交换机上, 配置VLAN单线接到路由器。这样做的好处是ROS有比较完善的VLAN/IGMP相关设置, 而且也可以利用弱电箱内原有的电口线材, 到时候只要铺设一根光纤到外部机柜(放置路由及其他设备)即可。

然后就是VLAN的划分与配置了。坐标020, 运营商是中国移动, 上网业务VID 41, IPTV IPoE VID 48, 直播源组播VID 900。猫棒设置如下

GPON-STICK.png

不设置PVID, 等下直接配置到trunk端口上。注意右侧的ME:309规则, 本市这里不勾选的话组播流只有数KB/s。VID一般根据当地地市而定, 可以从光猫原始设置查得, 不再赘述。

ROS配置如下
        1) VLAN 48是IPTV专用, 将SFP7口的PVID设置为48并接机顶盒。
        2) VLAN 50专门用来访问猫棒。不打算更改猫棒的默认地址以免出事, 而且默认设置192.168.1.10/24 网关192.168.2.1本身也是很有槽点 :D 之前接路由器的时候不配置VLAN可以直接NAT, 现在想将所有路由功能放到路由器, 暂且这么处理。需要访问猫棒管理web的时候将相应的端口PVID设置成50即可。
        3) 填好VLANs表, 配置好各端口PVID后开启桥上的VLAN Filtering (注意不要勾选Ingress Filtering)。桥上的IGMP Snooping经测试开关无太大影响, 因为本身万兆线速的总交换容量, 加上根据VLAN ID=48进行存储转发, 不开也基本无伤大雅。

ROS-PORT.png

ROS-VLAN.png

ROS-VLAN-FILTERING.png

重点是路由器的配置。此前有讨论帖提到ER2260T只能建一个网桥 (https://www.chiphell.com/forum.php?mod=viewthread&tid=2408711&page=8#pid50175273) 。实际上通过拆解Web管理的http请求并模仿构造就可以创建多个网桥, 并可以将VLAN虚接口绑定到网桥上并打Tag。盲猜相似硬件的ER6160T带Console口可以通过终端进行配置。TP这里真的不厚道。

TP-MULTI-BRIDGES.png

TP-FETCH-F12.png

具体设置为
        1) 在上连交换机的光口上创建VID 41, VID 100的虚接口。
        2) 在同一个物理接口上创建PPPoE连接, 接口指向VLAN 100。

TP-VLAN-IN-SFP.png

其余的设置DHCP, NAT, SLAAC不再赘述, 可以使用快速设置, TP官网有比较详细的文档。

然后重点来了, 打开浏览器DevTools, 找到stok, 构造HTTP请求, 将VLAN 100加入网桥。注意代码中的bindif项, 在这里追加你的VLAN虚接口即可。加完效果如图,下拉列表里V100是选不了的。增加第二个网桥的HTTP请求类似, 将method的set改成add即可。可以抓第一次添加网桥的http进行分析构造, 不再赘述。

TP-BRIDGE.png

性能之类的就不测了, 硬交换肯定能线速转发, MikroTik官网有详细数据。倒是这款交换机做路由的话单纯包转发性能最高只有1280Mbps, 加上NAT后肯定更差, 可以拿来应付普通几百兆宽带, 千兆以上建议还是能上硬路由硬路由吧。ER2260T的性能测试在acwifi上有, 小包也是没能跑满万兆的 , 但比同价位软路由也好不少。这也是选择硬路由的重要原因: 稳定、可靠、性价比。

最后放几张测速图, 移动没得多拨, 上传垃圾(

SPEED-1.png

SPEED-2.png

SPEED-3.png

感谢阅读。附请求HTTP样本, 请自行替换<SESSION_TOKEN>为当前浏览器会话的stok (见Network选项卡), 将bindif修改为自己的, 粘贴到Console执行即可。

  1. var req = fetch("https://192.168.1.1/stok=<SESSION_TOKEN>/ds", {
  2.     "headers": {
  3.         "accept": "text/plain, */*; q=0.01",
  4.         "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
  5.         "cache-control": "no-cache",
  6.         "content-type": "application/json; charset=UTF-8",
  7.         "pragma": "no-cache",
  8.         "sec-ch-ua": ""Chromium";v="104", " Not A;Brand";v="99", "Microsoft Edge";v="104"",
  9.         "sec-ch-ua-mobile": "?0",
  10.         "sec-ch-ua-platform": ""Windows"",
  11.         "sec-fetch-dest": "empty",
  12.         "sec-fetch-mode": "cors",
  13.         "sec-fetch-site": "same-origin",
  14.         "x-requested-with": "XMLHttpRequest"
  15.     },
  16.     "referrer": "https://192.168.1.1/",
  17.     "referrerPolicy": "strict-origin-when-cross-origin",
  18.     "body": '{"method":"add","network":{"table":"bridge","para":{"if_name":"TV","bindif":["GE1","GE2","V48"],"configif":"GE1","stp":"1"}}}',
  19.     "method": "POST",
  20.     "mode": "cors",
  21.     "credentials": "omit"
  22. });
复制代码


Ref:

1) https://www.acwifi.net/19935.html
2) https://www.chiphell.com/thread-2408711-1-1.html
3) https://help.mikrotik.com/docs/display/ROS/Bridge+VLAN+Table
 楼主| 发表于 2022-8-6 21:07 | 显示全部楼层
本帖最后由 xiaowufeixia 于 2022-8-11 13:21 编辑

占楼补充

1. 网络拓扑图
不一定准确, 上次画这种图是四五年前的计网作业了, 大家看个意思就行 (

TOPO

TOPO


2. 没有交换机也可以把IPTV 的VLAN 通出来吗? 答案是可以的。
在连接猫棒的光口(比如10GE1)里面配置多个以太网虚接口指定不同VLAN ID (我的情况是VLAN48-IPTV, VLAN41-Internet), 然后通过构造HTTP请求的方式创建新网桥TV, 将要连接机顶盒的千兆物理端口(比如GE1)和VLAN48(注意勾选UNTAG)绑到网桥TV上即可。这也就是接法(1)。当初失败应该归因为ME309的开关没有打开。

需要注意的是, 经过实验发现, 即使是通过构造HTTP请求的方法, 一个网桥上不能绑定超过1个VLAN虚接口, 否则很有可能路由器不工作。这也是折腾下来唯一一次重置路由器出厂设置的原因。
另外这同时意味着猫棒设置里的"下行组播VLAN转换"不能关掉, 因为整个TV桥的PVID只有一个, 如果将VLAN900(组播)和VLAN48(IPoE)都绑到网桥上就会导致上述不工作的状况。所以猫棒按照1L的图里设置是比较保险的。

3. 拨号相关, 这个在坛友nn1122在张大妈上的帖子《2.5G猫棒另一搭配神器---TP-LINK TL-ER2260T万兆路由上网配置指南》里有比较详细的描述, IPv6的部分可以参考TP自己的文档:
https://smb.tp-link.com.cn/service/detail_article_4370.html

4. 访问猫棒相关
1L中的做法其实比较繁杂。事实上没有必要单独划VLAN50给猫棒访问。如果你和我一样采用接法(2), 一个更好的做法是在CRS309上为VLAN100虚接口配置两个地址, 分别对应猫棒网段和路由器在LAN网桥的网段 (比如猫棒默认是192.168.1.10/24, 路由器在LAN桥上的地址是192.168.3.1/24, 那就在CRS309的VLAN100上配置192.168.1.200/24、192.168.3.100/24), 然后开启转发 (IP->Settings->IP Forward) , 在ER2260T中添加静态路由(伪码)
  1. route add 192.168.1.0/24 via 192.168.3.100 if LAN metric 5
复制代码

即可访问猫棒。

如果你是采用接法(1), 即猫棒直接接在路由器10GE1口上, 那么只需要在10GE1物理接口上配置地址192.168.1.100/24, 路由器就会自动添加静态路由。

因为默认猫棒没有设置网关, 所以上述两种接法如果在不更改猫棒设置的情况下还需要做一次NAT( (1)在ER2260T上做, (2)在CRS309上做 )。为了方便起见建议还是把猫棒的网关设置成相应网段上的路由设备地址。

TBC...
发表于 2022-8-6 21:12 | 显示全部楼层
你这折腾程度不亚于软漏油了
发表于 2022-8-6 23:00 | 显示全部楼层
够硬核,目前rb750gr3 200M还能再战,等上500M也搞个来折腾
发表于 2022-8-6 23:03 | 显示全部楼层
目标达到了就挺好的,就是这过程看的脑仁疼
发表于 2022-8-7 09:50 | 显示全部楼层
crs309打开l3hw 三层转发可以线速,同时支持nat硬件加速,但是不支持pppoe offload,pppoe还是需要cpu硬抗(极限大概在600m),所以不太适合用来拨号。
发表于 2022-8-7 17:42 | 显示全部楼层
er2260T 可以多个桥接的话,方案1应该也可以实现吧?
 楼主| 发表于 2022-8-7 18:10 | 显示全部楼层
randolphling 发表于 2022-8-7 17:42
er2260T 可以多个桥接的话,方案1应该也可以实现吧?

是的, 照方案1设置完后除了组播都可以工作了, 组播流只有数KB/s的速度。后来排查应该是猫棒上的ME309的开关没开。
发表于 2022-8-7 18:21 | 显示全部楼层
为啥不买一整套的MikroTik CSS610-8G-2S+IN,也是双口万兆,才6xx¥
 楼主| 发表于 2022-8-7 18:46 | 显示全部楼层
fkpwolf 发表于 2022-8-7 18:21
为啥不买一整套的MikroTik CSS610-8G-2S+IN,也是双口万兆,才6xx¥

CSS是纯交换, 配CSR做路由器也不是不行。我的想法是路由器做路由, 交换做交换的事情, 所以专门买的TP的硬路由。CSR也能做路由器, 不过就像上面提到的, 将来性能不太够。
发表于 2022-8-7 22:26 | 显示全部楼层
本帖最后由 525165 于 2022-8-7 23:12 编辑
Baishui 发表于 2022-8-7 09:50
crs309打开l3hw 三层转发可以线速,同时支持nat硬件加速,但是不支持pppoe offload,pppoe还是需要cpu硬抗 ...


楼主这个是TP的硬路由做pppoe
发表于 2022-8-7 23:06 | 显示全部楼层
感觉是个很实惠很硬的超千兆上网套装
发表于 2022-8-8 19:53 | 显示全部楼层
ER2260T这个路由的各种功能齐全否?(例如策略路由,防火墙,各种路由协议啥的)
 楼主| 发表于 2022-8-8 21:29 | 显示全部楼层
525165 发表于 2022-8-8 19:53
ER2260T这个路由的各种功能齐全否?(例如策略路由,防火墙,各种路由协议啥的) ...

ER2260T定位是小型企业用的路由器, 所以你说的除了路由协议的功能都有。看了下整个产品线TP是不做那种交换中心的边缘/接入路由器的。有OSPF、BGP等需求的话还是另请华为思科等高明吧, 自己小搞选RouterOS甚至一般路过Linux也行, 开源方案很多, 性能另说。

TP系统自带的这些功能可配置程度是相当低的, 远不如openWRT, 爱快之类的灵活。有
1) 简单的负载均衡, 根据手工设置的带宽分配不同WAN口上的流量
2) 根据ISP的策略路由, 可以手工导入数据, 依照数据格式理论上可以编出根据IP国别选路, 配合一台有出国功能的旁路由会比较有用
3) 简单的防火墙防护功能, 含各种基础DDoS防护、ARP防护
4) 简单访问控制, 匹配源、目标IP地址选择允许/禁止放行, 相当于丐版的iptables forward chain了
5) 企业需要的一些简单行为管理
发表于 2022-8-8 21:33 | 显示全部楼层
有启发,果断收藏。
发表于 2022-8-11 02:37 | 显示全部楼层
525165 发表于 2022-8-7 22:26
楼主这个是TP的硬路由做pppoe

看后边,只是补全下lz下边的猜测。
发表于 2022-8-11 08:44 | 显示全部楼层
我也准备买ER2260T当主路由
发表于 2022-8-11 10:06 | 显示全部楼层
xiaowufeixia 发表于 2022-8-8 21:29
ER2260T定位是小型企业用的路由器, 所以你说的除了路由协议的功能都有。看了下整个产品线TP是不做那种交 ...

另外这个路由的NAT性能如何?ppp+NAT能跑满10G么?
 楼主| 发表于 2022-8-11 12:47 来自手机 | 显示全部楼层
525165 发表于 2022-8-11 10:06
另外这个路由的NAT性能如何?ppp+NAT能跑满10G么?

我只有一条不能多拨的移动千兆宽带,所以没有条件测PPPoE+NAT下能不能跑满万兆,acwifi的评测里有多拨测速大概4G上传1G下载是没问题的。我能测的内网不同网段单机对单机的NAT iperf3能跑出大概9.7G,基本也满了,不过意义不大因为正常来说内网到内网是同一个网段只经交换机不经路由器不做NAT的。

我觉得买来家用不太需要担心性能问题,毕竟这是设计带机量300台的商用产品。
发表于 2022-8-27 22:41 | 显示全部楼层
这两天在小黄鱼用800的价格收了一个ER2260T+TP自家的2.5G电口模块,来论坛就搜到楼主的帖子,小吐槽一下

功能性上真的比 ROS、EdgeOS 差一大截,就说一点,新建网桥竟然要恢复出厂之后第一时间建,只要你动过其他任何一个选项,新建的按钮就会消失不见,只能重新恢复出厂再建……

看到楼主说可以用构造HTTP请求的方式来加网桥,其实软件上是支持的,但就是故意隐藏起来不给用

如果不是馋它的双万兆口和超高的性价比,我的 ER-4 + 猫棒根本不用换,虽然不能突破千兆,但功能性上把TP吊起来打

微信图片_20220827224021(1).jpg
发表于 2022-8-27 23:13 | 显示全部楼层
我以为说的是给2260t刷op的教程
发表于 2022-8-31 03:27 | 显示全部楼层
为啥不直接 Mikrotik RB5009UG+S+IN
发表于 2022-10-18 14:46 | 显示全部楼层
mark一下,有机会试试多网桥
发表于 2022-11-22 12:23 | 显示全部楼层
我直接刷了OP来用的
发表于 2022-11-22 12:27 | 显示全部楼层
我如果外网只有你这个网速。。我是没精力这么折腾的。。
发表于 2022-11-22 12:58 来自手机 | 显示全部楼层
重新装修为啥还要单线复用
发表于 2022-11-22 13:00 | 显示全部楼层
shahiyuan 发表于 2022-11-22 12:23
我直接刷了OP来用的

刷了op后能科学上网么?性能比x86的openwrt性能如何?
发表于 2022-11-22 16:37 | 显示全部楼层
本帖最后由 Krakenius 于 2022-11-22 16:41 编辑
525165 发表于 2022-8-8 19:53
ER2260T这个路由的各种功能齐全否?(例如策略路由,防火墙,各种路由协议啥的) ...


之前有个开箱贴现在归档了,nn1122发的,我让他测试了ER2260T的IPv6(起因是我自己买了台ER6110G结果IPv6没有任何防护,现在把设备出了),结果是防火墙是透明的,如果设备获得IPv6地址后,WAN口或LAN口的IPv6地址可以直接访问设备登录页面,内网设备也完全没有任何防护,里面的Packet Filter防火墙只对IPv4起作用。我自己用的SH5210PB也是不支持IPv6 ACL,如果接口有IPv6地址,可以直接访问设备登录页面。我建议用华为华三锐捷思科之类的设备更加安全。
发表于 2022-12-29 17:39 | 显示全部楼层
ghwwx 发表于 2022-11-22 13:00
刷了op后能科学上网么?性能比x86的openwrt性能如何?

OP不是自己想装啥就装啥?1000m跑的欢,功耗低,搭配5008f在用
发表于 2022-12-29 20:41 | 显示全部楼层
shahiyuan 发表于 2022-12-29 17:39
OP不是自己想装啥就装啥?1000m跑的欢,功耗低,搭配5008f在用

因为不懂啊。一直用软路由。一些ipk都可以安装x86的。这个路由器不知道要装啥架构的。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2024-5-19 12:36 , Processed in 0.017360 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

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