• Day34-Linux网络管理4


    使用wireshark查看tcp3次握手及四次断开细节实践。
    wireshark抓包新手使用教程
    链接: https://www.cnblogs.com/mq0036/p/11187138.html

    1. IP地址分类与子网划分基础

    1.1 什么是IP地址

    • 32位二进制数字序列组成的数字序列
    • 采用点将32位数字进行分割为4段,每段8位的二进制数,但二进制数不便于记忆,因此转换为10进制数显示,即点分十进制

    在一个网络范围内,唯一标识一台主机。

    1.2 十进制与二进制的转换

    在这里插入图片描述
    在这里插入图片描述

    1.3 IP地址的分类

    简单的说,IP地址分5类,常见的地址是A、B、C类
    A 1.0.0.0 到 126.0.0.0 (0.0.0.0 和127.0.0.0保留)
    B 128.1.0.0 到 191.254.0.0 (128.0.0.0和191.255.0.0保留)
    C 192.0.1.0 到 223.255.254.0 (192.0.0.0和223.255.255.0保留)
    D 224.0.0.0 到 239.255.255.255 用于多点广播
    E 240.0.0.0 到 255.255.255.254 保留(255.255.255.255用于广播)

    注意:
    1)ABC三类分配给互联网用户所使用
    2)D类型做为组播使用(keepalived,heartbeat多播)

    mcast eth1 225.0.0.1 694 1 0  #heartbeat组播配置
    ucast eth1 172.16.49.133      #heartbeat单播
    
    • 1
    • 2

    3)E类型作为科学研究使用,进行保留

    特殊地址:
    127.0.0.1 —表示回环地址,进行测试使用,验证本地的TCP协议簇安装的是否正确
    0.0.0.0 —主机位全为0的称为是网络地址
    255.255.255.255 —主机位全为1的称为是广播地址,即向所有人发出信息

    1.4 私网地址和局域网地址

    在一个企业内部可以复用,局域网地址不能进入公网,路由器不转发。
    数据包出网的时候路由器会用SNAT改变局域网的地址为路由器的公网地址。
    数据包回来的时候路由器会用DNAT把路由器的公网地址改变局域网的地址。

    NAT:
    私网地址:下面的网络地址段就是分配给专用网络地址使用的。
    10.0.0.0/8 (10.0.0.0到10.255.255.255)
    172.16.0.0/12 (172.16.0.0到172.31.255.255)
    192.168.0.0/16 (192.168.0.0到192.168.255.255) ###192.168.0.0/16
    169.254.0.0/16 (169.254.0.0到169.254.255.255)*
    其他地址:用于IDC机房,办公室场景中ISP给我们分配的外网地址。

    说明:
    划分私网ip地址的作用主要是避免地址的枯竭,对于一般不同局域网环境中,地址实际是可以重复使用的,不必要仍保持唯一性
    就类似于人的身份证和护照的关系一样
    默认私网地址只在本局域网中有效识别,但一旦出局域网到达公网,就没有任何意思了
    因此未解决这种问题,就出现了一个技术NAT(SNAT和DNAT),即地址的映射技术

    2. 通信类型

    单播(点到点) 就是点到点的通讯,例如A-B的通信方式
    组播(需要配地址)也是一对多的方式,但是可以根据需要进行接收,如果不想接收可以进行过滤掉
    广播(广播域) 在一定的范围内,所有成员都会收到的信息,称为广播信息,并且每个成员都要收取,都要进行处理。

    #heartbeat

    mcast eth1 225.0.0.1 694 1 0  #heartbeat组播配置
    ucast eth1 172.16.49.133      #heartbeat单播
    
    • 1
    • 2

    #KeepAlived
    MASTER以IP组播(组播地址:224.0.0.18)形式发送VRRP协议包,与BACKUP保持心跳连接,若MASTER不可用(或BACKUP接收不到VRRP协议包),则BACKUP通过竞选产生新的MASTER并继续对外提供服务,从而实现高可用。

    3. 子网划分讲解

    3.1 为什么要划分子网?

    1. 会出现大量的局域网地址,同时向一个网关发送请求,引起网关设备的负载过高
    2. 会引起局域网内的大量广播数据传送,形成广播风暴
    3. 而且会非常的浪费地址空间,有可能只有两台主机或者一台,就分配一个C类地址

    3.2 什么是子网划分?

    通过子网划分(通过子网掩码进行划分)
    可以将一个大的局域网络进行切割为多个小的局域网,这样就解决了上面说的两个问题,而得到的新的局域网络就称为子网

    3.3 子网划分的作用?

    1.将一个大的广播域划分成几个小的广播域环境
    2. 减少网关设备所承载的负载量
    3. 有效的避免ip地址的浪费,使一个大的地址空间更加弹性和更加灵活的进行分配

    通过子网划分(通过子网掩码进行划分)
    可以将一个大的局域网络进行切割为多个小的局域网,这样就解决了上面说的两个问题,而得到的新的局域网络就称为子网

    链接: https://blog.csdn.net/dyyay521/article/details/94381876
    链接: https://www.cnblogs.com/simon4you/p/11159102.html

    3.4 子网划分常见问题

    3.4.1 选定的子网掩码将创建多少个子网?

    2^x个,其中x是子网掩码借用的主机位数。如:192.168.10.32/28,我们知道C类ip的默认子网掩码为:255.255.255.0,而由上文的CIDR知识,我们了解到这个ip的实际子网掩码是:255.255.255.240。原本最后一个字节应该是0(00000000),现在却是240(11110000)。故其借用了主机位4位来充当网络位。

    3.4.2 每个子网可包含多少台主机?

    2^y-2台,其中y是没被借用的主机位的位数。-2是因为,主机位全为0的部分是这个子网的网段号(Net_id),全为1的部分是这个网段的广播地址。

    3.4.3 有哪些合法的子网?

    算出子网的步长(增量)。一个例子是256-192 =64,
    即子网掩码为192时,步长为64。从0开始不断增加剧,直到到达子网掩码值,中间的结果就是子网,即0、64、128和192,

    3.4.4 每个子网的广播地址是什么?

    主机位全为1就是该子网的广播地址。一般我们这样计算:广播地址总是下一个子网前面的数.前面确定了子网为0、64、128和192,例如,子网0的广播地址为63,因为下一个子网为64;子网64的广播地址为127,因为下一个子网为128,以此类推。请记住,最后一个子网的广播地址总是255

    3.4.5 每个子网可包含哪些主机地址?

    合法的主机地址位于两个子网之间,但全为0和全为1的地址除外。例如,如果子网号(网段号)为64,而广播地址为127,则合法的主机地址范围为65-126,即子网地址和广播地址之间的数字。

    4. 虚拟局域网 VLAN

    VLAN原理
    虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组

    这些网段具有某些共同的需求。每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网

    优点
    (1)更有效地共享网络资源。如果用交换机构成较大的局域网,大量的广播报文就会使网络性能下降。
    VLAN能将广播报文限制在本VLAN范围内,从而提升了网络的效能
    (2)简化网络管理。当结点物理位置发生变化时,如跨越多个局域网,通过逻辑上配置VLAN即可形成网络设备的逻辑组,
    无需重新布线和改变IP地址等。这些逻辑组可以跨越一个或多个二层交换机
    (3)提高网络的数据安全性。一个VLAN中的结点接收不到另一个VLAN中其他结点的帧

    虚拟局域网的实现技术
    (1)基于端口的VLAN
    (2)基于MAC地址的VLAN
    (3)基于协议的VLAN
    (4)基于网络地址的VLAN

    5. Linux网络管理实践

    5.1 物理层及数据链路层

    (1)网卡检测命令mii-tool
    mii-tool #是用于查看管理物理的网络接口的状态,还可以配置网卡需要的协商方式。

    [root@oldboy ~]# mii-tool 
    No interface specified
    usage: mii-tool [-VvRrwl] [-A media,... | -F media] [-p addr] <interface ...>
           -V, --version               display version information
           -v, --verbose               more verbose output
           -R, --reset                 reset MII to poweron state
           -r, --restart               restart autonegotiation
           -w, --watch                 monitor for link status changes
           -l, --log                   with -w, write events to syslog
           -A, --advertise=media,...   advertise only specified media
           -F, --force=media           force specified media technology
           -p, --phy=addr              set PHY (MII address) to report
    media: 1000baseTx-HD, 1000baseTx-FD,
           100baseT4, 100baseTx-FD, 100baseTx-HD,
           10baseT-FD, 10baseT-HD,
           (to advertise both HD and FD) 1000baseTx, 100baseTx, 10baseT
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    5.1.1 查看网卡工作状态

    mill-tool 【网卡名】 #查看物理网卡连接状态

    -V 显示版本信息;
    -v 显示网络接口的信息;
    -R 重设MII到开启状态;
    -r 重启自动协商模式;
    -w 查看网络接口连接的状态变化;
    -l 写入事件到系统日志;
    -A 指令特定的网络接口;
    -F 更改网络接口协商方式;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    5.1.2 查看网络接口的协商状态

    #mii-tool -v eth0
    
    [root@oldboy ~]# mii-tool  eth0
    eth0: negotiated 1000baseT-FD flow-control, link ok
    
    [root@oldboy ~]# mii-tool  -v eth0
    eth0: negotiated 1000baseT-FD flow-control, link ok
      product info: Yukon 88E1011 rev 3
      basic mode:   autonegotiation enabled
      basic status: autonegotiation complete, link ok
      capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
      advertising:  1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
      link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    5.1.3 更改网络接口的工作模式

    -F选项后面接1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD等参数
    #mii-tool -F media [interface]
    例:置网卡工作在100M半双工模式

    [root@oldboy ~]# mii-tool -F 100baseTx-HD eth0
    [root@oldboy ~]# mii-tool  -v eth0
    eth0: 1000 Mbit, half duplex, link ok
      product info: Yukon 88E1011 rev 3
      basic mode:   100 Mbit, half duplex ############
      basic status: link ok
      capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
      advertising:  1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
      link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    5.1.4 恢复网卡适应的工作状态

    用-r选项:

    #mii-tool -r eth0
    
    • 1

    5.2 查询及设置网卡参数ethtool

    ethtool是用于查询及设置网卡参数的命令。
    概要:

    ethtool eth0       //查询eth0网口基本设置
    ethtool –h         //显示ethtool的命令帮助(help)
    ethtool –i eth0    //查询eth0网口的相关信息 
    ethtool –d eth0    //查询eth0网口注册性信息
    ethtool –r eth0    //重置eth0网口到自适应模式
    ethtool –S eth0    //查询eth0网口收发包统计
    ethtool –s eth0 [speed 10|100|1000]\         //设置网口速率10/100/1000M
    [duplex half|full]\           //设置网口半/全双工
    [autoneg on|off]\            //设置网口是否自协商
    [port tp|aui|bnc|mii]\         //设置网口类型
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    举例:

    1[root@oldboy ~]# ethtool eth1
    2[root@oldboy ~]# ethtool -i eth1
    3[root@oldboy ~]# ethtool -S eth1
    4[root@oldboy ~]# ethtool -s eth1 autoneg off speed 100 duplex full
    
    • 1
    • 2
    • 3
    • 4

    怎样使ethtool设置永久保存在网络设备中?
    方法一:
    ethtool设置可通过/etc/sysconfig/network-scripts/ifcfg-eth0文件保存,从而在设备下次启动时激活选项。
    例如:

    ethtool -s eth0 speed 100 duplex full autoneg off
    
    • 1

    此指令将eth0设备设置为全双工自适应,速度为100Mbs。若要eth0启动时设置这些参数, 修改文件/etc/sysconfig/network-scripts/ifcfg-eth0 ,添加如下一行:

    ETHTOOL_OPTS="speed 100 duplex full autoneg off"
    
    • 1

    方法二:
    将ethtool设置写入/etc/rc.local中。

    (查看MAC地址) #ip命令趋势,尽量用。

    [root@oldboy ~]# ip link  #ifconfig
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
        link/ether 00:0c:29:5f:42:a7 brd ff:ff:ff:ff:ff:ff
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
        link/ether 00:0c:29:5f:42:b1 brd ff:ff:ff:ff:ff:ff
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    (查看ARP缓存)

    [root@oldboy ~]# ip neigh
    10.0.0.254 dev eth1 lladdr 00:50:56:e8:46:33 REACHABLE
    10.0.0.1 dev eth1 lladdr 00:50:56:c0:00:08 REACHABLE
    10.0.0.254 dev eth0 lladdr 00:50:56:e8:46:33 STALE
    
    [root@oldboy ~]# arp -a
    gateway (10.0.0.254) at 00:50:56:e8:46:33 [ether] on eth1
    ? (10.0.0.1) at 00:50:56:c0:00:08 [ether] on eth1
    gateway (10.0.0.254) at 00:50:56:e8:46:33 [ether] on eth0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    ARP缓存表就长这样!
    接口: 192.168.14.251 — 0x12

    Internet 地址物理地址类型
    192.168.14.1dc-da-80-17-e7-ae动态
    192.168.14.310-e7-c6-ec-28-23动态
    192.168.14.654-05-db-f4-c5-b7动态
    192.168.14.800-e0-99-00-0f-eb动态
    192.168.14.900-0c-29-ac-d0-ff动态
    192.168.14.1000-d8-61-87-1c-ad动态

    维护系统的arp缓存命令arp
    arp: 显示所有的表项。

    arp  -d address # 删除一个arp表项。
    arp  -s address hw_addr: #手工绑定arp地址和IP地址。
    
    • 1
    • 2

    意义何在???

    5.3 什么是arp欺骗?如果解决arp欺骗。

    1)局域网内机器中毒,大量发广播包。说我是10.0.0.100,我的MAC是(05(网关的MAC))
    2)局域网机器的ARP表里:

    Internet 地址物理地址类型
    10.0.0.100dc-da-80-17-e7-ad动态

    #dc-da-80-17-e7-ad实际上真实网关的mac地址。
    3)后果。PC上不了网了。
    arp -s 10.0.0.254 dc-da-80-17-e7-ad: #手工绑定arp地址和IP地址。
    解决办法:
    PC arp防火墙。
    清除中毒的机器,让大家重启电脑。
    选项列表

    -d     删除一个arp表项
    -a     Use alternate BSD style output format (with no fixed columns).
    -e     Use default Linux style output format (with fixed columns).
    -n     使用数字方式显示
    -v     显示执行过程
    
    • 1
    • 2
    • 3
    • 4
    • 5

    #查看arp表

    [root@oldboy ~]# arp
    Address                  HWtype  HWaddress           Flags Mask            Iface
    gateway                  ether   00:50:56:e8:46:33   C                     eth1
    10.0.0.1                 ether   00:50:56:c0:00:08   C                     eth1
    gateway                  ether   00:50:56:e8:46:33   C                     eth0
    
    • 1
    • 2
    • 3
    • 4
    • 5

    #查看arp表,并且用ip显示而非主机名称:

    [root@oldboy ~]# arp -n
    Address                  HWtype  HWaddress           Flags Mask            Iface
    10.0.0.254               ether   00:50:56:e8:46:33   C                     eth1
    10.0.0.1                 ether   00:50:56:c0:00:08   C                     eth1
    10.0.0.254               ether   00:50:56:e8:46:33   C                     eth0
    
    • 1
    • 2
    • 3
    • 4
    • 5

    添加一对IP和MAC地址的绑定:

    #arp -s 10.1.1.1 00:11:22:33:44:55:66    #如果网络无法达到,那么会报告错误
    ps:正常情况下无法成功,略鸡肋!!
    
    • 1
    • 2

    删除一个arp表项:

    #arp -d  10.0.0.54  
    #arp -i eth1 -d 10.0.0.1  #指定网卡删除;
    
    • 1
    • 2

    指定回复的MAC地址:

    #arp -i eth0 -Ds 10.0.0.2 eth1 pub
    
    • 1

    当eth0收到IP地址为10.0.0.2的请求时,将会用eth1的MAC地址回答。

    This will answer ARP requests for 10.0.0.2 on eth0 with the MAC address for eth1.
    
    • 1

    arp知识重点:

    1. arp原理
    2. arp欺骗及解决办法。
    3. 查看arp表

    6. 网络层

    6.1 网络配置

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

    一般包括如下内容:

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

    1.查看及修改主机名(/etc/hostname 主机名文件):
    1)hostname

    hostname        ##查看主机名(uname -n)
    hostname oldboy ##设置主机名为oldboy,临时生效
    
    • 1
    • 2

    2)vim /etc/hostname ##通过编辑配置修改主机名

    3)hostnamectl

    [root@oldboy ~]# hostnamectl set-hostname oldgirl  ##设置主机名永久生效
    [root@oldboy ~]# cat /etc/hostname 
    oldgirl
    
    • 1
    • 2
    • 3

    4)nmtui #图形设置主机名,永久生效

      ┌┤ 网络管理器文 ├┐                                
      │                │                                
      │ 请选择选项     │                                
      │                │                                
      │ 编辑连接       │                                
      │ 启用连接       │                                
      │ 设置系统主机名 │    #####                            
      │                │                                
      │ 退出           │                                
      │                │                                
      │         <确定> │                                
      │                │                                
      └────────────────┘      
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    C6/C7:可以关闭NetworkManager,C8主力。

    systemd 入门教程:命令篇
    链接: http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

    6.2 systemd-analyze

    systemd-analyze命令用于查看启动耗时。

    #查看启动耗时
    $ systemd-analyze                                                                                       
    
    #查看每个服务的启动耗时
    $ systemd-analyze blame
    
    #显示瀑布状的启动过程流
    $ systemd-analyze critical-chain
    
    #显示指定服务的启动流
    $ systemd-analyze critical-chain atd.service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    查看linux字符集

    [root@www ~]# localectl
       System Locale: LANG=zh_CN.UTF-8
           VC Keymap: cn
          X11 Layout: cn
    	  
    
    • 1
    • 2
    • 3
    • 4
    • 5

    linux字符集配置文件

    [root@www ~]# cat /etc/locale.conf 
    LANG="zh_CN.UTF-8"
    
    • 1
    • 2

    配置linux字符集:

    vim /etc/profile
    export LANG="zh_CN.UTF-8"
    
    • 1
    • 2

    查看与修改时区

    [root@www ~]# timedatectl
          Local time: Sat 2030-06-22 07:02:58 CST
      Universal time: Fri 2030-06-21 23:02:58 UTC
            RTC time: Fri 2030-06-21 23:02:58
           Time zone: Asia/Shanghai (CST, +0800)
         NTP enabled: n/a
    NTP synchronized: no
     RTC in local TZ: no
          DST active: n/a
    [root@www ~]# timedatectl 
    list-timezones  set-local-rtc   set-ntp         set-time        set-timezone    status          
    [root@www ~]# timedatectl set-timezone Asia/Chongqing
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    6.3 网卡配置

    接口命名方式:
    CentOS6以前eth[0,1,2,…]
    CentOS7开始ens[33,34,35,…]

    #调整ens33为eth0方式

    安装系统时:grep菜单内核后:biosdevname=0,net.ifnames=0
    安装系统后:修改内核文件,然后重新加载内核文件。
    
    • 1
    • 2

    启停网卡设备

    ifdown eth0 ##停止网卡设备
    ifup eth0   ##启动网卡设备
    systemctl restart network  ##重启网络 /etc/init.d/network restart
    /etc/init.d/network restart #和service network restart等价 #C6其他服务也是这么起。
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    js 代码的运行机制
    FFmpeg部署及操作指南
    Java面试之爱立信
    前端学习一、准备工作
    多元函数偏导数连续、存在与可微的关系
    前端面试回答不好的问题总结
    牛客网练习题(函数部分)
    二叉树前序、中序、后序遍历(递归法、迭代法)
    燃煤发电 锅炉相关数据集!
    2.5 表达式
  • 原文地址:https://blog.csdn.net/dws123654/article/details/136593125