RouterOS 下 OSPF 组网问题

2023-01-28 06:47:36 +08:00
 test0103

我的运营商为我分配了一个动态公共 IPv6 地址。现在的 OSPF over EoIP6 不能学习到对方的路由表 以前的解决方案是基于 IPv4 地址和配置的 OSPF 基于 L2TP over IPsec 隧道。它可以正常工作。 现在改成 EoIP6 隧道后,OSPF 无法学习到对方的路由信息,应该如何正确配置呢?(EoIP6 over IPSec 是通的,可以正常工作) 我在网上和官方文档中都没有找到好的示例教程,如果有请发给我,谢谢 或者只有动态公网 IPv6 ,有没有更好的组网方案?(通过 IPIP/GRE/EoIP 可以实现 IPv4 over IPv6 ,算一种 4to6 隧道,自建专网还是 IPv4 互通) 我目前使用的 RouterOS 版本是 v6.48.6 long-term ,其他地方的路由器也是 RouterOS 的系统

2250 次点击
所在节点    宽带症候群
24 条回复
piku
2023-01-28 07:52:02 +08:00
ros 的 eoipv6 在用。但是没在上面做 ospf 。等会儿试试。但是我先打听一下 eoipv6 为什么需要 ipsec 承载
test0103
2023-01-28 07:54:03 +08:00
@piku EoIP 隧道支持 IPSec 加密,为了安全,所以启用了 IPSec
piku
2023-01-28 08:00:15 +08:00
@test0103 你想象一下,eoipv6 口相当于在这两个 ros 之间扯了一根直通网线。那么是不是这两个口上应该配一对 ipv4 ,然后在这对 ip 上跑 ospf ?
3dxfood
2023-01-28 08:16:50 +08:00
@piku 他这不是 IP 的事,组播流量没法穿越 IPSec 隧道,这种方式下还想用 OSPF 只能两端再打个 GRE 出来,协议开销比较大。

@test0103 两种方案:1 放弃 IPSEC ,直接 EOIPv6 两端配 ipv4 地址起 OSPF ; 2 放弃 EOIPv6 ,用 IPv6 地址直连 L2TP VPN ,两端再打 GRE 隧道起 OSPF 。
test0103
2023-01-28 08:37:16 +08:00
@piku 是这样,我能理解,但是学习不到对方的路由表
test0103
2023-01-28 08:38:17 +08:00
@3dxfood L2TP over IPSec 的点对点配置的 OSPF 为什么就可以呢?我不理解
3dxfood
2023-01-28 08:45:47 +08:00
@test0103 L2TP 本质上就是个类 GRE 隧道,你启用了 L2TP IPsec 相当于 GRE over IPsec ,OSPF 是跑在 GRE 里的,组播流量自然可以穿越。
我不知道你配的 EoIPv6 over IPsec 是个什么概念,具体怎么实现的?是先用两端 v6 地址打了个 ipsec 隧道出来?然后呢?
EoIPv6 隧道又打在了起了 IPsec 的两端?你配置发我我瞅瞅。
3dxfood
2023-01-28 08:53:26 +08:00
我觉得你大概率是两端先起了 EoIPv6 ,然后在 EoIPv6 隧道上又起了 IPsec ,你这相当于 IPsec over GRE ,OSPF 能跑起来就见鬼了。
test0103
2023-01-28 09:02:46 +08:00
官方文档介绍
![jn23X.png]( https://i.328888.xyz/2023/01/28/jn23X.png)
实际配置
![jnHSt.png]( https://i.328888.xyz/2023/01/28/jnHSt.png)
并不需要额外自己配置隧道,只需要两端填一下 IPsec Secret 就可以了
terrancesiu
2023-01-28 09:09:39 +08:00
如果只是改变了隧道协议和底层 ip 版本,应该是组播没过去,你可以看看 debug 信息。我目前是 gre/gre6/wiregurd 混合组网,跑 ospf 。wg 中 allow ip 需要放行对应的组播地址段和你需要路由的段就可以了。
3dxfood
2023-01-28 09:13:52 +08:00
这么看的话这种方式理论上讲没什么问题。

现在是没邻居?
network 宣告是不是正确?区域是不是一致?两端接口认证配置是不是一致?
有邻居没路由?
隧道两端 MTU 是不是一致? ospf 接口网络类型是不是一致?
OSPF 配置和现在状态发来瞅瞅
3dxfood
2023-01-28 09:23:06 +08:00
我试了下,如果 OSPF 配置正确是没问题的。
https://i.328888.xyz/2023/01/28/jn6gp.png
life90
2023-01-28 09:23:37 +08:00
@3dxfood @test0103 我觉得也应该检查下这些东西。尤其是 mtu 。
piku
2023-01-28 09:47:46 +08:00
刚试了 ospf 可以通,但是 ipsec 仅停留在第一阶段。我怀疑你两端的 eoipv6 口 mtu 不一致,可以试试手动指定一个相同的 mtu 。
另一方面看起来在 eoipv6 口配置 ipsec secret 的结果似乎是 ipsec over eoipv6 ,ipsec 似乎并不起作用,需要额外设 policies (但是和 ospf 就是两个不同的方向了
thereone
2023-01-28 10:01:03 +08:00
RouteOS 的话用 GREv6 吧这个比 l2tp 要好一些,如果你有 openwrt 做个旁路的话那就简单多了 softether 加 frr 可以用 ipv6 做底层互通上层用 ipv4 就行这个简单而且方便多了。开放你一个位置的 ipv6 端口然后其它地方直接连接这个主要的就行。可以做成 hub-spoken 这种,如果都要任意直通可以把多点端口都放开互联就行。
test0103
2023-01-28 12:36:15 +08:00
@3dxfood 目前是桂林市和宝鸡市想实现互联互通。
这是桂林市的配置及测试
[img]https://i.328888.xyz/2023/01/28/jCSzw.jpeg[/img]
这是宝鸡市的配置及测试
[img]https://i.328888.xyz/2023/01/28/jC9Xk.jpeg[/img]
[img]https://i.328888.xyz/2023/01/28/jCJJL.jpeg[/img]
现在桂林市连接宝鸡市 通过 EoIP 及 L2TP 连接,这两个连接在 OSPF 上的配置一样,通过 EoIP 不能学习到路由表,我观察到在 OSPF/Iterfaces 的网络类型和状态不同,见下图,我可以手动设置 EoIP 的接口使用 BFD (这是在官方论坛看的),但是学到的路由表有问题
[img]https://i.328888.xyz/2023/01/28/jCLDp.jpeg[/img]
我看到你的配置下是能互通的,我也想知道你是怎么配置的,如果我列举的信息不全面,请告诉我还要补充那些信息,下面是两台路由器在 OSPF 上的配置
宝鸡路由
[img]https://i.328888.xyz/2023/01/28/jCP5v.jpeg[/img]
桂林路由
[img]https://i.328888.xyz/2023/01/28/jC1by.jpeg[/img]
感谢指点
test0103
2023-01-28 12:59:57 +08:00
@3dxfood 我好像理解了,对端是 routeros v7 ,需要手动设置网络类型,对端之前是点对点,因为之前我用的是 L2TP VPN ,现在需要改为广播,这样就能正常工作了
3dxfood
2023-01-28 13:56:53 +08:00
@test0103 能正常工作就好。
建议你把两端 eoipv6 接口的 ospf network type 都改为 p2p ,在你这种点到点的 ethernet 隧道中没有什么影响,这样还能跳过 DR/BDR 选举的时间,大幅加快 OSPF 协议收敛速度。
3dxfood
2023-01-28 14:02:31 +08:00
@test0103 ros6.x 与 ros7.x 配置命令和方式变动比较多,要细查才好,保证两端参数一致。
sentivcn
2023-01-28 14:04:47 +08:00
走 wireguard 啊,比 l2tp eoip 都舒服。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/910944

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX