ARP跨网段广播

如果源主机和目的主机不在同一网段,ARP请求的广播帧无法穿过路由器,源主机如何与目标主机实现通信?

补充一下问题,避免因问题不完整而出现误解。

----------------------------------------------------------------------------------------------不同网段的主机通信时,主机会封装网关(通常是路由器)的mac地址,然后主机将数据发送给路由器,后续路由进行路由转发,通过arp解析目标地址的mac地址,然后将数据包送达目的地。

具体过程分析如下:

如上图,主机A、B通过路由器连接,属于两个不同的网段子网掩码24(255.255.255.0)

1、主机A有数据发往主机B,数据封装IP之后发现没有主机B的mac地址;然后查询ARP,ARP回应:“我在192.168.3.0/24网段,目标地址在192.168.4.0/24,不属于同一网段,需要使用默认网关”;ARP发现默认网关是192.168.3.2,但是没有网关mac地址,需要先进行查询

2、主机将数据包先放到缓存中,然后发送ARP查询报文:封装自己的mac地址为源mac,目标mac地址写全F的广播地址,请求网关192.168.3.2的mac地址。然后以广播方式发送出去

3、路由器收到广播数据包,首先将原192.168.3.1添加到自己的mac地址表中,对应mac地址为0800.0222.2222。路由发现是请求自己的mac地址,然后路由回复一个ARP应答:封装自己的IP地址为源IP自己的mac地址为源mac,主机A的IP为目的IP主机A的mac为目的mac,发送一个单播应答“我是192.168.3.2.我的mac地址为 0800.0333.2222”

4、主机收到应答后,将网关mac地址对应192.168.4.2(跨网关通信,其他网段IP地址的mac地址均为网关mac),然后将缓存中的数据包,封装网关mac地址进行发送

5、路由收到数据包,检查目的IP地址,发现不是给自己的,决定要进行路由,然后查询路由表,需要发往192.168.4.0网段中的192.168.4.2地址。路由准备从相应接口上发出去,然后查询mac地址表,发现没有主机B的映射。路由器发送arp请求查询主机B的mac地址(原理同2、3步,主机B收到请求后首先会添加网关的mac地址,然后单播回复arp请求)。

6、路由器收到主机B的mac地址后,将其添加到路由mac地址表中,然后将缓存中的数据2层帧头去掉,封装自己的mac地址为源mac,主机B的mac地址为目的mac(源和目的IP地址不变),加上二层帧头及校验,发送给主机B。

7、主机B收到数据之后,进行处理,发送过程结束。

8、如果主机B收到数据后进行回复,主机B会进行地址判断,不在同一网段,然后决定将数据发送给网关,主机B查询mac地址表获得网关mac地址,将数据封装后发送(arp地址解析的过程不再需要了,mac地址表条目有一定的有效时间),网关收到数据后直接查询mac表,将二层帧mac地址更改为A的mac发送出去。如此,主机A收到主机B的回复。

综上在跨网段通信过程中有以下过程:

1、判断地址是否同一网段

2、查询目的IP地址的mac(发送arp请求)

此外需注意点:

1、ARP请求以广播发送、以单播回应

2、路由器隔离广播。每一个网段都是独立的广播域

3、跨越网段通信需要使用网关的mac地址

ps:如想深入分析,建议模拟环境,进行抓包操作,可以看到具体经历了哪些过程,有助于深入了解。

原文地址:https://www.cnblogs.com/timeObjserver/p/9313591.html

时间: 2024-11-08 22:42:56

ARP跨网段广播的相关文章

如何使用UDP进行跨网段广播

原文链接地址:http://blog.chinaunix.net/uid-22670933-id-3716646.html 广播域 首先我们来了解一下广播域的概念. 广播域是网络中能接收任一台主机发出的广播帧的所有主机集合.也就是说,如果广播域内的其中一台主机发出一个广播帧,同一广播域内所有的其它主机都可以收到该广播帧. 广播域的计算 如何知道一台主机是属于哪一个广播域呢?其实计算很简单,只要用主机的IP地址与子网掩码进行与运算即可知道该主机属于哪一个广播域.例如:一台主机的IP地址为192.1

MDT跨网段UEFI部署系统

