网关和IP地址不在同一个网段下

2023-11-14

海外的客户报告了一个问题,设备设置的网关地址不在设备所在的网段下面,例如:

IP: 192.168.135.2

NetMask: 255.255.255.0

GateWay: 192.168.8.1

现在的问题来了,设备能不能PING通网关? 

这个问题涉及到PING的实现基础ICMP协议、以及寻址ARP协议。


ICMP协议和ARP协议

PING程序实现的协议是ICMP,这个协议处于IP层,格式如下:


PING命令无非是往ICMP中填写适当的数据,然后交给下层的IP层来发送数据。

看起来这个ICMP和常用的TCP协议一样,都实现在IP层的基础上。 不过ICMP属于第3层,实际属于IP协议的一部分。


不过在数据包发出去之前,需要知道目标设备的物理地址。 这是由于在IP层的下面一层是链路层,需要提供源设备的物理地址和目的设备的物理地址。目前来说,我们只知道目的设备的IP,源设备也就是自己的IP和物理地址。 这就涉及到另外一个问题,如何通过目的设备的IP得到目的设备的物理地址信息。


为此,TCP/IP协议提供了ARP协议专门负责进行物理地址寻址。ARP协议的报文定义如下:


由于ARP也属于第3层,使用链路层发送数据包,需要提供目的设备和源设备的物理地址,其实就是链路层的信息头。 看起来比较矛盾,因为我们就是不知道目的设备的物理地址才会请求ARP进行物理地址寻址的。

为此,TCP/IP对第二层链路层提供了2个特殊的地址:全0x00和全0xFF的物理地址,分别表示源设备物理地址未知和目的设备物理地址未知。


ARP寻址

当ARP发送寻址请求时,目的设备的物理地址全部为0xFF,代表着目的物理地址未知,这种情况下,我们称这个数据包为广播数据包。为了和IP层定义的广播区别,称为2层广播。


有了广播,那些收到广播的设备就可以对这个ARP请求进行相应了。 为此,接收设备会将数据包拆包,提取ARP协议中的目标IP与本设备的IP进行匹配。匹配成功则认为请求的是自己的物理地址,不成功则忽略。

被请求的设备会将自己的物理地址放入ARP反馈数据包以及链路层信息头中,这样,ARP的反馈就会直接发送到请求的设备上,而不是广播。

请求者收到ARP回复后,将ARP协议中的物理地址信息提取后进行缓存。

当然,在被请求的设备收到请求者的ARP请求时,同样也会将请求者的物理地址信息缓存起来的。

一旦上述过程结束,使用arp -a命令就可以查询到缓存信息的更新。


上述的过程实际上忽略了当请求者和被请求者不在同一个网段下的情况。 不过即使不在同一网段,整个过程也只是上面描述过程的重复。

例如设备A通过路由器R请求设备B的物理地址。

设备A首先会请求路由器R的物理地址,用的是第二层广播

然后路由器R再请求设备B,用的也是第二层广播。


路由寻址

上面讨论跨网段进行ARP寻址时忽略了设备A是如何知道必须通过路由器R去寻址设备B的。

网络上的设备一般都会需要一个所谓的路由表,可以认为这个表就是一个网络地图。不过这个地图一般情况下只能知道它身边的其他设备的地址信息。使用“route "命令可以查看设备的路由表。

从route命令的输出可以看到,只是一些目的设备的IP地址信息或者目标网段的IP地址范围信息。 它的作用是:查看即将发送的数据包中的目的IP地址信息,根据路由表,将它从指定的接口上发送出去。

上面ARP寻址时,由于请求设备和被请求设备的IP不在同一个网段下。这时候,请求设备需要查看自己的路由表,希望能够找到相关信息。结果是,请求设备得出只能将这个ARP请求先发送到路由表中指定的R路由上再说。至于R路由如何找到被请求的设备B,那是R路由的问题了。

R路由收到数据包后,会进行拆包,得到目的设备的IP地址信息,然后查询自己的路由表。可能目的设备的IP地址和路由器一个网段,也有可能需要下一个路由再次转发。


结论:

