首页 > 其他分享 >职场小白必备知识点-地址转换

职场小白必备知识点-地址转换

时间:2023-11-09 15:03:50浏览次数:37  
标签:知识点 数据包 必备 端口 PC ip routerB routerA 职场

需求背景

客户内网有台服务器提供80端口的服务,现在A公司内部员工可以正常地从内网访问,访问的方式为http://192.168.0.1,现在客户想从B公司也可以访问这个服务器;

职场小白必备知识点-地址转换_抓包


从路由的角度来看,我们面临的一个问题是:

公网不存在私网的路由。

从数据走向的角度来看,我们要从B公司访问A公司内网服务器的话,数据肯定是要先经过A公司的外网设备routerA,而这点,我们是可以做到的;假如我们设置某些规则,我们从B公司访问routerA之后,让routerA替我们将访问的数据传给web server的话,那么客户的需求就可以实现了;

实现过程

PC-B访问routerA,routerA转换之后将数据传给web server;

职场小白必备知识点-地址转换_数据_02


源地址转换

我们如何实现PC-B访问routerA?

数据的封装过程如下:

源ip、源mac都是PC-B,目的ip是202.101.102.11,PC-B经过计算之后,发现该目的ip和自己不是同一个网段的,于是将数据交给自己的网关172.16.1.1/24处理;于是目的mac封装网关的mac。

routerB有一个默认路由(缺省路由),这个路由是指向公网的网关;当PC-B的数据达到routerB之后,它查找路由之后,直接将数据包交给公网,公网设备按照目的ip一直查路由,将数据送到routerA。

此时router收到的数据包应该是这样的:

源ip是PC-B,目标IP是202.101.102.11(routerA本身);也就是说,此时routerA必须要完成一项任务,将一个“确认收到了”的数据包返回去;这个返回去的数据包必须经过公网,但是,公网是不会有私网的路由的;于是这个包无情地被丢弃了;导致我们的假设在第一步就夭折了;

解决这个问题的关键是,我们需要将PC-B的访问过去的数据送给routerA的时候不是私网ip就可以了;显然,我们将PC-B的ip变成routerB的出口ip之后,就可以解决问题了;这就是源地址转换技术(SNAT);事实上,我们现在访问Internet都是利用此技术实现的。

具体的实现方案是这样的:

内网的数据从routerB的出接口出去之后,routerB将数据包的源地址替换为自己的出口ip,并且打上标记,待该数据包返回来的时候再做反向转换;于是PC-B离开routerB的时候,源地址就变成了103.114.201.13,所以routerA只需要回复数据包给103.114.201.13就可以了;

目的地址转换(端口转换)

我们的第一步计划已经实现,现在routerA已经收到数据包了,我们需要在routerA上也做某些规则来实现我们的需求。

现在PC-B发出的访问数据是http://202.101.102.11,可以预见,routerA收到的数据包里,目的ip是202.101.102.11,目地端口是80;(http数据不做端口指定的话,默认是80端口),于是我们在routerA做这样一个规则:

当我收到目的地址是202.101.102.11,并且目的端口是80的数据的时候,我就要将数据转送给192.168.0.1的80端口(也可以选择不转换端口);这就是目的地址、目的端口转换。

我们还可以这样做,比如PC-B的访问数据是http://202.101.102.11:8001,也就是说,routerA收到的数据包里,目的ip是202.101.102.11,目的端口是8001,;我们设置的规则就应该是:收到数据包的目的ip是202.101.102.11,目的端口是8001,就转换给192.168.0.1的80端口;

相关排错

假如我们设置好规则之后,访问仍然异常,排查思路就按照数据的走向进行排查;

排查PC-B是否可以正常到达routerB,通过抓包可以证实;

排查PC-B的数据离开routerB之后,源ip是否已转换正确,通过抓包可以证实;

从routerB是否可正常访问routerA的8001端口(若我们使用的是8001转换给内网的80端口),TCP端口都可以通过telnet测试,另外,通过抓包可以证实;

数据包是否正常送达routerA,通过在routerA上抓包证实;

routerA是否将数据包按照我们设置的规则进行正常转换,通过抓包证实;

routerA是否可以将数据包正常送达web server,并且是送达指定端口;

Web server收到包之后的返回包是否是返回给routerA,假如不是的话,PC-B是无法收到回应包的。

