运行 BGP 的节点必须占用一个公网 IP 吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Licsber
0.04D
V2EX    BGP

运行 BGP 的节点必须占用一个公网 IP 吗?

  •  
  •   Licsber Dec 30, 2024 2522 views
    This topic created in 486 days ago, the information mentioned may be changed or developed.
    最近在玩 dn42
    刚通过自助方式完成第一个 peer 建立并成功 Established

    p2p 类型的 wireguard
    互联用的是各自 dn42 的“公网”地址
    因此有点小疑问

    想象一下现实中的网络
    如果拥有公网地址 如 8.8.8.8
    在和别人 peer 的时候
    双方用/30 的私网来互联 比如本端 10.100.64.1 和对端 10.100.64.2
    本端需要通告对端 8.8.8.8 的下一跳是 10.100.64.1
    这样对端加进它的路由表 看起来运行良好
    唯一我能想到的问题是对端和其他人 peer 时不知道怎么描述 8.8.8.8 到底是谁给自己的
    但是如果对别人通告 8.8.8.8 的下一跳是自己 自己知道跳给谁 是不是也可以

    难道我的边界路由器就必须也有一个公网 IP 吗
    9 replies    2025-01-07 13:22:19 +08:00
    Int100
        1
    Int100  
       Dec 31, 2024 via iPhone
    可以用私网地址 peer
    yyzh
        2
    yyzh  
       Dec 31, 2024 via Android
    当然可以.这个难听点叫 BGP 劫持好听点叫路由泄露反正都那样.
    baobao1270
        3
    baobao1270  
       Dec 31, 2024 via Android
    dn42 的习惯是用 link local 做 interface ip 吧?公网好像是要一个有效 ip 的
    非广播网络可以用/31
    Int100
        4
    Int100  
       Dec 31, 2024
    @yyzh

    用私网地址 peer 和 BGP 劫持/路由泄露 有什么关系?
    yyzh
        5
    yyzh  
       Dec 31, 2024 via Android
    @Int100 认真看内容,别光看个标题就来回答
    "唯一我能想到的问题是对端和其他人 peer 时不知道怎么描述 8.8.8.8 到底是谁给自己的
    但是如果对别人通告 8.8.8.8 的下一跳是自己 自己知道跳给谁 是不是也可以"
    Licsber
        6
    Licsber  
    OP
       Dec 31, 2024
    @Int100 #1 公网中也会有人这么做吗 话说各 AS 运行 BGP 的设备地址在哪可以查到不

    @yyzh #2 其实看了主要是 Next_Hop 属性

    “BGP Speaker 在向 EBGP 对等体发布某条路由时,会把该路由信息的下一跳属性设置为本地与对端建立 BGP 邻居关系的接口地址。”

    那传递给别人的时候 我理解就是必须要一个自己 AS 内的 IP 才行
    然后如果是广播网络 就必须自己分走一个/30 给对方
    如果不是 那也至少要一个/32

    @baobao1270 #3 嗯 我在看 MP-BGP 用 IPv6 Link-Local 目前我还是建了两条
    非广播网络用/31 但其实 p2p 下 随便用啥接口地址都可以

    直到今天才发现正常 DNS 是不区分 IPv4 和 IPv6 的
    用 v4 的 DNS 或 v6 的 DNS 查询都会返回 v4 和 v6 的结果
    还以为 v4 的 DNS 只会返回 v4
    scsb
        7
    scsb  
       Jan 3, 2025
    @Licsber 不一定,neighbor 和 local 不一定是同一个网段的 IP 地址 (multihop),然后至于建立 session 的时候要不要公网 IP 地址,这个一般取决于双方是怎么安排的。
    Licsber
        8
    Licsber  
    OP
       Jan 3, 2025
    @leschans #7 嗯 neighbor 确实不必同一网段 这个我理解了
    甚至还可以不用 v4 可以仅 v6 单栈 用拓展下一跳来实现 v4 访问
    172.31.0.0/16 via inet6 fe80::ade0 dev AS4242423914 proto bird src 172.22.122.122 metric 32

    但是 session 如果不用公网地址 怎么 export 呢
    scsb
        9
    scsb  
       Jan 7, 2025   1
    @Licsber 这个没有所谓的 你看看一些 traceroute 在公网上 其中的 hop 也有用私有地址的 其实只要那一台 router 能访问到那个地址就行 具体的话在 bird 里有一个 next hop self 的设置
    About     Help     Advertise     Blog     API     FAQ     Solana     2587 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 52ms UTC 12:32 PVG 20:32 LAX 05:32 JFK 08:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86