V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
winbox
V2EX  ›  问与答

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

  •  
  •   winbox · 2021-04-19 18:19:07 +08:00 · 1391 次点击
    这是一个创建于 1346 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一、规则
    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 路由表区分,有时候要测试直连,还要手动关标记,太麻烦啦
    4 条回复    2021-04-20 02:24:57 +08:00
    yuanmomo
        1
    yuanmomo  
       2021-04-19 18:26:04 +08:00 via iPhone
    这个我还真写过,其实就是把 ip 转换到 long 型的区间段,然后进行排序,然后遍历所有的区间段,然后进行合并。这个代码,我找到过 go 版本的,然后改了一下,https://github.com/yuanmomo/go-cidrman
    zxCoder
        2
    zxCoder  
       2021-04-19 20:30:40 +08:00
    好家伙 隔行如隔山

    每个字都能看懂,合起来就看不懂了
    xupefei
        3
    xupefei  
       2021-04-19 22:24:27 +08:00 via iPhone
    你把起始地地址和终止地址转成数字,这题就变成 leetcode 了: https://leetcode.com/problems/merge-intervals/description/
    winbox
        4
    winbox  
    OP
       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 就可以解析)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5966 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:28 · PVG 10:28 · LAX 18:28 · JFK 21:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.