User Tools

Site Tools


documentation:examples:ecmp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
documentation:examples:ecmp [2020/09/23 15:03] – [Checking routes installed] olivierdocumentation:examples:ecmp [2022/12/11 17:52] – [R2 (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 from [[https://reviews.freebsd.org/D26449|FreeBSD's review D26449]]+This lab need a FreeBSD 13-head r366390 minimum ([[https://reviews.freebsd.org/D26449|new ECMP routing code ]])
 ===== Presentation ===== ===== Presentation =====
  
Line 28: Line 28:
   gateway_enable=NO \   gateway_enable=NO \
   ipv6_gateway_enable=NO \   ipv6_gateway_enable=NO \
-  ifconfig_igb1="inet 10.0.31.3/24" \ +  ifconfig_igb1="inet 10.0.12.1/24" \ 
-  ifconfig_igb1_alias1="inet 10.0.31.13/32" \ +  ifconfig_igb1_alias1="inet 10.0.12.11/32" \ 
-  ifconfig_igb1_alias2="inet 10.0.31.23/32" \ +  ifconfig_igb1_alias2="inet 10.0.12.21/32" \ 
-  ifconfig_igb1_alias3="inet 10.0.31.33/32" \ +  ifconfig_igb1_alias3="inet 10.0.12.31/32" \ 
-  ifconfig_igb1_alias4="inet 10.0.31.43/32" \ +  ifconfig_igb1_alias4="inet 10.0.12.41/32" \ 
-  ifconfig_igb1_alias5="inet 10.0.31.53/32" \ +  ifconfig_igb1_alias5="inet 10.0.12.51/32" \ 
-  ifconfig_igb1_ipv6="inet6 2001:db8:31::3 prefixlen 64" \ +  ifconfig_igb1_ipv6="inet6 2001:db8:12::3 prefixlen 64" \ 
-  ifconfig_igb1_alias61="inet6 2001:db8:31::13 prefixlen 64" \ +  ifconfig_igb1_alias61="inet6 2001:db8:12::11 prefixlen 64" \ 
-  ifconfig_igb1_alias62="inet6 2001:db8:31::23 prefixlen 64" \ +  ifconfig_igb1_alias62="inet6 2001:db8:12::21 prefixlen 64" \ 
-  ifconfig_igb1_alias63="inet6 2001:db8:31::33 prefixlen 64" \ +  ifconfig_igb1_alias63="inet6 2001:db8:12::31 prefixlen 64" \ 
-  ifconfig_igb1_alias64="inet6 2001:db8:31::43 prefixlen 64" \ +  ifconfig_igb1_alias64="inet6 2001:db8:12::41 prefixlen 64" \ 
-  ifconfig_igb1_alias65="inet6 2001:db8:31::53 prefixlen 64" \ +  ifconfig_igb1_alias65="inet6 2001:db8:12::51 prefixlen 64" \ 
-  static_routes="LAB" \  +  static_routes="LAB"
-  route_LAB="-net 10.0.0.0/16 10.0.31.1" \  +  route_LAB="-net 10.0.0.0/16 10.0.12.2" \ 
-  ipv6_static_routes="LAB" \  +  ipv6_static_routes="LAB"
-  ipv6_route_LAB="2001:db8:: -prefixlen 32 2001:db8:31::1"+  ipv6_route_LAB="2001:db8:: -prefixlen 32 2001:db8:12::2"
 service hostname restart service hostname restart
 service netif restart service netif restart
Line 55: Line 55:
  
 <code> <code>
 +
 sysrc hostname=R1 \ sysrc hostname=R1 \
   gateway_enable=YES \   gateway_enable=YES \
   ipv6_gateway_enable=YES \   ipv6_gateway_enable=YES \
-  ifconfig_igb0="inet 10.0.31.1/24" \  +  ifconfig_igb0="inet 10.0.12.2/24" \ 
-  ifconfig_igb0_ipv6="inet6 2001:db8:31::prefixlen 64" \ +  ifconfig_igb0_ipv6="inet6 2001:db8:12::prefixlen 64" \ 
-  ifconfig_igb1="inet 10.0.112.1/24" \ +  ifconfig_igb1="inet 10.0.231.2/24" \ 
-  ifconfig_igb1_ipv6="inet6 2001:db8:112::prefixlen 64" \ +  ifconfig_igb1_ipv6="inet6 2001:db8:231::prefixlen 64" \ 
-  ifconfig_igb2="inet 10.0.212.1/24" \ +  ifconfig_igb2="inet 10.0.232.2/24" \ 
-  ifconfig_igb2_ipv6="inet6 2001:db8:212::prefixlen 64" \+  ifconfig_igb2_ipv6="inet6 2001:db8:232::prefixlen 64" \
   static_routes="MPATH1 MPATH2" \   static_routes="MPATH1 MPATH2" \
-  route_MPATH1="-net 10.0.0.0/16 10.0.112.2" \ +  route_MPATH1="-net 10.0.0.0/16 10.0.231.3" \ 
-  route_MPATH2="-net 10.0.0.0/16 10.0.212.2" \+  route_MPATH2="-net 10.0.0.0/16 10.0.232.3" \
   ipv6_static_routes="MPATH1 MPATH2" \   ipv6_static_routes="MPATH1 MPATH2" \
-  ipv6_route_MPATH1="2001:db8:: -prefixlen 32 2001:db8:112::2" \ +  ipv6_route_MPATH1="2001:db8:: -prefixlen 32 2001:db8:231::3" \ 
-  ipv6_route_MPATH2="2001:db8:: -prefixlen 32 2001:db8:212::2"+  ipv6_route_MPATH2="2001:db8:: -prefixlen 32 2001:db8:232::3"
 service hostname restart service hostname restart
 service netif restart service netif restart
Line 79: Line 80:
  
 <code> <code>
-[root@R1]~# netstat -rn4 | grep 10.0.0.0/16 +root@R1:~ # netstat -rn4 | grep 10.0.0.0/16 
-10.0.0.0/16        10.0.112.        UGS        igb1 +10.0.0.0/16        10.0.231.        UGS        igb1 
-10.0.0.0/16        10.0.212.        UGS        igb2+10.0.0.0/16        10.0.232.        UGS        igb2
  
-[root@R1]~# route -n get 10.0.0.0/16 +root@R1:~ # netstat -4onW
-   route to10.0.0.0 +
-destination: 10.0.0.0 +
-       mask: 255.255.0.0 +
-    gateway: 10.0.112.2 +
-        fib: 0 +
-  interface: igb1 +
-      flags: <UP,GATEWAY,DONE,STATIC> +
- recvpipe  sendpipe  ssthresh  rtt,msec    mtu        weight    expire +
-                                    1500                 0 +
- +
-[root@R1]~# netstat -4onW+
 Nexthop data Nexthop data
  
 Internet: Internet:
 Idx   Type         IFA                Gateway             Flags      Use Mtu         Netif     Addrif Refcnt Prepend Idx   Type         IFA                Gateway             Flags      Use Mtu         Netif     Addrif Refcnt Prepend
-1       v4/resolve 127.0.0.1          lo0/resolve        HS            0  16384        lo0               1 +1       v4/resolve 127.0.0.1          lo0/resolve        H             0  16384        lo0               2 
-2       v4/resolve 10.0.31.         igb0/resolve                       1500       igb0               1 +2       v4/resolve 10.0.12.         igb0/resolve                       1500       igb0               2 
-3       v4/resolve 127.0.0.1          lo0/resolve        HS            0  16384        lo0      igb0     1 +3       v4/resolve 127.0.0.1          lo0/resolve        HS            0  16384        lo0      igb0     2 
-4       v4/resolve 10.0.112.        igb1/resolve                       1500       igb1               1 +4       v4/resolve 10.0.231.        igb1/resolve                       1500       igb1               2 
-5       v4/resolve 127.0.0.1          lo0/resolve        HS            0  16384        lo0      igb1     1 +5       v4/resolve 127.0.0.1          lo0/resolve        HS            0  16384        lo0      igb1     2 
-6       v4/resolve 10.0.212.        igb2/resolve                       1500       igb2               1 +6       v4/resolve 10.0.232.        igb2/resolve                       1500       igb2               2 
-7       v4/resolve 127.0.0.1          lo0/resolve        HS            0  16384        lo0      igb2     1 +7       v4/resolve 127.0.0.1          lo0/resolve        HS            0  16384        lo0      igb2     2 
-8            v4/gw 10.0.112.        10.0.112.        GS            0   1500       igb1               1 +8            v4/gw 10.0.231.        10.0.231.        GS            0   1500       igb1               1 
-9            v4/gw 10.0.212.        10.0.212.        GS            0   1500       igb2               1 +9            v4/gw 10.0.232.        10.0.232.        GS            0   1500       igb2               1
-     +
-[root@R1]~# netstat -rn6 | grep 2001:db8::/32 +
-2001:db8::/32                     2001:db8:212::              UGS        igb2 +
-2001:db8::/32                     2001:db8:112::              UGS        igb1 +
-       +
-[root@R1]~# route -n6 get 2001:db8::/32 +
-   route to: 2001:db8:: +
-destination: 2001:db8:: +
-       mask: ffff:ffff:: +
-    gateway: 2001:db8:212::+
-        fib: 0 +
-  interface: igb2 +
-      flags: <UP,GATEWAY,DONE,STATIC> +
- recvpipe  sendpipe  ssthresh  rtt,msec    mtu        weight    expire +
-                                    1500                 0+
  
-[root@R1]~# netstat -6onW+root@R1:~ # netstat -6onW
 Nexthop data Nexthop data
  
 Internet6: Internet6:
 Idx   Type         IFA                           Gateway                        Flags      Use Mtu       Netif   Addrif Refcnt Prepend Idx   Type         IFA                           Gateway                        Flags      Use Mtu       Netif   Addrif Refcnt Prepend
-1       v6/resolve ::1                           lo0/resolve                   H             0  16384      lo0             1 +1       v6/resolve ::1                           lo0/resolve                   HS            0  16384      lo0             2 
-2       v6/resolve fe80::1%lo0                   lo0/resolve                   HS            0  16384      lo0             1 +2       v6/resolve fe80::1%lo0                   lo0/resolve                   HS            0  16384      lo0             2 
-3       v6/resolve fe80::1%lo0                   lo0/resolve                                  16384      lo0             1 +3       v6/resolve fe80::1%lo0                   lo0/resolve                                  16384      lo0             2 
-4       v6/resolve ::1                           lo0/resolve                   HS            0  16384      lo0    igb0     2 +4       v6/resolve ::1                           lo0/resolve                   HS            0  16384      lo0    igb0     3 
-5       v6/resolve fe80::20d:b9ff:fe45:79e4%igb0 igb0/resolve                                0   1500     igb0             1 +5       v6/resolve fe80::20d:b9ff:fe41:ca3c%igb0 igb0/resolve                                0   1500     igb0             3 
-6       v6/resolve 2001:db8:31::1                igb0/resolve                                  1500     igb0             1 +6       v6/resolve ::1                           lo0/resolve                   HS             16384      lo0    igb1     3 
-7       v6/resolve fe80::20d:b9ff:fe45:79e5%igb1 igb1/resolve                                0   1500     igb1             1 +7       v6/resolve fe80::20d:b9ff:fe41:ca3d%igb1 igb1/resolve                                0   1500     igb1             3 
-8       v6/resolve ::1                           lo0/resolve                   HS            0  16384      lo0    igb1     2 +8       v6/resolve ::1                           lo0/resolve                   HS            0  16384      lo0    igb2     3 
-9       v6/resolve 2001:db8:112::              igb1/resolve                                0   1500     igb1             1 +9       v6/resolve fe80::20d:b9ff:fe41:ca3e%igb2 igb2/resolve                                0   1500     igb2             3 
-10      v6/resolve fe80::20d:b9ff:fe45:79e6%igb2 igb2/resolve                                0   1500     igb2             1 +10           v6/gw ::1                           ::                          GRS            16384      lo0             5 
-11      v6/resolve ::1                           lo0/resolve                   HS            0  16384      lo0    igb2     2 +11           v6/gw 2001:db8:231::              2001:db8:231::              GS            0   1500     igb1             1 
-12           v6/gw ::1                           ::                          GRS            16384      lo0             4 +12           v6/gw 2001:db8:232::              2001:db8:232::              GS            0   1500     igb2             1
-13           v6/gw 2001:db8:112::              2001:db8:112::              GS            0   1500     igb1             1 +
-14           v6/gw 2001:db8:212::              2001:db8:212::              GS            0   1500     igb2             1 +
-15      v6/resolve 2001:db8:212::              igb2/resolve                                0   1500     igb2             1+
 </code> </code>
 +==== R2 (ECMP router) ====
  
- +R2 is like R1, a router with ECMP: 2 static routing toward the same destination but using 2 different next-hop..
-Look like this router will prefer igb1 for inet4 and igb2 for inet6. +
- +
-==== R5 (ECMP router) ==== +
- +
-R5 is like R2, a router with ECMP: 2 static routing toward the same destination but using 2 different next-hop..+
  
 <code> <code>
Line 157: Line 125:
   gateway_enable=YES \   gateway_enable=YES \
   ipv6_gateway_enable=YES \   ipv6_gateway_enable=YES \
-  ifconfig_igb0="inet 10.0.24.2/24" \ +  ifconfig_igb0="inet 10.0.34.3/24" \ 
-  ifconfig_igb0_ipv6="inet6 2001:db8:24::prefixlen 64" \ +  ifconfig_igb0_ipv6="inet6 2001:db8:34::prefixlen 64" \ 
-  ifconfig_igb1="inet 10.0.112.2/24" \ +  ifconfig_igb1="inet 10.0.231.3/24" \ 
-  ifconfig_igb1_ipv6="inet6 2001:db8:112::prefixlen 64" \ +  ifconfig_igb1_ipv6="inet6 2001:db8:231::prefixlen 64" \ 
-  ifconfig_igb2="inet 10.0.212.2/24" \ +  ifconfig_igb2="inet 10.0.232.3/24" \ 
-  ifconfig_igb2_ipv6="inet6 2001:db8:212::prefixlen 64" \ +  ifconfig_igb2_ipv6="inet6 2001:db8:232::prefixlen 64" \ 
-  static_routes="MPATH1 MPATH2" \ +  static_routes="DST1 DST2 SRC1 SRC2" \ 
-  route_MPATH1="-net 10.0.0.0/16 10.0.112.1" \ +  route_DST1="-net 10.0.0.0/16 10.0.231.3" \ 
-  route_MPATH2="-net 10.0.0.0/16 10.0.212.1" \ +  route_DST2="-net 10.0.0.0/16 10.0.232.3" \ 
-  ipv6_static_routes="MPATH1 MPATH2" \ +  route_SRC1="-net 10.0.12.0/24 10.0.231.2"
-  ipv6_route_MPATH1="2001:db8:: -prefixlen 32 2001:db8:112::1" \ +  route_SRC2="-net 10.0.12.0/24 10.0.232.2" \ 
-  ipv6_route_MPATH2="2001:db8:: -prefixlen 32 2001:db8:212::1"+  ipv6_static_routes="DST1 DST2 SRC1 SRC2" \ 
 +  ipv6_route_MPATH1="2001:db8:: -prefixlen 32 2001:db8:231::3" \ 
 +  ipv6_route_MPATH2="2001:db8:: -prefixlen 32 2001:db8:231::3" \ 
 +  ipv6_route_SRC1="2001:db8:12:: -prefixlen 64 2001:db8:231::2"
 +  ipv6_route_SRC2="2001:db8:12:: -prefixlen 64 2001:db8:231::2"
 service hostname restart service hostname restart
 service netif restart service netif restart
Line 174: Line 146:
 config save config save
 </code> </code>
- 
-And checking: 
-<code> 
-# route get 10.0.0.0/16 
-   route to: 10.0.0.0 
-destination: 10.0.0.0 
-       mask: 255.255.0.0 
-    gateway: 10.0.212.1 
-        fib: 0 
-  interface: igb2 
-      flags: <UP,GATEWAY,DONE,STATIC> 
- recvpipe  sendpipe  ssthresh  rtt,msec    mtu        weight    expire 
-                                    1500                 0 
- 
- 
-# route -6 get 2001:db8::/32 
-   route to: 2001:db8:: 
-destination: 2001:db8:: 
-       mask: ffff:ffff:: 
-    gateway: 2001:db8:112::1 
-        fib: 0 
-  interface: igb1 
-      flags: <UP,GATEWAY,DONE,STATIC> 
- recvpipe  sendpipe  ssthresh  rtt,msec    mtu        weight    expire 
-                                    1500                 0 
-        
-</code> 
- 
-Look like this router will prefer to use igb2 for inet4 and igb1 for inet6. 
- 
 ==== Server ==== ==== Server ====
  
documentation/examples/ecmp.txt · Last modified: 2024/03/28 23:19 by olivier

Except where otherwise noted, content on this wiki is licensed under the following license: BSD 2-Clause
Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki