CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变
化
CentOS 7以上版使用基于硬件,设备拓扑和设置类型命名
一、网卡命名机制
systemd对网络设备的命名方式
1. 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命
名,如:eno1
2. 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命
名,如:ens1
3. 如果硬件接口的物理位置信息可用,则根据此信息命名,如:enp2s0
4. 如果用户显式启动,也可根据MAC地址进行命名,如:enx2387a1dc56
5. 上述均不可用时,则使用传统命名机制
网卡改名:使用传统命名方式:
(1) 编辑/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
(2) 为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
网卡改名新命令:
配置文件
/etc/hostname
默认没有此文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain
设置主机名
hostnamectl set-hostname centos7.magedu.com
二、网络配置工具 nmcli
字符配置 tui工具:
nmtui
nmtui-connect
nmtui-edit
nmtui-hostname
更改之后永久生效
格式:
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
nmcli device help
connection - start, stop, and manage network connections
nmcli connection help
修改配置文件立即生效:
nmcli con reload
nmcli con up con-name#网卡名
范例:
#查看帮助
nmcli con add help
#使用nmcli配置网络
nmcli con show
#显示所有活动连接
nmcli con show --active
#显示网络连接配置
nmcli con show "System eth0“
#显示设备状态
nmcli dev status
#显示网络接口属性
nmcli dev show eth0
#创建新连接default,IP自动通过dhcp获取
nmcli con add con-name default type Ethernet ifname eth0
#删除连接
nmcli con del default
#创建新连接static ,指定静态IP,不自动连接
nmcti con add con-name static#网卡名字 ifname eth0 autoconnect no type Ethernet
ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254 ipv4.mthod manual #指定静态地址
#启用static连接配置
nmcli con up static
#启用default连接配置
nmcli con up default
#修改连接设置
nmcli con mod “static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” +ipv4.dns 8.8.8.8
nmcli con mod “static” -ipv4.dns 8.8.8.8
nmcli con mod “static” ipv4.addresses “172.16.X.10/24 172.16.X.254”
nmcli con mod “static” +ipv4.addresses 10.10.10.10/16
#DNS设置存放在/etc/resolv.conf,PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,
不自动获取等价于下面命令
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
三、nmcli实现网卡bonding
#添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup#添加从属接口
nmcli con add type bond-slave ifname ens7 master bond0
nmcli con add type bond-slave ifname ens3 master bond0#注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
#要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1#启动绑定
nmcli con up mybond0
四、nmcli实现网络组(相当于多网卡bonding)
网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
网络组不同于旧版中bonding技术,提供更好的性能和扩展性
网络组由内核驱动和teamd守护进程实
多种方式 runner
broadcast
roundrobin
activebackup
loadbalance
lacp (implements the 802.3ad Link Aggregation Control Protocol)
网络组特点
启动网络组接口不会自动启动网络组中的port接口
启动网络组接口中的port接口总会自动启动网络组接口
禁用网络组接口会自动禁用网络组中的port接口
没有port接口的网络组接口可以启动静态IP连接
启用DHCP连接时,没有port接口的网络组会等待port接口的加入
#创建网络组接口
nmcli con add type team con-name CNAME ifname INAME [config JSON]
CNAME 连接名
INAME 接口名
JSON 指定runner方式,格式:'{"runner": {"name": "METHOD"}}'
METHOD 可以是broadcast, roundrobin, activebackup, loadbalance, lacp
#创建port接口
nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
CNAME 连接名,连接名若不指定,默认为team-slave-IFACE
INAME 网络接口名
TEAM 网络组接口名
#断开和启动
nmcli dev dis INAME网络组示例
nmcli con up CNAME
INAME 设备名 CNAME 网络组接口名或port接口
网络组示例:
nmcli con add type team con-name myteam0 ifname team0 config '{"runner":
{"name": "loadbalance"}}' ipv4.addresses 192.168.1.100/24 ipv4.method manual
nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0
nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0
nmcli con up myteam0
nmcli con up team0-eth1
nmcli con up team0-eth2
teamdctl team0 state
ping -I team0 192.168.0.254
nmcli dev dis eth1
teamdctl team0 state
nmcli con up team0-port1
nmcli dev dis eth2
teamdctl team0 state
nmcli con up team0-port2
teamdctl team0 state
网络组配置文件(master):
etc/sysconfig/network-scripts/ifcfg-team0
DEVICE=team0
DEVICETYPE=Team
TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"
BOOTPROTO=none
IPADDR0=172.16.0.100
PREFIX0=24
NAME=team0
ONBOOT=yes
网络组配置文件:
/etc/sysconfig/network-scripts/ifcfg-team0-eth1
DEVICE=eth1
DEVICETYPE=TeamPort
TEAM_MASTER=team0
NAME=team0-eth1
ONBOOT=yes
删除网络组:
nmcli connection down team0
teamdctl team0 state
nmcli connection show
nmcli connectioni delete team0-eth0
nmcli connectioni delete team0-eth1
nmcli connection show
五、bridge(网桥使用)
工具包:bridge-utils,目前 CentOS 8 无此包
yum install bridge-utils
#查看网桥
brctl show
#查看CAM(content addressable memory内容可寻址存储器)表
brctl showmacs br0
#添加和删除网桥
brctl addbr | delbr br0
#添加和删除网桥中网卡
brctl addif | delif br0 eth0
#默认br0 是down,必须启用
ifconfig br0 up
#启用STP[root@centos7 ~]#brctl showbridge name bridge id STP enabled interfaces
br0 8000.000c297e67a3 no eth1
eth2
[root@centos7 ~]#brctl stp br0 on[root@centos7 ~]#brctl showbridge name bridge id STP enabled interfaces
范例:
#1创建网桥
nmcli con add type bridge con-name br0 ifname br0
nmcli connection modify br0 ipv4.addresses 192.168.0.100/24 ipv4.method manual
nmcli con up br0
#2加入物理网卡
nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0
nmcli con add type bridge-slave con-name br0-port1 ifname eth1 master br0
nmcli con up br0-port0
nmcli con up br0-port1
#3查看网桥配置文件
cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0STP=yesTYPE=BridgeBOOTPROTO=staticIPADDR=192.168.0.100PREFIX=24
cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
TYPE=EthernetNAME=br0-port0DEVICE=eth0ONBOOT=yesBRIDGE=br0UUID=23f41d3b-b57c-4e26-9b17-d5f02dafd12d
#4安装管理软件包:
yum install bridge-utils
brctl show
#5删除br0