FortiGate
FortiGate Next Generation Firewall utilizes purpose-built security processors and threat intelligence security services from FortiGuard labs to deliver top-rated protection and high performance, including encrypted traffic.
oarslan
Staff
Staff
Article Id 204898
Description This article demonstrates a configuration using eBGP multihop to achieve link redundancy for a single BGP neighbor.
Scope FortiGate.
Solution

By default, IP protocol TTL is set to 1 for an eBGP session, meaning the BGP neighbor must be directly connected. To override that limitation, eBGP multihop can be used.

 

A common use case is load balancing between 2 BGP peers connected via 2 or more links. Because of recursive lookup, load sharing toward a BGP destination always occurs if there are several equal-cost IGP paths to the BGP next hop. In this example, load-balancing for the BGP next-hop is configured using two static routes on each peer.

 

FortiGate-1 configuration:

 

config router static

edit <index>

set dst 194.1.1.2 255.255.255.255

set gateway 200.30.30.10

set device "port2"

next

edit <index>

set dst 194.1.1.2 255.255.255.255

set gateway 200.30.30.2

set device "port1"

next

end

 

In this example, the eBGP session must be terminated on Loopback interfaces. Because of this, the neighbors are not considered directly connected. The configured loopback addresses are 194.1.1.1 and 194.1.1.2.

 

ebgp_multihop.png

 

FortiGate-1 configuration:

 

config system interface

edit "Loop-root"

set vdom "root"
set ip 194.1.1.1 255.255.255.255
set type loopback

next

end

 

A firewall policy to allow the remote peer to initiate BGP traffic is required on at least one side. It is recommended to apply a firewall policy on both sides.

 

config firewall policy

edit <index>

set name "BGP IN"
set srcintf "port1" "port2"
set dstintf "Loop-root"
set action accept
set srcaddr "Remote_BGP_IP"
set dstaddr "Local_BGP_IP"
set schedule "always"
set service "BGP"

next

end

 

To establish the session, 'ebgp-enforce-multihop' must be enabled. See the settings below:

 

config router bgp

set as 10

config neighbor

edit "194.1.1.2"

set ebgp-enforce-multihop enable
set ebgp-multihop-ttl 10
set remote-as 20
set update-source "Loop-root"

next

end

next

end

 

When the 'ebgp-enforce-multihop' command is enabled, the TTL for this peer is set to 255. This can be manually adjusted to a desired value with the command 'ebgp-multihop-ttl'.

 

In the example above, the TTL for this EBGP peer will be 10.

 

eBGP and iBGP TTL Behavior:

  • eBGP without multihop is configured to use an IP TTL of 1, requiring peers to be directly connected. If ebgp-enforce-multihop is enabled, the default TTL is 255.
  • iBGP uses a default TTL of 255, allowing peers to establish sessions across multiple hops within the same AS. No TTL adjustment is typically required for iBGP.


Note: