BGP
Bare Metal instances in most Ingenuity Cloud Services locations support BGP (Border Gateway Protocol) for advertising secondary IP addresses to our network for both IPv4 and IPv6 protocols.
BGP for Secondary IP’s
One common use case for BGP with secondary IP addresses is to provide IP mobility / failover between different instances within the same physical location. You may choose to advertise one or more of your allocated secondary IP addresses from one or more of your instances and our network will automatically load balance traffic between all instances and provide automatic failover capability.
BGP sessions for secondary IP’s use an internal / private AS Number between your instances and our fabric route servers. If you wish to advertise your own IP prefix or use your own AS Number please open a support ticket to discuss your requirements.
BGP Peers
Once enabled, BGP peers are automatically provisioned on our fabric route servers in a ‘listen only’ configuration meaning your instance must always initiate the BGP session. We operate a pair of redundant route servers in every supported location and we highly recommend that you establish a BGP session to each route server.
Route Server 1
IPv4 Peer IP | 100.64.64.64 |
IPv6 Peer IP | fc00::1 |
Our AS Number | 65000 |
Your AS Number | 65100 |
Multihop | Yes |
Route Server 2
IPv4 Peer IP | 100.64.64.65 |
IPv6 Peer IP | fc00::2 |
Our AS Number | 65000 |
Your AS Number | 65100 |
Multihop | Yes |
Example Configuration
The below configuration remains consistent in every supported location and you should substitute x.x.x.x/32
for your actual secondary IP address.
---apiVersion: metallb.io/v1beta1kind: IPAddressPoolmetadata:name: ics-poolnamespace: metallb-systemspec:addresses:- x.x.x.x/32---apiVersion: metallb.io/v1beta2kind: BGPPeermetadata:name: ics-rs1-ipv4namespace: metallb-systemspec:myASN: 65100peerASN: 65000peerAddress: 100.64.64.64ebgpMultiHop: true---apiVersion: metallb.io/v1beta2kind: BGPPeermetadata:name: ics-rs2-ipv4namespace: metallb-systemspec:myASN: 65100peerASN: 65000peerAddress: 100.64.64.65ebgpMultiHop: true---apiVersion: metallb.io/v1beta2kind: BGPPeermetadata:name: ics-rs1-ipv6namespace: metallb-systemspec:myASN: 65100peerASN: 65000peerAddress: fc00::1ebgpMultiHop: true---apiVersion: metallb.io/v1beta2kind: BGPPeermetadata:name: ics-rs2-ipv6namespace: metallb-systemspec:myASN: 65100peerASN: 65000peerAddress: fc00::2ebgpMultiHop: true---apiVersion: metallb.io/v1beta1kind: BGPAdvertisementmetadata:name: ics-advertisementnamespace: metallb-systemspec:ipAddressPools:- ics-poolpeers:- ics-rs1-ipv4- ics-rs2-ipv4- ics-rs1-ipv6- ics-rs2-ipv6
router bgp 65100neighbor 100.64.64.64 remote-as 65000neighbor 100.64.64.64 description "ICS Route Server 1"neighbor 100.64.64.64 soft-reconfiguration inboundneighbor 100.64.64.65 remote-as 65000neighbor 100.64.64.65 description "ICS Route Server 2"neighbor 100.64.64.65 timers 5 15neighbor 100.64.64.65 soft-reconfiguration inbound!address-family ipv4network x.x.x.x/32neighbor 100.64.64.64 activateneighbor 100.64.64.65 activateexit-address-family
Caveats
The BGP service has the following caveats
- It is not possible to recieve full-tables from our BGP sessions, these are configured as ‘recieve only’ and will not advertise any prefixes to you.
- A hard prefix-limit is enforced on all BGP sessions of 20 prefixes per session. This cannot be increased.