Linux学习20-网络协议与管理2

网络协议与管理2

要点

  • 网络划分
  • 跨网络配置路由器
  • 网卡配置文件
  • 了解网络管理工具

1. Internet层协议

  • 包括哪些协议

    1. IP:Internet协议
    2. ICMP
      1. Destination Unreachable
      2. Echo(Ping)
        • 命令ping发送icmp请求数据包,取得返回值,判断网络状态
        • 有些软件也会用ping命令判断软件状态,回应pang,这种ping与ICMP协议不同
          例如:ping :unknown host www.baidu.com
          初步判断为DNS解析的原因
          例如:connect:Network is unreachable
          初步判断为没有路由
    3. IGMP
      组管理协议,用于多播 与ICMP相似
    4. ARP
      地址解析协议 Map IP —>Ethernet(MAC地址)
      全称为Address Resolution Protocol,是根据IP地址获取物理地址的一个TCP/IP协议。
  • ARP工作概要

    1. 主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址
    2. 收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源,改为静态绑定可以在重启之前一直保存
    3. 地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存,由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
    4. ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
      arp  -s  ip  mac    绑定地址
      
    5. 理论上ARP协议只能在同一个网络中工作,跨网络ARP工作,必须要配网关
  • 特殊ARP

    1. 电脑启动时候要使用的Gratuitous ARP
    2. 判断主机ip是否冲突,向网络中发送广播IP地址是否被占用。
  • 反向ARP,将mac地址解析成IP地址

    1. 设置DHCP服务器,在服务器上有记录网络中电脑的MAC地址和IP的表格
    2. 一台电脑想知道自己的IP地址,于是发出广播协议,然后被服务器分配了一个IP地址
  • ARP跨网络工作,需要配合路由,示例如下
    Linux学习20-网络协议与管理2_第1张图片

    1. A要与B跨网段建立通讯,ARP广播拿到本网段路由器R1接口1的MAC地址
    2. 路由器通过IP1收到数据包,通过查路由表得知发送到B的路径,下一网段临近的路由器R2的接口3,
    3. 接口3拿到数据包,通过接口4发送个B
    4. 这里如果C假冒网关,A的数据就会发给C,C抛弃包,导致无法通讯,甚至转发出去,以收集A的信息。
      arp  -n           查看ARP表
      arp  -d ip       主动删除arp表某条记录
      ip  neigh        也可以查看ARP表
      

2 Internet协议特征

  • 运行在OSI网络层
  • 非面向连接,没有三次握手
  • 独立处理数据包
  • 分层编址
  • 尽力而为传输,不确保数据能到
  • 无数据恢复功能

2.1 IP PDU报头

每行范围在0-31位,固定的为5行,每行4个字节,所以最下为20个字节报文头部
Linux学习20-网络协议与管理2_第2张图片

  • 版本:ipv4、ipv6,据说有中国的v9版

  • 原地址和目的地址:各占4个字节,分别记录源地址和目标地址

  • 首部长度:固定部分和可变部分,占4位也就是2的4次方,可表示的最大数值是16个单位,一个单位为4字节,因此IP首部长度的最大值是64字节

  • 区分服务:标识特定服务的,用的不多

  • 总长度:头和数据的总长度16位(与首部长度16个单位计算方式不同),也就是最大65536个字节

  • 标识:将超过1500字节的数据包切片,同一个包的若干分片中,该值是相同的,用于标识同一数据包

  • 片偏移:数据切割的分片在原数据包中的相对位置,显示的单位是字节除8的结果,如下图
    Linux学习20-网络协议与管理2_第3张图片

  • 标志(flag):占3位,目前只有后两位有意义

  • DF:Don’t Fragment ,中间的一位,只有当DF=0时才允许分片

  • MF:More Fragment,最后一位,MF=1表示后面还有分片。MF=表示最后一个分片

      例如  一个3500的包,假设分为三个包为按顺序为A、B、C,大小为1500、1500、500
      A的MF=1,B的MF=1,C最后一个包MF=0
    
  • 生命期ttl:可修改,/proc/sys/net/ipv4/ip_default_ttl

  • 协议:显示上层协议 ,国际组织定义的编号可以查看/etc/protocols

  • 首部检验和:检查数据包是否坏了

3. IP地址分类与转换

3.1 ip地址分类

  • IP地址简介

    1. IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异
    2. ip地址只有32位(二进制),所以最多有2^32(4 294 967 296)个
      示例:ip地址各进制转换,拿到172.20.112.176
      转换为二进制10101100000101000111000010110000
      $bc                            <== 对应的十进制为
      ibase=2
      10101100000101000111000010110000
      2887020720                    
      $ping 2887020720               <==ping 10进制数
      64 bytes from 172.20.112.176: icmp_seq=1 ttl=64 time=1.26 ms
      
    3. 每台主机必须有一个唯一的ID
    4. IP地址由两部分组成
      • 网络ID
        标识网段 就像城市区号
        每个网段分配一个网络ID
        网络ID位在高位
      • 主机ID
        标识单个主机 就像具体电话号码
        由组织分配给各设备
        主机ID位排在网络ID后
  • IP地址分类

    1. Internet委员会定义的五种类别

      1. A类,最高位为0,前八位为网络ID,后24位为主机ID
        1. 第一段地址为0的是位置地址,为127的是回环网卡,都不算在IP分类中
        2. 第一段地址范围为00000001-011111111,所以第一段为1-126为A类
        3. 一个网段可以有 2^24-2=16777214
          示例:比如10.*.*.*的网段
          10.0.0.0             <==最小,不能算在可用ID里,表示的是本网段地址
          10.255.255.255       <==最大,不能算,表示为本地网络广播地址
          
      2. B类前2位为10,前16位为网络ID,后16为主机ID
        1. 与A类算法相同
        2. 128-191开头的为B类
      3. C类前3位为110,前24位是网络ID,后8位是主机ID
        1. 192-223开头的为C类
      4. D类前4位为1110,不能给主机分配,属于多波(一些计算机的集合)地址
        1. 224-239开头的为D类 ,多波地址
        2. MAC地址高8位最后一位为1是多波地址
      5. E类为保留未使用的高5位为11110
    2. 公有私有网络

      1. 公有地址(Public address)
        由Inter NIC(Internet Network Information Center因特网信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。
      2. 私有地址(Private address)
        属于非注册地址,专门为组织机构内部使用,以下列出留用的内部私有地址,也就是说互联网不会分配的, 在互联网中没有路由
      类别 地址范围
      A类 10.0.0.0–10.255.255.255
      B类 172.16.0.0–172.31.255.255
      C类 192.168.0.0–192.168.255.255
    3. 特殊地址

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

      1. 网段数=2^可变的网络ID位数
      2. 一个网段可以有多少计算机=2^主机ID位数(32-网络ID位数)-2

3.2 CIDR无类别域间路由

尽管已针对整个IPv4地址空间进行分类,但没类网络数量相对扔然非常少,而且花费网段时不是太大就是太小,为了解决这种问题,就出现了无类域名。其特点为,网络ID位数不确定,根据实际情况更改,可以为任意位,配合可变长子网掩码VLSM,来确定网络ID位数。

  • 优点

    1. 可以根据网络规模大小选择拥有适当可用IPv4地址的IPv4地址段,这样可以减少地址的闲置和浪费
    2. 降低广播风暴产生的可能
    3. 提高路由效率
    4. 提高广域网中的网络安全
  • 子网掩码
    32位二进制,前多少位高位为1,低位为0,为1的即为网络ID位,为0的就是主机ID位
    所以可能的子网掩码为下表所示

    二进制 十进制
    00000000 0
    10000000 128
    11000000 192
    11100000 224
    11110000 240
    11111000 248
    11111100 252
    11111110 254
    11111111 255
  • CIDR表示法

    1. IP/网络ID位数 ,例如192.168.32.17/24   子网掩码为255.255.255.0  
    2. 子网掩码换算成二进制为11111111.11111111.11111111.00000000,前24位为1,在CIDR表示法中以/24出现
    
  • 网络ID的计算示例

    1. 示例一:10.0.0.200/19,求子网掩码,所在网络最多主机

      1. 子网掩码
        /19,表示网络ID为19位,即11111111.11111111.11100000.00000000
        换算成十进制255.255.224.0
      2. 所在网络一个网段最多有多少主机
        套用算法:一个网段可以有多少计算机=2^主机ID位数(32-网络ID位数)-2
        2^13-2
    2. 示例二:2000台主机,都放在同一网段中,netmask怎么分配合理?

      1. 主机2000<=2主机ID数-2,也就是211
      2. 所以netmask为11111111.11111111.11111000.00000000
      3. 换算成十进制255.255.248.0
    3. 示例三:判断IP地址是否为同一网段
      A:192.168.32.1/24 255.255.255.0 192.168.32.0
      B:192.168.33.1/24 255.255.255.0 192.168.33.0

      1. 判断是否在同一网段,即比较网络ID
      2. 算法:网络ID=IP&netmask
        转换为二进制相与,上面为IP地址,下面为netmask
      3. 与运算:0&0=0,0&1=0,1&0=0,1&1=1
        A        11000000.10101000.00100000.00000001      
        		 11111111.11111111.11111111.00000000
        	     11000000.10101000.00100000.00000000      <==结果为192.168.32.0
        B        11000000.10101000.00100001.00000001      
        		 11111111.11111111.11111111.00000000
        		 11000000.10101000.00100000.00000000      <==结果为192.168.33.0
        结论: 网络ID不同,不在同一网段		 
        
    4. 示例四:判断IP地址是否为同一网段
      A 192.168.32.1/16 255.255.0.0
      B 192.168.33.1/24 255.255.255.0

      • 假设A有B的IP地址,不知道子网掩码,这时候判断都是和A的子网掩码做与运算,判断为在同一个网段
      • 再假设B有A的IP地址,不知道其子网掩码,判断式和B的子网掩码做与运算,判断为不再同一网段。
      • 结果如下,虽然都ping不通,但是原理不同
        • A判断B:A的网络ID192.168.0.0 ; B的网络ID192.168.0.0
          在同一网段,可以向B发ARP广播,但收不到回应
        • B判断A A192.168.32.0 B192.168.33.0
          不在同一网段

3.3 划分子网

将一个大网(主机ID位多)分割成多个小网

  • 实现方法
    网络ID位向主机ID借位,把一部分原来属于主机ID的部分变成网络ID,通常称为子网ID,借n位将得到2的n次方子网,原网络ID+子网ID=新网络ID
  • 示例
    1. 例一:10.0.0.0/8划分32个子网

      1. 子网netmask
        32个子网需要多少位:32<=2^n
        网络ID为:8+5=13
        255.11111000.0.0 = 255.248.0.0
      2. 每个子网主机是多少
        2^(32-13)-2=524286
      3. 最小的子网IP范围
        10.00000 000.0.1-10.00000 111.255.254 = 10.0.0.1/13-10.7.0.1/13
      4. 最大的子网网络ID
        10.11111 000 .0.0=10.248.0.0/13
    2. 例二:10.20.0.0/13 划分18个子网

      1. 子网netmask
        2^n>18 13+5=18
        255.255.11 000000.0 = 255.255.192.0
      2. 每个子网主机是多少
        2^(32-18)-2=16382
      3. 最小、最大的网络ID是多少
        10.00011000.00 000000.0 = 10.24.0.0/18
        10.00011100.01 000000.0 = 10.28.64.0/18
      4. 最大的子网ip范围
        10.00011100 .01000000.1 =10.28.64.1/18
        10.00011100.011111111.254 = 10.28.127.254/18
    3. 示例:10.28.64.1/18,划分10个子网

      1. 子网netmask
        2^n>10 18+4=22
        255.255.111111100.0 =255.255.252.0
      2. 每个子网主机是多少
        2^10-2=1022
      3. 最小、最大的网络ID是多少
        10.28.01 0000 00.0 = 10.28.64.0/22
        10.28.01 1001 00.0 = 10.28.100.0/22
      4. 最大的子网ip范围
        10.28.01 1001 00.000000001 = 10.28.100.1
        10.28.01 1001 11.111111110 = 10.28.103.254

3.4 合并超网

将多个小网合并成一个大网

  • 用途:节约路由表的消耗,提升查询速度
  • 算法:主机ID向网络ID借位,取最大公约数,转化成二进制取
  • 例如:合并 200.78.169.0/24与 200.78.175.0/24
    1. 200.78.169.0/24 220.78.10101 001.0/24
    2. 200.78.175.0/24 220.78.10101 111.0/24
      取网络ID相同的位为新网ID,多出来的为借给主机ID的位
      所以合并后的网络ID为220.78.168.0/21(220.78.10101 000.0/24)

3.5 跨网络通讯

  • 跨网络通信:路由
  • 路由分类:
    1. 主机路由
      精确到主机,目标网络写的是单个IP地址
    2. 网络路由
      精确到网段,目标网络写的是网段IP,计算机只要配地址就会自动生成所在网段的路由记录。
    3. 默认路由
      只是把目的地ip和子网掩码改成0.0.0.0和0.0.0.0。由于默认路由只能存在末梢网络中,是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。
  • 优先级:精度越高,优先级越高

4. 动态主机配置协议DHCP

  • DHCP的工作流程

    1. 客户机请求IP(DHCPdiscover)
      客户机将使用0.0.0.0作为源地址,使用255.255.255.255作为目标地址来广播请求IP地址的信息。广播信息中包含DHCP客户机的MAC地址和计算机名
    2. 服务器响应(DHCPoffer)
      1. 服务器收到请求后先针对该次请求的信息所携带的MAC地址与DHCP主机本身的设置值进行对比。
      2. 如果DHCP主机的设置中有针对该MAC 提供的静态IP(每次都给一个固定IP),则提供给客户机相关的固定IP与相关的网络参数
      3. 如果该信息的MAC并不在DHCP主机的设置中,则DHCP主机会选取当前网段内没有使用的IP给客户机使用!当然这里的响应,服务器也是采用255.255.255.255的广播。
    3. 客户机选择IP(DHCPrequest)
      1. 如果同一网段内有多台DHCP服务器,那么客户机是谁先响应就选择谁
      2. 收到响应包后,会在网段内发送广播确认IP地址是否被占用,则不接受,再次请求
      3. 确认未被占用,发送广播通知接受的DHCP服务器,同时也通知其它的DHCP服务器,让这些DHCP服务器将本预分配给客户机的IP释放掉
    4. 服务器确认IP租约(DHCPack/DHCPnak)
      DHCP服务器收到客户机选择IP的广播后,则以DHCPack消息的形式向客户机广播成功的确认。DHCPack包含:IP、掩码、网关、DNS、租期等
  • IP地址时间限制。

    1. 租期即将到期,续租过程,当IP地址租期到达一半时间,客户端就会向服务器发出续租请求,服务器收到并同意,客户端就会获得一个新的租期,
    2. 如果服务器没有响应,当租期达到7/8时,客户端就会广播向其他服务器发送请求,获得新的IP。

5. 基本网络配置

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

  • 配置内容
    1. 主机名:Linux默认情况下主机名是有本地意义的,不能跨网络通讯,要想跨网络通讯需要配合名字解析服务。
      • 推荐:根据功能,服务器等统一格式命名
      • 优点:统一主机名可以用在以后配合DNS做名字解析统一管理各种服务器
      • 例如web_nginx01_magedu.com,
        意思是作为web服务器利用nginx第01服务器搭建的后面为公司域名,
    2. IP/netmask: 必须要配的
    3. 路由:默认网关 跨网络要配的
    4. DNS服务器:名字解析功能
  • 变更主机名
    1. 在CentOS6中更改主机名

      1. 改文件配置/etc/sysconfig/network
        [root@hai ~]$vim /etc/sysconfig/network
        HOSTNAME=hai6              <==修改主机名
        
      2. 修改文件 /etc/hosts作用是名字解析服务。
        cat /etc/hosts或者getent hosts查看文件内容
        $vim /etc/hosts
        ::1         localhost ...localdomain6  hai6       <==在后面追加上主机名就可以
        
      3. 生效
        1. 重启
        2. 命令栏执行一次 hostname hai6,(hai6为更改后的主机名)来更改内存
        3. exec bash
    2. 在CentOS7中更改主机名

      1. 方法一

        1. 配置文件/etc/hostname
        2. 同样建议修改 /etc/hosts
      2. 方法二

        1. 命令 hostnamectl +选项 修改主机名的选项为set-hostname

            $hostnamectl set-hostname  hai7    <==hai7为主机名
          
        2. 修改 /etc/hosts文件

  • 修改DNS与hosts文件解析优先级
    不推荐修改,默认就好
    1. 修改
      /etc/nsswitch.conf 可以更改DNS和hosts优先级,下图谁在前,谁优先
      这里写图片描述
    2. 示例,hosts文件的作用
      3在hosts文件中,增加以下内容,当输入对应网站时,实际打开的就是IP所在,钓鱼网站常用
      1. [root@hai7115 ~]$vim /etc/hosts
      	172.20.129.251 www.icbc.com www.ccb.com   <==可以跟多个网站
      2. [root@hai7115 ~]$ping www.icbc.com
          PING www.icbc.com (172.20.129.251) 56(84) bytes of data.
      实际上ping的为文件中修改的IP地址
      

6. 配置IP地址

6.1 网卡命名

  • CentOS6网卡命名方式
    1. 以太网:eth[0、1、2。。。]
    2. ppp (与广域网通讯用的网卡) : ppp[0,1,2…]
    3. lo(loopback):回环网卡,与物理网卡没关系,只要安装了tcp协议,就会有,127.0.0.1本机IP,只能访问本机,出不去,因为没有127的路由
  • CentOS6更改命名:
    1. 只要是硬件的命名规则都是由udev内置的,怎么命名由rules.d来定义
    2. 网卡命名文件/etc/udev/rules.d/70-persistent-net.rules
    3. ATTR{address}=="00:0c:29:6c:a2:54"表示mac地址,找到对应网卡,选择修改NAME项
      [root@hai6 ~]$vim  /etc/udev/rules.d/70-persistent-net.rules 
      SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{
               address}=="00:0c:29:6c:a2:54", ATTR{
               type}=="1", KERNEL=="eth*", NAME="eth0"
      
    4. 生效方法
      1. 重启
      2. 卸载网卡驱动模块,再加载上
        命令dmesg查看的是所有硬件信息,截取网卡
        [root@hai6  ~]$dmesg|grep eth
         e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:6c:a2:54
        |驱动名|             |网卡名|                   |MAC地址|     
        e1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connection
        
        ethtool -i 网卡名:可查看网卡信息,里面也有驱动名称
        root@hai6  ~]$ethtool -i eth1
        driver: e1000                <==驱动名称
        version: 7.3.21-k8-NAPI
        firmware-version: 
        bus-info: 0000:02:02.0
        supports-statistics: yes
        supports-test: yes
        supports-eeprom-access: yes
        supports-register-dump: yes
        supports-priv-flags: no
        
        lsmod:列出所有的加载到内存中的模块
        [root@hai6  ~]$lsmod
        Module                 Size  Used by
        e1000                 134991  0 
        
        modprobe -r 驱动名 :卸载驱动程序
        [root@hai6  ~]$modprobe -r e1000
        
        modprobe 驱动名:加载驱动程序
        [root@hai6  ~]$modprobe  e1000
        

6.2 网络配置工具

  • 静态指定:

    1. net-tools中的工具,比较传统
      ifconfig, route, netstat
    2. 官方推荐使用的新工具
      ip: object {link, addr, route}, ss, tc
      system-config-network-tui,setup
  • 动态分配IP:
    DHCP服务器: Dynamic Host Configuration Protocol

  • 动态路由
    动态路由协议通过路由信息的交换生成并维护转发引擎所需的路由表。当网络拓扑结构改变时动态路由协议可以自动更新路由表,并负责决定数据传输最佳路径。管理员不再需要与静态路由一样,手工对路由器上的路由表进行维护,而是在每台路由器上运行一个路由协议。这个路由协议会根据路由器上的接口的配置(如IP地址的配置)及所连接的链路的状态,生成路由表中的路由表项

    1. 动态路由协议的优点:
      1. 可以自动适应网络状态的变化。
      2. 自动维护路由信息而不需要网络管理员的参与。
    2. 动态路由协议的缺点:
      1. 由于需要相互交换路由信息,因而占用网络带宽与系统资源。
      2. 安全性不如静态路。
    3. 支持多种路由协议:RIP、OSPF和BGP
      1. RIP协议在判断路径时,选择通过路由器少的路径
      2. OSPF协议不仅判断通过路由器的数量,还会同时参考带宽,综合选择
    4. 安装quagga包 ,可以模拟专业路由器进行设置
  • ifconfig命令

    1. 常见用法
      1. ifconfig -a:显示所有网卡,包括禁用的
      2. ifconfig [interface]:跟单个接口名,显示指定的接口信息
        [root@hai6  ~]$ifconfig eth0  
        eth0  <==网卡代号 
        		  Link encap:Ethernet  HWaddr 00:0C:29:6C:A2:54
        		  'MAC地址'
                  inet addr:172.20.129.251  Bcast:172.20.255.255  Mask:255.255.0.0
                  'IPv4地址,Bcast与Mask分别代表广播地址,子网掩码'
                  inet6 addr: fe80::20c:29ff:fe6c:a254/64 Scope:Link
                  'IPv6地址'
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                  'MTU:以太网所能传送的数据量最大值'
                  RX packets:3499 errors:0 dropped:0 overruns:0 frame:0
                  'RX:网络启动到目前封包接收情况,packets(封包数),errors(出错包数),dropped(有问题丢弃的包)'
                  TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
                  '启动到目前发送包情况'
                  collisions:0 txqueuelen:1000 
                  'collisions:代表封包碰撞情况,发生次数越多,代表网络状况越不好'
                  'txqueuelen:代表传输数据的缓冲区储存长度'
                  RX bytes:292186 (285.3 KiB)  TX bytes:4524 (4.4 KiB)
                  RX bytes,TX bytes:总接收、发送的字节总量
        
      3. ifconfig interface [up|down] :启动停用接口
        ifdown也可以 只是将网络层down,数据链路层还在,所以在查看信息时,仍然显示为UP,但确实已经断掉,依赖于配置文件,没加配置文件不能使用
      4. 设定和修改接口,临时性的 ,重启失效
        ifconfig interface [aftype] options address ...
        1. 'cidr表示法,临时修改ip地址 '
        ifconfig  eth1  172.18.0.123/16
        2. '临时修改ip地位为172.18.0.123,网关为255.255.0.0'
        ifconfig eth1 172.18.0.123  netmask 255.255.0.0 
        3. '同时修改IP和mtu值'
        ifconfig eth1 172.18.0.123  netmask 255.255.0.0   mtu 5000 
        
  1. 给网卡配别名
    • 添加子接口,为eth0接口配置子接口9,IP为1.1.1.1/24
      ifconfig eth0:9 1.1.1.1/24
    • 取消子接口网卡
      ifconfig eth0:9 down
    • 为一个网卡同时配置静态IP和动态IP
      实现方法为建立子接口
      自动获取的IP是不能放在别名里,别名只能放手动
      为每个设备别名生成独立的接口配置文件

