V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nbsn
V2EX  ›  宽带症候群

收 Internet 全表后的次优路径问题

  •  
  •   nbsn · 2022-05-12 09:15:00 +08:00 · 2273 次点击
    这是一个创建于 911 天前的主题,其中的信息可能已经有所发展或是发生改变。
    紧接之前的帖子 /t/781573 ( bgp peering 可以收全球 internet 路由表的资源),目的就是为了做精细的目的地访问分流。

    在 Vultr 收了全表,用 bird 做的 bgp daemon ,做了三网过滤,策略是按照 ip 地址的始发 ASN 做动态过滤:

    filter bgp_in_filter {
    if source != RTS_BGP then reject; #Deny Non-BGP Route

    # ChinaNet #其他三网的过滤也是一样
    if bgp_path.last ~ ct_asn then {
    bgp_community = -empty-;
    bgp_community.add((1,1));
    accept;
    }


    filter bgp_out_filter {
    if source != RTS_BGP then reject; #Deny Non-BGP Route

    if bgp_path.last ~ ct_asn || bgp_path.last ~ cu_asn || bgp_path.last ~ cm_asn || bgp_path.last ~ noisp_asn || bgp_path.last ~ zero_asn then {
    accept;
    }
    reject;
    }

    ASN 信息来源于 IPIP https://whois.ipip.net/countries/CN ,定期手动更新 ASN 。

    经过半年多的运行,对于完全始发于特定 ASN 的 IP 地址,以上策略完全工作正常。

    目前的次优路径问题是,对于完全始发 ASN 的 IP 地址,如果被宣告于多个 ASN ,则无法实现精准 ASN 过滤。
    在我的边界路由器上,国内 ASN 的目的 IP 地址是走的过滤后的明细地址,非国内地址走的是默认路由。如果 IP 地址不在国内 ASN 的范围内,就会出现次优路径了。

    比如:114.114.114.114 这个 DNS 的地址,从地址库查询属于 AS174: https://tools.ipip.net/as.php
    在我目前的访问策略下,AS174 的 114.114.114.114 就要走默认路由的次优路径,尽管国内三大运营商 AS 均可查询到地址通告:
    AS174 已标注 114.114.112.0/21 COGENT-174 - Cogent Communications, US
    AS56046 已标注 114.114.112.0/22 CMNET-Jiangsu-AP - China Mobile Communications Corporation, CN
    AS4134 已标注 114.114.112.0/21 CHINANET-BACKBONE - No.31,Jin-rong Street, CN
    AS4837 已标注 114.114.112.0/21 CHINA169-Backbone - CHINA UNICOM China169 Backbone, CN


    我的问题是,是否有通过 BGP AS-PATH 过滤的方法解决这个问题?

    或者是不收全表了,直接用 https://asn.bgp.space/ 静态库写入 bird ,再发送给边界路由器。

    或者有好的解决方案?不胜赐教~~
    6 条回复    2022-05-13 13:58:20 +08:00
    conupefox
        1
    conupefox  
       2022-05-12 12:31:14 +08:00
    可以先刨掉非 CN ASN 始发的路由。反正非 CN 的都是走默认路由

    另外,我想指定怎么判断某个 ASN 属于 CT 、CU 、CM 还是 CERNET ?
    dndx
        2
    dndx  
       2022-05-12 12:38:50 +08:00
    静态路由表足够了,国内的 IP space 变化没有这么频繁,不需要通过 BGP 的方式实时接收。
    nbsn
        3
    nbsn  
    OP
       2022-05-12 21:21:36 +08:00
    @conupefox #1 https://tools.ipip.net/as.php 这里看 ASN 属于哪个运营商,里面有名字
    alamak76
        4
    alamak76  
       2022-05-13 09:45:48 +08:00
    有没有支援 IP2Location ASN ?

    https://lite.ip2location.com/database-asn
    conupefox
        5
    conupefox  
       2022-05-13 12:18:30 +08:00
    @nbsn

    就是只有一个个手动看?没有自动化的方法吗
    nbsn
        6
    nbsn  
    OP
       2022-05-13 13:58:20 +08:00
    @conupefox #5 可以写个 shell 脚本自动生成
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5363 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:12 · PVG 15:12 · LAX 23:12 · JFK 02:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.