首页 > 其他分享 >内网环回原理

内网环回原理

时间:2024-10-28 14:12:56浏览次数:1  
标签:113.1 IP 192.168 环回 203.0 NAT 原理 内网 路由器

场景: 当服务 A 和服务 B 都部署在同一个内网环境中,服务 A 试图通过服务 B 的公共 IP 地址进行请求。这种情况下,由于 NAT 环回的限制,可能会导致请求无法成功到达服务 B。

原理

NAT 设备通常维护两个个转换表,用于跟踪内网设备与公共 IP 地址之间的映射关系。分别是SNAT和DNAT,

SNAT(源地址转换)

  • 作用:
    • SNAT 主要处理出站流量,将内部 IP 转换为公共 IP。
  • 过程:
    • 例如,内部设备 192.168.1.10 向外部请求时,NAT 将源 IP 地址转换为公共 IP 地址 203.0.113.1。因此,当外部服务器看到的请求源是 203.0.113.1
  • 响应:
    • 外部服务器的响应会返回到 203.0.113.1,NAT 会根据其转换表将响应路由回 192.168.1.10

DNAT(目的地址转换)

  • 作用:
    • DNAT 处理入站流量,将公共 IP 转换为内部 IP。
  • 过程:
    • 当外部服务器向 203.0.113.1 发送响应时,NAT 会将目标 IP 地址从 203.0.113.1 转换为内部设备的 IP 地址,比如 192.168.1.10
  • 结果:
    • 响应最终会到达内部设备,而外部服务器只知道请求来自 203.0.113.1

正常的请求流程

假设当前服务A的本地IP为192.168.0.1,公网IP为203.0.113.1,要访问的服务B本地IP为192.168.0.1,公网的IP地址是203.0.223.2,那么会经过一下几个步骤:

(x,y)表示(请求IP,目的IP)

  1. 服务A发送消息到网关,再到路由器
  2. 本地路由器将本地IP192.168.0.1转换为公网IP203.0.113.1,并在SNAT中记录 (203.0.113.1,203.0.223.2)
  3. 消息通过网络中的路由器不断路由,找到目的网络路由器
  4. 目的路由器通过DNAT表转换目的IP为192.168.0.1 (203.0.113.1,192.168.0.1)
  5. 服务B接收到请求,并发出响应消息到网关 (192.168.0.1,203.0.113.1)
  6. 目的路由器转换IP为公网IP203.0.223.2 (203.0.223.2,203.0.113.1)
  7. 本地路由器接收到消息,并且期待响应IP(203.0.223.2)= 实际响应IP(203.0.223.2)
  8. 完成请求

环回的请求流程则

假设当前服务A的本地IP为192.168.0.1,公网IP为203.0.113.1,要访问的服务B本地IP为192.168.0.2,公网的IP地址是203.0.113.1,那么会经过一下几个步骤:

  1. 服务A发送消息到网关,再到路由器
  2. 本地路由器将本地IP192.168.0.1转换为公网IP203.0.113.1,并在SNAT中记录 (203.0.113.1,203.0.113.1)
  3. 消息通过网络中的路由器不断路由,回到当前路由器
  4. 路由器通过DNAT表转换目的IP为192.168.0.2 (203.0.113.1,192.168.0.2)
  5. 服务B接收到请求,并发出响应消息到网关 (192.168.0.2,203.0.113.1)
  6. 由于响应的目标地址与路由器的公共 IP 相同,路由器会尝试查找 DNAT 表,查找IP192.168.0.2的映射
  7. 当路由器不支持环回时,即DNAT表中没有此映射,则会丢弃消息,因为期待响应IP(203.0.113.1)!= 实际响应IP(192.168.0.2)

解决方案

  1. 使用支持环回的 NAT 路由器:
    • 如果路由器支持 NAT 环回,内部设备可以使用公共 IP 地址与自己通信。这种配置允许服务 A 通过公共 IP 地址成功请求服务 B。
    • 即在DNAT中,加入映射
  2. 使用内网地址访问:
    • 最简单和最常见的解决方案是直接使用服务 B 的私有 IP 地址进行访问。这样可以避免 NAT 环回的问题,并确保请求在内部网络中正常路由。

标签:113.1,IP,192.168,环回,203.0,NAT,原理,内网,路由器
From: https://www.cnblogs.com/awstan/p/18510404

相关文章

  • 全面解释人工智能LLM模型的真实工作原理(三)
    前一篇:《全面解释人工智能LLM模型的真实工作原理(二)》序言:前面两节中,我们介绍了大语言模型的设计图和实现了一个能够生成自然语言的神经网络。这正是现代先进人工智能语言模型的雏形。不过,目前市面上的语言模型远比我们设计的这个复杂得多。那么,它们到底复杂在什么地方?本节将为你......
  • SAS 在内网监控软件数据分析场景的应用
    随着企业信息化程度的不断提高,内网安全变得至关重要。内网监控软件能够收集大量的数据,而如何有效地分析这些数据以获取有价值的信息,成为了企业保障网络安全和优化网络性能的关键。SAS作为一款强大的数据分析工具,在处理内网监控软件数据方面具有显著的优势。本文将探讨SAS在内网......
  • 我们来学mysql -- 用不上的索引(原理版)
    我们来学mysql--用不上的索引你行你上一张表一段有脑洞的阐述用不上的索引列你行你上轻松拿捏了两篇《使用索引》和《索引失效》知识点索引真是太香了,看的哈喇子都流出来了,必须给安排上在盲目的自信加持下,大刀阔斧的进行改革,为sql语句条件中的各个列创建索引一......
  • 强化学习的数学原理-04值迭代与策略迭代
    目录ValueiterationalgorithmPolicyiterationalgorithmTruncatedpolicyiterationalgorithmValueiterationalgorithm\[v_{k+1}=f(v_k)=\max_{\pi}\left(r_{\pi}+\gammaP_{\pi}v_k\right)\:,\:k\:=\:1,2,3,...\]算法可以被分为两步去做:\(Step1......
  • 家庭主机ssh内网穿透,通过花生壳可以远程连接了
    花生壳官网https://hsk.oray.com/1、注册账号并实名认证2、安装花生壳linux客户端软件安装,完成后会生成设备码和密码rpm-iphddns_5.3.0_amd64.rpm 启动和设置开机自启动systemctlstartphddns_mini_httpd.servicesystemctlenablephddns_mini_httpd.service4、在......
  • 改进的鲸鱼算法(IWOA)优化BP神经网络原理及Matlab代码复现
    目录0引言1数学模型2模型性能提升3Maltab代码3.1伪代码3.3IWOA-BP0引言为了缓解WOAQ易陷入局部最优和收敛精度低的问题,武泽权等人提出一种改进的鲸鱼优化算法(IWOA)。该算法通过准反向学习方法来初始化种群,提高种群的多样性;然后将线性收敛因子修改为非线性收......
  • 改进的鲸鱼算法(IWOA)优化支持向量机原理及Matlab代码复现
    目录0引言1数学模型2模型性能提升3Maltab代码3.1伪代码3.3IWOA-SVM/SVR0引言为了缓解WOAQ易陷入局部最优和收敛精度低的问题,武泽权等人提出一种改进的鲸鱼优化算法(IWOA)。该算法通过准反向学习方法来初始化种群,提高种群的多样性;然后将线性收敛因子修改为非......
  • epoll 或者kqueue 的原理是什么
    在处理大规模并发网络连接的领域中,epoll和kqueue代表了两种颠覆性的IO事件通知技术。它们被广泛应用于Linux和BSD系统中,以有效管理和优化网络通信过程。本文旨在深入探究epoll和kqueue的内部工作机制,揭示它们如何优于传统的select和poll方法,并分析其对现代网络编程带来的显著影响......
  • 经济活动原理推导
     在原始社会中,最初的交易方式是以物物交换为主。例如,某人拥有一只鸡,而另一人拥有一只兔子,若双方需求匹配,即可直接进行物品间的交换。然而,随着需求的多样化和差异性,各种类型的物品开始作为货币,起到中介作用,以满足供给与需求。货币作为中介,在经济研究中占据了极其重要的地位。......
  • Springboot 自动配置原理
    1.在SpringBoot项目中的引导类上有一个复合注解@SpringBootApplication,这个注解是对三个注解进行了封装,分别是:@SpringBootConfiguration 用于定义Bean和配置Spring容器。@EnableAutoConfiguration 实现自动化配置的核心注解@ComponentScan 扫描包里的组件2.其中......