天天看点

网络配置team及网桥及nmcli使用

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

继续阅读