2.1【基本路由原理】数据转发原理3

数据转发原理

//抓包看ARP的报文结构:

注意Opcode:  1=request  (ARP)        2=reply(ARP)

3=request(RARP)        4=reply(RARP)

*****************************************************************************

普通ARP

 

##普通ARP的request报文:

 

广播(获取目的IP地址的MAC);

目的收到request报文,先检查二层,检查二层数据帧:单播帧/组播帧/广播帧,不同数据帧目的MAC地址是不一样的,单播是个单播MAC地址,广播是一个广播MAC地址;组播是一个组播MAC;

由于request请求报文是通过广播发送的,广播帧通过二层的目的MAC地址是判断不出来是给谁的,因为广播是给大家的;需要拆了二层看三层,通过上层协议去判断这个报文是不是给我的。上层的协议是ARP协议,ARP会看目标IP ADDRESS,看目标IP地址是不是自己接口的IP地址;如果不是,丢弃掉有两种可能:

1->3

    ARP请求被广播到2、3上,拆了2层看3层,通过ARP进程判断目标的IP地址是不是自己接口的IP,如果不是,2丢弃;不会生成ARP MAP;

    3会生成ARP表项,到达1的IP地址绑定一个MAC地址;严格的ARP,也不会生成对应关系,是为了避免攻击。

    ping的时候不同,第一个包是为了发送ARP的。

     

【拓展】:wireshark是一个抓包工具,原理:首先wireshark会改变你的端口的一个工作模式,会把网卡改成混杂模式,不改成 混杂模式抓不到包的;一个 端口收到数据帧要先通过目的MAC地址是不是接收的目的MAC地址,判断这个是不是给自己的。抓包是 通过SPAN(镜像)的方式把网络中的数据帧映射过来;改端口的模式:改成混杂模式这个接口就不会去判断这个数据帧目标的MAC地址是不是自己接口的MAC了,只要收到数据帧全部看。(类比快递,不看收件人,全部都要)

【拓展】:现在的一些开发人员也不会去拆这个头部,比如上网行为管理设备,实际上是可以看包的内容的,DPI(深度报文检测),是通过指针偏移,计算好包头到数据的部分一共多少个字节,然后指针偏移,看包的数据部分做一个匹配。
    

 ##接收者回送reply报文:单播

***********************************************************************************

免费ARP

自己给自己发送一个ARP请求,获取一个目标地址的MAC

1.检测IP冲突  2.更新MAC地址

##检测IP冲突

目标MAC地址的填充是0或者F没有啥区别和厂商有关系;

发送方的IP地址是自己的IP,目标方的IP地址也是自己的IP;

自己给自己发送ARP报文,如果收到了应答,就是有冲突;

##更新MAC地址

防止一个ARP欺骗,同时也是一个ARP欺骗的来源;

ARP欺骗工具:P2P终结者、聚生网管

ARP欺骗:

冒充其他人发送ARP报文(冒充网关)

HACK可以 冒充网关发送一个免费ARP,刷新MAC地址绑定;

PC想上网,数据全部交给路由器,通过路由器去做转发。

PC想上网,首先要请求网关的MAC地址,获取MAC地址以后会在本地生成ARP的映射表;后续会根据映射表去封装二层目的MAC;

HACK可以去冒充网关的 设备去发送免费ARP,IP是网关的IP,MAC用自己的MAC地址,发送免费ARP;

PC收到免费ARP会刷新自己的MAC地址绑定表;刷新以后,后续的数据会全部发给HACK了,因为会用HACK的MAC地址做一个二层封装;

HACK针对这个报文会做限速,或者丢弃;转发给路由器,转发的同时做个限速,同时也会抓取到网络上的所有报文,会造成网络的安全问题,可以抓取到密码或者聊天记录;

防止ARP欺骗:

(1)在PC上做一个ARP的静态绑定;静态绑定,免费ARP是无法刷新的;在PC上去绑定一个网关的MAC地址;

(2)或 在路由器上每隔2秒钟或者每隔5秒钟自己发送一次免费ARP,往回刷回来;但这种方法其实也不太好,在网络里面短时间发送大量的ARP也算是一种攻击;会占用带宽;

(3)最好的方法是通过交换机来抑制这个ARP得欺骗,采用DAI技术;动态ARP检测,通过这种机制避免ARP的欺骗;

交换机里面有一个表项,可以用于DAI的检测,这个表项可以通过两种方法来进行绑定 :   

(1)静态绑定

(2)通过DHCP来生成这个表项;有这个表项以后,再收到ARP的请求或应答,它会检查这个ARP报文发送方的IP地址和MAC地址和绑定的IP地址和MAC地址是否是对应的;如果对应,放行;如果不对应,丢弃;这样就有效避免ARP的欺骗。

 

DAI-二层交换机就可以用;需要开启DHCP snooping

IP-sourceguard;(IP源Guard)

##免费ARP用于冗余协议

VRRP:

HSRP:

GLBP:

 

企业一般部署双路由,主备做一个冗余或者负载;

*PC->主,PC上GW(网关)配置成主设备的IP地址;

如果主宕机,备设备起作用,需要改PC全部的网关,需要把网关全部配置一遍?不太现实的,是否有方法自动切换不需要改设备?

 

不去改地址,自动切换设备,用到一种热备协议:

VRRP(公有的协议)

HSRP、GLBP(思科私有的协议)

1.这三个协议的原理都是一样的。两台设备都需要配置VRRP,在接口下去配, 配了一个VRRP以后,会自动在两台设备之间选取一个主备;

2.配了VRRP以后会由主设备定期发送Hello报文,1秒钟发一次,超时时间3秒钟,备设备负责监听;

3.3秒以后备设备没有收到hello报文,会认为主设备挂掉了,备升为主;

主设备-M;        备设备-B;

4.配了VRRP以后,可以指定一个虚拟IP地址为网关地址就可以了;

如:192.16.1.0/24网段; 虚拟ip地址为 192.168.1.254;虚拟MAC可以自动计算;自动做一个映射

5.后续,PC想要上网的话,会发起虚拟IP地址的MAC的请求(发起ARP请求),会被主备都收到,实际上只有主设备才会回送ARP应答;后期发送的虚拟MAC都会绑定到1口;宕机,备升为主,现在流量不通,交换机不知道;路由器会发送一次免费ARP,给交换机看的。交换机收到免费ARP会将MAC地址绑定到2口,同时将1口拆除,这样虚拟MAC就绑定到2口了;

6.后续,数据帧会从2口转发出去到达B这台设备

*********************************************************************************   代理ARP

在广播网里面,一条静态路由写下一跳或者出接口是否都能通?

1上配静态,1上指定出接口E0/0,或者指定下一跳12.1.1.2;

思科里面是全通的,华为里面是不通的(用接口不通,用下一跳是通的);

 

 指定出接口和指定下一跳有什么不同?

指定下一跳,说明到达的目标路由不是本地直连可达的;需要将IP包交给下一跳的设备,由下一跳设备帮忙去转发才能到达目标地址;ARP请求请求的是下一跳的MAC地址;

指定出接口, 会认为到达目标网段是本地直连可达的;说明只要将IP包发出去就会到达目标地址;这样的话,发送ARP请求的话,就会请求目标地址的MAC地址(请求R3的Lo 0口);2会检测,看目标MAC,目标MAC是一个广播MAC,拆2层交给ARP处理,检查目标IP地址,发现ARP报文里面的IP地址并不是自己接口的IP,说明这个ARP请求并不是给我的,2不会回应ARP应答,会将报文丢弃掉。没有MAC的话,1不能封装2层,不能发送数据。

指定出接口,思科里面默认是开启代理ARP的,会通;华为默认是关闭代理ARP的,不通;

代理ARP:如果说2在接口下开启了代理ARP,收到了一个ARP请求,但ARP请求里面的IP地址并不是自己接口下的IP,它会检查自己的路由器表,看看有没有达到目标地址可达的路由;如果有路由的话,2就会把自己接口下的MAC地址作为目标的MAC地址回给发送者;这样,1也能收到ARP应答;1有了MAC, 就可以封装二层,发送数据帧。

在广播网里面一定 要指定下一跳,尽量不要用出接口,实际上最好的方法是连出接口和下一跳同时配置

##【实验验证】

50:21

3745/7200 的思科ISO

Proxy ARP is enabled.

如果下一跳是出接口,这个报文到达R2以后,会发现目的IP地址 不是本接口的IP,但是代理ARP没有开启,会被丢弃掉。

两台PC,一台PC在12网段,一台PC在13网段,在不同的网段可以通吗?

 

在PC1和PC2上分别配置 一条默认路由,默认路由不能指向下一跳而应该指向一个出接口;互指网关也是不行的,只能用自己接口的IP

PC是 属于7层设备,可以装操作系统;可以通过rotute print看到PC的路由表;通常在PC上配置网关,网关的主要作用是在路由表里面在本地去生成 一条默认路由;下一跳就是指向网关的地址;到达外部网段的这些IP包都需要交给网关处理。配置网关的目的就是自动生成一条默认路由

其实可以通,可以将网关的地址配成自己接口的IP,在路由表里面也会生成一跳默认路由,12在访问13的时候回匹配这条默认,它会认为目标网段和自己是直连的,也会发送ARP请求,IP是目标IP,可以封装二层也是可以通的。

三层 转发:要有路由表,匹配路由表才能转发IP包

R1访问R3,R1和 R3不在同一网段,R1要先查路由表看看有没有达到目标地址的路由;如果没有路由,是无法发送IP包的;

默认路由是可以匹配所有IP地址的,访问目标地址的时候,如果没有明细路由,都是可以匹配默认路由的;比如访问百度,新浪,服务器网段都不在同一网段,可以配置默认路由进行覆盖。

华为的元检测功能:收到ARP以后,不仅看ARP中的IP地址是不是自己接口下的IP地址,还要看发送方的IP地址是否和自己接口在同一网段?如果不是,不会发送ARP应答-Reply

******************************************************************************

        ICMP

两种 报文:1.request    2.reply

通过类型和代码来区分不同的报文类型的;

常用的:00-应答reply    80-请求request   3-目标地址 不可达;

##ICMP重定向

*PC->ISP

PC会将报文交给A,A上是有指向ISP的默认路由的,A上默认路由 下一跳指向192.168.0.2,指向B;A收到以后会根据目的IP查路由表做转发,转发同时会重写2层;

这种 方法肯定是不行的,会有一个次优路径,会造成网络延时。怎么去解决?最好的方式是由PC直接将IP包发给B设备而不会先绕过A

通过ICMP重定向去解决,回给发送源一个ICMP报文,告诉发送源下一次发给谁。在ICMP重定向报文里面会增加一个Gateway的字段,网关地址,而这个字段会指向B设备的IP地址-192.168.0.2

需要判断什么场景下会出现ICMP的重定向?

ICMP重定向的触发条件:如果IP包的发送源和到达目的路由的下一跳在同一网段,就需要触发ICMP重定向。在ICMP重定向报文中会增加一个gateway字段,该字段中会包含目标路由下一跳的地址。

##【实验验证】

01:31

//抓包分析:

后续的话,PC访问2.2.2.2的话,会直接将IP包发送给下一跳12.1.1.2,这就是重定向,可以避免一个次优路径

 

 

 

 

 

 

 

 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

来自为知笔记(Wiz)

原文地址:https://www.cnblogs.com/xuxaut-558/p/11111968.html

时间: 2024-10-07 05:05:52

2.1【基本路由原理】数据转发原理3的相关文章

TCP的三次握手和四次挥手与路由器(三层)转发原理

传输层是国际标准化组织提出的开放系统互连(OSI)参考模型中的第四层.该层协议为网络端点主机上的进程之间提供了可靠.有效的报文传送服务.其功能紧密地依赖于网络层的虚拟电路或数据报服务.传输层定义了主机应用程序之间端到端的连通性.传输层只存在于端开放系统中,是介于低3层通信子网系统和高3层之间的一层,但是很重要的一层,因为它是源端到目的端对数据传送进行控制从低到高的最后一层.传输层的服务一般要经历传输连接建立阶段,数据传送阶段,传输连接释放阶段3个阶段才算完成一个完整的服务过程.而在数据传送阶段又

8.HCNA_HNTD——数据转发过程

TCP/IP协议族和底层协议配合,保证了数据能够实现端到端的传输.数据传输过程是一个非常复杂的过程,例如数据在转发的过程中会进行一系列的封装和解封装.对于网络工程师来说,只有深入地理解了数据在各种不同设备上的转发过程,才能够对网络进行正确的分析和检测. 学习目标: 1. 掌握数据封装和解封装的过程 2. 处理数据转发过程中的基本故障 数据可以在同一网络内或者不同网络间传输,数据转发过程也分为本地转发和远程转发,但两者的数据转发原理是基本一样的,都是遵循TCP/IP协议簇. 本示例中,主机A需要访

1.1【基本路由原理】(二层转发原理)1

二层转发原理: 交换机的功能: 1.转发(MAC地址表中存在目的MAC地址) 2.泛洪(1.未知单播帧2.广播/组播帧) 3.过滤(1.MAC地址表中存在目的MAC地址,转发也是一种过滤2.如果数据帧的出入口一致,数据帧需要丢弃) (交换机收到数据帧后的行为和动作,广播是广播帧,泛洪是一个动作(未知单播帧/MAC地址表里面没有目的MAC)) (CAM表是可寻址内存,是二进制数,是为了快速交换 MAC表绑定VLAN信息,接口信息,三层转发才需要ARP,二层转发不需要ARP) (MAC地址表老化时间

路由及路由器工作原理深入解析2:路由原理

日志"路由及路由器工作原理深入解析1"http://user.qzone.qq.com/2756567163/blog/1438322342介绍了"为什么要使用路由器"和"TCP/IP V4 协议网络的分段原理"2个问题,本文将继续对路由的具体工作原理进行解析. 3.路由原理 当IP子网中的一台主机发送IP分组给同一IP子网的另一台主机时,它将直接把IP分组送到网络上,对方就能收到.而要送给不同IP子网上的主机时,它要选择一个能到达目的子网上的路

路由和交换机工作原理

路由器与交换机的工作原理 计算机网络往往由许多种不同类型的网络互连连接而成.如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种“互连”并没有什么实际意义.因此通常在谈到“互连”时,就已经暗示这些相互连接的计算机是可以进行通信的,也就是说,从功能上和逻辑上看,这些计算机网络已经组成了一个大型的计算机网络,或称为互联网络,也可简称为互联网.互连网. 将网络互相连接起来要使用一些中间设备(或中间系统),ISO的术语称之为中继(relay)系统.根据中继系统所在的层次,可以有以下

路由器的三层转发原理

路由器的三层转发原理 首先,介绍一下将要涉及的几个概念: IP,全称互联网协议地址,是指IP地址,意思是分配给用户上网使用的网际协议的设备的数字标签.常见的IP地址分为IPv4与IPv6两大类,但是也有其他不常用的小分类. MAC(Media Access Control,介质访问控制)地址,或称为MAC位址.硬件地址,用来定义网络设备的位置.MAC集成在网卡,由48bit的2进制的数字组成,0~23位数字叫作组织唯一标志符(organizationally unique,是识别局域网节点的标识

路由及路由器工作原理深入解析3:路由与端口

日志"路由及路由器工作原理深入解析1"http://user.qzone.qq.com/2756567163/blog/1438322342介绍了"为什么要使用路由器"和"TCP/IP V4 协议网络的分段原理"2个问题,日志"路由及路由器工作原理深入解析2"http://user.qzone.qq.com/2756567163/blog/1438329517介绍了路由的工作原理,并以一个具体实例的实现深入剖析了路由的实现过程

路由及路由器工作原理深入解析4:路由器操作实例

日志"路由及路由器工作原理深入解析1"http://user.qzone.qq.com/2756567163/blog/1438322342介绍了"为什么要使用路由器"和"TCP/IP V4 协议网络的分段原理"2个问题:日志"路由及路由器工作原理深入解析2"http://user.qzone.qq.com/2756567163/blog/1438329517介绍了路由的工作原理,并以一个具体实例的实现深入剖析了路由的实现过程

路由及路由器工作原理深入解析3:路由与port

日志"路由及路由器工作原理深入解析1"http://user.qzone.qq.com/2756567163/blog/1438322342介绍了"为什么要使用路由器"和"TCP/IP V4 协议网络的分段原理"2个问题.日志"路由及路由器工作原理深入解析2"http://user.qzone.qq.com/2756567163/blog/1438329517介绍了路由的工作原理.并以一个详细实例的实现深入剖析了路由的实现过程