0
点赞
收藏
分享

微信扫一扫

mitmproxy 抓包神器-8.阿里云/腾讯云服务器无法访问mitmweb问题解决?

目录

一、认识以太网

1、局域网中主机的通信

2、认识以太网

3、基于MAC协议在谈局域网中主机的通信 

二、ARP协议 

1、什么是ARP协议

 2、ARP数据报的格式

3、ARP欺骗 

三、DNS协议

1、DNS产生的背景

2、ICMP协议 

四、NAT技术

1、NAT技术背景

 2、NAT和代理服务器


本期学习:认识以太网,了解APR协议,DNS协议,ICMP协议,理解NAT技术和代理服务器

在前面博客中我们学习了,应用层,传输层,网络层的相关协议,我们知道报文的传递是自顶向下的,报文要想发送的网络中要经过最底层数据链路层的转发,下面我们继续学习在数据链路层中的相关知识。

一、认识以太网

在认识以太网前,我们先重新在了解一下在局域网主机是如何进行通信的

1、局域网中主机的通信

 局域网(LAN)是指在相对较小的地理范围内建立的计算机网络,通常是在单个建筑物、办公室、校园或家庭中。局域网允许多台计算机和其他网络设备(如打印机、路由器等)之间进行数据通信和资源共享,而无需依赖互联网或广域网。

那怎么理解局域网中的主机的通信

感性理解:

假设我们现在在一间教室中,老师对全班同学说,张三你作业为什么没做?这个信息全班同学都听到了,但是只会有一个叫张三的同学去向老师解释,其他同学都会忽略这个信息,因为他们知道老师并不是对他们说的。

在上面小故事中,教室相当于局域网,同学们相对于众多主机,老师向班同学说的话就相当于报文。老师是通过向全班同学广播信息,向张三传递信息,但是信息是有对象的,所有其他同学(其他的主机)会自动忽略这条广播信息,相对当于老师是在对张三通信。

所以在局域网中通信的方式是通过广播信息进行的

我们知道每台主机都有他自己的标识,那标识从哪里来,这就来谈谈下面的以太网

2、认识以太网

概念理解

 以太网帧格式

 以太网的帧格式如下所示:

对比理解MAC地址和IP地址 

在用MAC帧(以太网帧)传输数据会有一个叫MTU{以太网的最大传输单元}在前面博文中解释过)来限制了传输速度,我们可以通过ifconfig命令查MTU

ifconfig
//命令查MTU

在Unix、Linux和类Unix系统中,ifconfig 命令用于查看和配置计算机上的网络接口的状态和参数。

3、基于MAC协议在谈局域网中主机的通信 

假设我们现在一个局域网中有8台主机,现在M1想M8发送信息,是如何通过MAC帧协议做到的?

M1会以 广播的形式将报文发送到局域中,所有主机都收到了,但是他们查看目的IP不是自己就将报文丢弃。只有M8是目标主机,他收到报文,会到报文做报头和有效载荷的分离,拿到信息后,在对M1进行应答。

但是我们在细细想一下,在网络发送信息是非常频繁的,可能所有主机的都在做接收报文,对接收报文做出应答的工作。

但在如果众多主机都同时发送消息,他们在传输的时候,本质上就是网线上光电信号的传输,那么就会造成干扰。

在局域网中我们将这种现象称为数据碰撞。

为了防止出现这种现象就有令牌环网,以太网这样的技术。

简单的说一下,令牌环网其实就是给每一个要通信的主机一块令牌,主机通完信息后就将令牌传输给另外的主机,达到局域网中始终只有一个主机进行发送信息。

而以太网就更加的简单了,有一个碰撞检测和碰撞避免算法,达到局域网中始终只有一个主机进行发送信息。

其实局域网就相当于一份临界资源,以太网根据碰撞检测和碰撞避免算法,就可以达到在任何时刻只有一台主机能够向临界资源区中写入信息。

了解完上面的知识,来思考一下问题?

问题1因为碰撞域的存在,一台主机发送信息,一次信息的字节数是越大越大,还是越小越好?

问题2交换机在碰撞域中的作用是什么?

二、ARP协议 

我们知道在数据链路层的报文会被封装为MAC帧,发生给目标主机的,这就告诉我们必须清楚目标目标主机的MAC地址。

那我们是怎么得到的,就要通过在网络中经过路由器一跳获取到,具体是怎么实现的呢?

这和ARP协议有关

1、什么是ARP协议

ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网 络层之间的协议;

ARP协议建立了主机 IP地址 和 MAC地址 的映射关系.

那主机A是如何在网络中要到向主机BMAC地址的?

上面我们说了那么多ARP协议,还不知道他长什么样子,一起去见见他吧! 

 2、ARP数据报的格式

 

 

有效载荷部分 

注意:

 ARP协议的存在就是为获取目的主机的MAC地址,得到后并不是由他进行发生报文的,而是在将目标主机MAC地址封装为MAC帧在进行发送

