请问下神仙们,如何根据 AS 号获取 cidr,然后精简 cidr

2021-04-19 18:19:07 +08:00
 winbox
一、规则
1 、输入 AS 号,比如 AS15169 获取到有效的 cidr
2 、根据获取的 cidr 进行精简
....
172.217.0.0/16 (已包含下面的,需要把已经包含了的去掉)
172.217.176.0/24
172.217.177.0/24
172.217.178.0/24
172.217.179.0/24
....
3 、支持输入多个 AS 号获取精简过得 cidr
4 、最好支持获取 ipv6 (百年大计)

二、用途
1 、ROS 路由标记

三、资源
1 、AS 号全部 CIDR 包含有效、无效
https://bgp.potaroo.net/cgi-bin/as-report/as-report?as=AS15169
2 、AS 号有效 CIDR
https://bgp.potaroo.net/cgi-bin/as-report/as-report?as=AS15169&view=2.0&v=4&filter=pass
3 、AS 号撤回无效了的 CIDR
https://bgp.potaroo.net/cgi-bin/as-report/as-report?as=AS15169&view=2.0&v=4&filter=drop
3 、精简 CIDR 的网站
https://tehnoblog.org/ip-tools/ip-address-aggregator/
4 、关于精简 CIDR 的有帮助的内容
4.1 合并 CIDR 地址段 https://blog.ixxcc.com/post/cidr/
4.2 求个脚本或工具能合并 ip 地址段的脚本 https://forum.ubuntu.org.cn/viewtopic.php?f=21&t=468234

PS.
1 、目前用 CN 路由表区分,有时候要测试直连,还要手动关标记,太麻烦啦
1157 次点击
所在节点    问与答
4 条回复
yuanmomo
2021-04-19 18:26:04 +08:00
这个我还真写过,其实就是把 ip 转换到 long 型的区间段,然后进行排序,然后遍历所有的区间段,然后进行合并。这个代码,我找到过 go 版本的,然后改了一下,https://github.com/yuanmomo/go-cidrman
zxCoder
2021-04-19 20:30:40 +08:00
好家伙 隔行如隔山

每个字都能看懂,合起来就看不懂了
xupefei
2021-04-19 22:24:27 +08:00
你把起始地地址和终止地址转成数字,这题就变成 leetcode 了: https://leetcode.com/problems/merge-intervals/description/
winbox
2021-04-20 02:24:57 +08:00
@yuanmomo
非编程算法业界人士 搞不懂啊 我是电信机线(广西,可查广西所有市的光猫密码)

@xupefei
我非业界人士 看不懂

@zxCoder
其实这个就是相当于 gf 答波溜 list 的 cidr 格式
ROS 可以标记路由前,CIDR 列表包含 比如 172.217.0.0/16 ( GOGL 地址段)那么就隧道网关,不包含的直连。
现在用排除法,把 CN 所有 IP 排除,然后走隧道网关,这个容易误杀,有些非 CN CIDR 直连也很快
DNS 解析丢 esxi 虚拟化平台的 openwrt 弄了,ROS 给下面分配两个 DNS,一个 OPENWRT 的 DNS,一个清华 101.6.6.6#5353 (纯洁的,由于 53 被外网污染,所以关了外网 53 开 5353,需要在 ROS 做 NAT 把下面的设备访问 101.6.6.6#53 挟持到 5353 就可以解析)

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

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

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

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

© 2021 V2EX