前言
在之前的文章中,描述的创建bond的方式,是使用配置文件的方式,在创建bond的时候创建一个对应的配置文件,修改、删除都操作此配置文件,这种方式实现bond没有问题,但是对于某些系统下,bond灵活性不高,比如我们的系统是改造过的,也就是自研的linux系统,Network和NetworkManager的兼容性不友好,配置文件属于Network,但是每次重启使用nmcli命令属于NetworkManager,两者交替混乱使用,会导致bond刚创建完,链路状态是非正常的,不管是使用ethtool或者cat /proc/net/bonding/bondx 查询bond的链路状态,都是不正常的,只有重启好几次,或者重启网络,链路状态才正常,所以决定改变bond的创建方式,弃用Network,完全使用NetworkManager那一套,使用nmcli命令去管理bond
创建bond
con-name:bond名称
ifname:bond别名
nmcli con add type bond con-name bond23 ifname bond23
con-name:bond子口名称
ifname:bond子口别名
master:bond名称
nmcli con add type bond-slave con-name bond23-slave-port2 ifname port2 master bond23
nmcli con add type bond-slave con-name bond23-slave-port3 ifname port3 master bond23
添加bond模式
1: active-backup0: balance-rr
nmcli con mod bond23 bond.options "mode=balance-rr"
添加bond ipv4地址:ip地址/子网掩码
mcli con mod bond23 ipv4.addresses "10.20.82.204/16"
将IP配置修改为手动
nmcli con mod bond23 ipv4.method manual
设置ipv4的网关地址
nmcli con mod bond23 ipv4.gateway "10.20.0.1"
设置ipv6地址
nmcli con mod bond23 ipv6.addresses "16::11/64"
设置ipv6网关
nmcli con mod bond23 ipv6.gateway "16::1"
重启子口、重启bond口
nmcli con up bond23-slave-port2
nmcli con up bond23-slave-port3
nmcli con up bond23
至此,bond已经创建完成,这种方式创建的bond,bond与子口的绑定关系不体现在配置文件中,只能通过nmcli con show 查询出所有管理的bond,通过自定义的名称找到对应的子口
删除bond
nmcli con del bond23-slave-port2
nmcli con del bond23-slave-port3
nmcli con del bond23
删除完之后也不用重启网口,网口立刻就更新了