3、ARP欺骗 

 ARP欺骗(ARP spoofing)是一种网络攻击技术,利用ARP(地址解析协议)的工作原理来欺骗网络中的其他设备,以获取数据流量或进行中间人攻击。ARP协议用于将IP地址映射到物理MAC地址,以便在局域网中进行通信。ARP欺骗攻击通常由恶意主机执行,它会发送虚假的ARP响应来欺骗网络中的其他设备,告诉它们欺骗者拥有目标IP地址对应的MAC地址。

 

ARP欺骗攻击的步骤如下:

ARP欺骗攻击可能会导致网络中的数据泄露、信息窃取、会话劫持等安全问题。为了防止ARP欺骗攻击,可以采取一些防御措施,如使用静态ARP条目、ARP监控工具、网络入侵检测系统(IDS)、网络流量加密等。 

三、DNS协议

DNS是一整套从域名映射到IP的系统

1、DNS产生的背景

TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序. 但是IP地址不方便记忆. 于是人们发明了一种叫主机名的东西, 是一个字符串, 并且使用hosts文件来描述主机名和IP地址的关系

最初, 通过互连网信息中心(SRI-NIC)来管理这个hosts文件的

 这样就太麻烦了, 于是产生了DNS系统.

 至今, 我们的计算机上仍然保留了hosts文件. 在域名解析的过程中仍然会优先查找hosts文件的内容

cat /etc/hosts 
//查看hosts文件

域名简介

主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称.

www.baidu.com
//百度的域名

域名使用 . 连接

2、ICMP协议 

 ICMP协议是一个 网络层协议 一个新搭建好的网络, 往往需要先进行一个简单的测试, 来验证网络是否畅通; 但是IP协议并不提供可靠传输. 如果丢 包了, IP协议并不能通知传输层是否丢包以及丢包的原因

 ICMP主要功能包括:

 

ping命令

ping 是一个常用于测试网络连接的命令行工具。它可用于检测主机之间是否能够互相通信,以及测量网络的延迟和丢包率。

要 ping Google 的公共 DNS 服务器(8.8.8.8),可以使用以下命令:

ping 8.8.8.8

一个值得注意的坑 :

 ping命令基于ICMP, 是在网络层. 而端口号, 是传输层的内容. 在ICMP中根本就不关注端口号这样的信息

traceroute命令

traceroute 是一个用于跟踪数据包从本地主机到目标主机之间的路径的网络诊断工具。它通过向目标主机发送一系列的数据包,并记录它们经过的路由器(或者说是跳点)来实现这一功能。在每一跳,traceroute 都会显示相应的延迟信息,以及该跳点的 IP 地址和域名(如果有)。

例如,要跟踪到 Google 的公共 DNS 服务器(8.8.8.8),可以使用以下命令:

traceroute 8.8.8.8

 

traceroute 会发送一系列的 UDP 数据包(在大多数情况下)或 ICMP 数据包到目标主机,每个数据包在 TTL(Time to Live)字段上设置不同的值。当一个数据包到达某一路由器时,它的 TTL 值会减少,当 TTL 达到零时,路由器会将该数据包丢弃,并向源主机发送一个 ICMP 错误报文,报告 TTL 过期。

通过观察返回的信息,可以了解数据包经过的路由器,以及从本地主机到目标主机的路径上的网络延迟情况。这对于排除网络连接问题和优化网络路径非常有用。

一些常用的 traceroute 选项包括:

 注意,traceroute 可能会受到防火墙或网络策略的限制,而且不保证在所有网络环境中都能够正常工作。

四、NAT技术

1、NAT技术背景

之前我们讨论了, IPv4协议中, IP地址数量不充足的问题 NAT技术当前解决IP地址不够用的主要手段, 是路由器的一个重要功能

 NAT IP转换过程

那么问题来了, 如果局域网内, 有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中, 目的IP都是相同 的. 那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机? 这时候NAPT来解决这个问题了. 使用IP+port来建立这个关联关系 

这种关联关系也是由NAT路由器自动维护的. 例如在TCP的情况下, 建立连接时, 就会生成这个表项; 在断开连接后, 就会删除这个表项 

NAT技术的缺陷

由于NAT依赖这个转换表, 所以有诸多限制

 2、NAT和代理服务器

路由器往往都具备NAT设备的功能, 通过NAT设备进行中转, 完成子网设备和其他子网设备的通信过程.

代理服务器看起来和NAT设备有一点像. 客户端像代理服务器发送请求, 代理服务器将请求转发给真正要请求的服务 器; 服务器返回结果后, 代理服务器又把结果回传给客户端.

么NAT和代理服务器的区别

代理服务器是一种应用比较广的技术. 

代理服务器中的翻墙就不多说了,那什么是负载均衡呢?

在客户端本来是直接向服务器进行请求的,但是对于大公司的说,服务器肯定是有很多台的,但是用户不知道服务器那台工作已经负载了,可能存在一种情况,就用户一直请求公司的一台服务器吗,其他的服务器就闲着。这就导致了资源的分配不均衡,所有,现在我们在客户端到公司的服务器间在连接一台服务器(代理),专门用了合理的分配公司服务器的使用,这就是负载均衡。

 

 代理服务器又分为正向代理和反向代理

正向代理

 反向代理

举报

相关推荐

0 条评论