1.IP数据包格式
IP数据包格式:分为20字节的固定部分,表示每个IP数据包不许包含的部分,和40字节的可变长部分
1.版本号(4 bit ):指IP协议版本,并且通信双方使用的版本必须一致,目前我们使用的是IPv4,表示为0100
2.首部长度( 4 ):IP数据包的包头长度
3.优先级和服务类型( 8 ):该字段用于表示数据包的优先级和服务类型,通过在数据包中划分一定的优先级,用于实现QoS(服务质量)的要求
4.总长度( 16 ):IP数据包的总长度,最长为65535字节,包括包头和数据
5.标识符( 16 ):该字段用于表示IP数据包的标识符 当IP对上层数据进行分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误的重组 标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包
6.标志(3):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出
7.段偏移量(13):在一个分片序列中如何将个分片连接起来,按什么顺序连接起来
8.TTL生命周期(8):可以防止一个数据包在网络中无限循环的转发下去,每经过一个路由器-1,当TTL的值为0时,该数据包将被丢弃
9.协议号(8):封装的上层是哪个协议,ICMP:1 TCP:6 UDP:17
10.首部校验和(16):这个字段只要检验数据报的首部,不包括数据部分。这是因为数据报每经过以穿路由器,都要重新计算一下首部校验和(因为,一些字段如生存时间、标志、片偏移等可能发生变化)
11.源地址(32):源IP地址,表示发送端的IP地址
12.目标地址(32):目标IP地址,表示接收端的IP地址
13.可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个 例如,可以输入创建该数据的时间等,在可选项之后,就是上层数据
注:根据实际情况可变长,例如创建时间等 上层数据
2.ICMP协议介绍
Internet控制报文协议,是TCP/IP协议族的一个子协议,用于在IP主机 路由器之间传递控制信息
ICMP协议:1.ICMP是一个“错误侦测与回馈机制 2.通过IP数据包封装的 3. 用来发送错误和控制消息
2.1ICMP数据的封装
2.2 ping命令
ping 命令的基本格式为:C:\>ping [-t] [-l字节数] [-a] [-i] IP_Address| target_name
ping命令的返回信息
连通后应答:
可能是因为没有正确配置网关等参数
在规定时间内没有收到返回的应答信息
ping不通的几种情况
1、当主机有一个默认网关时,如果他ping其他网段的地址,到不了的话,显示的是request timeout (此时他把ICMP包发给网关,至于后面的事他就不管,如果没有包回应,就显示request timeout)
2、 当一个主机没有默认网关时或者配置了网关但是和网关不通时,如果他ping其他网段的地址,显示的是Destination host unreachable (此时他发送ARP请求包请求网关的MAC地址)
3、当一个路由器ping他路由表中没有的地址时,显示的是request timeout(此时不发任何包)
4、当路由器ping一个路由表中存在地址时,如果没有回应,则显示的也是request timeout(此时发送ARP请求包,请求目标IP的MAC地址)
ping命令的用法:结合具体在什么场景使用什么选项
-t: 在windows 系统中,默认情况下发送4个ping包,如果在ping命令后面加上参数“-t”,系统会一直ping下去,如果需要停止按: ctrl+c
-a: 显示主机名
-l: 一般情况下,ping包的大小为32字节,有时候为了检测大数据包的通过情况,可以使用参数改变ping包的大小
-n: 指定发送包的个数
-s: 指定源IP去ping
WIN:
tracert命令:
在命令行输入”tracert“并在后面加入一个IP地址,可以查询从本机到该IP地址所在的电脑要经过的路由器及其IP地址
3.ARP协议介绍
3.1ARP协议
局域网中主机的通信:IP地址与MAC地址
什么是ARP协议:1.Address Resolution Protocol,地址解析协议 2.将一个已知的IP地址解析成MAC地址
IP地址解析为MAC地址
1.PC1发送数据给PC2,查看缓存没有PC2的MAC的地址
2.PC1发送ARP请求消息(帧广播)
3.所有主机收到ARP请求消息
PC2回复ARP答应(单播)
其他主机丢弃
4.PC1将PC2的MAC地址保存到缓存中,发送数据
3.2 工作原理
两台局域网主机互相通信为例讲解原理
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工作原理:
1. PC1想发送数据给PC2, 会先检查自己的ARP缓存表
2.如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的MAC地址。ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF)
3.交换机收到广播后做泛洪处理,除PC1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答,并在自己的ARP表中缓存PC1的IP地址和MAC地址的对应关系,而其他主机则丢弃这个ARP请求消息
4. PC1在自己的ARP表中添加PC2的IP地址和MAC地址的对应关系,以单播方式与PC2通信
3.3ARP命令
windows当中如何查看arp缓存表(静态ARP和动态ARP)
1.arp -a ####查看ARP缓存表
2.arp -d [IP] ####删除ARP缓存表
3.arp -s IP MAC ####删除ARP静态绑定
如提示ARP项添加失败,解决方案:
用管理员模式:电脑左下角"开始"按钮右键,点击"windows PowerShell(管理员)(A)"或者进入c盘windows \system32文件夹找到cmd.exe,右键"以管理员身份运行"再执行arp -s命令
华为系统中的ARP命令
[Huawei]dis mac-address ####查看MAC地址信息
[Huawei]arp static <IP> <MAC> ####绑定ARP
[Huawei]undo arp static <IP> <MAC> ####解绑定
<Huawei>reset arp all ####清除MAC地址表
4.ARP攻击与欺骗
4.1 ARP攻击原理
欺骗其他所有计算机
欺骗被攻击计算机
ARP攻击发送的是ARP应答,但是ARP应答中的MAC地址为虚假地址,所以在其他主机想要进行通信时,会将目的MAC地址设置成虚假MAC地址导致无法正常通信
例如:如果希望被攻击主机无法访问互联网,就需要对网关发送或被攻击主机发送虚假的ARP应答。当网关接收到虚假的ARP应答更新ARP条目后,如果网关在发送数据给PC1时,就会发送到虚假的MAC地址导致通信障碍。
此处可以举例说明,例如张三要给李四打电话, 它首先要知道李四的电话号码,这时有人告诉它李四的电话号码是123456(不存在的电话号码),于是张三就把电话打到123456,这样就无法找到李四了。
4.2 ARP欺骗原理
ARP欺骗的原理和ARP攻击原理基本相同,但是效果不一样。ARP攻击最终的结果是导致网络中断,而ARP欺骗的最终结果是使得流量通过自身达到监控或控制的目的。
1. 通过长角牛网络监控机软件管理软件
;设置监控范围
;进行网络管理
;验证效果
4.3ARP报文(抓包分析)
重点是: 源IP 目标IP 源MAC 目标MAC
目标MAC地址: 54:89:98:0F:2B:BE
源MAC地址:54:89:98:5B:5B:8A
帧类型: 0x0806 --长度为2字节,0x086代表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)
5.总结
1.了解了IP数据包格式
2.了解了ICMP协议:数据封装和ping命令
3.了解了ARP协议:工作原理和ARP命令
4.ARP攻击是通过伪造ARP应答进行欺骗攻击