bonding 跟 IPv6

bonding 跟 ipv6 这两个 module 看上去没任何的关系,但实际上他们前者依赖于后者:
$ lsmod  | egrep 'ipv6|bonding'
bonding               127060  0
8021q                  25058  1 bonding
ipv6                  322541  57 bonding

所以如果在 modprobe 里面通过 "install ipv6 /bin/false" 的方式禁用了 ipv6,在加载 bonding 的时候会出现无法加载的情况。这里给出了一个 workaround
看上去像是个比较脑残的设计,对于我这个有轻微洁癖的工程师来说,看到下面这样的 ss 确实不大舒服。
Recv-Q Send-Q           Local Address:Port               Peer Address:Port   
0      64                          :::28633                        :::*    

不清楚当初写这些 module 的人怎么想的。

  • wayhomeke

    没有订阅看不到workaround

    • http://jaseywang.me/ Jasey Wang

      Replace the line install ipv6 /bin/false in /etc/modprobe.conf with options ipv6 disable=1
      This will allow the ipv6 kernel module to load (and thus resolve the
      symbols for the bonding module), but the ipv6 functionality will be
      disabled.

      If IPv6 has been previously disabled by inserting the install ipv6 /bin/false line in /etc/modprobe.conf then an upgrade to the bonding driver in 5.4 will result in the bonding kernel module failing to load.