获取目标设备的MAC地址时使用的是二层广播,和IP地址是否为同一个网段并没有任何关系。

一旦得到了目标设备的MAC地址,有可能就在本地的arp缓存中。就能进行数据链路层之间的通信了。

因此,网关和IP地址不在同一个网段下是没有问题的。


使用过程中ICMP和ARP还涉及其他的概念

1、本地广播、定向广播、二层广播

     本地广播: IP地址为255.255.255.255

     定向广播:IP地址的主机号部分为全1,

     二层广播:物理地址全为1

2、泛洪

     常见的包括:MAC泛洪、网络泛洪、SYN泛洪和应用程序泛洪。

    MAC泛洪

    发生在第二层,攻击者进入LAN,发送假冒的源MAC地址和目的MAC地址到以太网交换机上,导致交换机的内容可寻址存储器(CAM)溢出,失去交换功能。用于像在共享式以太网上对某些帧进行嗅探。

    网络泛洪Smurf

    smurf发生在第3层,攻击者假冒ICMP广播PING。如果路由器没有关闭定向广播,也可以使用定向广播。响应的主机越多,造成链路流量过大。

    网络泛洪DDos

    发生在第3层和第4层,攻击者使用大量代理对某个IP地址发送大量假冒的网络流量,然后受到攻击的网络将被这些假的流量所占据无法提供正常的服务。

    TCP SYN泛洪

    发生在第4层,利用TCP握手协议。攻击者发送TCP SYN数据包,当服务器返回地二次握手ACK+SYN时,攻击者不回应。那么服务器的这个TCP连接处于SYN_RECV状态,同时会重复发送ACK+SYN给攻击者。 一旦攻击者发送大量的SYN包,服务器会被大量的这种TCP连接占用,每一个都无法完成三次握手,同时还要执行连接的超时重发。这样造成了服务器消耗CPU和内存资源。

     应用层泛洪

     发生在第7层,目的是消耗应用程序或系统资源。比较常见的是垃圾邮件,在TCP连接完成后,在服务器提示输入密码 的时候停止响应。


3、ICMP重定向

     这个概念网上的介绍很多,只要记住为什么要重定向:当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。(路由器也会把初始数据包向他的目的地转发)。

例如wireshark抓包:


172.20.101.253发送的ICMP请求,返回的ICMP标记为Redirect类型。


不过奇怪的是ICMP回复包中居然还包括当初发给102.24的ICMP请求包。。。


不管如何,当主机收到这样的重定向请求,可以响应或者不响应。例如Linux系统可能会:route add -host xxx.xxx.xxx.xxx dev eth0.

当然,也可以不进行响应。echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all