6.3 IP网络配置文件

  • 配置文件
    /etc/sysconfig/network-scripts/ifcfg-*
    ifcfg为固定写法,-后面的为描述可以自由自定

  • 配置文件选项

    网卡配置相关参数 含义
    DEVICE 此配置文件应用到的设备
    HWADDR 对应的设备的MAC地址,建议不加此项,更换网卡会影响启动
    BOOTPROTO 激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
    NM_CONTROLLED NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no”
    ONBOOT=yes|no 在系统引导时是否激活此设备 ,不写为yes
    TYPE 接口类型;常见有的Ethernet, Bridge
    UUID 设备的惟一标识
    IPADDR 指明IP地址
    NETMASK 子网掩码
    PREFIX 子网掩码另一种写法/24
    NAME 注释性文字,说明这个配置文件是干嘛的
    GATEWAY 默认网关
    DNS1 第一个DNS服务器指向,一般至少配2个,防止DNS服务器当机
    DNS2 第二个DNS服务器指向,8.8.8.8谷歌的,1.1.1.1澳大利亚的
    DOMAIN=常用网址 不要www.如baidu.com,再ping www时就会连接百度
    USERCTL=yes|no 普通用户是否可控制此设备
    PEERDNS 如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中
  • 常用配置内容

    1. 动态配置

      DEVICE=ethX 
      BOOTPROTO=dhcp 
      ONBOOT=yes 
      Type=Ethernet
      
    2. 静态配置

      DEVICE=ethX                  <==网卡名,必须对应物理网卡名称
      BOOTPROTO=none
      IPADDR=192.168.0.123         <==IP地址
      NETMASK=255.255.255.0        <==子网掩码
      GATEWAY=192.168.0.254        <==网关
      ONBOOT=yes                   <==是否开机启动
      Type=Ethernet                <==网络类型
      DNS1=114.114.114.114         <==一般配2各DNS
      DNS2=223.5.5.5
      
    3. 修改生效

      1. CentOS6:service network restart
      2. CentOS7:systemctl restart network
      3. 配置好后会自动生成一个路由记录,用于和本网段主机通讯,如果删掉路由记录就不能通讯了
      4. 修改后自动生效的话是CentOS6系统中service NetworkManager status服务,使其生效,但不稳定,与service network restart冲突,建议停用,停用方法:
        1. chkconfig NetworkManager off 停止开机启动
        2. service NetworkManager stop 停用服务
        3. 这个服务特殊作用是在图形界面,增加网络图标
      5. 如果设置了DNS,会自动生成 /etc/resolv.conf文件,此文件生效DNS才算生效
  • 保存路由表网络配置文件

    1. 在/etc/sysconfig/network-scripts/下新建文件route-IFACE
      IFACE为路由表对应的接口,有几个记录分别对应几个接口就建几个文件
      帮助文档列出完整选项列表:/usr/share/doc/initscripts-***/sysconfig.txt
    2. 格式
      1. 目标网络ID via 网关
        10.0.0.0/8 via 172.16.0.1
      2. 每三行定义一条路由
        ADDRESS#=TARGET
        NETMASK#=mask
        GATEWAY#=GW
        ADDRESS0=10.0.0.0    
        NETMASK0=255.0.0.0 	      
        GATEWAY0=172.16.0.1 
        
  • 修改MAC地址
    修改MAC地址 在网卡配置文件中加上MACADDR=新MAC地址,可以逻辑上修改MAC地址。
    配置文件中HWADDR=MAC这个是不能改的,不然配置文件会出错,导致网卡服务起不来,功能同DEVICE=名,写两者之一就可以识别是哪个网卡的配置文件

6.4 rout路由管理命令

  • 常见用法
    1. 查看路由表 route -nee
      -n:使用ip或port number来显示
      -ee:显示更详细的信息
    2. 添加路由
      1. 语法
        route add [-net|host] target [netmask Nm] [gw GW] [[dev] If]

      2. 选项说明
        -host:主机路由
        -net:网段路由
        netmask:子网掩码
        gw:geteway简写,后接网关
        dev:指定由哪个网络设备传送

      3. 示例
        添加一条连接192.168.50网段的路由

        '添加'
        [root@hai7115 ~]$route add -net 192.168.169.0 netmask 255.255.255.0 gw 172.20.0.1 dev ens33
        '查看添加的路由'
        [root@hai7115 ~]$route -n
        Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
        192.168.169.0   172.20.0.1      255.255.255.0   UG    0      0        0 ens33
        

        路由信息中Flags解释:总共有多个旗标,代表的意义如下

        1. U (route is up):该路由是启动的
        2. H (target is a host):目标是一部主机 (IP) 而非网域
        3. G (use gateway):需要透过外部的主机 (gateway) 来转递封包
        4. R (reinstate route for dynamic routing):使用动态路由时,恢复路由信息的旗标
        5. D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由
        6. M (modified from routing daemon or redirect):路由已经被修改了
        7. ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)
    3. 删除路由
      1. 语法格式
        route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
      2. 示例
        route del -net 192.168.169.0 netmask 255.255.255.0
        
    4. 设置未知路由
      1. route add -net default gw gateway
      2. route add -net 0.0.0.0/0 gw gateway
    5. 查看通讯路径
      1. 命令mtr ip,查看跨网段通讯信息
        [root@hai7115 ~]$mtr www.baidu.com
        
      2. 命令traceroute ip ,同上
        [root@hai7115 ~]$traceroute www.baidu.com
        
  • 配置路由示例
    将主机当成路由器使用,也就是收到包会转发,功能需要启用/proc/sys/net/ipv4/ip_forward这个文件,值为0是不转发,为1是转发,重启失效,修改配置文件/etc/sysctl.confnet.ipv4.ip_forward=0将值改为1,CentOS7次文件要手动写。
    1. 示例一:隔3个路由器设置IP,达成A与B通讯

      1. 规划拓扑图A与B为客户端,R1、R2与R3位路由器,各接口IP地址如图所示
        Linux学习20-网络协议与管理2_第4张图片

      2. 各接口的路由表为

        • A
          未知网段记录,网关为172.20.50.201
          本网段记录

          Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
          default    172.20.50.201        0.0.0.0         UG    0      0        0 ethA
          172.20.0.0      0.0.0.0         255.255.0.0     U     1      0        0  ethA
          
        • R1
          未知网段记录
          本网段记录

          Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
          default         gateway         0.0.0.0         UG    0      0        0  eth2
          172.20.0.0      0.0.0.0         255.255.0.0     U     0      0        0  eth1
          
        • R2
          net2网段记录
          net3网段记录
          R1网关记录
          R3网关记录

          Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
          192.168.169.0   55.168.50.129   255.255.255.0         UG    0      0        0  eth4
          20.168.50.0     0.0.0.0         255.255.255.0   U     104    0        0  eth3
          55.168.50.0     0.0.0.0         255.255.255.0   U     103    0        0  eth4
          172.20.0.0      20.168.50.9     255.255.0.0     UG    0      0        0  eth3
          
        • R3
          未知网段记录
          net1网段记录

          Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
          default         gateway         0.0.0.0         UG    0      0        0 eth5
          192.168.169.0   0.0.0.0         255.255.255.0   U     0      0        0 eth6
          
        • B
          未知网段记录
          net1网段记录

          Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
          default         gateway         0.0.0.0         UG    0      0        0 ethB
          192.168.169.0   0.0.0.0         255.255.255.0   U     100    0        0 ethB	
          
    2. 示例二:将不同VLAN中的两个客户端连接通讯,使用单臂路由器
      A客户端的ip为192.168.32.6/24 B客户端的ip为172.20.0.6/16

      1. 以图形界面配置网卡,右键单击击图形界面网络图标,选择edit connections,选择需要编辑网卡==>选择edit ==>选择IPV4 Settings ,在method栏中选择Manual,激活Addresser栏,点击Add,添加IP地址
        Linux学习20-网络协议与管理2_第5张图片
      2. 查看文件网卡配置/etc/sysconfig/network-scripts/ifcfg-eth0,保留必要项
         DEVICE=eth0
         IPADDR=172.20.50.201
         PREFIX=16
        
      3. 拷贝一个网卡配置文件,作为子网卡配置文件,修改配置文件
        1. 进入网卡配置文件目录
        cd /etc/sysconfig/network-scripts/
        2. 拷贝模板作为子网卡配置文件
        cp  ifcfg-eth0  ifcfg-eth1
        3. 修改配置文件
        vim  ifcfg-eth1
        DEVICE=eth0:1
        IPADDR=192.168.169.100
        PREFIX=24
        
      4. 为A客户端,配置网关,将网关指向单臂路由的子网络
        DEVICE=eth0
        IPADDR=192.168.169.129
        PREFIX=24
        GATEWAY=192.168.169.100
        
      5. 为B客户端,配置网关 ,将网关指向单臂路由的主网络
        DEVICE=eth0
        IPADDR=172.20.129.251/16
        PREFIX=16
        GATEWAY=172.20.50.201
        

6.5 netstat命令

可以查看网络连接状态,也可以统计主机连接次数,看其并发量,判断是否是恶意连接

  • 查看网络状态

    1. 语法格式
      默认不加选项显示所有网络状态,包括本地的套接字
      netstat [–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p]
    2. 选项描述
      1. -t:tcp协议相关,常与-n一起使用,显示通过tcp协议和远程那些主机相连
      2. -u: udp协议相关
      3. -w: raw socket相关 裸套接字,不通过TCP和UDP协议,直接与IP通讯的方式
      4. -l: 处于监听状态
      5. -a: 所有状态
      6. -n: 以数字显示IP和端口
      7. -e:扩展格式 ,更多的信息,可以显示连接着身份,节点编号等
      8. -p: 显示相关进程及程序名,可以查看通过使用哪个应用程序与对方通讯
    3. 常用组合
      1. -tan:显示所有处于tcp协议连接
      2. -uan:显示所有处于udp协议连接
      3. -tnl :显示处于tcp协议连接,以及监听状态的请求
      4. -unl:显示处于udp协议连接,以及监听状态的请求
  • 显示路由表:

    1. 语法格式
      netstat {–route|-r} [–numeric|-n]
    2. 选项
      1. -r: 显示内核路由表
      2. -n: 数字格式
    3. 示例
      [root@hai7115 ~]$netstat -r -n
      
  • 显示接口统计数据:

    1. 语法格式
      netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]

      1. netstat -i 统计所有接口的数据包,MTU大小,收发数量,错误数量,丢弃数量等
      2. netstat -I=IFACE (大写i)可以指定接口 与ifconfig -s eth0效果相同
        两种写法都可以
        [root@hai7115 ~]$netstat -Iens33
        [root@hai7115 ~]$netstat -I=ens37
        
  • 测试工具

    1. watch 命令 每多久扫描一次命令的执行结果
      例如:每0.5秒更新一次命令执行结果
      [root@hai7115 ~]$watch -n0.5 netstat -i
      
    2. 软件包https-tools
      yum install httpd-tools包内工具ab
      ab -c1000 -n 2000 http://192.168.32.6 同时发送#(1000)个数据包

6.6 ip命令

查看、显示、修改ip和路由表,相对较新的工具,通过子命令来实现功能,可通过tab补全查看

  • 格式
    ip [ OPTIONS ] OBJECT { COMMAND | help }

  • 选项
    -s :显示设备的的统计数据

    [root@hai7115 ~]$ip -s a
    
  • OBJECT 针对那些网络对象进行操作,常用的包括{addr|link|route}

    1. addr 关于ip管理
      1. 格式
        ip addr [add|del] [ip参数] [dev 设备名] [参数]
      2. 选项
        show:显示信息
        add|del:进行相关参数的增加或删除
      3. 参数
        1. IP参数:ip地址的设定
        2. dev:ip地址所要设定的接口,如(ens33,ens37)
        3. broadcast:设定广播域,系统默认设置生成就行
        4. label:设备别名,如ens33:1
        5. scope:作用域,分以下几类,系统默认就好
          • global
            全局可用 单主机有2块网卡,两个地址都在内核中,任意网卡收到数据包,都会做出回应
          • link
            仅链接可用 数据包只有发送到对应网卡才可以得到回应,否则丢弃
          • host
            本机可用 只有本机内两个地址互通,外部不通
      4. 示例
        1. 示例1:显示所有网卡地址:ip addr|a
        2. 示例2:显示启用的设备:ip addr show up
        3. 示例3:查看设备名为ens37的信息
          [root@hai7115 ~]$ip addr show ens37
          
        4. 增加IP地址
          在设备ens37上增加192.168.50.150/24IP,并取别名为ens33:2,指定广播域为192.168.50.199( broadcast +表示系统自动判断广播域)
          [root@hai7115 ~]$ip a add 192.168.50.150/24 broadcast 192.168.50.199 dev ens37 label ens37:2 
          
        5. 删除ens37上指定的一条地址
          [root@hai7115 ~]$ip a del 192.168.50.151/24 dev ens37
          
        6. 删除ens37上的所有地址
          ip addr flush ens33 
          
    2. link 只显示数据链路层的信息,如MAC地址,MTU等
      1. 显示信息语法格式
        ip [-s] link show [device]
      2. 设定项目语法格式
        ip link set [device] [动作与参数]
        3. 参数
        1. up|down:启动或关闭接口

          $ip   link set  ens33  up
          
        2. address:支持修改MAC地址name

        3. 修改设备名

          $ip link set ens37 down			<==先关闭接口
          $ip link set ens37 name hai
          
        4. mtu:最大传输单元

          $ip   link set  ens33  mtu  2000
          
  1. route 路由管理项
    1. 格式:ip route [add|del] [ip] via [gw] dev 设备
    2. 选项:
    show:显示出路由表,也可使用list
    add|del :增加或删除路由
    3. 示例:添加路由

     		ip route add 192.168.0.0/24 via 172.20.50.100  dev ens33
     4. 示例:添加默认路由		 
    
     		ip route add default via 172.16.0.1   
     5. 示例:删除路由 
    
     		ip route del 192.168.1.13 via 172.16.0.1
     6. 示例:显示路由
     		
     		ip route show|list   
     7. 示例:清空路由表
     		
     		ip route flush dev eth0
    

###6.2.5 ss命令
netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息。 速度比netstat快

  • 格式:
    ss [OPTION]… [FILTER]

    1. 选项:
      -t: tcp协议相关
      -u: udp协议相关
      -w: 裸套接字相关
      -x:unix sock相关
      -l: listen状态的连接
      -a: 所有
      -n: 数字格式
      -p: 相关的程序及PID
      -e: 扩展的信息
      -m:内存用量
      -o:计时器信息
  1. FILTER : [ state TCP-STATE ] [ EXPRESSION ] 定义条件进行筛选
    dport =
    sport =
    示例:’( dport = :ssh or sport = :ssh )’
  • 常用组合:
    -tan, -tanl, -tanlp, -uan

  • 常见用法
    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详细信息

  • socket文件
    同一个电脑上2个应用程序发送数据互相交换时,都将数据发送到socket文件中,2个程序分别在socket文件中读取数据

##7. 多网卡绑定同一IP

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

  • Bonding工作模式
  1. Mode 0 (balance-rr)
    轮转(Round-robin)策略:从头到尾顺序的在每一个slave 接口上面发送数据包。本模式提供负载均衡和容错的能力
  2. Mode 1 (active-backup)
    活动-备份(主备)策略:只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave。为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见
  3. Mode 3 (broadcast)
    广播策略:在所有的slave接口上传送所有的报文,提供容错能力
  4. active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel
  • 实现步骤
    实验时,确保参与网卡在同一网段
  1. 创建bonding设备的配置文件,文件名ifcfg-自定义
    /etc/sysconfig/network-scripts/ifcfg-bond0

     		IPADDR=172.20.129.150 
     		NETMASK=255.255.0.0 
     		DEVICE=bond0     对应文件名后缀
     		BOOTPROTO=none   表示静态配地址
     		BONDING_OPTS= “miimon=100 mode=0” 定义工作模式
                
                  mode    工作模式 0、1、3等
                  miimon  查询工作网卡状态,单位为毫秒
    
  2. 创建网卡配置文件
    /etc/sysconfig/network-scripts/ifcfg-eth33 ,几个网卡就配几个文件。

     	DEVICE=eth33 
     	BOOTPROTO=none 
     	MASTER=bond0     <==绑定到bond0
     	SLAVE=yes        <==表示为从属设备
     	USERCTL=no 
    
  3. 重启服务,系统不同采用对应命令
    systemctl restart network

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

  • 删除bond0
  1. ifconfig bond0 down 先禁用bonding网卡
  2. rmmod bonding 或者 modprobe -r bonding 卸载模块
  3. 删除配置文件,将物理网卡配置文件改回去
  • 帮助文档
  1. 需要先安装kernel-doc这个包

     	$yum install kernel-doc
    
  2. 找到bonding.txt

         rpm  -al  kernel-dov |grep bond
    

##8. CentOS 7网络属性配置
###8.1 CentOS 7网卡命名方式
CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,系统可能将新网卡识别为eth0,原网卡被改为eth1,造成识别不了配置文件。

  • CentOS 7使用基于硬件,设备拓扑和设置类型命名:
  1. 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
  2. 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
  3. 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
  4. 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56
  5. 上述均不可用时,则使用传统命名机
  • 使用传统命名方式
    在实际工作中,网卡更换情况较少,统一网卡名称有利于自动化管理
  1. 编辑/etc/default/grub配置文件 ,找到下面这行

     	GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet"
    
  2. 在行后加上net.ifnames=0

     	GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0"
    
  3. 重新生成生效文件

     	$grub2-mkconfig -o /boot/grub2/grub.cfg
    
  4. 查看文件/boot/grub2/grub.cfg,找到Linux16行确定行尾加了net.ifnames=0

     linux16 /vmlinuz-0-rescue-e2c96d58ccbf4eb796063f25db8f0029 root=UUID=f5362972-e8db-456e-b3e3-88436aa6b865 ro crashkernel=auto rhgb quiet net.ifnames=0 
    
  5. 重启生效

###8.2 CentOS 7网络配置工具

  • 图形工具:nm-connection-editor
  • 字符配置tui工具:nmtui与CentOS6中的setup类似
  • 命令行工具:nmcli

###nmcli命令

  • 常见用法
  1. 显示当前网卡的链接名称

     	$nmcli connection   
     	NAME    UUID                                  TYPE      DEVICE 
     	ens33   b13613d0-a8bb-4302-a521-810475eda15d  ethernet  ens33
     	连接名                             			         设备名
     	一个连接名对应一个配置文件,一个物理网卡可以生成多个配置文件,根据不同的环境切换配置文件即可。
    
  2. 增加配置文件

     	$nmcli connection   add   con-name ens33-home   ifname ens33   type ethernet    ipv4.addresses 172.20.129.205/16
    
     	add              增加连接
     	con-name         新增连接名
     	ifname           针对哪个设备进行设置
     	type             类型,例使用的是以太网
     	ipv4.addresses   指定ip地址,还可以指定dns,gateway等,不加此项为动态获取
    
  3. 修改配置文件
    第2步中,配置文件依然使用动态获取,需要修改为静态指定

     	$ nmcli connection modify  ens33-home  ipv4.method  manual
    

    这里是为演示修改,正常情况下应该是一条可以搞定

     	$nmcli connection   add   con-name ens33-home   ifname ens33   type ethernet    ipv4.method manual  ipv4.addresses 172.20.129.205/16
    
  4. 显示网卡的详细信息

     	$nmcli connection show ens33-home   
    
  5. 启动eth0-home配置连接

     	$nmcli connection  up ens33-home   
    
  6. 修改连接名,即修改配置文件中的NAME=项

    	$nmcli connection modify ens33-home con-name ens33-office   
    
  7. 删除连接

     	$nmcli connection delete ens33-office    	
    
  8. 修改为禁用网卡,配置文件中ONBOOT项

     	$nmcli connection modify ens33-home connection.autoconnect no   
    
  9. 增加子IP

     	$nmcli connection modify ens33-home +ipv4.addresses 172.20.50.100/24  增加子IP
    
  10. 删除子IP

       $nmcli connection modify ens33-home -ipv4.addresses 172.20.50.100/24   删除子IP
    
  11. 断开网卡防止被激活

    	$nmcli device disconnect  ens33  
    
  12. 恢复连接

    	$nmcli device connect  ens33   
    
  • nmcli实现bonding
  1. 添加bonding接口,并添加配置文件

     	nmcli connect add   type bond   con-name mybond0   ifname mybond0   mode active-backup 
    
  2. 添加从属接口 ,修改配置文件

     	nmcli con add type bond-slave ifname ens1 master mybond0 
     	nmcli con add type bond-slave ifname ens0 master mybond0 
     	注:如没有为从属接口提供连接名,则该名称是接口名称加类型构成 
    
  3. 要启动绑定,则必须首先启动从属接口

     	nmcli con up bond-slave-eth0 
     	nmcli con up bond-slave-eth1 
    
  4. 启动绑定

     	nmcli con up mybond0
    

