Hitchhiker's Guide to Openbsd


- How can I do equal-cost multipath routing?


Download 1.27 Mb.
Pdf ko'rish
bet110/258
Sana04.04.2023
Hajmi1.27 Mb.
#1328980
1   ...   106   107   108   109   110   111   112   113   ...   258
Bog'liq
obsd-faq49

6.14 - How can I do equal-cost multipath routing?
Equal-cost multipath routing refers to having multiple routes in the routing table for the same network
such as the default route, 0.0.0.0/0. When the kernel is doing a route lookup to determine where to send 
packets destined to that network, it can choose from any of the equal-cost routes. In most scenarios, 
multipath routing is used to provide redundant uplink connections, e.g., redundant connections to the 
Internet. 
The 
route(8)
 command is used to add/change/delete routes in the routing table. The 
-mpath
argument 
is used when adding multipath routes. 
route add -mpath default 10.130.128.1
route add -mpath default 10.132.0.1
Verify the routes: 
netstat -rnf inet | grep default
default 10.130.128.1 UGS 2 134
- fxp1
default 10.132.0.1 UGS 0 172
- fxp2
In this example we can see that one default route points to 10.130.128.1 which is accessible via the fxp1 
interface, and the other points to 10.132.0.1 which is accessible via fxp2. 
Since the 
mygate(5)
file does not yet support multipath default routes, the above commands should be 
added to the bottom of the 
hostname.if(5)
files for the fxp1 and fxp2 interfaces. The 
/etc/mygate
file 
should then be deleted. 
/etc/hostname.fxp1
!route add -mpath default 10.130.128.1
/etc/hostname.fxp2
!route add -mpath default 10.132.0.1
Lastly, don't forget to activate the use of multipath routes by enabling the proper sysctl(3) variable. 
sysctl net.inet.ip.multipath=1
http://www.openbsd.org/faq/faq6.html (32 of 33)9/4/2011 10:02:06 AM


6 - Networking
sysctl net.inet6.ip6.multipath=1
Be sure to edit 
sysctl.conf(5)
to make the changes permanent. 
Now try a traceroute to different destinations. The kernel will load balance the traffic over each 
multipath route. 
traceroute -n 154.11.0.4
traceroute to 154.11.0.4 (154.11.0.4), 64 hops max, 60 byte 
packets
1 10.130.128.1 19.337 ms 18.194 ms 18.849 ms
2 154.11.95.170 17.642 ms 18.176 ms 17.731 ms
3 154.11.5.33 110.486 ms 19.478 ms 100.949 ms
4 154.11.0.4 32.772 ms 33.534 ms 32.835 ms
traceroute -n 154.11.0.5
traceroute to 154.11.0.5 (154.11.0.5), 64 hops max, 60 byte 
packets
1 10.132.0.1 14.175 ms 14.503 ms 14.58 ms
2 154.11.95.38 13.664 ms 13.962 ms 13.445 ms
3 208.38.16.151 13.964 ms 13.347 ms 13.788 ms
4 154.11.0.5 30.177 ms 30.95 ms 30.593 ms
For more information about how the route is chosen, please refer to 
RFC2992
, "Analysis of an Equal-
Cost Multi-Path Algorithm". 
It's worth noting that if an interface used by a multipath route goes down (i.e., loses carrier), the kernel 
will still try to forward packets using the route that points to that interface. This traffic will of course be 
blackholed and end up going nowhere. It's highly recommended to use 
ifstated(8)
 to check for 
unavailable interfaces and adjust the routing table accordingly. 
[FAQ Index]
 
[To Section 5 - Building the System from Source]
[To Section 7 - Keyboard and Display 
Controls]
 
www@openbsd.org
$OpenBSD: faq6.html,v 1.295 2011/06/28 08:33:48 jj Exp $
http://www.openbsd.org/faq/faq6.html (33 of 33)9/4/2011 10:02:06 AM


7 - Keyboard and Display Controls
 
[FAQ Index]
 
[To Section 6 - Networking]
[To Section 8 - General Questions]

Download 1.27 Mb.

Do'stlaringiz bilan baham:
1   ...   106   107   108   109   110   111   112   113   ...   258




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling