Configure Settings on Host OS
This chapter provides information on how to tune the settings on host OS to enable advanced features or to increase the scale of cRPD functionality.
Configure ARP Scaling
The maximum ARP entry number is controlled by the Linux host
kernel.
You can adjust the ARP or NDP entry limits using the sysctl
command on the Linux host.
For example, to adjust the maximum ARP entries using IPv4:
root@host:~# sysctl -w
net.ipv4.neigh.default.gc_thresh1=4096
root@host:~# sysctl -w
net.ipv4.neigh.default.gc_thresh2=8192
root@host:~# sysctl -w
net.ipv4.neigh.default.gc_thresh3=8192
For example, to adjust the maximum NDP entries using IPv6:
root@host:~# sysctl -w
net.ipv6.neigh.default.gc_thresh1=4096
root@host:~# sysctl -w
net.ipv6.neigh.default.gc_thresh2=8192
root@host:~# sysctl -w
net.ipv6.neigh.default.gc_thresh3=8192
IGMP Membership Under Linux
To allow a greater number of OSPFv2/v3 adjacencies with cRPD, increase the IGMP membership limit:
root@host:~# sysctl -w
net.ipv4.igmp_max_memberships=1000
Kernel Modules
You need to load
the
following kernel modules on the host before you
deploy
cRPD in Layer
3 mode.
These modules are usually available in linux-modules-extra
or
kernel-modules-extra
packages. Run the following commands
to add the kernel modules.
-
modprobe tun
-
modprobe fou
-
modprobe fou6
-
modprobe ipip
-
modprobe ip_tunnel
-
modprobe ip6_tunnel
-
modprobe mpls_gso
-
modprobe mpls_router
-
modprobe mpls_iptunnel
-
modprobe vrf
-
modprobe vxlan
Configure MPLS
To configure MPLS in Linux kernel:
Hash Field Selection for ECMP Load Balancing on Linux
You can select the ECMP hash policy (fib_multipath_hash_policy
)
for both forwarded and locally generated traffic (IPv4/IPv6).
IPv4 Traffic
wECMP Using BGP on Linux
Unequal cost load balancing is a way to distribute traffic unequally among different paths (comprising the multipath next-hop); when the paths have different bandwidth capabilities. BGP protocol tags each route/path with the bandwidth of the link using the link bandwidth extended community. The bandwidth of the corresponding link can be encoded as part of this link bandwidth community. RPD uses this bandwidth information of each path to program the multipath next-hops with appropriate linux::weights. A next-hop with linux::weight allows linux kernel to load-balance traffic asymmetrically.
BGP forms a multipath next-hop and uses the bandwidth values of individual paths to find out the proportion of traffic that each of the next-hops that form the ECMP next-hop should receive. The bandwidth values specified in the link bandwidth need not be the absolute bandwidth of the interface. These values need to reflect the relative bandwidth of one path from the another. For details, see Understanding How to Define BGP Communities and Extended Communities and How BGP Communities and Extended Communities Are Evaluated in Routing Policy Match Conditions.
Consider a network with R1 receiving equal cost paths from R2 and R3 to a destination R4. If you want to send 90% of the load balanced traffic over the path R1-R2 and the remaining 10% of the traffic over the path R1-R3 using wECMP. You need to tag routes received from the two BGP peers with link bandwidth community by configuring policy-options.
Enable SRv6 on cRPD
You can enable IPv6 SR capability on cRPD using the following sysctl command: