交换机与IP数据报、ICMP协议、ARP协议

1 交换机

1.1 基本的架构图

在这里插入图片描述

1.2 交换机的工作原理

以太网MAC地址
用来识别一个以太网上的某个单独的设备或一组设备
在这里插入图片描述
以太网帧格式
在这里插入图片描述
1)主机A会将一个源MAC地址为自己,目标MAC地址为主机B的数据帧发送给交换机。
2)交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的接口(接口为1) 记录到MAC地址表中。
3)然后交换机会检查自己的MAC地址表中是否有数据帧中的目的MAC地址的信息,如果有,则从MAC地址表中记录的接口发送出去,如果没有,则会将此数据帧从非接收接口的所有接口发送出去(也就是除了1接口)。
4)这时,局域网的所有主机都会收到此数据帧,但是只有主机B收到此数据帧时会响应这个广播,并回应一个数据帧,此数据帧中包括主机B的MAC地址。如果没有主机相应这个广播,则会继续向下一个交换机或路由器传播。
5)当交换机收到主机B回应的数据帧后,也会记录数据帧中的源MAC地址(也就是主机B的MAC地址),这时,再当主机A和主机B通信时,交换机根据MAC地址表中的记录,实现单播了。
总的来说
当A要和B通信时,会发送一个数据帧(自己的MAC地址和B的MAC地址,即源地址和目的地址);
A将这个数据帧发给交换机,交换机知道了A的MAC地址,并记录到MAC表中,但是交换机不知道B的MAC地址是谁;
这个时候就需要给主机B和主机C广播,主机B接收到数据之后,看到是自己的,这个时候就会给交换机一个回应;
交换机收到B的回应之后,把主机B的MAC地址记录到MAC表中,主机A和主机下次再进行通信,实现单播传播。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3 交换机以太网接口的工作模式

单工

  • 两个数据站之间只能沿单一方向传输数据
    在这里插入图片描述
    半双工
  • 两个数据站之间可以双向数据传输,但不能同时进行
    在这里插入图片描述全双工
  • 两个数据站之间可双向且同时进行数据传输
    在这里插入图片描述

交换机以太网接口速率

  • 接口连接时进行协商 (低速率为准)
  • 协商失败则无法正常通信

配置前的连接

  • Console电缆
  • 物理连接
    计算机COM口
    交换机/路由器Console口
  • 软件连接
    超级终端
    其他软件
    在这里插入图片描述
    在这里插入图片描述

1.4 交换机使用命令行进行配置管理

  • 用户视图:基本操作,查看基本信息
  • 系统视图:进阶操作,配置静态路由,动态路由:rip,ospf,BGP
  • 接口模式:配置ip地址等操作

用户视图模式切换至系统视图模式[Huawei]

<Huawei>system-view
<Huawei>sys
退回用户视图
ctrl+z
[Huawei] quit

在这里插入图片描述
1、历史命令查询

[Huawei] display history-command

2、配置主机名

<Huawei> system-view
[Huawei] sysname Router1

在这里插入图片描述
3、状态信息查询

<Huawei> display version   ####查看VRP版本
<Huawei> display users    ####查看用户终端信息

在这里插入图片描述
4、进入接口模式并查看信息

<Huawei> sys
[Huawei]int e0/0/1
[Huawei-GigabitEthernet0/0/1]dis this   ####查看当前视图下的配置信息

在这里插入图片描述
5、配置文件管理命令

[Huawei]display saved-configuration     ###查看设备保存的信息
[Huawei]display current-configuration   ###查看设备当前配置的信息
<SW1>save							    ###保存配置
<Huawei>reset saved-configuration      ###擦除存储设备中的配置文件(初始化)
<Huawei>compare configuration          ###比较当前配置信息与存储设备中的保存文件是否一致

在这里插入图片描述
6、关闭华为的信息提示中心

[Huawei]undo info-center enable 
或者
<Huawei>undo terminal monitor

在这里插入图片描述
7、永不超时

[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0

8、配置双工及速率命令

<Huawei>sys
[Huawei]int g0/0/1
[SW1-Ethernet0/0/1]undo negotiation auto    ###关闭自动协商
[SW1-Ethernet0/0/1]speed 100                ###调至速率100M
[SW1-Ethernet0/0/1]duplex full              ###调至全双工模式, 解释:full:Full-Duplex(全双工模式)   half:Half-Duplex(半双工模式)

9、保存配置

<Huawei>save

CRT一种远程连接设备 交换机在北京 工位在南京 CRT通过网络可以远程和真实交换机相连
10、设置远程登录密码

[Huawei]user-interface vty 0 4			#0是初始值,4是结束值。表示可同时打开5个会话进入交换机去配置命令
[Huawei-ui-vty0-4]authentication-mode password 
[Huawei-ui-vty0-4]set authentication password simple 222
[Huawei-ui-vty0-4]user privilege level 3
[Huawei-ui-vty0-4]dis this

用SecureCRT链接eNSP
●双击打开某台设备有【视图】和【配置】,打开【配置】—窗口配置:串口号:2000 ###这个是端口号
●打开SecureCRT 点击【链接】—【Protocol】Telnet----【Hostname】127.0.0.1----【Prot】2000
●当前终端被打开—断开【disconnect】----会话【session options】-----强制每次一个字符模式【Force charater at atime mode】—保存【OK】
●右击当前终端—链接【reconnect】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 IP数据报格式

TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IP Datagram)。这是一个与硬件无关的虚拟包,由首部和数据两部分组成,其格式如图所示。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部中的源地址和目的地址都是IP协议地址
在这里插入图片描述
在这里插入图片描述

IP数据包格式(分为20字节的固定部分,表示每个ip数据包必须包含的部分,和40字节的可变长部分)

  • 版本号(4bit):指IP协议版本。并且通信双方使用的版本必须一致,目前广泛使用的IP协议版本号为4(即IPv4,表示为0100(用来确定是IPv4还是IPv6)

  • 首部长度:IP数据包的包头长度,首部长度占4位,最常用的首部长度就是20字节(即首部长度为0101)(数据包不包括数据的长度)

  • 优先级与服务类型(8):该字段用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,用于实现 QoS(服务质量)的要求。

  • 总长度(16):总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为2^16-1=65535字节。

  • 标识符(16):该字段用于表示IP数据包的标识符。当IP对上层数据进行分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包

  • 标志:标志(flag)占3位,但目前只有2位有意义。
    1)标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。
    2)标志字段中间的一位记为DF(Don’tFragment),意思是“不能分片”。只有当DF=0时才允许分片。

  • 片偏移量:片偏移占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。
    这就是说,每个分片的长度一定是8字节(64位)的整数倍。

  • 生命周期:生存周期占8位,生存周期字段常用的的英文缩写是TTL(Time To Live),可以防止一个数据包在网络中无限循环的转发下去,若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。
    TTL通常是32或者64,scapy中默认是64

  • 首部校验和:首部检验和占16位。这个字段只检验数据报的首部,不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。

  • 协议号:协议占8位,封装的上层哪个协议,ICMP:1 TCP:6 UDP:17

  • 源地址:源地址占32位。ip地址,表示发送端的IP地址

  • 目标地址:目的地址占32位。目标ip地址,表示接收端的IP地址

  • 可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据
    注:根据实际情况可变长,例如创建时间等 上层数据

ping选项:

-t             Ping 指定的主机,直到停止。
                   若要查看统计信息并继续操作,请键入 Ctrl+Break;
                   若要停止,请键入 Ctrl+C。
    -a             将地址解析为主机名。
    -n count       要发送的回显请求数。
    -l size        发送缓冲区大小。
    -f             在数据包中设置“不分段”标记(仅适用于 IPv4)。
    -i TTL         生存时间。
    -v TOS         服务类型(仅适用于 IPv4。该设置已被弃用,
                   对 IP 标头中的服务类型字段没有任何
                   影响)。
    -r count       记录计数跃点的路由(仅适用于 IPv4)。
    -s count       计数跃点的时间戳(仅适用于 IPv4)。
    -j host-list   与主机列表一起使用的松散源路由(仅适用于 IPv4)。
    -k host-list    与主机列表一起使用的严格源路由(仅适用于 IPv4)。
    -w timeout     等待每次回复的超时时间(毫秒)。
    -R             同样使用路由标头测试反向路由(仅适用于 IPv6)。
                   根据 RFC 5095,已弃用此路由标头。
                   如果使用此标头,某些系统可能丢弃
                   回显请求。
    -S srcaddr     要使用的源地址。
    -c compartment 路由隔离舱标识符。
    -p             Ping Hyper-V 网络虚拟化提供程序地址。
    -4             强制使用 IPv4。
    -6             强制使用 IPv6。

3 ICMP协议

Internet控制消息协议ICMP (Internet Control Message Protocol)是IP协议的辅助协议

ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

  • ICMP是一个“错误侦测与回馈机制"
  • 通过IP数据包封装的
  • 用来发送错误和控制消息
    在这里插入图片描述
TypeCode描述
00Echo Reply
30网络不可达
31主机不可达
32协议不可达
33端口不可达
50重定向
80Echo Request

功能:Ping
Ping是网络设备、Windows、Unix和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP协议。
Ping常用于探测到达目的节点的网络可达性。
ping命令的基本格式

C: \>ping [-t] [-l 字节数] [-a] [-i] IP_Address| target_name

ping命令的返回信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
-t参数会一直不停的执行pingWindows系统和Linux系统对比

  • 调试故障或需进行持续连通性测试时应用
  • Ctrl+C可以中断命令

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

-nWindows系统和Linux系统对比
在这里插入图片描述
在这里插入图片描述

4 ARP协议

4.1 ARP协议概念

ARP协议是地址解析协议(Address Resolution Protocol)是通过解析IP地址得到MAC地址的,是一个在网络协议包中极其重要的网络传输协议,它与网卡有着极其密切的关系。
在TCP/IP分层结构中,把ARP划分为网络层,所有ARP协议在网络层被应用,它是网络层与链路层连接的重要枢纽,每当有一个数据要发送的时候都需要在通过ARP协议将IP地址转换成MAC地址,在IP层及其以上的层次看来,他们只标识IP地址,从不跟硬件打交道

arp协议如何工作的

为了实现IP地址与MAC地址的查询与转换,ARP协议引入了ARP缓存表的概念,每台主机或路由器在维护着一个ARP缓存表(ARP table),这个表包含IP地址到MAC地址的映射关系,表中记录了<IP地址,MAC地址>对,我称之为ARP表项。他们是主机最近运行时获得关于其他主机的IP地址到MAC地址的映射,当需要发送数据的时候,主机就会根据数据报中的目标IP地址信息,然后在ARP缓存表中进行查找对应的MAC地址,最后通过网卡将数据发送出去。ARP缓存表包含一个寿命值(TTL,也称作生存时间),它将记录每个ARP表项的生存时间,生存时间到了就会从缓存表中删除。从一个表项放置到ARP缓存表中开始,一个表项通常的生存时间一般是10分钟吗,当然,这些生存时间是可以任意设置的,我们一般使用默认即可。

4.2 工作原理(结合交换机原理)

1、两台局域网主机互相通信为例讲解原理

ARP解析过程

  1. 当PC1想发送数据给PC2,首先在自己的本地ARP缓存表中检查主机PC2的MAC地址是否存在?
  2. 如果PC1缓存中没有找到响应的条目,它将询问主机PC2的MAC地址,从而将ARP请求帧广播到本地网络的所有主机。 该帧中包括源主机PC1的IP、MAC地址,本地网络中的所有主机都接收到ARP请求,并且检查是否与自己的IP地址相匹配。如果发现请求中IP地址与自己IP不匹配,则丢弃ARP请求。
  3. 主机PC2确定ARP请求中得IP地址与自己的IP地址匹配,则将主机PC1的地址和MAC地址添加到本地缓存表中。
  4. 主机PC2将包含其MAC地址的ARP回复消息直接发送回主机PC1(数据帧为单播)。
  5. 主机PC1收到PC2发的ARP回复消息,将PC2的IP和MAC地址添加至自己ARP缓存表中,本机缓存是有生存期的,默认ARP缓存表有效期120s。当超过该有效期后,则将重复上面过程。主机PC2的MAC地址一旦确定,主机PC1就能向主机PC2发送IP信息

精简版

ARP工作原理:

  • PC1想发送数据给PC2, 会先检查自己的ARP缓存表。 只在终端设备上
  • 如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的MAC地址。
    ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF)
  • 交换机收到广播后做泛洪处理,除PC1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答, 并在自己的ARP表中缓存PC1的IP地址和MAC地址的对应关系,而其他主机则丢弃这个ARP请求消息。
  • PC1在自己的ARP表中添加PC2的IP地址和MAC地址的对应关系,以单播方式与PC2通信。
    在这里插入图片描述

4.3 ARP原理演示

需求分析

  • 对等网的环境
  • PC1和PC2第一次通信
    在这里插入图片描述
    实现步骤
  • 使用ipconfig/all查看PC1和PC2的MAC地址
  • 用“arp-a”查看ARP缓存
  • 在PC1上ping PC2后,再用“arp-a”查看ARP缓存表

4.4 Windows查看ARP缓存表(静态ARP和动态ARP)

arp -a          ###查看arp缓存表 
arp -d [IP]     ###删除arp缓存表
arp -s IP MAC   ###删除arp静态绑定

如提示ARP项添加失败,解决方案:
a、用管理员模式:电脑左下角“开始”按钮右键,点击"Windows PowerShell (管理员) (A)”或者
进入C盘windows \system32文件夹找到cmd.exe, 右键“以管理员身份运行”再执行arp -s命令:

绑定arp(win10)
cmd中输入
netsh -c i i show in 
#查看网络连接准确名称,如:本地连接、无线网络连接
netsh -c “i i” add neighbors 19 “IP” “Mac”,这里19是idx号。//绑定
netsh -c “i i” delete neighbors 19,这里19是idx号。  //解绑
netsh interface ipv4 set neighbors <接口序号> <IP> <MAC>

动态ARP表项老化:在一段时间内(默认180s)如果表项中的ARP映射关系始终没有使用,则会被删除。通过及时删除不活跃表项,从而提升ARP响应效率

4.5 华为系统中的ARP命令

[Huawei]dis mac- address ## #查看mac地址信息
[Huawei]arp static <IP> <MAC> ## #绑定ARP
[Huawei]undo arp static <IP> <MAC>  ###解绑定
<Huawei>reset arp all ###清除mac地址表

4.6 ARP攻击与欺骗

ARP攻击发送的是ARP应答,但是ARP应答中的MAC地址为虚假地址,所以在其他主机想要进行通信时,会将目的MAC地址设置成此虚假MAC地址导致无法正常通信。
例如:如果希望被攻击主机无法访问互联网,就需要对网关发送或被攻击主机发送虚假的ARP应答。当网关接收到虚假的ARP应答更新ARP条目后,如果网关再发生数据给PC1时,就会发送到虚假的MAC地址导致通信故障。

举例说明,例如张三要给李四打电话,他首先要知道李四的电话号码,这时有人告诉他李四的电话号码是12345678(不存在的号码),于是张三就把电话打到12345678,这样就无法找到李四了。

ARP欺骗的原理和ARP攻击基本相同,但是效果不一样。ARP攻击最终的结果是导致网络中断,而ARP欺骗的最终结果是使得流量通过自身达到监控或控制的目的。
在这里插入图片描述
在这里插入图片描述

4.7 ARP报文(抓包分析)

重点有源ip目标ip和源mac和目标mac
目的MAC地址: 54:89:98:0F:2B:BE
源MAC地址: 54:89:98:5B:5B:8A
帧类型: 0x0806 --长度为2字节,0x0806代表为ARP packe
硬件类型:0x0001 --长度为2字节,表示网络类型;以太网取值为1
协议类型:0x0800 --长度为2字节,表示要映射的协议地址类型。取值为0x0800,表示根据IP地址来进行映射
硬件地址长度:0x06 --长度为1字节,表示硬件地址长度;取值为0x06,以太网中表示MAC地址长度为6字节
协议地址长度:0x04 --长度为1字节,表示协议地址长度;取值为0x04,以太网中表示IP地址长度为4字节
op: 0x0002 --长度为2个字节,表示ARP报文的种类;取值为1,表示请求报文;取值为2,表示ARP应答报文
发送端MAC地址: 54:89:98:5B:5B:8A (信息体的发起端)
发送端IP地址: 0A:00:00:02 (转换即为10.0.0.2)
目的端 MAC地址:54:89:98:0F:2B:BE
目的端IP地址:0A:00:00:01 (转换即为10.0.0.1)

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值