User Tools

Site Tools


wiki:bgp_ip_transit_info

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
wiki:bgp_ip_transit_info [2026/01/07 13:10] – [References] add references antisawiki:bgp_ip_transit_info [2026/04/13 09:46] (current) – [References] add netactuate link antisa
Line 79: Line 79:
  
 //peer-as// is peer ASN, also given by provider. //peer-as// is peer ASN, also given by provider.
 +
 +Provider might also give you a //multihop-ttl// value. If this is the case you need to [[https://github.com/osrg/gobgp/blob/master/docs/sources/ebgp-multihop.md|add]] the following to both ipv4 and ipv6  configuration to above (change the value):
 +
 +
 +<code>
 +[neighbors.ebgp-multihop.config]
 +    enabled = true
 +    multihop-ttl = 64
 +</code>
  
 After starting gobgp you should see the session is established: After starting gobgp you should see the session is established:
Line 126: Line 135:
 </code> </code>
  
 +<WRAP center round box 60%>
 +Sometimes you might get an IP address from the private space from the provider like 10.255.0.2 for your side of the BGP session. You need to add it (via ''ip'', ''nmcli'' etc.) to your main interface for it to work e.g.
 +
 +<code>
 +1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
 +    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 +    inet 127.0.0.1/8 scope host lo
 +       valid_lft forever preferred_lft forever
 +    inet 89.124.253.5/32 scope global lo
 +       valid_lft forever preferred_lft forever
 +    inet6 2a03:c040::5/128 scope global
 +       valid_lft forever preferred_lft forever
 +    inet6 ::1/128 scope host
 +       valid_lft forever preferred_lft forever
 +2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
 +    link/ether 5c:b9:01:90:1c:e8 brd ff:ff:ff:ff:ff:ff
 +    inet 45.128.135.226/32 scope global noprefixroute eth0
 +       valid_lft forever preferred_lft forever
 +    inet 10.255.0.2/30 scope global eth0
 +       valid_lft forever preferred_lft forever
 +...
 +
 +# gobgp neighbor
 +Peer            AS  Up/Down State       |#Received  Accepted
 +10.255.0.1  206804 00:00:55 Establ      |        1         1
 +fd00:136::1 206804    never Active      |        0         0
 +
 +</code>
 +
 +</WRAP>
 +
 +===== Checking propagation =====
 +RIPE has BG play tool to check the history of route propagation here https://stat.ripe.net/bgplay/ and https://stat.ripe.net/lg.
 +
 +{{:wiki:screenshots:2026:02:ripe_bgplay.png?direct&600|}}
 +
 +Here's an example of Tzulo server provider which advertises to multiple upstreams
 +https://bgp.he.net/AS11878#_graph4
 +
 +https://bgp.tools/as/11878#connectivity
 +
 +which has multiple arrows pointing to upstreams.
 +
 +===== Updating AS path length =====
 +When advertising IP from multiple providers, one can have a shorter AS path and take all the traffic for itself. You can adjust the length of the AS path on your side by prepending your AS number 1 or more times to extend the path.
 +
 +Example using gobgp:
 +<code>
 +[global.config]
 +...
 +[global.apply-policy.config]
 +export-policy-list = ["prepend_as_path"]
 +default-import-policy = "accept-route"
 +default-export-policy = "accept-route"
 +
 +[[neighbors]]
 +...
 +...
 +
 +[[policy-definitions]]
 +name = "prepend_as_path"
 +  [[policy-definitions.statements]]
 +  name = "stmt_prepend"
 +
 +    [policy-definitions.statements.actions]
 +      route-disposition = "accept-route"
 +
 +    # number of times to prepend our asn. This allows for controlling
 +    # the length of th AS path that packet takes so it affects routing
 +    # https://www.noction.com/blog/as-path-and-as-path-prepending
 +    [policy-definitions.statements.actions.bgp-actions.set-as-path-prepend]
 +      as = "203619"
 +      repeat-n = 1
 +
 +</code>
 +Here we're prepending the path 1 additional time. After restarting the service notice a repeating ASN in //AS_PATH// column
 +
 +   # gobgp neighbor 213.155.129.101 adj-out
 +   ID  Network              Next Hop             AS_PATH              AttrsFiltered
 +     89.124.253.0/24      185.229.190.69       203619 203619        [{Origin: ?}]not filtered
 +
 +On RIPE Looking glass this will be shown as
 +
 +{{:wiki:screenshots:2026:02:ripe_lg.png?direct&600|}}
 ====== Tested on ====== ====== Tested on ======
   * gobgp_version: 4.2.0   * gobgp_version: 4.2.0
Line 136: Line 229:
   * https://cs249i.stanford.edu/projects/project_1.pdf   * https://cs249i.stanford.edu/projects/project_1.pdf
   * https://www.noction.com/blog/bgp-anycast   * https://www.noction.com/blog/bgp-anycast
 +  * https://render.com/blog/how-to-build-an-anycast-network
 +  * https://datatracker.ietf.org/doc/html/rfc4271#autoid-1
 +  * https://www.noction.com/blog/as-path-and-as-path-prepending
 +  * https://www.netactuate.com/docs/guides/mixed-provider-anycast
  
wiki/bgp_ip_transit_info.1767791430.txt.gz · Last modified: by antisa

Except where otherwise noted, content on this wiki is licensed under the following license: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki