Load Balancing Using eBGP Multihop and Loopback IPs
This is meant to be an example, and not a complete BGP (Border Gateway Protocol) routing configuration.
Router Diagram
------------------------------------- ------------------------
| +----------------------+ | | +------------+ |
| AS |Router 1 | | | |Router 2 | AS |
| 9966 |Interface 172.16.96.76| | | |10.200.10.3 | 8855 |
| |Loopback 172.16.97.1 | | | | | |
| |---+----------------------+ | | +------------+ |
| | | | | | |
------------------------------------- ------------------------
| | |
|EBGP| |--------------------------|
| | | EBGP
---------------------------------------------------------
| | |
+------------------------+
|Main Router |
|Main Eth : 192.168.10.5 |
|Loopback : 172.16.97.2 |
+------------------------+
Ensure that all routers running BGP have at least 256 MB of memory. Remember to save your configurations to flash whenever you are finished configuring your dynamic routing setup! To enable BGP, do the following:
1. At the Login: prompt, enter root.
2. At the Password: prompt, enter your password.
3. Choose Option 1 (Configuration and Update Menu) from the Main Menu. Select Option 3 (Service Configuration).
4. From the Service Configuration menu, you can see the status of the Dynamic routing (gated) package. If gated is running, the option will show “(running)”.
5. To start gated, choose Option 3 (Dynamic routing) and choose Option 5 (Start gated) from the Dynamic routing menu. You will also want to select Option 3 (Enable gated on boot) to ensure that BGP session will be established at boottime. Ensure that you have configured gated prior to attempting to start it. Unless it is properly configured, gated will not start.
In our example above, we will be configuring the “Main Router”. From the Dynamic routing menu, choose Option 1 (gated configuration). Our AS for this example will be 9009. Choose Option 4 (Configure BGP) from the menu. This will open a file in your default editor.
1. Edit the “autonomoussystem” parameter. In this case, our AS number is 9009:
2. Edit the first “External peeras” section
3. Add additional sections for each external and internal peer
The completed file for our example should look like this:
#********************************************************************#
# Section 1 #
# BGP Configuration #
#********************************************************************#
# Set this to your AS number.
autonomoussystem 9009;
bgp yes {
preference 70;
# Configuration for the bgp peers. Change the peer AS number to
# match your peer's AS number. Change the peer IP address to match
# your peer's IP address.
# If you have more than one peer, uncomment the second group type
# section.
group type External peeras 9966
{
# Load balancing being will be done on the two or more lines to AS 9966.
# The peer IP is the loopback IP of AS 9966's router and the gateway IP is
# the loopback of the Main router, which is assigned to the bonder device.
peer 172.16.97.1 gateway 172.16.72.2;
};
group type External peeras 8855
{
peer 10.200.10.3;
};
};
Next, we will need to configure the main gated configuration file. Choose Option 1 (Configure gated) from the gated configuration menu. This will open a file in your default editor.
1. In Section 1 - Global Configuration, configure the “routerid” parameter. Set this IP address to the primary IP address used on Ethernet0 on the router. In this case, the IP address is 192.168.10.5.
2. In Section 2 - Routing Protocol Configuration, uncomment the %include “/etc/gated.bgp” line to enable BGP within gated.
3. In Section 3 - Static Routes, add all static routes defined in wan.conf, regardless of whether or not you export them. The “retain” keyword you see in the default configuration file tells gated not to remove this route if gated exits. For the purposes of this example, we have set a default gateway of 172.16.97.2, which would point to the Bonded T1’s on Main Router.
4. In Section 4 - Exporting Routes, edit the default section and add a section for each external peer. Add one section for all internal peers.
5. In Section 5 - Importing Routes, edit the default section and add a section for each external peer. Add one section for all internal peers.
The completed file for our example should look like this:
#********************************************************************#
# Section 1 #
# Global Configuration #
#********************************************************************#
# Uncomment (remove the # sign) and set routerid to your main ethernet
# IP address
routerid 192.168.10.5 ;
#********************************************************************#
# Section 2 #
# Routing Protocol Configuration #
#********************************************************************#
# Uncomment the routing protocols you want to use
%include "/etc/gated.bgp"
#%include "/etc/gated.ospf"
#%include "/etc/gated.rip"
#********************************************************************#
# Section 3 #
# Static routes #
#********************************************************************#
# Add any static routes that you need in the routing table.
# Retain tells gated not to remove this route if gated
# exits.
static
{
# Set the default gateway to 172.16.97.2.
0.0.0.0 mask 0.0.0.0 gateway 172.116.97.2 retain;
# Set a static route to AS 9966's loopback IP address
172.16.97.1 mask 255.255.255.255 gateway 172.116.97.2 retain;
# Set a static route to the 192.168.1.0/24 network.
192.168.2.0 mask 255.255.255.0 gateway 192.168.10.18 retain;
};
#********************************************************************#
# Section 4 #
# Exporting routes #
#********************************************************************#
#--------------------------------------------------------------------#
# OSPF Export
# This Export proto statement will export static routes and interface
# routes via OSPF
export proto ospfase {
proto static {
ALL
metric 1; };
proto direct {
ALL
metric 1; };
};
#--------------------------------------------------------------------#
# BGP Export
# This Export proto statement will export:
# the static route 192.168.2.0/24
# the interface route 192.168.10.0/24
# to AS number 9966 via BGP.
export proto bgp as 9966 {
proto static {
192.168.2.0 masklen 24 exact;
};
proto direct {
192.168.10.0 masklen 24 exact;
};
};
# This Export proto statement will export:
# the static route 192.168.2.0/24
# the interface route 192.168.10.0/24
# to AS number 8855 via BGP.
export proto bgp as 8855 {
proto static {
192.168.2.0 masklen 24 exact;
};
proto direct {
192.168.10.0 masklen 24 exact;
};
};
#--------------------------------------------------------------------#
# RIP Export
# This Export proto statement will export static routes and interface
# routes via RIP
export proto rip {
proto static {
ALL
metric 1; };
proto direct {
ALL
metric 1; };
};
#********************************************************************#
# Section 5 #
# Importing routes #
#********************************************************************#
#--------------------------------------------------------------------#
# OSPF Import
# This import statement will import all routes learned via OSPF.
import proto ospfase {
ALL;
};
#--------------------------------------------------------------------#
# BGP Import
# This import statement will import all routes from AS numbers
# 9966 and 8855 learned via BGP.
import proto bgp as 9966 {
ALL;
};
import proto bgp as 8855 {
ALL;
};
#--------------------------------------------------------------------#
# RIP Import
# This import statement will import all routes learned via RIP.
import proto rip {
ALL;
};