0
点赞
收藏
分享

微信扫一扫

马哥教育SRE笔记【03存储网络】03IP和路由

拾光的Shelly 2022-04-17 阅读 59
linuxtcp/ip

3 IP和路由

3.1 IP地址和子网掩码

3.1.1 IP地址分类

在这里插入图片描述

A类:

  • 0 000 0000 - 0 111 1111: 1-127
  • 网络数:127
  • 每个网络中的主机数:2^24-2
  • 默认子网掩码:255.0.0.0
  • 私网地址:10.0.0.0-10.255.255.255

B类:

  • 10 00 0000 - 10 11 1111:128-191
  • 网络数:2^14
  • 每个网络中的主机数:2^16-2
  • 默认子网掩码:255.255.0.0
  • 私网地址:172.16.0.0-172.31.255.255

C类:

  • 110 0 0000 - 110 1 1111: 192-223
  • 网络数:2^21
  • 每个网络中的主机数:2^8-2
  • 默认子网掩码:255.255.255.0
  • 私网地址:192.168.0.0-192.168.255.255

**D类:**组播

  • 1110 0000 - 1110 1111: 224-239

**E类:**保留未使用

  • 240-255

特殊地址

  • 0.0.0.0
    • 0.0.0.0不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络
  • 255.255.255.255
    • 限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机
  • 127.0.0.1~127.255.255.254
    • 本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为
      “127.0.0.1”的 数据包
  • 224.0.0.0到239.255.255.255
    • 组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。224.0.0.5指OSPF路由器,地址多用于一些特定的程序以及多媒体程序
  • 169.254.x.x
    • 如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地址,系统会为主机分配这样地址

3.1.2 子网掩码

在这里插入图片描述

可变长度子网掩码

在这里插入图片描述

子网划分范例:

10.0.0.0/8分配给32个省划分各自子网
1.子网掩码?
2.最小子网和最大子网ID?
3.每个子网主机数?
4.第20个子网的IP地址范围?
计算:
1.网络位需要借5位,满足2^5=32>=32个省,故子网掩码255.248.0.0
2.最小子网 10.0000 000.0.0  --> 10.0.0.0/13
  最大子网 10.1111 000.0.0  --> 10.248.0.0/13
3.每子网主机数=2^19-2
4.第20个子网
10.10011 000.0.1		-->10.152.0.1
10.10011 111.255.254	-->10.159.255.254

子网划分范例:

将上例中的第20个子网10.152.0.0/13网段分配给15个地市,划分各自子网使用
1.子网子网掩码?
2.最小子网和最大子网ID?
3.每个子网主机数?
4.最大子网的IP范围?
计算:
1.子网的网络位需要借4位,满足2^4>15
子网掩码255.11111 111.1 00000000.0 --> 255.255.128.0
2.最小子网 10.10011 000.0 0000000.0 --> 10.152.0.0/17
  最大子网 10.10011 111.1 0000000.0 --> 10.159.128.0/17
3.每个子网主机数=2^15-2
4.最大子网的IP范围
10.10011 111.1 0000000.1	--> 10.159.128.1
10.10011 111.1 1111111.254	--> 10.159.255.254

注:子网子网划分时,共16个子子网,15个地市,会空闲1个子子网,可用于再划分更细小的网段,以使IP地址利用率最大化

优化IP地址分配

合并超网: 多个小网合并为一个大网, 简化路由表条目

在这里插入图片描述

3.1.3 路由和DHCP

路由分类

  • 主机路由: 主机上的路由
  • 网络路由: 网络的路由
  • 默认路由: 一般配置在网络边界(只有单方向出口时)

查看路由表命令

Linux中:
	route -n
Windows中:
	route print

路由表结构

  • 目标网络ID: 目前IP所在网络ID
  • 接口: 本设备上发送数据出去的接口
  • 网关: 到达目标网络需要将数据交给下一个接口的对应IP
    • 直连网络时为本设备上的出接口的IP
    • 非直连网络时为下一跳设备的入接口IP

主机开启路由转发功能

使用主机模拟路由器需开启ip转发功能:

  • 修改/proc/sys/net/ipv4/ip_forward的值为1 (默认为0)

动态主机配置协议DHCP

在这里插入图片描述

通过如下文件确认是否开启DHCP:

/etc/sysconfig/network-scripts/ifcfg-ens33 (或其他网卡名称)

  • BOOTPROTO=“dhcp”

设置DHCP的主机在开始时会分配IP地址,如下:

在这里插入图片描述

  • DHCP属于UDP协议
  • 服务器端口号67, 客户端端口号68
  • 地址租期的1/2时会申请续租,如不成功将在7/8时间时寻找新的DHCP服务器

3.2 基本网络配置

将Linux主机接入到网络,需要配置网络相关设置。

一般包括如下内容:

  • 主机名
  • IP/netmask
  • 路由:默认网关
  • DNS服务器
    • 主DNS服务器
    • 次DNS服务器
    • 第三DNS服务器

注:可通过/etc/hosts文件配置域名解析, 常用语集群主机的解析, 其优先级高于DNS服务器, 也可通过/etc/nsswitch.conf文件修改优先级

3.2.1 hosts文件

主机名存放文件:

centos6的主机名存放在/etc/sysconfig/network中
centos7的主机名存放在/etc/hostname

修改主机名并立即生效的2种方法:

  • 修改主机名文件—>重启主机
  • 修改主机名文件—>执行命令: hostname 新的主机名
    • 更改提示符的方法:
      • exit会话
      • exec bash

centos7上的最新修改主机名方法:

hostnamectl set-hostnnmae 新主机名

修改主机名建议也修改hosts文件

  • 修改/etc/hosts, 防止通过主机名访问本机时无法解析识别(centos6中会出现)

  • 将新主机名,加在127.0.0.1 行的末尾

  • getent hosts 可查看/etc/hosts 内容

3.2.2 CentOS 6网卡名称

CentOS 6接口命名方式:

  • 以太网:eth[0,1,2,…]
  • ppp:ppp[0,1,2,…]

网络接口识别并命名相关的udev配置文件:

  • /etc/udev/rules.d/70-persistent-net.rules
  • 修改以上文件可修改centos6的网卡名称,重启或重新装载网卡驱动生效

查看网卡:

dmesg |grep –i eth
ethtool -i 网口名称

卸载网卡驱动:

modprobe -r 驱动名称
rmmod 驱动名称

装载网卡驱动:

装载网卡驱动:
modprobe 驱动名称

3.2.3 网络配置方式

静态指定:

  • ifconfig, route, netstat (较老的命令,即时生效但无法长期生效)
  • ip: object {link, addr, route}, ss, tc (较新的命令,即时生效但无法长期生效)
  • system-config-network-tui,setup (图形化,长期生效但不是即时生效)
  • 配置文件(长期生效但不是即时生效)

动态分配:

  • DHCP: Dynamic Host Configuration Protocol

3.2.4 ifconfig命令

ifconfig  [interface]
  • ifconfig -a 显示所有接口
  • ifconfig IFACE [up|down] 打开或关闭某接口
  • ifconfig interface [aftype] options | address … 配置接口的IP
  • ifconfig IFACE IP/netmask [up]
  • ifconfig IFACE IP netmask NETMASK
  • ifconfig IFACE:# IP 网卡别名, 可为一个网卡绑多个IP
    • 范例: ifconfig ens33:2 10.0.0.100/8
  • 注意:立即生效
  • [关闭]启用混杂模式:[-]promisc

3.2.5 route命令

查看路由表:route -n

route -n

添加路由:route add

route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
注:GW需是本机所有网卡的网段中的其中1个地址才行

范例: 目标: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

范例: 默认路由,网关: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

删除路由:route del

route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

范例:目标: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

3.2.6 实验:模拟2主机2路由器组网

在这里插入图片描述

注:图中 vmnet11的网段改为了11.0.0.0/8, routea eth1口地址11.0.0.100 , routeb eth1口地址11.0.0.200

步骤:

#1. 在VMware虚拟网卡管理中添加3个虚拟网络vmnet10  11  12

在这里插入图片描述

#2. 在VMware配置2主机2路由器的网卡, 选择响应的虚拟网络,其中路由器配置2个网卡

在这里插入图片描述

#3. 修改hosta主机名
[root@centos76 ~]#hostnamectl set-hostname hosta
[root@centos76 ~]#hostname
hosta
[root@centos76 ~]#exec bash
[root@hosta ~]#

[root@hosta ~]#vim /etc/hosts
[root@hosta ~]#
[root@hosta ~]#cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 hosta
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
#4. 在主机hosta     修改网卡名称, 修改ifcfg-ens33文件名称为ifcfg-eth0,设置静态地址, 配置IP和网关
[root@hosta rules.d]# cd /etc/sysconfig/network-scripts/
[root@hosta network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak

[root@hosta network-scripts]# vim ifcfg-eth0 
[root@hosta network-scripts]# cat ifcfg-eth0 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="452f0393-fbda-4e63-885b-f0e6fc7e8047"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="192.168.34.100"
NETSMAK="255.255.255.0"
GATEWAY="192.168.34.200"
HWADDR=00:0c:29:30:14:d9
###如果修改不成功可尝试:1.在ifcfg-eth0文件中添加HWADDR(通过ip a 查询) 2.关闭service NetworkManager stop   禁止开机启动chkconfig NetworkManager off   3.修改/etc/udev/rules.d/下的70-persistent-net.rules文件中的name为新网卡名称


#IP正常配置,路由表自动生成:
[root@hosta network-scripts]# ip a
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:30:14:d9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.34.100/24 brd 192.168.34.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe30:14d9/64 scope link 
       valid_lft forever preferred_lft forever
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.34.200  0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
192.168.34.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
#5. 在路由器routea     修改routea主机名, 修改网卡名称, 修改网卡分别为ifcfg-eth0/eth1,设置静态地址, 配置IP
[root@centos-full ~]# echo routea > /etc/hostname
[root@centos-full ~]# hostname routea
[root@centos-full ~]# exec bash
[root@routea ~]# 
[root@routea ~]# hostname
routea
[root@routea ~]# vim /etc/hosts
[root@routea ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 routea
...
[root@routea network-scripts]# cd cd /etc/sysconfig/network-scripts/
[root@routea network-scripts]# cp ifcfg-ens33 ifcfg-eth1
[root@routea network-scripts]# mv ifcfg-ens33 ifcfg-eth0
[root@routea network-scripts]# ip a
...
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:6b:ff:ff brd ff:ff:ff:ff:ff:ff
    inet 192.168.34.129/24 brd 192.168.34.255 scope global noprefixroute dynamic ens33
...
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:6b:ff:09 brd ff:ff:ff:ff:ff:ff
    inet 11.128.0.0/8 brd 11.255.255.255 scope global ...

[root@routea network-scripts]# vim ifcfg-eth0
[root@routea network-scripts]# cat ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="452f0393-fbda-4e63-885b-f0e6fc7e8047"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=192.168.34.200
NETMASK=255.255.255.0
HWADDR=00:0c:29:6b:ff:ff

###如果两个网卡的UUID相同,则在ifcfg文件中删除UUID的行

[root@routea network-scripts]# vim ifcfg-eth1
[root@routea network-scripts]# cat ifcfg-eth1
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth1"
DEVICE="eth1"
ONBOOT="yes"
IPADDR=11.0.0.100
NETMASK=255.0.0.0
HDADDR=00:0c:29:6b:ff:09

[root@routea network-scripts]# reboot
###centos7中,如上步骤中出现第二个网卡名称不更新的情况,可尝试如下方式解决:
#关闭“一致性网络设备命名法”, 添加net.ifnames=0 biosdevname=0
[root@routea ~]# vim /etc/sysconfig/grub
[root@routea ~]# cat /etc/sysconfig/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0 biosdevname=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

#更新GRUB、内核配置:
root@routea ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-f220f928bede49aa97b5e1a959221214
Found initrd image: /boot/initramfs-0-rescue-f220f928bede49aa97b5e1a959221214.img
done

#修改或新建/etc/udev/rules.d/70-persistent-net.rules文件,注意更新MAC地址
[root@routea rules.d]# vim 70-persistent-net.rules
[root@routea rules.d]# cat 70-persistent-net.rules
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="?*00:0c:29:6b:ff:ff", NAME="eth0"
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="?*00:0c:29:6b:ff:09", NAME="eth1"

[root@routea rules.d]# reboot
#完成routea配置后的IP及路由表如下:
[root@routea ~]# ip a
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:6b:ff:ff brd ff:ff:ff:ff:ff:ff
    inet 192.168.34.200/24 brd 192.168.34.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe6b:ffff/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:6b:ff:09 brd ff:ff:ff:ff:ff:ff
    inet 11.0.0.100/8 brd 11.255.255.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe6b:ff09/64 scope link 
       valid_lft forever preferred_lft forever
...
[root@routea ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
11.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
192.168.34.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
#6. 在路由器routeb     修改routeb主机名, 修改网卡名称, 修改网卡分别为ifcfg-eth0/eth1,设置静态地址, 配置IP
[root@centos-full ~]# hostnamectl set-hostname routeb
[root@centos-full ~]# exec bash
[root@routeb ~]# vim /etc/hosts
[root@routeb network-scripts]# mkdir ./bak
[root@routeb network-scripts]# cp ifcfg-ens33 ./bak
[root@routeb network-scripts]# cp ifcfg-ens33 ifcfg-eth0
[root@routeb network-scripts]# mv ifcfg-ens33 ifcfg-eth1
[root@routeb network-scripts]# cat ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="452f0393-fbda-4e63-885b-f0e6fc7e8047"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=172.18.0.200
HWADDR=00:0c:29:e9:ef:4a
NETMASK=255.255.0.0
[root@routeb network-scripts]# cat ifcfg-eth1
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth1"
DEVICE="eth1"
ONBOOT="yes"
IPADDR=11.0.0.200
NETMASK=255.0.0.0
HWADDR=00:0c:29:e9:ef:54

[root@routeb ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.0.200  netmask 255.255.0.0  broadcast 172.18.255.255
        inet6 fe80::c2e0:da5e:e962:dafc  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:e9:ef:4a  txqueuelen 1000  (Ethernet)
...

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 11.0.0.200  netmask 255.0.0.0  broadcast 11.255.255.255
        inet6 fe80::9158:694f:b566:97e1  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:e9:ef:54  txqueuelen 1000  (Ethernet)
...

#7. hostb修改主机名,配置ip等...略
#8. routea和routeb的路由表如下,a上没有到172.18的路由,b上没有到192.168.34的路由 ,需在两个路由器上添加非直连的路由
#(另主机模拟路由器功能需确保开启路由转发,即修改/proc/sys/net/ipv4/ip_forward的值为1 )
[root@routea ~]# route add -net 172.18.0.0/16 gw 11.0.0.200 
[root@routea ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
11.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
172.18.0.0      11.0.0.200      255.255.0.0     UG    0      0        0 eth1
192.168.34.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

[root@routeb ~]# route add -net 192.168.34.0/24 gw 11.0.0.100
[root@routeb ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
11.0.0.0        0.0.0.0         255.0.0.0       U     101    0        0 eth1
172.18.0.0      0.0.0.0         255.255.0.0     U     100    0        0 eth0
192.168.34.0    11.0.0.100      255.255.255.0   UG    0      0        0 eth1
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
#9. 路由打通
[root@hosta rules.d]# ping 172.18.0.100 -c1
PING 172.18.0.100 (172.18.0.100) 56(84) bytes of data.
64 bytes from 172.18.0.100: icmp_seq=1 ttl=62 time=1.31 ms

--- 172.18.0.100 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.315/1.315/1.315/0.000 ms

[root@hostb ~]#ping 192.168.34.100 -c1
PING 192.168.34.100 (192.168.34.100) 56(84) bytes of data.
64 bytes from 192.168.34.100: icmp_seq=1 ttl=62 time=1.41 ms

--- 192.168.34.100 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.411/1.411/1.411/0.000 ms

添加的2条非直连路由如下:

在这里插入图片描述

3.2.7 配置动态路由

通过守护进程获取动态路由

  • 安装quagga包: yum install quagga
  • 支持多种路由协议:RIP、OSPF和BGP
  • 命令vtysh配置

3.2.8 netstat命令

显示网络连接:

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 -nr
  • -r: 显示内核路由表
  • -n: 数字格式

显示接口统计数据:

netstat -IIFACE  # 注-I与接口名称IFACE之间无空格

范例:

[root@centos7 ~]#netstat -Iens33
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33            1500    17206      0      0 0          2759      0      0      0 BMRU

范例:每0.3秒查看ens33接口数据统计:

[root@centos7 ~]#watch -n0.3 netstat -Iens33

在这里插入图片描述

3.2.9 ip命令

配置Linux网络属性:ip命令

ip [ OPTIONS ] OBJECT { COMMAND }
  • OBJECT :
    • link 可简写l
    • addr 可简写a
    • route 可简写r
    • addrlabel
  • COMMAND:
    • add
    • del
    • set
    • show|list
    • flush

配置网卡别名和IP:

 ip addr { add | del } IFADDR dev IFACE [label LABEL]

范例: ip命令的用法

###为接口新增IP地址
[root@centos7 ~]#ip addr add 1.1.1.1/32 dev ens33

###为接口删除IP地址配置
[root@centos7 ~]#ip addr del 1.1.1.1/32 dev ens33

###关闭接口链路
[root@centos7 ~]#ip link set ens33 down

###配置网卡别名并新增IP地址:
[root@centos7 ~]#ip addr add 1.1.1.1/32 dev ens33 label ens33:2
[root@centos7 ~]#ip a
....
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:49:e0:5f brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.101/8 brd 10.255.255.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 1.1.1.1/32 scope global ens33:2
...
###清空某网卡别名上的配置:
[root@centos7 ~]#ip addr flush dev ens33 label ens33:2

###显示路由表
[root@centos7 ~]#ip route
default via 10.0.0.2 dev ens33 proto static metric 100 
10.0.0.0/8 dev ens33 proto kernel scope link src 10.0.0.101 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 

###显示路由状态
[root@centos7 ~]#ip neigh
10.0.0.2 dev ens33 lladdr 00:50:56:e2:f5:da STALE
10.0.0.1 dev ens33 lladdr 00:50:56:c0:00:08 REACHABLE

###显示某接口信息
[root@centos7 ~]#ip addr show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:49:e0:5f brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.101/8 brd 10.255.255.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::80a9:ab30:26e4:2813/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

###显示up的接口
[root@centos7 ~]#ip a show up
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:49:e0:5f brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.101/8 brd 10.255.255.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::80a9:ab30:26e4:2813/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:a7:71:72 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever

配置路由:

ip route add TARGET via GW dev IFACE src SOURCE_IP
  • TARGET:

    • 主机路由:IP
      • 举例:ip route add 192.168.1.13 via 172.16.0.1
    • 网络路由:NETWORK/MASK
      • 举例:ip route add 192.168.0.0/24 via 172.16.0.1
  • 添加网关:

    • ip route add default via GW dev IFACE
      
      • 举例: ip route add default via 172.16.0.1
  • 删除路由:

    • ip route del TARGET
      
  • 显示路由:

    • ip route show|list
      
  • 清空路由表:

    • ip route flush [dev IFACE] [via PREFIX]
      
      • 举例: ip route flush dev eth0

3.2.10 ss命令

格式:

ss [OPTION]... [FILTER]

ss与netstat类似,但速度更快

选项:

  • -t: tcp协议相关
  • -u: udp协议相关
  • -w: 裸套接字相关
  • -x:unix sock相关
  • -l: listen状态的连接
  • -a: 所有
  • -n: 数字格式
  • -p: 相关的程序及PID
  • -e: 扩展的信息
  • -m:内存用量
  • -o:计时器信息

FILTER :

  • [ state TCP-STATE ] [ EXPRESSION ]
    
  • 常见TCP-STATE:

    • LISTEN: 监听
    • ESTABLISHED:已建立的连接
    • FIN_WAIT_1
    • FIN_WAIT_2
    • SYN_SENT
    • SYN_RECV
    • CLOSED
  • EXPRESSION:

    • dport =
    • sport =
    • 示例:’( dport = :ssh or sport = :ssh )’

范例:ss的常见用法

ss -l 显示本地打开的所有端口
ss -pl 显示每个进程具体打开的socket
ss -t -a 显示所有tcp socket
ss -u -a 显示所有的UDP Socekt
ss -o state established '( dport = :ssh or sport = :ssh )' 显示所有已建立的ssh连接
ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接
ss -s 列出当前socket详细信息

3.2.11 网络配置文件

IP、MASK、GW、DNS相关配置文件:

/etc/sysconfig/network-scripts/ifcfg-IFACE

注:ifcfg后面的IFACE虽没有强制命名要求,但一般建议与网卡名称相同

路由相关的配置文件:

/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE

文件/etc/sysconfig/network-scripts/ifcfg-IFACE

参数:

  • DEVICE:此配置文件应用到的设备

  • NAME: 描述信息, 设置后与图形界面中网络IP配置时显示的网卡说明相关, 也可不设置

  • HWADDR:对应的设备的MAC地址

  • BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static,none, bootp

  • NM_CONTROLLED:NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no”

  • ONBOOT:在系统引导时是否激活此设备

  • TYPE:接口类型;常见有的Ethernet, Bridge

  • UUID:设备的惟一标识, 注意克隆虚机时容易相同

  • IPADDR:指明IP地址

  • NETMASK:子网掩码

  • GATEWAY: 默认网关

  • DNS1:第一个DNS服务器指向

  • DNS2:第二个DNS服务器指向

    • DNS生效后会同步修改/etc/resolv.conf文件
  • USERCTL:普通用户是否可控制此设备

  • PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中

注: 网卡配置时可将物理网卡设置DHCP , 并在网卡别名中设置静态IP , 但反之不行

常用动态配置:

DEVICE=ethX
HWADDR=0:02:8A:A6:30:45
BOOTPROTO=dhcp
ONBOOT=yes
Type=Ethernet

常用静态配置:

DEVICE=ethX
HWADDR=0:02:8A:A6:30:45
IPADDR=192.168.0.123
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
ONBOOT=yes
Type=Ethernet

文件/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

注意:需service network restart生效

范例: 通过route-IFACE文件新增路由

[root@centos7 network-scripts]#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 ens33
10.0.0.0        0.0.0.0         255.0.0.0       U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@centos7 network-scripts]#vim route-ens33
[root@centos7 network-scripts]#cat route-ens33
20.0.0.0 via 10.0.0.20
[root@centos7 network-scripts]#service network restart 
[root@centos7 network-scripts]#route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
...
20.0.0.0        10.0.0.20       255.255.255.255 UGH   100    0        0 ens33
...

3.2.12 网卡别名

对虚拟主机有用

将多个IP地址绑定到一个NIC上
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.2/16 dev eth0
ip addr add 172.16.1.1/16 dev eth0 label eth0:0
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr del 172.16.1.1/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0

3.2.13 设备别名

为每个设备别名生成独立的接口配置文件, 即通过配置文件ifcfg的方式实现永久性网卡别名的设置

  • 关闭NetworkManager服务
  • ifcfg-ethX:xxx
  • 必须使用静态联网
    • DEVICE=eth0:0
    • IPADDR=10.10.10.10
    • NETMASK=255.0.0.0
    • ONPARENT=yes

注意:service network restart 生效

范例: 在一个网卡上配置多个ip地址并永久保存

[root@centos7 ~]#cd /etc/sysconfig/network-scripts/
[root@centos7 network-scripts]#cp ifcfg-ens33 ifcfg-ens33:2
[root@centos7 network-scripts]#vim ifcfg-ens33:2
[root@centos7 network-scripts]#cat ifcfg-ens33:2
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
DEVICE=ens33:2
ONBOOT=yes
IPADDR=10.0.0.102
PREFIX=8
[root@centos7 network-scripts]#service network restart 
Restarting network (via systemctl):                        [  OK  ]
[root@centos7 network-scripts]#ifconfig
...
ens33:2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.102  netmask 255.0.0.0  broadcast 10.255.255.255
...
[root@centos7 network-scripts]#ip addr  flush dev ens33 label ens33:2

3.2.14 网络接口配置-bonding

Bonding
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过bonding,虚拟一块网卡对外提供连接,物理网卡被修改为相同的MAC地址

Bonding工作模式

  • 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 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。

Bonding配置

创建bonding设备的配置文件

  • 创建/etc/sysconfig/network-scripts/ifcfg-bond0
    • DEVICE=bond0
    • BOOTPROTO=none
    • BONDING_OPTS= “miimon=100 mode=0”
    • IPADDR=XXX
    • PREFIX=XX
    • GATEWAY=XXX
    • DNS1=XXX
  • 修改/etc/sysconfig/network-scripts/ifcfg-eth0
    • DEVICE=eth0
    • BOOTPROTO=none
    • MASTER=bond0
    • SLAVE=yes
    • USERCTL=no (关闭NetworkManager)

查看bond0状态:/proc/net/bonding/bond0

miimon 是用来进行链路监测, 如果miimon=100,那么系统每100ms 监测一次链路连接状态

删除bond0:

ifconfig bond0 down
删除bond0文件   修改恢复物理网卡文件
rmmod bonding

3.2.15 CentOS 7网络属性配置

CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化

CentOS 7使用基于硬件,设备拓扑和设置类型命名:

(1) 网卡命名机制
systemd对网络设备的命名方式

  • (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
  • (b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
  • © 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
  • (d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56
  • (e) 上述均不可用时,则使用传统命名机制
    • 基于BIOS支持启用biosdevname软件
      内置网卡:em1,em2
      pci卡:pYpX Y:slot ,X:port

(2) 名称组成格式

  • en: Ethernet 有线局域网

  • wl: wlan 无线局域网

  • ww: wwan无线广域网

名称类型:

  • o<index>: 集成设备的设备索引号
  • s<slot>: 扩展槽的索引号
  • x<MAC>: 基于MAC地址的命名
  • p<bus>s<slot>: enp2s1

采用传统命名方式

(1) 编辑/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"

(2) 为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg或/boot/grub2/grub.cfg

(3) 重启系统

也可以直接修改/boot/grub2/grub.cfg文件, 不推荐使用

3.2.16 CentOS 7网络配置工具

CentOS7主机名

配置文件:/etc/hostname ,默认没有此文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain

显示主机名信息:

hostname
hostnamectl status

设置主机名

hostnamectl set-hostname NEW_HOSTNAME

删除文件/etc/hostname,恢复主机名localhost.localdomain

CentOS 7网络配置工具

  • 图形工具:nm-connection-editor
  • 字符配置tui工具:nmtui
  • 命令行工具:nmcli

3.2.17 nmcli命令

地址配置工具:nmcli

nmcli [ OPTIONS ] OBJECT { COMMAND | help }

OBJECT:

  • device 设备即网络接口
  • connection 连接是对网络接口的配置
    • 一个网络接口可有多个连接配置,但同时只有一个连接配置生效

COMMAND:

  • add
  • delete
  • modify
  • show
  • up/down
  • reload

范例: 修改IP地址等属性:

nmcli connection modify IFACE [+|-]SETTING.PROPERTY value
  • SETTING.PROPERTY:
    • ipv4.addresses
    • ipv4.gateway
    • ipv4.dns1
    • ipv4.method manual | auto

修改配置文件执行生效:

systemctl restart network
nmcli con reload

nmcli命令生效:

nmcli con down eth0 
nmcli con up eth0

注:NeworkManager是管理和监控网络设置的守护进程

范例:

显示所有包括不活动连接

nmcli con show

显示所有活动连接

nmcli con show --active

显示网络连接配置

nmcli con show "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 add help

修改连接设置

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.25.X.10/24 172.25.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

范例: 为ens33网卡新增一个备用配置文件, 设置多个IP地址 , 主备配置灵活切换

[root@centos7 network-scripts]#nmcli connection add con-name ens33-bak type ethernet ifname ens33 
Connection 'ens33-bak' (de74b441-ef38-4a50-9715-9828a2385509) successfully added.
[root@centos7 network-scripts]#nmcli connection 
NAME       UUID                                  TYPE      DEVICE 
ens33      aff03eef-6f47-41cf-a32b-335e956db974  ethernet  ens33  
virbr0     f05a7cde-447d-4dcb-9043-a03aa5661fe7  bridge    virbr0 
ens33-bak  de74b441-ef38-4a50-9715-9828a2385509  ethernet  --     
[root@centos7 network-scripts]#nmcli connection modify ens33-bak ipv4.method manual connection.autoconnect yes ipv4.addresses 10.0.0.222/8 ipv4.gateway 10.0.0.111 ipv4.dns 8.8.8.8
[root@centos7 network-scripts]#cat ifcfg-ens33-bak
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33-bak
UUID=de74b441-ef38-4a50-9715-9828a2385509
DEVICE=ens33
ONBOOT=yes
IPADDR=10.0.0.222
PREFIX=8
GATEWAY=10.0.0.111
DNS1=8.8.8.8
[root@centos7 network-scripts]#nmcli connection up ens33-bak 
[root@centos7 ~]#nmcli connection 
NAME       UUID                                  TYPE      DEVICE 
ens33-bak  de74b441-ef38-4a50-9715-9828a2385509  ethernet  ens33  
virbr0     f05a7cde-447d-4dcb-9043-a03aa5661fe7  bridge    virbr0 
ens33      aff03eef-6f47-41cf-a32b-335e956db974  ethernet  --     
[root@centos7 ~]#nmcli con up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
[root@centos7 ~]#nmcli con 
NAME       UUID                                  TYPE      DEVICE 
ens33      aff03eef-6f47-41cf-a32b-335e956db974  ethernet  ens33  
virbr0     f05a7cde-447d-4dcb-9043-a03aa5661fe7  bridge    virbr0 

###增加多个IP地址
[root@centos7 ~]#nmcli connection modify ens33 +ipv4.addresses 2.2.2.2/24
[root@centos7 ~]#nmcli connection modify ens33 +ipv4.addresses 3.3.3.3/24
[root@centos7 ~]#cat /etc/sysconfig/network-scripts/ifcfg-ens33
...
IPADDR=10.0.0.101
PREFIX=8
DNS1=114.114.114.114
GATEWAY=10.0.0.2
IPADDR1=2.2.2.2
PREFIX1=24
IPADDR2=3.3.3.3
PREFIX2=24
[root@centos7 ~]#nmcli con up ens33
[root@centos7 ~]#ip a
...
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:49:e0:5f brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.101/8 brd 10.255.255.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 2.2.2.2/24 brd 2.2.2.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 3.3.3.3/24 brd 3.3.3.255 scope global noprefixroute ens33

各类网络配置功能中nmcli con 命令功能与ifcfg文件对比:

nmcli con modifcfg-* 文件
ipv4.method manualBOOTPROTO=none
ipv4.method autoBOOTPROTO=dhcp
ipv4.addresses “192.0.2.1/24 192.0.2.254”IPADDR=192.0.2.1 PREFIX=24 GATEWAY=192.0.2.254
ipv4.dns 8.8.8.8DNS0=8.8.8.8
ipv4.dns-search example.comDOMAIN=example.com
ipv4.ignore-auto-dns truePEERDNS=no
connection.autoconnect yesONBOOT=yes
connection.id eth0NAME=eth0
connection.interface-name eth0DEVICE=eth0
802-3-ethernet.mac-address . . .HWADDR= . . .

修改连接配置后,需要重新加载配置

nmcli con reload
nmcli con down “system eth0” 可被自动激活
nmcli con up “system eth0”
nmcli dev dis eth0 禁用网卡,访止被自动激活

图形工具

  • nm-connection-editor

字符工具

  • nmtui
  • nmtui-connect
  • nmtui-edit
  • nmtui-hostname

3.2.18 nmcli实现bonding

  • 添加bonding接口
nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup
  • 添加从属接口
nmcli con add type bond-slave ifname ens7 master mybond0
nmcli con add type bond-slave ifname ens3 master mybond0

注:如无为从属接口提供连接名,则该名称是接口名称加类型构成要启动绑定,则必须首先启动从属接口

nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1
  • 启动绑定
nmcli con up mybond0

3.2.19 网络组Network Teaming

网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量

网络组不同于旧版中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 连接名
  • INAME 网络接口名
  • TEAM 网络组接口名

连接名若不指定,默认为team-slave- IFACE

nmcli dev dis INAME
nmcli con up CNAME

INAME 设备名 CNAME 网络组接口名或port接口

网络组示例:

nmcli con add type team con-name team0 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 team0

nmcli con up team0-eth1

nmcli con up team0-eth2

teamdctl team0 state

nmcli dev dis eth1

实验:创建网络组

ip link

nmcli con add type team con-name team0 ifname team0 config
'{"runner": {"name": "activebackup"}}'

nmcli con mod team0 ipv4.addresses '192.168.0.100/24'

nmcli con mod team0 ipv4.method manual

nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0

nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0

teamdctl team0 state

ping -I team0 192.168.0.254

nmcli dev dis eno1

teamdctl team0 state

nmcli con up team0-port1

nmcli dev dis eno2

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.25.5.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

3.2.20 测试网络工具

在命令行下测试网络的连通性

显示主机名

  • hostname

测试网络连通性

  • ping

显示正确的路由表

  • ip route

跟踪路由

  • traceroute
  • tracepath
  • mtr

确定名称服务器使用

  • nslookup
  • host
  • dig

网络客户端工具

ftp,lftp:子命令:get、mget、ls、help

lftp [-p port] [-u user[,password]] SERVER

lftpget URL

wget [option]... [URL]...
  • -q 静默模式
  • -c 断点续传
  • -P /path 保存在指定目录
  • -O filename 保存为指定文件名,filename 为 – 时,发送至标准输出
  • –limit-rate= 指定传输速率,单位K,M等

links URL

  • –dump
  • –source
举报

相关推荐

0 条评论