NAT ------ 内网的主机如何通过路由器与外网的主机通信
内网主机A,路由器B,外网主机C
使用了两个协议:
路由:位于网络层,为数据包提供一个寻径的算法,不改变数据包的源IP和目的IP,但是会修改源MAC和目的MAC,只在同个网段的进行数据的转发
NAT:为私有地址能访问互联网提供的一种解决方案。一个私有地址的计算机想与外界进行通信,通过NAT的端口映射,随机分配一个未使用的端口号,在路由器的路由表中形成一一对应关系 ,即 内网IP+端口号 转换为 公网IP+端口号。路由器收到公网数据包后,根据端口号,进行比对路由表,看是哪个内网主机发送的数据包,将数据包回发给相应的内网IP。NAT规定:数据包从内网到外网,会自动建立端口映射;数据包从外网到内网,只会查询收到的数据包的端口有没有映射到内网,而不会自动建立端口映射。
过程
A发送数据给C:
A首先发送数据给路由器,数据包的源IP是A的,源端口号是A的,源MAC是A的,目的IP是C的,目的端口号是C的,目的MAC是B的LAN的;
B收到数据后生产一个唯一的端口号(如果A的端口号在路由表中是唯一的就用A的)与A的端口号一一对应,并把它和A的IP、端口号、MAC存入路由表中,B发送数据给C(假设B和C之前没有其他路由器),数据包的源IP是B的WAN的,源端口是B生成的和A的端口号一一对应的端口号,源MAC是B的WAN的,目的IP是C的,目的端口号是C的,目的MAC是C的。
说明:跨网段通信中,目的MAC始终是下一跳的MAC,源MAC始终是发送者的MAC(同样也是转发一次,改变一次);目的IP和端口号时钟是终端的,不会改变
C发送数据给A反向同理。
二层交换机:交换机工作主要依靠MAC表(MAC和以太网端口映射表),交换机会记录每个端口连接的主机的MAC。当交换机收到主机的数据包,提取目的MAC地址,查看目的MAC地址的主机连接哪个端口,然后往那个端口发送数据。交换机不会改变数据包的任何信息,包括MAC。
无线路由器:目前的无线路由器同时扮演有线网络中交换机与路由器的角色。传统有线网络中的交换机与路由器一般是分离的,客户端要传输数据时,若在同一子网在交换机上传输无须经过路由器,若跨子网传输数据时就要通过交换机与路由器了。无线路由器能接收发送给子网的数据包,也能接收发往外网的数据包。当接收到子网的数据包,无线路由器只起到交换机的作用;当接收到发往外网的数据包,通过NAT协议发送出去。
NAT ------ 内网的主机如何通过路由器与外网的主机通信的更多相关文章
- 更新TP-LINK路由器的外网IP到花生壳动态IP解析
------------------------------------------------------------------------------- 以下内容可能还是存在问题,等之后有时间再 ...
- 内网环境使用ansible安装software 需要外网时,如何绑定代理呢
内网环境使用ansible安装software 需要外网时,如何绑定代理呢? 方法一: 在ansible 的脚本里,yum install 的地方,添加语句: environment: https_p ...
- 内网渗透技巧:判断机器真实外网IP的5种方法总结
在内网渗透中有时需要在某台WEB服务器中留下后门,该机器可以通过内网IP建立IPC连接,但还需要获知外网IP或域名才能访问Wbshell,在无网关权限的情况下,我总结了有如下方法: 1.通过nsloo ...
- 外网配置花生壳动态域名解析实现外网访问本地iis及vs实时调试
描述:假如已连外网,具备一台路由器的情况下在路由器设置页面配置花生壳动态域名解析,使得外网可以访问到本地iis 托管的web服务,模拟真实环境调试应用程序. 网络运营商ip的动态分配,通常网络提供商给 ...
- [原创] zabbix学习之旅六:如何解决zabbix server在内网,而邮件发送服务器在外网的问题
通过前面的文章,你已经可以快速地搭建一个报警系统,并能正常的收到报警邮件了.不过在很多企业级环境下,邮件发送服务器往往放在外网,而zabbix server放置在内网,在这种情况下,zabbix的报警 ...
- 更改路由器的外网IP
此方法适用于通过路由器拨号上网的宽带,若宽带通过光猫拨号上网则需要将光猫改为桥接模式并在路由器中配置宽带账号和密码 测试环境: 路由器:TP-LINK TL-WDR7800千兆版 硬件版本:1.0 软 ...
- 公司内网成功实现WSUS在不连外网的条件下更新补丁包!
微软的WSUS的命令行很有帮助! 为了便于管理,WSUS服务器中提供了一个命令行工具WSUSUtil.exe,你可以使用它完成一些在WSUS管理控制台中不能进行的任务,例如导入导出数据等等.WSUSU ...
- 小米路由器设置DMZ主机 并在外网访问
一.前提条件: 1.小米路由器 2.拥有公网IP的网络 二.步骤: 1.登陆小米路由器管理界面 miwifi.com 2.高级设置=>端口转发 页面底部的DMZ选项开启,然后选择需要映射到外 ...
- TP-LINK路由器设置内网的一台电脑在外网可以远程操控
1.[IP和MAC绑定]--[静态ARP绑定设置]对MAC和IP进行绑定 2.[转发规则]--[DMZ主机],选择启用并把刚才设置的内网IP填入 3.直接访问路由器的外网IP就可以直接访问绑定的MAC ...
随机推荐
- C++ 类 复制构造函数 The Copy Constructor
一.复制构造函数的定义 复制构造函数是一种特殊的构造函数,具有一般构造函数的所有特性.复制构造函数创建一个新的对象,作为另一个对象的拷贝.复制构造函数只含有一个形参,而且其形参为本类对象的引用.复制构 ...
- 冲刺One之站立会议1
接到任务之后的第一天,大家都分头查找了一些相关资料,目的是最终确定用什么语言编写程序.李琦负责对Java实现聊天室进行调研.郭婷和朱慧敏负责对C#进行调研.李敏和刘子晗负责对QT的实现进行调研.并讨论 ...
- 《Spring2之站立会议1》
<Spring2之站立会议1> 昨天,查找了关于建立起服务器和客户端两端的连接的资料,并学习了如何写把两者建立起来的代码: 今天,模仿着相关资料,分别写了客户端和服务器两端的代码: 遇到的 ...
- 项目Beta冲刺团队随笔集
博客集如下: Beta冲刺Day1:第一天冲刺记录 Beta冲刺Day2:第二天冲刺记录 Beta冲刺Day3:第三天冲刺记录 Beta冲刺Day4:第四天冲刺记录 Beta冲刺Day5:第五天冲刺记 ...
- SQL Server查询已锁的表及解锁
--查询已锁的表 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName ,* from ...
- linux安全配置学习
参考摘自https://www.cnblogs.com/hiccup/p/4300963.html 1.关闭icmp请求 #vm虚拟机是130地址,通过echo 1 > /proc/sys/ne ...
- Python入门:逻辑判断与运算符
这是关于Python的第6篇文章,主要介绍下逻辑判断与运算符. (一) 逻辑判断: 如果要实现一个复杂的功能程序,逻辑判断必不可少.逻辑判断的最基本标准:布尔类型. 布尔类型只有两个值:True和Fa ...
- SQLSERVER2017 最新补丁发布方式
SQLSERVER2017 开始已经没有 SP service pack 包了. 取而代之的是CU 包 cumulative update 见: https://support.microsoft.c ...
- javascript获取当前日期和时间
){ ){ _time = year+"-"+month+"-"+date+" "+hour+":"+minu+&quo ...
- Java override 和 overload 的区别和联系
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现.重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多 ...