简介
NetworkManager由一个管理系统网络连接、并且将其状态通过D-BUS(是一个提供简单的应用程序互相通讯的途径的自由软件项目,它是做为freedesktoporg项目的一部分来开发的。)进行报告的后台服务,以及一个允许用户管理网络连接的客户端程序。在NetworkManager中有一个很好用的网络配置工具就是nmcli。
nmcli命令集
nmcli语法
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
nmcli 常用选项
connection #配置网络连接
device #管理网卡
networking #管理网络状态
实例
connection 配置网络连接
查看所有连接
[root@CentOS7.3 ~]#nmcli connection show
NAME UUID TYPE DEVICE
eth0 702eabdc-6623-4d51-b864-f6bfdb521b55 802-3-ethernet eth0
virbr0 40217849-abce-47d2-b2c6-dc5b3f8beadb bridge virbr0
eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 802-3-ethernet --
仅查看活跃连接
[root@CentOS7.3 ~]#nmcli connection show --active
NAME UUID TYPE DEVICE
eth0 702eabdc-6623-4d51-b864-f6bfdb521b55 802-3-ethernet eth0
virbr0 40217849-abce-47d2-b2c6-dc5b3f8beadb bridge virbr0
创建新连接default,IP地址通过DHCP自动获取
[root@CentOS7.3 ~]#nmcli connection add con-name default type ethernet ifname eth1
Connection 'default' (db8ef10f-c848-461a-9098-09501f20d32b) successfully added.
参数
con-name #指定连接名
type #指定连接类型
ifname #指定连接到那块网卡
删除连接
[root@CentOS7.3 ~]#nmcli connection delete default
Connection 'default' (db8ef10f-c848-461a-9098-09501f20d32b) successfully deleted.
创建新链接static,并指定静态IP地址。
[root@CentOS7.3 ~]#nmcli connection add con-name static ifname eth1 autoconnect no type ethernet ipv4.method manual ipv4.addresses 192.168.0.8/24 gw4 192.168.0.1
Connection 'static' (e42075e8-4261-4890-b499-818b96d7411f) successfully added.
[root@CentOS7.3 ~]#nmcli connection show
NAME UUID TYPE DEVICE
eth0 702eabdc-6623-4d51-b864-f6bfdb521b55 802-3-ethernet eth0
eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 802-3-ethernet eth1
virbr0 40217849-abce-47d2-b2c6-dc5b3f8beadb bridge virbr0
static e42075e8-4261-4890-b499-818b96d7411f 802-3-ethernet --
参数
autoconnect #是否自动链接到网卡,参数(yes/no)。
ipv4.method #设置IP地址是自动获取还是静态指定。
ipv4.addresses #指定静态IPV4地址。
gw4 #指定静态IPV4网关地址。
启动static连接
[root@CentOS7.3 ~]#nmcli connection up static
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/12)
[root@CentOS7.3 ~]#nmcli connection show #再次查看连接
NAME UUID TYPE DEVICE
eth0 702eabdc-6623-4d51-b864-f6bfdb521b55 802-3-ethernet eth0
static e42075e8-4261-4890-b499-818b96d7411f 802-3-ethernet eth1 #static连接启动成功
virbr0 40217849-abce-47d2-b2c6-dc5b3f8beadb bridge virbr0
eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 802-3-ethernet --
修改连接配置
[root@CentOS7.3 ~]#nmcli connection modify "static" ipv4.dns 8.8.8.8 #为static连接添加一个dns地址。
[root@CentOS7.3 ~]#nmcli connection modify "static" ipv4.addresses 192.168.0.9 #修改static连接的IP地址。
[root@CentOS7.3 ~]#nmcli con down static #关闭再启动连接配置生效。
[root@CentOS7.3 ~]#nmcli con up static
常用参数和网卡配置文件参数的对应关系
nmcli con add/mod | 网卡配置文件 |
---|---|
ipv4.method manual | BOOTPROTO=none |
ipv4.method auto | BOOTPROTO=dhcp |
ipv4.addresses | IPADDR、PREFIX、GATEWAY |
ipve.dns | DNS |
ipv4.dns-search example.com | DOMAIN=example.com |
ipv4.ignore-auto-dns true | PEERDNS=no |
connection.autoconnect yes | ONBOOT=yes |
connection.id eth0 | NAME=eth0 |
connection.interface-name eth0 | DEVICE=eth0 |
802-3-ethernet.mac-address . . . | HWADDR= . . . |
ipv4.ignore-auto-dns yes | 手动设置dns |
device 管理网卡
查看网卡信息
[root@CentOS7.3 ~]#nmcli device #查看所有网卡的状态
DEVICE TYPE STATE CONNECTION
virbr0 bridge connected virbr0
eth0 ethernet connected eth0
eth1 ethernet connected static
eth2 ethernet connected Wired connection 1
lo loopback unmanaged --
virbr0-nic tun unmanaged --
查看网卡详细信息
[root@CentOS7.3 ~]#nmcli device show #查看所有网卡的详细信息
#后面跟上网卡名可单独查看某块网卡的详细信息
激活或关闭网卡
[root@CentOS7.3 ~]#nmcli device connect eth1 #激活eth1网卡,并自动连接到配置。
[root@CentOS7.3 ~]#nmcli device disconnect eth1 #断开eth1网卡
修改网卡属性,修改的配置立即生效,并不修改配置文件,重启网卡失效。
[root@CentOS7.3 ~]#nmcli device modify eth1
删除网卡,无法删除物理网卡
[root@CentOS7.3 ~]#nmcli device delete virbr0
networking 管理网络状态
[root@CentOS7.3 ~]#nmcli networking #off关闭网络,on开启网络
connectivity help off on
[root@CentOS7.3 ~]#nmcli networking connectivity #查看网络状态
full #full启动,none关闭
使用nmcli实现bonding
添加bonding接口
[root@CentOS7.3 ~]#nmcli connection add con-name mybond0 type bond ifname mybond0 mode active-backup
#mode 指定bonding接口的工作模式,active-backup表示主备模式。
为bonding0接口添加从属接口
[root@CentOS7.3 ~]#nmcli con add type bond-slave ifname eth1 master mybond0
[root@CentOS7.3 ~]#nmcli con add type bond-slave ifname eth2 master mybond0
启动bonding接口
[root@CentOS7.3 ~]#nmcli connection up bond-slave-eth1 #启动bonding网卡需要先启动从属网卡。
[root@CentOS7.3 ~]#nmcli connection up bond-slave-eth2
[root@CentOS7.3 ~]#nmcli con up mybond0 #启动mybond0网卡
[root@CentOS7.3 ~]#nmcli connection #查看连接信息
NAME UUID TYPE DEVICE
bond-slave-eth1 71c9dad8-7120-4b30-af01-be53337a359e 802-3-ethernet eth1
bond-slave-eth2 9103d9ea-fa2b-4df4-a5f4-3d615c53a94a 802-3-ethernet eth2
eth0 702eabdc-6623-4d51-b864-f6bfdb521b55 802-3-ethernet eth0
mybond0 ac079cc4-6a74-45ed-ab82-9c58a1415984 bond mybond0
virbr0 90d0d99c-4abd-4328-be7d-8d67812a3f68 bridge virbr0
Wired connection 1 2d3af334-7e54-311f-9abd-d05fc0143e43 802-3-ethernet --
eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 802-3-ethernet --
static e42075e8-4261-4890-b499-818b96d7411f 802-3-ethernet --
bonding的7种工作模式,顺序(0-6)
balance-rr #负载均衡模式,常用模式
active-backup #主备模式
balance-xor #XOR Hash负载分担,和交换机的聚合强制不协商方式配合。
broadcast #从所有物理接口发送数据包。
802.3ad #表示支持802.3ad协议,和交换机的聚合LACP方式配合。
balance-tlb #是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave。
balance-alb #在balance-tlb的基础上增加了rlb。