MDT部署架构 DHCP+DNS+MDT/WDS+Client 1)WDS和MDT部署在一台server: 2)上述各机器分别部署在不同网段: 配置BIOS启动 DHCP办公网段作用域配置内容如下: 066 启动服务器主机名:WDS服务器IP 067 启动文件名:boot\x64\wdsnbp.com 说明:此配置方式仅支持BIOS启动方式 配置UEFI启动 将WDS服务器IP添加至路由或核心交换机进行转发广播(由网络伙伴操作),大致配置如下: interface Vlan12 //PC客户端所

跨网段跨vlan访问管理vlan

管理vlan和办公vlan不是同一个,甚至是跨交换机. 实验名称 跨网段,跨vlan访问管理vlan 实验拓扑 思路: Trunk/默认路由(等于思科默认网关) 说明: 管理vlan 1,要求从PC能访问任意vlan 1. //配置SW1 <H3C>system-view [H3C]sysname SW1 [SW1]int vlan1 [SW1-Vlan-interface1]ip  add 192.168.1.1 29 [SW1-Vlan-interface1]vlan  10 [SW1-v

lvs 一个网卡单个管理ip,多个跨网段VIP解决办法

说明:lvs的vip和realserver的rip是可以跨网段的 ifconfig输出如下: [[email protected] scripts]# ifconfig  eth0      Link encap:Ethernet  HWaddr 00:50:56:84:86:FB             inet6 addr: fe80::250:56ff:fe84:86fb/64 Scope:Link           UP BROADCAST RUNNING MULTICAST  MTU

SCCM2012R2跨网段PXE启动蓝屏

最近做了一个SCCM2012R2的项目,让我真心是身心俱疲啊,遇到了各种的坑,今天就给大家分享下该项目遇到的一些坑与相关解决方案. 第一阶段:PXE 启动失败排查 问题描述: ========= 跨网段做PXE的时候会有蓝屏,同一个网段下PXE正常. 问题排查: ========= 从报错来看,WDS no response,我们怀疑是WDS功能异常,我们尝试以下步骤去重新启用WDS,问题依旧: -------------------------------------- 登录WDS服务器,停止

N3K跨网段流量异常

实验拓扑图: 故障现象描述: 1.所有PC跨网段路由下一跳指向3750X,网络互通,无异常. 2.所有PC跨网段路由下一跳指向N3K VIP,有以下系列问题: (1)PC1跨网段路由下一跳指向N3K VIP时,其它所有机器跨网段访问不通(所有用N3K VIP做下一跳的机器:实验中碰到的是PC1,只要PC1跨网段下一跳不指向N3K,其它同段甚至同台母机的其它虚拟机都可跨网段访问, 但存在一定的丢包) (2)跨网段访问偶尔有丢包,传输数据只有几百K/s (3)跨网段下一跳路由指向3750X的非VLA

Step5:SQL Server 跨网段(跨机房)FTP复制

一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 搭建过程(Process) 注意事项(Attention) 参考文献(References) 二.背景(Contexts) 搭建SQL Server复制的时候,如果网络环境是局域网内,通过主机名就可以实现了,但是如果是跨网段.跨机房异地搭建复制的时候就需要注意了,因为SQL Server复制不支持通过IP连接分发服务器,那有什么办法解决跨网段.跨机房的问题呢? 我在SQL Server跨网段

elasticsearch 跨网段组集群

elasticsearch 是非常流行的全文搜索引擎,但网上的教程多是初次使用,并没有一些高级用法demo.这次遇到需要跨网段组网问题,自己摸索了文档很久,发现确实可行,于是着手做了个实验,最终实验成功.在跨网段下实现了自动发现和组网. 总共运行了三个节点,一个节点IP是192.168.45.67,另外两个节点IP都是172.20.5.161三个文件的配置文件都改为如下配置文件,先后启动三个节点,记录日志在后面. 192.168.45.67节点启动后,自动用9300作为通信端口,将自身作为mas

Step4:SQL Server 跨网段(跨机房)复制

一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搭建过程(Process) 注意事项(Attention) 参考文献(References) 二.背景(Contexts) 搭建SQL Server复制的时候,如果网络环境是局域网内,通过主机名就可以实现了,但是如果是跨网段.跨机房异地搭建复制的时候就需要注意了,因为SQL Server复制不支持通过IP连接分发服务器,那有什么办法解决跨网段.跨机房的问题呢?