BGP and AWS Transit Gateway

I’ve been trying to get BGP working with AWS’ transit gateway. I believe I have everything configured correctly according to AWS’ configuration document, however the BGP connection status just says “idle”.

The event log shows nothing related to BGP. Is there anywhere I can look to get more detailed information about why the BGP connection is failing?

Thanks,
Guy

Try to assign a TTL (e.g. 255) in BGP Neighbor settings.
Can you also share the AWS configuration document?

1 Like

Thanks for the reply. I’ve tried a few different TTL values (including 255) but the state just changes to “Connect” and then it eventually says “Connection timed out” in the last error section.

Here’s the config supplied by Amazon:

IPSec Tunnel #1

#1: Internet Key Exchange Configuration

Configure the IKE SA as follows:
Please note, these sample configurations are for the minimum requirement of AES128, SHA1, and DH Group 2.
Category “VPN” connections in the GovCloud region have a minimum requirement of AES128, SHA2, and DH Group 14.
You will need to modify these sample configuration files to take advantage of AES256, SHA256, or other DH groups like 2, 14-18, 22, 23, and 24.
Higher parameters are only available for VPNs of category “VPN,” and not for “VPN-Classic”.
The address of the external interface for your customer gateway must be a static address.
Your customer gateway may reside behind a device performing network address translation (NAT).
To ensure that NAT traversal (NAT-T) can function, you must adjust your firewall !rules to unblock UDP port 4500. If not behind NAT, we recommend disabling NAT-T.

  • IKE version : IKEv1
  • Authentication Method : Pre-Shared Key
  • Pre-Shared Key : ***********************
  • Authentication Algorithm : sha1
  • Encryption Algorithm : aes-128-cbc
  • Lifetime : 28800 seconds
  • Phase 1 Negotiation Mode : main
  • Diffie-Hellman : Group 2

#2: IPSec Configuration

Configure the IPSec SA as follows:
Category “VPN” connections in the GovCloud region have a minimum requirement of AES128, SHA2, and DH Group 14.
Please note, you may use these additionally supported IPSec parameters for encryption like AES256 and other DH groups like 2, 5, 14-18, 22, 23, and 24.
Higher parameters are only available for VPNs of category “VPN,” and not for “VPN-Classic”.

  • Protocol : esp
  • Authentication Algorithm : hmac-sha1-96
  • Encryption Algorithm : aes-128-cbc
  • Lifetime : 3600 seconds
  • Mode : tunnel
  • Perfect Forward Secrecy : Diffie-Hellman Group 2

IPSec Dead Peer Detection (DPD) will be enabled on the AWS Endpoint. We
recommend configuring DPD on your endpoint as follows:

  • DPD Interval : 10
  • DPD Retries : 3

IPSec ESP (Encapsulating Security Payload) inserts additional
headers to transmit packets. These headers require additional space,
which reduces the amount of space available to transmit application data.
To limit the impact of this behavior, we recommend the following
configuration on your Customer Gateway:

  • TCP MSS Adjustment : 1379 bytes
  • Clear Don’t Fragment Bit : enabled
  • Fragmentation : Before encryption

#3: Tunnel Interface Configuration

Your Customer Gateway must be configured with a tunnel interface that is
associated with the IPSec tunnel. All traffic transmitted to the tunnel
interface is encrypted and transmitted to the Virtual Private Gateway.

The Customer Gateway and Virtual Private Gateway each have two addresses that relate
to this IPSec tunnel. Each contains an outside address, upon which encrypted
traffic is exchanged. Each also contain an inside address associated with
the tunnel interface.

The Customer Gateway outside IP address was provided when the Customer Gateway
was created. Changing the IP address requires the creation of a new
Customer Gateway.

The Customer Gateway inside IP address should be configured on your tunnel
interface.

Outside IP Addresses:

  • Customer Gateway : yyy.yyy.yyy.yyy
  • Virtual Private Gateway : xxx.xxx.xxx.xxx

Inside IP Addresses

  • Customer Gateway : 169.254.45.2/30
  • Virtual Private Gateway : 169.254.45.1/30

Configure your tunnel to fragment at the optimal size:

  • Tunnel interface MTU : 1436 bytes

#4: Border Gateway Protocol (BGP) Configuration:

The Border Gateway Protocol (BGPv4) is used within the tunnel, between the inside
IP addresses, to exchange routes from the VPC to your home network. Each
BGP router has an Autonomous System Number (ASN). Your ASN was provided
to AWS when the Customer Gateway was created.

BGP Configuration Options:

  • Customer Gateway ASN : 65000
  • Virtual Private Gateway ASN : 64999
  • Neighbor IP Address : 169.254.45.1
  • Neighbor Hold Time : 30

Configure BGP to announce routes to the Virtual Private Gateway. The gateway
will announce prefixes to your customer gateway based upon the prefix you
assigned to the VPC at creation time.

Also, here’s a link to a screenshot of the BGP config in the Balance 210:

Thanks again,
Guy

From the config, the BGP is over IPsec tunnel? BGP over IPsec is not supported yet. This will add to feature request.

1 Like

Yes, I’m trying to set up a connection to my AWS VPCs via AWS transit gateway and site to site vpn. If it’s the case that BGP isn’t yet supported over IPsec then I’ll go ahead and just configure the routes statically. Just curious though, is BGP over IPsec on the feature roadmap at all?

Thanks for your help,
Guy

Hi, this on feature list, we will review it later.

2 Likes

Sounds great, thanks Kenny.

+1 for this. Same requirement for vpn connections to Azure.