documentation:examples:ecmp
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
documentation:examples:ecmp [2020/01/15 12:37] – [Testing Load balancing] olivier | documentation:examples:ecmp [2020/09/19 17:48] – [VM 2 (ECMP router)] olivier | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Equal-cost multi-path routing (ECMP) ====== | ====== Equal-cost multi-path routing (ECMP) ====== | ||
- | This lab is testing new ECMP routing code. | + | This lab is testing new ECMP routing code from [[https:// |
===== Presentation ===== | ===== Presentation ===== | ||
Line 110: | Line 109: | ||
VM 2 is a router with ECMP: 2 static routes toward the same destination but using 2 different next-hop. | VM 2 is a router with ECMP: 2 static routes toward the same destination but using 2 different next-hop. | ||
- | Need to disable fastforward by re-enabling ICMP redirect (disabled on BSDRP by default). | ||
< | < | ||
Line 130: | Line 128: | ||
ipv6_route_VM4VM6=" | ipv6_route_VM4VM6=" | ||
ipv6_route_VM4VM5=" | ipv6_route_VM4VM5=" | ||
- | sed -i '' | ||
- | sed -i '' | ||
- | sysctl net.inet.ip.redirect=1 | ||
- | sysctl net.inet6.ip6.redirect=1 | ||
service hostname restart | service hostname restart | ||
service netif restart | service netif restart | ||
Line 146: | Line 140: | ||
10.0.56.0/ | 10.0.56.0/ | ||
10.0.56.0/ | 10.0.56.0/ | ||
+ | |||
[root@VM2]~# | [root@VM2]~# | ||
route to: 10.0.56.0 | route to: 10.0.56.0 | ||
Line 156: | Line 151: | ||
| | ||
| | ||
+ | |||
[root@VM2]~# | [root@VM2]~# | ||
Nexthop data | Nexthop data | ||
Line 161: | Line 157: | ||
Internet: | Internet: | ||
Idx | Idx | ||
+ | 1 | ||
+ | 2 | ||
+ | 3 | ||
4 | 4 | ||
+ | 5 | ||
6 | 6 | ||
- | 2 | ||
- | 1 | ||
7 | 7 | ||
- | 5 | + | 8 v4/gw 10.0.23.2 10.0.23.3 |
- | 3 | + | 9 v4/gw 10.0.24.2 10.0.24.4 |
- | 9 v4/gw 10.0.24.2 10.0.24.4 | + | |
- | 8 v4/gw 10.0.23.2 10.0.23.3 | + | [root@VM2]~# |
- | Nexthop groups data | + | route to: 2001: |
- | BUF: 192 | + | destination: |
+ | mask: ffff: | ||
+ | gateway: 2001: | ||
+ | fib: 0 | ||
+ | interface: vtnet2 | ||
+ | flags: < | ||
+ | | ||
+ | | ||
- | Internet: | + | [root@VM2]~# |
- | MpIdx NHIdx Weigh Slots | + | Nexthop data |
- | 1 | + | |
- | | + | Internet6: |
- | | + | Idx |
+ | 1 v6/resolve ::1 | ||
+ | 2 | ||
+ | 3 | ||
+ | 4 v6/gw ::1 :: | ||
+ | 5 | ||
+ | 6 | ||
+ | 7 | ||
+ | 8 | ||
+ | 9 | ||
+ | 10 | ||
+ | 11 v6/resolve ::1 | ||
+ | 12 v6/resolve fe80:: | ||
+ | 13 v6/resolve 2001: | ||
+ | 14 v6/gw 2001:db8:23::2 2001: | ||
+ | 15 v6/gw 2001: | ||
</ | </ | ||
==== VM 3 (router) ==== | ==== VM 3 (router) ==== | ||
Line 245: | Line 265: | ||
ipv6_route_VM4VM1=" | ipv6_route_VM4VM1=" | ||
ipv6_route_VM4VM2=" | ipv6_route_VM4VM2=" | ||
- | sed -i '' | ||
- | sed -i '' | ||
- | sysctl net.inet.ip.redirect=1 | ||
- | sysctl net.inet6.ip6.redirect=1 | ||
service hostname restart | service hostname restart | ||
service netif restart | service netif restart | ||
Line 285: | Line 301: | ||
==== Testing Load balancing ==== | ==== Testing Load balancing ==== | ||
- | Flows from VM1 to VM6 should be load-balanced | + | Flows from VM1 to VM6 should be "flow-id shared" |
Using ping record feature like with this example: | Using ping record feature like with this example: | ||
< | < | ||
Line 314: | Line 330: | ||
| 10.0.12.41 | 10.0.56.46 | VM4 | VM4 | | | 10.0.12.41 | 10.0.56.46 | VM4 | VM4 | | ||
| 10.0.12.51 | 10.0.56.56 | VM4 | VM4 | | | 10.0.12.51 | 10.0.56.56 | VM4 | VM4 | | ||
- | | 2001: | + | | 2001: |
- | | 2001: | + | | 2001: |
- | | 2001: | + | | 2001: |
- | | 2001: | + | | 2001: |
- | | 2001: | + | | 2001: |
- | | 2001: | + | | 2001: |
+ | ==== Testing Fail Over ==== | ||
+ | VM4 is the preferred hop, so shutdown this VM to check behavior: | ||
- | Notice inet6 bug: Cannot ping itself neither neighbor | ||
< | < | ||
- | [root@VM1]~# ifconfig vtnet0 inet6 | + | [root@VM4]~# shutdown -p now |
- | vtnet0: flags=8943< | + | Shutdown NOW! |
- | | + | </code> |
- | inet6 fe80:: | + | |
- | inet6 2001: | + | |
- | inet6 2001: | + | |
- | inet6 2001: | + | |
- | inet6 2001: | + | |
- | inet6 2001: | + | |
- | inet6 2001: | + | |
- | nd6 options=21< | + | |
- | [root@VM1]~# | + | |
- | PING6(56=40+8+8 bytes) fe80:: | + | |
- | --- fe80:: | + | < |
- | 1 packets transmitted, | + | [root@VM2]~# netstat |
- | [root@VM1]~# ping6 -c 12001: | + | Nexthop data |
- | ping6: illegal number of packets -- 12001: | + | |
- | [root@VM1]~# | + | |
- | PING6(56=40+8+8 bytes) 2001: | + | |
- | --- 2001:db8:12::2 ping6 statistics --- | + | Internet: |
+ | Idx | ||
+ | 4 | ||
+ | 6 | ||
+ | 2 | ||
+ | 1 | ||
+ | 7 | ||
+ | 5 | ||
+ | 3 | ||
+ | 9 v4/gw 10.0.24.2 | ||
+ | 8 v4/gw 10.0.23.2 | ||
+ | Nexthop groups data | ||
+ | BUF: 192 | ||
+ | |||
+ | Internet: | ||
+ | MpIdx NHIdx Weigh Slots Gateway Netif Refcnt | ||
+ | 1 | ||
+ | 9 | ||
+ | 8 | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | [root@VM1]~# | ||
+ | PING 10.0.56.26 (10.0.56.26) from 10.0.12.21: 56 data bytes | ||
+ | |||
+ | --- 10.0.56.26 ping statistics --- | ||
1 packets transmitted, | 1 packets transmitted, | ||
</ | </ |
documentation/examples/ecmp.txt · Last modified: 2024/03/28 23:19 by olivier