将Linux主机接入到网络,需要配置网络相关设置
一般包括如下内容:
主机名
IP/netmask
路由:默认网关
DNS服务器CentOS 6 之前版本网卡名称主DNS服务器
次DNS服务器
第三个DNS服务器
接口命名方式:CentOS 6
以太网:eth[0,1,2,…]
ppp:ppp[0,1,2,…]
网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules
查看网卡:
dmesg |grep –i eth
ethtool -i eth0
卸载网卡驱动:
modprobe -r e1000
rmmod e1000
装载网卡驱动:
modprobe e1000
静态指定:
ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
system-config-network-tui,setup
配置文件
动态分配:DHCP: Dynamic Host Configuration Protocolifconfig命令
ifconfig [interface] ifconfig -a ifconfig IFACE [up|down] ifconfig interface [aftype] options | address ... ifconfig IFACE IP/netmask [up] ifconfig IFACE IP netmask NETMASK
注意:立即生效
启用混杂模式:[-]promisc
范例:
[root@centos8 ~]#ifconfig eth0 10.0.0.68 netmask 255.255.0.0 #清除eth0上面的IP地址 [root@centos8 ~]#ifconfig eth0 0.0.0.0/0 #启用和禁用网卡 [root@centos8 ~]#ifconfig eth0 down [root@centos8 ~]#ifconfig eth0 up [root@centos8 ~]#ifconfig eth0:1 172.16.0.8/24 [root@centos8 ~]#ifconfig eth0: flags=4163mtu 1500 inet 10.0.0.8 netmask 255.0.0.0 broadcast 10.255.255.255 inet6 fe80::20c:29ff:fe45:a8a1 prefixlen 64 scopeid 0x20 ether 00:0c:29:45:a8:a1 txqueuelen 1000 (Ethernet) RX packets 813 bytes 75898 (74.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 563 bytes 76262 (74.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0:1: flags=4163mtu 1500 inet 172.16.0.8 netmask 255.255.255.0 broadcast 172.16.0.255 ether 00:0c:29:45:a8:a1 txqueuelen 1000 (Ethernet) lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 2 bytes 140 (140.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2 bytes 140 (140.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@centos8 ~]#ifconfig eth0:1 down [root@centos8 ~]#ifconfig eth0: flags=4163 mtu 1500 inet 10.0.0.8 netmask 255.0.0.0 broadcast 10.255.255.255 inet6 fe80::20c:29ff:fe45:a8a1 prefixlen 64 scopeid 0x20 ether 00:0c:29:45:a8:a1 txqueuelen 1000 (Ethernet) RX packets 864 bytes 80572 (78.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 601 bytes 81681 (79.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 2 bytes 140 (140.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2 bytes 140 (140.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 范例:
[root@centos8 ~]#ifconfig -s Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 673005 0 0 0 672688 0 0 0 BMRU lo 65536 70 0 0 0 70 0 0 0 LRU [root@centos8 ~]#ifconfig -s eth0 Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 673011 0 0 0 672694 0 0 0 BMRUroute命令路由表管理命令
路由表主要构成:
Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低Genmask:目标网络对应的netmaskIface: 到达对应网络,应该从当前主机哪个网卡发送出来Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0Metric: 开销cost,值越小,路由记录的优先级最高查看路由表:
route route -n范例:
[root@centos8 ~]#route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default _gateway 0.0.0.0 UG 100 0 0 eth0 10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 [root@centos8 ~]#route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.0.2 0.0.0.0 UG 100 0 0 eth0 10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0添加:route add
route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]删除:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]范例:
#目标:192.168.1.3 网关:172.16.0.1 route add -host 192.168.1.3 gw 172.16.0.1 dev eth0 #目标:192.168.0.0 网关:172.16.0.1 route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0 route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0 route add -net 192.168.8.0/24 dev eth1 metric 200 #默认路由,网关:172.16.0.1 route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1 route add default gw 172.16.0.1 #目标:192.168.1.3 网关:172.16.0.1 route del -host 192.168.1.3 #目标:192.168.0.0 网关:172.16.0.1 route del -net 192.168.0.0 netmask 255.255.255.0范例:实现静态路由
环境:
四台主机: A主机:eth0 NAT模式 R1主机:eth0 NAT模式,eth1 仅主机模式 R2主机:eth0 桥接模式,eth1 仅主机模式 B主机:eth0 桥接模式#配置A主机 ifconfig eth0 10.0.0.123/8 route add -net 10.0.0.0/8 dev eth0 route add default gw 10.0.0.200 dev eth0 #配置R1 ifconfig eth0 10.0.0.200/8 ifconfig eth1 192.168.0.200/24 route add -net 10.0.0.0/8 dev eth0 route add -net 192.168.0.0/24 dev eth1 route add -net 172.16.0.0/16 gw 192.168.0.201 dev eth1 echo 1 > /proc/sys/net/ipv4/ip_forward #配置R2 ifconfig eth0 172.16.0.200/16 ifconfig eth1 192.168.0.201/24 route add -net 192.168.0.0/24 dev eth1 route add -net 172.16.0.0/16 dev eth0 route add -net 10.0.0.0/8 gw 10.0.0.200 dev eth1 echo 1 > /proc/sys/net/ipv4/ip_forward #配置B ifconfig eth0 172.16.0.123/16 route add -net 172.16.0.0/16 dev eth0 route add default gw 172.16.0.200 dev eth0配置动态路由通过守护进程获取动态路由
netstat命令
安装quagga包,通过命令vtysh配置
支持多种路由协议:RIP、OSPF和BGP显示网络连接:
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]常用选项
-t: tcp协议相关 -u: udp协议相关 -w: raw socket相关 -l: 处于监听状态 -a: 所有状态 -n: 以数字显示IP和端口 -e:扩展格式 -p: 显示相关进程及PID常用组合:
-tan, -uan, -tnl, -unl显示路由表:
netstat {--route|-r} [--numeric|-n] -r: 显示内核路由表 -n: 数字格式显示接口统计数据netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n] netstat -i netstat –I=IFACE ifconfig -s IFACE范例:
[root@centos8 ~]#netstat -Ieth0 Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 4660 0 0 0 2460 0 0 0 BMRU [root@centos8 ~]#ifconfig -s eth0 Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 4745 0 0 0 2518 0 0 0 BMRU [root@centos8 ~]#netstat -nt Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 52 10.0.0.8:22 10.0.0.1:4927 ESTABLISHEDip命令来自于iproute包,代替ifconfig
配置Linux网络属性ip [ OPTIONS ] OBJECT { COMMAND | help }ip 命令说明:
OBJECT := { link | addr | route } ip link - network device configuration set dev IFACE,可设置属性:up and down:激活或禁用指定接口,相当于 ifup/ifdown show [dev IFACE] [up]::指定接口 ,up 仅显示处于激活状态的接口ip 地址管理
ip addr { add | del } IFADDR dev STRING [label LABEL] [scope {global|link|host}][broadcast ADDRESS] [label LABEL]:添加地址时指明网卡别名 [scope {global|link|host}]:指明作用域,global: 全局可用.link: 仅链接可用,host: 本机可用 [broadcast ADDRESS]:指明广播地址 ip address show ip addr flush范例:
#禁用网卡 ip link set eth1 down #网卡改名 ip link set eth1 name wangnet #启用网卡 ip link set wangnet up #网卡别名 ip addr add 172.16.100.100/16 dev eth0 label eth0:0 ip addr del 172.16.100.100/16 dev eth0 label eth0:0 #清除网络地址 ip addr flush dev eth0管理路由ip route 用法
#添加路由: ip route add TARGET via GW dev IFACE src SOURCE_IP TARGET: 主机路由:IP 网络路由:NETWORK/MASK #添加网关: ip route add default via GW dev IFACE #删除路由: ip route del TARGET #显示路由: ip route show|list #清空路由表: ip route flush [dev IFACE] [via PREFIX]范例:
ip route add 192.168.0.0/24 via 172.16.0.1 ip route add 192.168.1.100 via 172.16.0.1 ip route add default via 172.16.0.1 ip route flush dev eth0ss 命令netstat 通过遍历 /proc来获取 socket信息,ss 使用 netlink与内核 tcp_diag 模块通信获取 socket 信息
格式:
ss [OPTION]... [FILTER]选项:
-t: tcp协议相关 -u: udp协议相关 -w: 裸套接字相关 -x:unix sock相关 -l: listen状态的连接 -a: 所有 -n: 数字格式 -p: 相关的程序及PID -e: 扩展的信息 -m:内存用量 -o:计时器信息格式说明
FILTER : [ state TCP-STATE ] [ expression ] TCP的常见状态: tcp finite state machine: LISTEN: 监听 ESTABLISHED:已建立的连接 FIN_WAIT_1 FIN_WAIT_2 SYN_SENT SYN_RECV CLOSED expression: dport = sport =常用组合:
-tan, -tanl, -tanlp, -uan范例:常见用法
#显示本地打开的所有端口 ss -l #显示每个进程具体打开的socket ss -pl #显示所有tcp socket ss -t -a #显示所有的UDP Socekt ss -u -a #显示所有已建立的ssh连接 ss -o state established '( dport = :ssh or sport = :ssh )' #显示所有已建立的HTTP连接 ss -o state established '( dport = :http or sport = :http )' [root@centos8 ~]#ss -no state established '( dport = :21 or sport = :21 )' Netid Recv-Q Send-Q Local Address:Port Peer Address:Port tcp 0 0 [::ffff:10.0.0.8]:21 [::ffff:10.0.0.7]:46638 timer:(keepalive,119min,0) #列出当前socket详细信息 ss -s网络配置文件 网络基本配置文件IP、MASK、GW、DNS相关的配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE说明参考:
/usr/share/doc/initcripts-*/sysconfig.txt常用配置
配置当前主机的主机名
设置 说明 TYPE 接口类型;常见有的Ethernet, Bridge NAME 此配置文件应用到的设备 DEVICE 设备名 HWADDR 对应的设备的MAC地址 UUID 设备的惟一标识 BOOTPROTO: 激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp IPADDR 指明IP地址 NETMASK 子网掩码,如:255.255.255.0 PREFIX 网络ID的位数, 如:24 GATEWAY 默认网关 DNS1 第一个DNS服务器地址 DNS2 第二个DNS服务器地址 DOMAIN 主机不完整时,自动搜索的域名后缀 ONBOOT 在系统引导时是否激活此设备 USERCTL 普通用户是否可控制此设备 PEERDNS 如果BOOTPROTO的值为“dhcp”,YES将允许dhcp server分配的dns服务器信息直接覆盖至/etc/resolv.conf文件,NO不允许修改resolv.conf NM_CONTROLLED NM是NetworkManager的简写,此网卡是否接受NM控制 #centos6 之前版本 /etc/sysconfig/network HOSTNAME= #centos7 以后版 /etc/hostname HOSTNAME本地主机名数据库和IP地址的映射优先于使用DNS前检查
getent hosts 查看/etc/hosts 内容/etc/hostsDNS域名解析/etc/resolv.conf nameserver DNS_SERVER_IP1 nameserver DNS_SERVER_IP2 nameserver DNS_SERVER_IP3 search DOMAIN修改 /etc/hosts和DNS的优先级/etc/nsswitch.conf hosts: files dns路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE 两种风格: (1) TARGET via GW 如:10.0.0.0/8 via 172.16.0.1 (2) 每三行定义一条路由 ADDRESS#=TARGET NETMASK#=mask GATEWAY#=GW网卡别名将多个IP地址绑定到一个NIC上
每个IP绑定到独立逻辑网卡,即网络别名,命名格式: ethX:Y,如:eth0:1 、eth0:2、eth0:3
范例:ifconfig命令
ifconfig eth0:0 192.168.1.100/24 up ifconfig eth0:0 down范例:ip命令
ip addr add 172.16.1.1/16 dev eth0 ip addr add 172.16.1.2/16 dev eth0 label eth0:0 ip addr del 172.16.1.2/16 dev eth0 label eth0:0 ip addr flush dev eth0 label eth0:0为每个设备别名生成独立的接口配置文件,格式为:ifcfg-ethX:xxx
范例:
[root@centos8 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0:1 DEVICE=eth0:1 IPADDR=10.0.0.100 PREFIX=8 [root@centos8 ~]#ifconfig eth0: flags=4163mtu 1500 inet 10.0.0.8 netmask 255.255.255.0 broadcast 10.0.0.255 inet6 fe80::20c:29ff:fe09:f5b prefixlen 64 scopeid 0x20 ether 00:0c:29:09:0f:5b txqueuelen 1000 (Ethernet) RX packets 2320 bytes 200266 (195.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1891 bytes 279736 (273.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0:1: flags=4163mtu 1500 inet 10.0.0.100 netmask 255.0.0.0 broadcast 10.255.255.255 ether 00:0c:29:09:0f:5b txqueuelen 1000 (Ethernet) 注意:
建议 CentOS 6 关闭 NetworkManager 服务网卡别名必须使用静态联网多网卡 bonding将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址
Bonding工作模式共7种模式:0-6 Mode
Mode 0 (balance-rr): 轮询(Round-robin)策略,从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力Mode 1 (active-backup): 活动-备份(主备)策略,只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见Mode 3 (broadcast):广播策略,在所有的slave接口上传送所有的报文,提供容错能力说明:
active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel
Bonding配置详细帮助:
/usr/share/doc/kernel-doc- version/documentation/networking/bonding.txt https://www.kernel.org/doc/documentation/networking/bonding.txt创建bonding设备的配置文件
/etc/sysconfig/network-scripts/ifcfg-bond0 TYPE=bond DEVICE=bond0 BOOTPROTO=none IPADDR=10.0.0.100 PREFIX=8 #miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路 BONDING_OPTS="mode=1 miimon=100" /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none MASTER=bond0 SLAVE=yes onBOOT=yes /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=none MASTER=bond0 SLAVE=yes onBOOT=yes查看bond0状态:
/proc/net/bonding/bond0删除bond0
ifconfig bond0 down rmmod bondingCentOS 7 以上版网络配置CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化
网卡命名机制
CentOS 7以上版使用基于硬件,设备拓扑和设置类型命名systemd对网络设备的命名方式
如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,如:eno1如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如:ens1如果硬件接口的物理位置信息可用,则根据此信息命名,如:enp2s0如果用户显式启动,也可根据MAC地址进行命名,如:enx2387a1dc56上述均不可用时,则使用传统命名机制基于BIOS支持启用biosdevname软件
内置网卡:em1,em2 pci卡:pYpX Y:slot ,X:port网卡组成格式
en: Ethernet 有线局域网 wl: wlan 无线局域网 ww: wwan无线广域网 o: 集成设备的设备索引号 s : 扩展槽的索引号 x : 基于MAC地址的命名 p s : enp2s1 使用传统命名方式:
(1) 编辑/etc/default/grub配置文件GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"(2) 为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg(3) 重启系统
主机名配置文件:
/etc/hostname默认没有此文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain
设置主机名
hostnamectl set-hostname centos7.magedu.com删除文件/etc/hostname,恢复主机名localhost.localdomain
显示主机名信息
hostname hostnamectl status网络配置工具nmcli图形工具:nm-connection-editor
字符配置tui工具:
nmtuinmtui-connectnmtui-editnmtui-hostname命令行工具:nmcli
以上工具都依赖NeworkManager服务,此服务是管理和监控网络设置的守护进程
nmcli命令
参考文档:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/configuring-networking-with-nmcli_configuring-and-managing-networking
nmcli命令相关术语
设备即网络接口连接是对网络接口的配置,一个网络接口可有多个连接配置,但同时只有一个连接配置生效格式:
nmcli [ OPTIONS ] OBJECT { COMMAND | help } device - show and manage network interfaces nmcli device help connection - start, stop, and manage network connections nmcli connection help修改IP地址等属性:
nmcli connection modify IFACE [+|-]setting.property value setting.property: ipv4.addresses ipv4.gateway ipv4.dns1 ipv4.method manual | auto修改配置文件执行生效:
nmcli con reload nmcli con up con-name
nmcli con mod ifcfg**-* 文件** ipv4.method manual BOOTPROTO=none ipv4.method auto BOOTPROTO=dhcp ipv4.addresses 192.168.2.1/24 IPADDR=192.168.2.1 PREFIX=24 ipv4.gateway 172.16.0.200 GATEWAY=192.0.2.254 ipv4.dns 8.8.8.8 DNS0=8.8.8.8 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= . . . 范例:
#查看帮助 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 #启用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 yesnmcli实现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网络组Network Teaming网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
网络组不同于旧版中bonding技术,提供更好的性能和扩展性
网络组由内核驱动和teamd守护进程实现多种方式 runner
broadcastroundrobinactivebackuploadbalancelacp (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管理网络组配置文件
/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网桥 桥接原理桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。
主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、eth2桥接在一起,故而报文被复制到eth1和eth2,并且发送出去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机C、D
配置实现网桥工具包: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注意:NetworkManager只支持以太网接口接口连接到网桥,不支持聚合接口
nmcli命令创建软件网桥
nmcli con add con-name mybr0 type bridge ifname br0 nmcli con modify mybr0 ipv4.addresses 192.168.0.100/24 ipv4.method manual nmcli con add con-name br0-port0 type bridge-slave ifname eth0 master br0查看配置文件
cat /etc/sysconfig/network-scripts/ifcfg-br0 cat /etc/sysconfig/network-scripts/ifcfg-br0-port0范例:
#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=br0 STP=yes TYPE=Bridge BOOTPROTO=static IPADDR=192.168.0.100 PREFIX=24 cat /etc/sysconfig/network-scripts/ifcfg-br0-port0 TYPE=Ethernet NAME=br0-port0 DEVICE=eth0 onBOOT=yes BRIDGE=br0 UUID=23f41d3b-b57c-4e26-9b17-d5f02dafd12d #4安装管理软件包: yum install bridge-utils brctl show #5删除br0 nmcli con down br0 rm /etc/sysconfig/network-scripts/ifcfg-br0* nmcli con reload网络测试诊断工具
测试网络连通性
ping显示正确的路由表
ip route跟踪路由
traceroute
tracepath
mtr确定名称服务器使用
nslookup
host
dig抓包工具tcpdump
wireshark
安全扫描工具nmap
netcat :网络界的瑞士军刀
流量控制工具tc
范例:
tc qdisc add dev eth0 root netem loss 50% tc qdisc add dev eth0 root netem delay 1000ms tc qdisc show dev eth0 tc qdisc del