4、ICMP造成的安全漏洞

     上面提到的网络泛洪smurf,攻击者可以利用ICMP广播,造成大量主机响应,使网络阻塞。

     另外,使用PING命令可以让攻击者进行网络扫描,因此许多防火墙会屏蔽ICMP的回应。

     根据ICMP的应答可以区分主机的操作系统是微软还是UNIX

    重定向可以被攻击者利用,攻击者可以向用户的主机发送重定向报文,这样就可以修改用户的路由表,从而导致Dos攻击。

    其他。。。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网关和IP地址不在同一个网段下 的相关文章

  • k8s之nginx-ingress做tcp或udp的4层网络负载

    检查nginx ingress是否开启tcp udp转发 test test02 ingress kubectl get pod n ingress nginx o yaml grep i configmap configmap POD N
  • 计算机网络(二):TCP篇

    文章目录 1 TCP头部包含哪些内容 2 为什么需要 TCP 协议 TCP 工作在哪一层 3 什么是 TCP 4 什么是 TCP 连接 5 如何唯一确定一个 TCP 连接呢 6 UDP头部大小是多少 包含哪些内容 7 TCP与UDP的区别
  • BGP实验(路由反射器,联邦,路由优化)

    目录 1 IP地址的规划 2 拓扑结构的搭建 3 IP地址的配置 4 静态路由的配置 5 动态路由的配置 6 EBGP的配置 7 IBGP的配置 8 路由反射器的配置 宣告 9 重发布和路由优化 10 测试 实验要求 实验步骤 1 IP地址
  • 基于ftp协议的文件变化主动监听

    基于ftp协议的文件变化主动监听 前言 实现思路 代码实现思路 具体代码实现 依赖引入 FTPService接口 FTPServiceImpl类 FileChangeEvent接口 FileChangeData实体类 FileChangeT
  • 【Unix 网络编程】TCP状态转换图详解

    在前面 已经介绍了TCP协议的三路握手和四次挥手 如下图所示 TCP通信过程包括三个步骤 建立TCP连接通道 三次握手 数据传输 断开TCP连接通道 四次挥手 这里进一步探究TCP三路握手和四次挥手过程中的状态变迁以及数据传输过程 先看TC
  • F5 BIG-IP LTM基础资料

    F5 BIG IP网络概述 TMOS是一个全代理的体系结构 流量必须穿越BIG IP设备以获得TMOS的优化效果 部署方式 路由模式 也被称作串联模式 真实服务器放在BIG IP之后的一个内部网络 真实服务器的网关需要指向 或者最终通过 B
  • 为什么要接入高防IP,到底有什么作用呢

    首先我们要了解什么是高防IP DDOS高防IP是为了应对互联网的DDOS攻击而产生的一款付费增值产品 根据不同的业务接入的方法也不同 在开通这款DDOS高防IP时服务商会给到对应的高防IP作为对外IP和业务IP使用 游戏业务就需要将之前配置
  • ip最长匹配mysql实现

    ip最长匹配计算 mysql使用inet aton函数实现 mask是ip的 select from select inet aton 10 181 88 1 inet aton mask inet aton prefix as match
  • 通过路由器端口映射实现外网IP访问内网服务器

    1 确认路由器的公网IP是不是真的公网IP 特别重要 如果不是可以不用看后面的了 通过www ip138 com网站可以查询当前网络的公网IP 再进入路由器控制界面查看wan口IP和公网IP是否相同 如果不同 大概率是私网IP 服务商在公网
  • 计算机网络:IP数据报文分析

    IP 数据报前 40 字节 编号 1 45 00 05 dc 4a cb 20 00 40 01 4B 52 c0 a8 00 27 7c 7f cf 0f 08 00 45 2e 00 01 00 17 61 62 63 64 65 66
  • OSI七层模型和TCP/IP五层模型

    一 OSI七层模型 七层模型从下往上依次为物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 各层功能如图所示 应用层 与其它计算机进行通讯的一个应用 它是对应应用程序的通信服务的 例如 一个没有通信功能的自处理程序就不能执行通信的
  • [Java实现 Scoket实时接收Tcp消息 优化层层叠加]

    目录 前言 基础实现代码 描述 优化代码多线程处理客户端连接和消息接收 描述 再次优化异步实现 以下是使用 CompletableFuture 实现异步处理客户端请求的示例代码 描述 进一步优化的代码 Netty来实现Socket服务器 描
  • 探讨Socks5代理IP在跨境电商与网络游戏中的网络安全应用

    随着全球互联网的迅猛发展 跨境电商和在线游戏成为了跨国公司和游戏开发商的新战场 然而 与此同时 网络安全问题也日益突出 本文将探讨如何利用Socks5代理IP来增强跨境电商和网络游戏的网络安全 保障数据传输的隐私和安全性 第一部分 Sock
  • TCP/IP网络编程 第五章:实现基于TCP的服务端/客户端(2)

    回声客户端的完美实现 在上一章中 我们提出了实现的回声客户端存在的问题 这里我们来解决一下 先给出对应的服务端和客户端代码 while str len read clnt sock message BUF SIZE 0 write clnt
  • win可以上网,但是右下方显示“无internet链接“

    使用了下面链接的方法 成功解决 Win10可以联网但右下角显示无法连接到Internet怎办 首先 打开控制面板 control 右上角 将查看方式切换为小图标 调整计算机的设置下 找到并点击网络和共享中心 网络和共享中心窗口 左侧点击更改
  • 通讯编程001——Nodejs快速开发Modbus TCP Master

    本文介绍如何利用ModbusJs库快速开发Modbus TCP Master 相关源码请登录网信数智 wangxinzhihui com 下载 ModbusJs是一个基于Nodejs的Modbus TCP的开发库 目前支持的功能函数有 re
  • 前阿里P6花七天时间整理地方软件测试基础知识,高手请绕道

    可以说软件测试所学习的知识都是在循序渐进的 从更基础的知识逐渐延伸到困难的知识 由此可以看出 基础知识是这些重难点知识延伸的基础 想要升职加薪 基础知识必须牢靠 一 软件测试概述 1 软件缺陷 软件缺陷 又称之为 Bug 即计算机软件或程序
  • 无需公网IP!Apache服务器本地部署与内网穿透实现公网访问

    Apache服务安装配置与结合内网穿透实现公网访问 文章目录 Apache服务安装配置与结合内网穿透实现公网访问 前言 1 Apache服务安装配置 1 1 进入官网下载安装包 1 2 Apache服务配置
  • C# Tcplistener,Tcp服务端简易封装

    文章目录 前言 相关文章 前言 设计 代码 简单使用 运行结果 前言 我最近有个需求要写Tcp服务端 我发现Tcp服务端的回调函数比较麻烦 简化Tcp的服务 我打算自己封装一个简单的Tcp服务端 相关文章 C TCP应用编程三 异步TCP应
  • 搞懂 三次握手四次挥手

    计算机网络体系结构 在学习TCP 三次握手四次挥手之前 让我们先来看下计算机网络分层 主要分为OSI模型和TCP IP模型 OSI模型比较复杂且学术化 所以我们实际使用的TCP IP模型 以连接Mysql服务器为例理解这五层 应用层 应用层