##9. 网络组Network Teaming

  • 网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
  1. 网络组不同于旧版中bonding技术,提供更好的性能和扩展性

  2. 网络组由内核驱动和teamd守护进程实现.

  3. 多种方式runner

    • broadcast 广播策略
    • roundrobin 轮转
    • activebackup 主备
    • loadbalance 根据网卡负载,选择较空闲的网卡接收数据
    • lacp (implements the 802.3ad Link Aggregation Control Protocol)国际规范的聚合方式
  • 网络组接口启动顺序
  1. 启动网络组接口不会自动启动网络组中的port接口
  2. 启动网络组接口中的port接口总会自动启动网络组接口
  3. 禁用网络组接口会自动禁用网络组中的port接口 ,网卡是工作在内核集的所以可以
  4. 没有port接口的网络组接口可以启动静态IP连接 ,没有物理网卡也可以配置静态IP
  5. 启用DHCP连接时,没有port接口的网络组会等待port接口的加入 ,启用DHCP需要物理网卡
  • 创建网络组
  1. 格式
    nmcli con add type team con-name CNAME ifname INAME [config JSON]

  2. 参数
    CNAME 连接名
    INAME 接口名
    JSON 语法格式,指定runner方式

     - 格式:'{"runner": {"name": "METHOD"}}' 
     - METHOD :{broadcast | roundrobin | activebackup | loadbalance | lacp}
    
  • 创建网络组物理网卡
  1. 格式
    nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
  2. 参数
    CNAME 连接名 ,连接名若不指定,默认为team-slave-IFACE
    INAME 网络接口名
    TEAM 网络组接口名

###9.1 示例

  • 创建网络组
  1. 创建team网络组

     	nmcli con add  type team con-name team0  ifname team0 config ‘{"runner": {"name": "loadbalance"}}' 
     	type :类型为 team
     	con-name:指定组名为team0
     	ifname:这里由于还没有生成,所以也是team0
     	config:后面加JSON 语法指定组模式
    
  2. 指定静态IP地址

     	nmcli con mod team0 ipv4.addresses 192.168.1.100/24 
    
  3. 将配置文件修改为手动指定

     	nmcli con mod team0 ipv4.method manual 
    
  4. 添加物理网卡eth1

     	nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0 
    
  5. 添加物理网卡eth2,配置文件会出现,DEVICETYPE=TeamPort

     	nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0 
    
  6. 启动网络组

     	nmcli con up team0 
    
  7. 启动组物理网卡 team0-eth1

     	nmcli con up team0-eth1 
    
  8. 启动组物理网卡team0-eth2

     	nmcli con up team0-eth2 
    
  9. 查看网络组工作状况

     	teamdctl team0 state; 
    
  10. 断开物理网卡

    	nmcli dev dis eth1
    
  11. 重新连接

    	nmcli  dev connect etho
    
  • 更换网络组工作模式
  1. 修改网络组工作模式,直接修改配置文件如下项

     TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"
    
  2. 关闭网络工作组

      nmcli con down team0
    
  3. 加载配置文件

     nmcli connection  reload
    
  4. 启动组物理网卡 team0-eth1

     nmcli con up team0-eth1 
    
  5. 启动组物理网卡team0-eth2

      nmcli con up team0-eth2 
    
  • 删除网络组
  1. 关闭网络组

     	nmcli connection down team0 
    
  2. 删除网络组物理网卡eth0

     	nmcli connectioni delete team0-eth0 
    
  3. 删除网络组物理网卡eth1

     	nmcli connectioni delete team0-eth1 
    

###9.2 配置文件

  • 网络组配置文件team
    /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
    

##10 测试网络工具总结

  • 测试网络连通性
    ping
    mtr
  • 显示正确的路由表
    ip route
  • 测试DNS服务使用:
    nslookup
    host
    dig
  • 跟踪路由
    traceroute 可以跟踪穿过多少路由器
    tracepath
  • 抓包命令
    tcpdump -i ens33(网卡) icmp(协议)
  • 补全功能
    在6系统中,配置EPEL源,bash-completion安装上可以增加补全功能如同7系统
  • 网络客户端工具
  1. ftp:交互式命令
    登录使用匿名账户ftp|anonymose
    密码:随便敲

    • 子命令
      ls :查看文件列表
      get:可以下载选中的文件至当前目录
      lcd:显示当前在客户端目录
      !ls:查看本机的文件列表
      put:上传,如果有权限
      mput/mget:上传下载多个文件
  2. lftp:交互式命令登录不需要账户密码

    • 也可以指定账户登录
      lftp [-p port] [-u user[,password]] SERVER

    • 非交互式下载ftp服务器文件
      lftpget URL

        	例如 lftpget  ftp://172.20.0.1/pub/getty 
      
  3. wget [option]… [URL]… 同时支持http与ftp

    • 选项:
      -q: 静默模式
      -c: 断点续传
      -P:保存在指定目录
      -O: 保存为指定的文件名

        	wget  http://172.20.0.1/centos/7/EULA  -o /data/111
        	将下载的文件EULA另存至/data下取名111
      

–limit-rate=: 指定传输速率,单位K,M等

  1. links URL
    –dump 只显示文字
    –source 查看源代码

  2. 网络排错思路
    1. 物理设备,网线,交换机等
    2. 查看网关设置,测试是否畅通,局域网检测
    3. 查看互联网,ping 114.114.114.114等,外网检测
    4. 如果ping的通,还不能上网,可能是DNS的问题

你可能感兴趣的:(Linux学习20-网络协议与管理2)