Using a BGP Multihoming design, is it possible redirect or modify any metric to determinate destination?

Example: I detected that the most of users are having problem to access a webserver: high latency, loss packet. Being LINK A the preferential path, is there any way to add weight or modify any thing which change the preferential path to LINK B, only that destination?

A simple example of my network

Huawei NE20: Quite simply this load sharing configuration.

bgp 42
 router-id 172.16.01
 peer as-number 26
 peer connect-interface GigabitEthernet0/3/1
 peer as-number 16
 peer connect-interface GigabitEthernet0/3/3

 ipv4-family unicast
  undo synchronization
  peer enable
  peer route-policy LINKA export
  peer enable
  peer route-policy LINKB export  

route-policy LINKB permit node 10
 if-match ip-prefix PREFIX-1
route-policy LINKB permit node 20
 if-match ip-prefix PREFIX-2
route-policy LINKA permit node 10
 if-match ip-prefix PREFIX-1
route-policy LINKA permit node 20
 if-match ip-prefix PREFIX-2
ip ip-prefix PREFIX-1 index 10 permit 22
ip ip-prefix PREFIX-2 index 10 permit 21

Note: Omitting the real ip address

  • 3
    The answer is definitely maybe. We need to know more about your network- please update your question with your router configurations and a simple diagram. Also note that while it's possible to change the outbound path, you have only limited control over the inbound path.
    – Ron Trunk
    Jan 19 '18 at 12:51
  • You do not have any real way to change how the ISPs in the path route traffic. You can change where the traffic exits your network.
    – Ron Maupin
    Jan 19 '18 at 16:00

In theory, the answer is yes, but based on your diagram and description, the practical answer is NO.

The problem is you can control your outbound traffic, but you have little control over your inbound traffic. For a webserver, traffic loads are very asymmetrical, and the vast amount of traffic is inbound.

You can control inbound traffic only to the point the your upstream AS's agree to do so. If they don't want to follow your signalling, there's not much you can do. Since you have two different ISP's they may not cooperate with each other.

Furthermore, ISPs limit the length of prefixes they allow you to advertise, usually a maximum of /24. So even if you advertised a more specific route for your webserver out of ISP B, they wouldn't accept it because they limit your prefix advertisements to /24.

Finally, you need to be very careful when programatically changing routing as a result of traffic loads. You can create a lot of instability in your network. Imagine link A is the preferred path, but it has high latency due to traffic loads. So you move some traffic to B. Now Link A's latency goes down because there's less traffic on the link. So your router switches traffic back to A. And the latency increases again. So it switches again....etc.

  • Yeah, know I see how it is complex. Thank you Ron
    – TMoraes
    Jan 21 '18 at 17:31

Outbound yes you can set different BGP attributes such as local preference or weight for the routes received from each connection.

Inbound you are at the mercy of the upstream but you can use AS prepending to "fail over" traffic to prefer one session over the other.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.