标签:知识点,数据包,必备,端口,PC,ip,routerB,routerA,职场
From: https://blog.51cto.com/lifulin/8279150

相关文章

  • jQuery.js - 前端必备的Javascript库
    作者:WangMin格言:努力做好自己喜欢的每一件事jQuery.js是什么?jQuery是一个快速简洁、免费开源易用的JavaScript框架,倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供了一种简便的JavaScript设计模式,以及我们开发中常用到的操作DOM的API,优化HTML文档操作......
  • 累计求和与条件累计求和,两个案例看出你的职场应变能力!
    1职场实例小伙伴们大家好,今天我们来讲解两个案例。分别是普通的累计求和、与分条件累计求和。两种工作场景在职场中是经常遇到的。我们往往可以通过这些经典的职场案例,衡量出我们对Excel的基础知识运用能力以及对实战的应变能力。如下图所示:是一张季度销量表,A列为季度数据,B列为季度......
  • 【Flask框架】全知识点笔记4章60页MD文档,今日篇:flask视图和路由进阶
    本文的主要内容:flask视图&路由、虚拟环境安装、路由各种定义、状态保持、cookie、session、模板基本使用、过滤器&自定义过滤器、模板代码复用:宏、继承/包含、模板中特有变量和函数、Flask-WTF表单、CSRF、数据库操作、ORM、Flask-SQLAlchemy、增删改查操作、案例、蓝图、单元测......
  • "单"身贵族爱好者必备:新手也能看懂的单例模式入门指南
    大家好,欢迎来到程序视点!前言在前面三期里,我们详细讲解了工厂模式下的三种分类:简单工厂模式(SimpleFactory)工厂方法模式(FactoryMethod)抽象工厂模式(AbstractFactory)其中,简单工厂模式不是我们23中设计模式之气,其他两个设计模式都属于创建型模式的设计方式。今天,我们要接着讲......
  • 现代密码学 - 知识点汇总
    第一章1、信息安全所受到的威胁:人为威胁和自然威胁2、人为攻击:主动攻击(中断、篡改、伪造),被动攻击被动攻击因不对消息做任何修改,因而是难以预测的,对弈对抗这种攻击重点在于预防而非检测。绝对防止主动攻击是十分困难的,因此抗击主动攻击的主要途径是检测。3、安全业务:......
  • Unity架构师必备的开源库,让你3天搭建商用游戏框架
    现在Unity的相关技术已经都非常常熟了,如果你的技术能力与阅历够,搭建一个商用的游戏框架,你只需要3天的时间。今天给大家分享一个Unity老鸟3天能搭建一个自己的商用框架的几个必备的开源库,方便大家学习与使用,同时学习这些有前途的开源库也能让你在公司里面游刃有余。 1:搭建商用......
  • 职场小白必备知识点-ARP协议
    ARP协议介绍ARP-地址解析协议,可以利用ip地址找到网卡的物理地址。相反也可以通过MAC(网卡物理地址名称)找到IP地地址。在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物......
  • WPF中的Binding的常见知识点与技巧
    在XAML中,可以绑定到许多不同类型的数据源和属性。以下是一些可以绑定的常见数据源和属性:属性:可以绑定到对象的属性,例如控件的Text、Visibility、IsEnabled等属性。集合:可以绑定到集合数据,如List、ObservableCollection、Array等。在绑定到集合时,还可以使用索引器绑定到特定项。静态......
  • 不得不学的“职场高手秘籍”,有这3张表,做工作进度管理必备!
    在职场中,进度管理是非常重要的一环,无论是完成自己的工作还是协调团队的工作,都需要对进度进行有效的管理,以确保工作能够顺利进行,达成既定目标。工作进度表工作管理/自动统计/图表分析/可编辑修改 在制定工作计划进度时,需要对工作计划内容进行细致的分析,确定工作计划的目标和时间节......
  • 《MySQL》复习必刷知识点
    1.数据库SQL语言的缩写DDL:数据定义语言DataDefinitionLanguage,定义语言就是定义关系模式、删除关系、修改关系模式以及创建数据库中的各种对象,比如表、聚簇、索引、视图、函数、存储过程和触发器关键字包括:Create,Alter,Drop,TruncateDML:数据操纵语言全称是DataManipulationLa......