licsber
0.04D
V2EX  ›  BGP

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

  •  
  •   licsber · Dec 30, 2024 · 2780 views
    This topic created in 561 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   ·   4141 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 05:28 · PVG 13:28 · LAX 22:28 · JFK 01:28
    ♥ Do have faith in what you're doing.