随机推荐

  • 使用清华镜像编译aosp

    基础环境编译 与上一篇mac 编译 aosp 一样 http blog csdn net karts article details 54971227 只是 可以在 https mirrors tuna tsinghua edu cn he
  • 【第三阶段 day24】Axios的补充 IDEA自动注入mapper异常说明 Ajax的简化操作

    文章目录 1 Axios的补充 1 1 Axios Post请求 1 2 控制层 2 IDEA自动注入mapper异常说明 3 Ajax的简化操作 3 1 简化axios请求的前缀 3 2 关于promise对象的说明 3 3 Ajax 回
  • 让我们彻底了解Maven(二)--- Maven私服的搭建

    首先我们为什么需要搭建Maven私服 一切技术来源于解决需求 因为我们在实际开发中 当我们研发出来一个公共组件 为了能让别的业务开发组用上 则搭建一个远程仓库很有必要 写完公用组件后 直接发布到远程仓库 别人需要用到时 直接从远程仓库拉取即
  • 共享单车项目数据可视化+需求策略分析

    一 项目背景 自行车共享系统是一种租赁自行车的方式 其中获得会员资格 租赁和归还自行车的过程是通过遍布城市的站点网络自动完成的 使用这些系统 人们可以从一个地方租用自行车 并根据需要将其归还到另一个地方 共享单车是近年来流行起来的新兴产业
  • MOS管参数每一个参数详解-收藏版

    MOS管参数 在使用MOS管设计开关电源或者马达驱动的时候 一般都要考虑MOS的导通电阻 最大电压等 最大电流等因素 MOSFET是电压型驱动器材 驱动的进程即是栅极电压的建立进程 这是经过对栅源及栅漏之间的电容充电来完成的 下面将有此方面
  • PCB铜箔厚度单位盎司(OZ)的具体信息

    盎司 OZ 本身是一个重量单位 盎司和克 g 的换算公式为 1OZ 28 35g 在PCB行业中 1OZ意思是重量1OZ的铜均匀平铺在1平方英尺 FT2 的面积上所达到的厚度 它是用单位面积的重量来表示铜箔的平均厚度 用公式来表示即 1OZ
  • Java基础篇——面向对象编程

    活动地址 CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸 早一天就多一份人生的精彩 迟一天就多一天平庸的困扰 各位小伙伴 如果您 想系统 深入学习某技术知识点 一个人摸索学习很难坚持 想组团高效学习 想写博客但无从下手 急需写作干货注
  • npm 切换源_nrm:npm包管理工具

    一 简介 nrm npm registry manager 是npm的镜像源管理工具 可以方便的更换npm的包源 可解决问题 1 更换国内镜像包源 如淘宝npm镜像 解决国内npm国外包慢的问题 2 更换某些内网独立包源 实现安装内网独立的
  • 「技术综述」人脸妆造迁移核心技术总结

    2020 07 10 12 02 36 美颜和美妆是人脸中很常见的技术 在网络直播以及平常的社交生活中都有很多应用场景 常见的如磨皮 美白 塑形等美颜技术我们已经比较熟悉了 而本文重点介绍的是人脸妆造迁移的核心技术及其相关资源 作者 编辑
  • Spring框架详解(二)

    一 IOC基本原理 1 什么是IOC容器 容器 容器是一种为特定组件的运行提供必要支持的一个软件环境 例如Tomcat就是一个Servlet容器 它可以为Servlet的运行提供运行环境 类似Docker这样的软件也是一个容器 它提供了必要
  • 由于找不到msvcp120.dll无法执行此代码的解决方法

    电脑系统中的msvcp120 dll文件如果丢失或者损坏 那么会有很多游戏跟软件就会出现无法打开运行的情况 msvcp120 dll是Windows系统动态连接组件中非常重要的文件 小编今天就把修复教程分享给大家 修复方法如下 首先是打开电
  • gradle 查看依赖类库版本_如何查找第三方库(Gradle引用)的依赖?

    答 三种方法查找 1 执行 Gradle Task androidDependencies 可以直接执行 gradle androidDependencies 执行结果将在控制台直接输出 可以在控制台直接查看 但是如果依赖很多的时候 控制无
  • BeanUtils.copyProperties()和JSONObject.parseObject()分别是哪种拷贝类型(浅拷贝 or 深拷贝)

    目录 一 结论 二 证明BeanUtils copyProperties 是浅拷贝 三 证明JSONObject parseObject 是深拷贝 四 总结 一 结论 BeanUtils copyProperties 浅拷贝 JSONObj
  • Python爬虫之Js逆向案例(17)- Scrapy JD版店铺详情|问答

    本案例是案例 16 的Scrapy版本 一次运行程序 同时获取内容 获取商店详情 商品问题 商品答案 效果如下图 一 Scrapy框架从安装到运行的过程 1 安装scrapy框架 控制台输入 pip3 install scrapy 2 验证
  • Nominatim/Installation

    原文地址 http wiki openstreetmap org wiki Nominatim Installation 本文介绍的是针对Nominatim 2 5 x版本的安装方法 软件下载地址 http www nominatim or
  • 双击计算机文档,电脑双击文件都是打开属性窗口怎么办

    电脑双击文件都是打开属性窗口怎么办 电脑双击文件都是打开属性窗口怎么办 不知道电脑怎么回事 双击文件后显示的都是属性窗口 该怎么办呢 下面小编分享电脑鼠标双击文件都是打开属性窗口的解决办法 欢迎大家前来阅读 电脑双击文件都是打开属性窗口怎么
  • 实现token

    每天一篇之token实现 现在web开发基本上都会涉及到token 至于为什么要用这些就不再解释 就默默发一个token的util 下面是代码 import com auth0 jwt JWT import com auth0 jwt JW
  • android EasyLink给wifi模块配网

    相关文章 博客 http blog csdn net u010924834 article details 49491349 本文使用的是庆科wifi模块 http developer mico io downloads 庆科的开发者地址
  • Windbg查找单例对象

    在程序的达到一定规模之后 就会用到比较多的管理类 这种管理类多采用单例模式 在问题排查过程中往往需要看下管理类里面的某些状态是否符合预期 但是崩溃的堆栈在当前局部变量中并 无该单例的相关引用 单例的实现上是将一个实例化对象保存在静态变量中
  • 网关和IP地址不在同一个网段下

    海外的客户报告了一个问题 设备设置的网关地址不在设备所在的网段下面 例如 IP 192 168 135 2 NetMask 255 255 255 0 GateWay 192 168 8 1 现在的问题来了 设备能不能PING通网关 这个问