OSPF Load Balancing of Outgoing Traffic is not Working.

Publication Date:  2012-07-27 Views:  128 Downloads:  0
Issue Description
ISP wants to load balance the traffic from ISP's customer to NIX. NIX is Layer 2 Czech peering center. In core network of ISP there is OSPF implemented. OSPF supports three alternative routes so it can be used for load balancing. EBGP routing protocol is implemented between ISP’s edge routers and ISP’s peering partners. 
 At edge routers R1 and R2 is BGP redistributed into OSPF so customers of ISP connected to S0 have all necessary routing information.
In our case NIX is represented by router NIX and Loopback 0 at this router. All traffic from "customer" should be balanced between R1 and R2. Even if the configuration seem to be proper, in routing table of switch S0 there is still only one route to destination 30.30.30.1/24. For this test routers R1, R2 and NIX are Huawei AR28-31, S0 and S1 are Huawei S3526E. In real implementation there are used different routers and LAN switches but the principal is the same. 
Alarm Information
None
Handling Process
IP routing table of S0 contains only one route to destination 30.30.30.1.  So the load balancing is not working.
IP routing table of S0:
Destination/Mask   Protocol Pre  Cost     Nexthop           Interface
10.1.1.0/24        DIRECT      0    0           10.1.1.3        Vlan-interface100
30.30.30.0/24      O_ASE    150  1           10.1.1.1        Vlan-interface100
IP routing table of R1 received the route to destination 30.30.30.1 through BGP. So it is correct.
 
IP routing table of R1:
Destination/Mask   Protocol Pre  Cost        Nexthop            Interface
10.1.1.0/24             DIRECT   0     0           10.1.1.1           Ethernet0/1
30.30.30.0/24            BGP      256  0           192.168.1.1     Ethernet0/0
192.168.1.0/24       DIRECT   0     0           192.168.1.2     Ethernet0/0
IP routing table of R2 received the route to destination 30.30.30.1 through OSPF and router R1.  So we found out the problem. Router R2 prefers route to the destination from OSPF then from BGP.  In BGP routing table we can see that R2 received the route also from BGP.  But router prefers IGP then EGP protocol. It is correct behavior but for load balancing we must ensure that R1 and R2 will not propagate routes between each other. There are two ways how to solve this problem: let router prefer routes from BGP by command or avoid route redistribution between R1 and R2. Some VRP versions do not support command to prefer BGP so we will use the second way.
IP routing table of R2:
Destination/Mask   Protocol Pre  Cost        Nexthop             Interface
10.1.1.0/24             DIRECT   0      0           10.1.1.2           Ethernet0/1
30.30.30.0/24          O_ASE    150  1           10.1.1.1           Ethernet0/1
192.168.2.0/24       DIRECT   0      0           192.168.2.2     Ethernet0/0
BGP routing table of R2:
    Dest/Mask          Next-hop        Med    Local-pref    Origin As-path
#   30.30.30.0/24   192.168.2.1         0            IGP                 100
So at Router R1 and R2 we configure ACL and filtering-policy.  At both routers we will filter importing of OSPF routes from opposite router (R1 resp. R2).
Configuration of R2: - configuration of R1 is similar
acl number 3000
rule 0 deny ospf source 10.1.1.1 0
ospf 1
filter-policy 3000 import
Now we can check IP routing table of S0 and we can see that for destination 30.30.30.1 we have two alternative routes. So the load balancing is working properly.
IP routing table of S0:
Destination/Mask   Protocol Pre  Cost        Nexthop         Interface
10.1.1.0/24             DIRECT   0      0           10.1.1.3        Vlan-interface100
30.30.30.0/24         O_ASE    150   1           10.1.1.1        Vlan-interface100
                                                                      10.1.1.2        Vlan-interface100
Root Cause
CHECK THE CONFIGURATION OF S0, R1, R2 and NIX
Configuration of S0:
ospf                                        - Entering OSPF view
 area 0.0.0.0                           - Creating backbone area 0
 network 10.1.1.0 0.0.0.255   - Defining interface for OSPF
Configuration of R1:
bgp 200                                            - Entering BGP view for AS 200 
 group NIX external                          - Creating group NIX
 peer NIX as-number 100                 - Binding Group with remote AS 100
 peer 192.168.1.1 group NIX            - Adding peer into the group NIX
ospf 1                                               - Entering OSPF wiew
import-route bgp                               - Importing BGP routes to OSPF
area 0.0.0.0                                      - Defining backbone area 0.0.0.0
network 10.1.1.0 0.0.0.255              - Defining interface to run OSPF
Configuration of R2:                       - similar to configuration of R1.
Configuration of NIX:
bgp 100                                                - Entering BGP view of AS 100
 network 30.30.30.0 255.255.255.0      - Setting network to be propagated
 group R2 external                                 - Creating group
 peer R2 as-number 200                        - Setting remote AS for group
 peer 192.168.2.2 group R2                   - Adding peer in to the group
 group R1 external                                 - Creating group
 peer R1 as-number 200                       - Setting remote AS for group
 peer 192.168.1.2 group R1                   - Adding peer in to the group
Suggestions
- Configure all interfaces and check the connectivity by ping
- Configure OSPF and check the IP routing table
- Configure BGP and check the IP routing table
- Configure BGP � OSPF route import
- Check IP routing table 
- Configure ACL and filtering policy
- Check IP routing table
- Try to ping to destination and check interface statistic whether traffic is balanced

END