RH134小结(六)nmcli配置IPv4与IPv6网络

Red Hat Enterprise Linux 7 与 CentOS 7 中默认的网络服务由 NetworkManager 提供,这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的 ifcfg 类型的配置文件。可以用命令行工具 nmcli 来控制 NetworkManager,相应的也有一个图形化的配置工具nmtui。NetworkManager 可以用于以下类型的连接:Ethernet,VLANS,Bridges,Bonds,Teams,Wi-Fi,mobile boradband(如移动3G)以及 IP-over-InfiniBand。针对与这些网络类型,NetworkManager 可以配置他们的网络别名,IP 地址,静态路由,DNS,VPN连接以及很多其它的特殊参数。

一、nmcli 配置IPv4地址

下面是新增一个连接名为static对应的物理网口为eth0,并配置开机不自动启动,并配置相应的网关与地址

# nmcli connection add conn-name "static" ifname eth0 autoconnect no type ethernet ipv4 192.168.0.100/24 gw4  192.168.0.1    //新增连接不自动连接

针对一个已存在的接口,我们也可以通过nmcli 修改其对应的IP地址

# nmcli connection modify static ipv4.addr "192.168.1.23/24 192.168.1.1" ipv4.method manual //修改连接的IP地址

在centos 6中我们需要事行定义好几个cfg文件,也可以实现单个网口在多个环境下IP之间的随意切换,不过在centos7里明显加强了通过命令实现这种切换的概念,如下:

# nmcli connection  add con-name "default" type ethernet ifname eth0
Connection 'default' (f15e2684-7aaa-4fbc-83de-ad10c7dee0eb) successfully added.
# nmcli conn up "static"     //启用上面的静态地址配置
# nmcli conn up "default"   //切回dhcp

默认情况下通过nmcli add 或 modify的操作只是修改了配置文件,并不会立即生效,想要生效启用,需要通过“nmcli conn up 接口名” 来启用对应的配置。所以通过这两个配置文件,我们像上面一样来回切换。

# nmcli conn mod "static" connection.autoconnect no   关闭开机自动连接
# nmcli conn mod "static"  ipv4.dns 192.168.0.254     设置DNS
# nmcli conn mod "static"  +ipv4.dns 192.168.0.254   +/-号用于增加或减少备用DNS
# nmcli conn mod "static"  +ipv4.addresses "172.10.10.100/25"  增加第二地址,并且不设备网关
# nmcli connection modify eth0 +ipv4.routes 192.168.122.0/24 ipv4.gateway 10.10.10.1   配置路由

nmcli命令实际上编辑的还是/etc/sysconfig/network-scripts/ifcfg-*文件。在不想使用该文件时,可以通过delete删除对应的接口:

# nmcli connection delete ens3

二、nmcli 配置IPv6地址

ipv6下的配置与ipv4使用的差数差不多,只不过将ipv4换成了ipv6,如下:

# nmcli connection modify eth1 ipv6.addresses '2001:ac18::132/64' ipv6.method manual
# nmcli connection up eth1
# ping6 2001:ac18::132
PING 2001:ac18::132(2001:ac18::132) 56 data bytes
64 bytes from 2001:ac18::132: icmp_seq=1 ttl=64 time=0.052 ms

需要注意的是测试ipv6的连接性,使用ping6而不是ping 。

三、nmcli 的其他常用用法

设置主机名

# nmcli general hostname  361way  其等价于
# hostnamectl set-hostname 361way

查看当前的连接

# nmcli connection show
NAME                UUID                                  TYPE            DEVICE
vnet1               a9be8935-fde1-4768-9611-74475e1c7e01  generic         vnet1
Bridge eno16777736  d2d68553-f97e-7549-7a26-b34a26f29318  bridge          br0
System eno16777736  0756a150-f4ee-4502-a0fb-eff8caad35e6  802-3-ethernet  --
ens3                49d0dcc3-3e5e-49f0-80b7-2c8f3994c046  802-3-ethernet  ens3
# nmcli connection show --active
NAME                UUID                                  TYPE            DEVICE
vnet1               a9be8935-fde1-4768-9611-74475e1c7e01  generic         vnet1
virbr0              cd0fd5d5-2b71-4c1a-b66d-1801c881e37f  bridge          virbr0
Bridge eno16777736  d2d68553-f97e-7549-7a26-b34a26f29318  bridge          br0
ens3                49d0dcc3-3e5e-49f0-80b7-2c8f3994c046  802-3-ethernet  ens3

查看连接接口的详细信息

# nmcli connection show br1  //对应的不是设备名,而是name
Error: br1 - no such connection profile.   //是不是看到报错了,我们换成name值再试下
# nmcli connection show "System eno16777736"
connection.id:                          System eno16777736
connection.uuid:                        0756a150-f4ee-4502-a0fb-eff8caad35e6
connection.interface-name:              eno16777736
connection.type:                        802-3-ethernet
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.timestamp:                   1447576534
connection.read-only:                   no
connection.permissions:
connection.zone:                        --
connection.master:                      br0
connection.slave-type:                  bridge
connection.secondaries:
connection.gateway-ping-timeout:        0
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:
bridge-port.priority:                   32
bridge-port.path-cost:                  100
bridge-port.hairpin-mode:               no

查看设备信息

# nmcli device status
DEVICE      TYPE      STATE      CONNECTION
br0         bridge    connected  Bridge eno16777736
ens3        ethernet  connected  ens3
lo          loopback  unmanaged  --
virbr0-nic  tap       unmanaged  --

# nmcli device show ens3
GENERAL.DEVICE:                         ens3
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         52:54:00:12:34:22
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens3
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.0.105/25
IP4.GATEWAY:
IP6.ADDRESS[1]:                         fe80::5054:ff:fe12:3422/64
IP6.GATEWAY:

四、nmtui 图形化配置

1、通过nmtui 选择第一项,并选择相应的网卡后,可以配置IP地址

nmtuinmtui-network

2、通过nmtui设置主机名

nmtui-hostname

3、通过nm-connection-editor直接修改IP地址

nm-connection-editor

上面只是对于nmcli命令的简单应用,更多的用法可以参看NetworkManager(8), nmcli(1), nmcli-examples(5), NetworkManager.conf(5) 几个的man手册。

RH134小结(六)nmcli配置IPv4与IPv6网络》有1条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注