NAT配置与管理
为解决IPv4地址日益枯竭,出现NAT(Network Address Translation,网络地址转换)技术。NAT可以将来自一个网络的IP数据报报头中的IP地址(可以是源IP地址或目的IP地址,或两者同时)转换为另一个网络的IP地址,主要用于实现私网用户和公网用户之间的互访。
一、NAT主要特性
在AR G3路由器中把支持的NAT特性分为三大类:动态NAT、静态NAT和NAT Server(NAT服务器),在实际应用中,分别对应配置动态地址转换、配置静态地址转换和配置内部服务器。
1、动态NAT
私网IP与公网IP之间的转换不是固定的。把需要访问公网的私网IP地址动态地与公网IP地址建立临时映射关系,将报文中的私网IP地址进行对应的临时替换,待返回报文到达设备时再根据映射表“反向”把公网IP地址临时替换回对应的私网IP地址,转发给主机,实现内网用户和外网的通信。
动态NAT的实现方式有Basic NAT和NAPT两种(Easy IP是NAPT的一种特例)。Basic NAT是一种“一对一”的动态地址转换;NAPT则通过引入“端口”变量,是一种“多对一”的动态地址转换(映射的公网端口不同)。
2、静态NAT
建立固定的一对一的公网IP地址和私网IP地址的映射。
3、NAT Server
内网向外网提供服务,内网服务器不能被屏蔽,这是一种由外网发起向内网访问的NAT转换情形。外网用户访问内网服务器,通过“公网IP地址:端口号”与服务器的“私网IP地址:端口号”的固定映射,从私网IP地址与公网IP地址的映射关系看,也是一种静态映射关系。
二、BasicNAT实现原理
Basic Nat方式属于一对一地址转换,但不是静态一对一,是动态。
内网向公网发起连接请求时,请求报文中的私网IP地址通过事先准备好的公网IP地址池动态建立私网IP与公网IP的NAT映射表项,利用映射的公网IP将报文中的源IP地址(即内网私网IP地址)进行替换。然后送达给外网的目的主机。外网主机收到请求报文后进行响应时,响应报文到达NAT设备,又将依据前面请求把我摁所建立的私网IP与公网IP映射关系反向将报文中的目的IP替换成对应的私网IP,然后送达给内部源主机。
①当内网侧Host要访问公网侧Server时,向Router发送请求报文(即Outbound方向),此时报文中的源IP为Host自己的10.1.1.100,目的IP为Server的IP:211.100.7.34。
②Router收到来自Host请求报文后,从公网地址池选取一个空闲公网IP,建立与内网侧报文源IP间的NAT转换映射表项,包括正(Outbound)、反(Inbound)两个方向,依据正向NAT表项将报文中的源IP地址转换为对应的公网IP后向公网侧发送。此时发送的报文的源IP地址是转换后的公网IP:162.105.178.65,目的IP不变,仍为Server的IP:211.100.7.34。
③当Server收到请求报文后,需向Router发送响应报文(Inbound方向),此时只须将收到的请求报文中的源IP和目的IP对调即可,即报文的源IP是Server自己的IP:211.100.7.34,目的地址是Host私网IP转换后的公网IP:162.105.178.65。
④当Router收到来自公网Server发送的响应报文后,会根据报文中的目的IP查找NAT映射表项,将报文中的目的IP转换为Host主机对应的私网IP地址(源地址不变)后向私网侧发送,此时报文中的源IP仍是Server的IP:211.100.7.34,目的IP地址转换为Host的私网IP:10.1.1.100。
Basic NAT中的请求报文转换的仅是其中的源IP地址(目的IP不变),即仅关心源IP地址;响应报文转换的仅是其中的目的IP(源IP不变),即仅关心目的IP。
三、NAPT实现原理
多对一地址转换,NAPT使用“IP地址+端口号”的形式进行转换。
NAPT请求报文中转换的仅是源IP地址和源端口号(目的IP和目的端口号不变),即仅关系源IP和源端口号;响应报文中转换的是目的IP和目的端口号(源IP和源端口号不变),即仅关心目的IP和目的端口号。不同私网主机可以转换成同一个公网IP,但转换后的端口号必须不一样。
四、EasyIP实现原理
实现原理与地址池NAPT转换原理类似,可以算是NAPT的一种特例,不同的是Easy IP方式可以实现自动根据路由器上WAN接口的公网IP地址实现与私网IP地址之间的映射(无需创建公网地址池)。主要用于将路由器WAN接口IP地址作为要被映射的公网IP地址的情形,特别适合小型局域网接入Internet情况。
五、NATServer实现原理
NAT Server用于外网用户需要使用固定公网IP地址访问内部服务器的情形。通过事先配置好的服务器的“公网IP+端口号”与服务器的“私网IP+端口号”间的静态映射关系来实现。(要先在Router上配置好静态的NAT Server转换映射表)。
①Router在收到外网用户发起的访问请求报文后(即Inbound方向),根据该请求的“目的IP:端口号”查找NAT Server转换映射表,找出对应的“私网IP:端口号”,然后用找到的结果直接替换报文的“目的IP:端口号”,最后想内网侧发送。上图外网发送的请求报文中目的IP是202.102.1.68,端口号80,经过Router转换后的目的IP和端口号为192.168.1.68:80。
②内网服务器收到由Router转发的请求报文后,向Router发送响应报文(即Outbound方向)。此时报文中的源IP、端口号与目的IP、端口号与收到的请求报文中的完全对调,即响应报文中的源IP和端口号为前面的192.168.1.68:80.
③Router收到内网服务器的响应报文后又根据该响应报文中的“源IP:端口号”查抄NAT Server转换表项,找出对应的“公网IP:端口号”,然后替换报文中的“源IP:端口号”。本例中内网服务器相应外网主机的报文的源IP和端口号是192.168.1.68:80,经Router转换后的源IP和端口号为209.102.1.68:80。
由外网向内网服务器发送的请求报文中转换的仅是目的IP和目的端口号(源IP和源端口号不变),即仅关心目的IP和目的端口号;从内网向外网发送的响应报文转换的仅是源IP和源端口号(目的IP和目的端口号不变),即仅关心源IP和源端口号。
综上总结:NAT中凡是由内网向外网发送的报文(不管是请求报文还是响应报文),在NAT路由器上转换的都是源IP地址(或同时包括源端口号),而凡是由外网向内网发送的报文(不管是请求报文还是响应报文),在NAT路由器上转换的都是目的IP地址(或同时包括源端口号)。
六、静态NAT/NAPT
静态NAT是指在进行NAT转换时,内部网络主机的IP与公网IP是一对一静态绑定的,且每个公网IP只会分配给固定的内网主机转换使用。与Basic NAT不同的只是这里先要在NAT路由器上配置好静态NAT转换映射表,而不仅是地址池。
静态NAPT是指“内部网络主机的私网IP+协议号+端口号”与“公网IP+协议号+端口号”是一对一静态绑定的,静态NAPT中的公网IP可以为多个私网IP使用。与NAPT不同的也是要先在NAT路由器上配置好静态NAPT转换映射表,而不仅是地址池。
七、NAT与路由器的本质区别
两种技术主要存在实现机制和主要应用两个方面的本质区别。
1、实现机制不同
NAT是通过解决两个网络间互访的“身份”问题来解决实现两个网络的主机的互访,即通过将报文中的源IP或目的IP转换为对方网络的IP地址来实现两个网络中的主机互访。这里报文中的IP地址转换相当于“身份”的转换,即使一个网络中的主机具有访问对方网络的合法“身份”。
路由器则是通过解决两个网络互访“渠道”问题来实现两个网络的主机的互访,即建立一条互访的“路径”(即路由表)来实现双方主机的互访,而双方传输报文中的源IP和目的IP都不变,也就是双方的“身份”并没有经过转换。
2、主要应用不同
NAT主要应用于内部局域网主机与Internet主机互访的情形(当然也可以实现两个局域网之间的互联,但这不是NAT的主要应用),解决公网IPv4不足的问题。另外,在局域网与Internet的互联中也不可能建立一个双向互访的具体路由表,一则是因为私网IP在Internet无法识别,再则因为Internet不是单一IP网段的网络。
路由之所以选择通过建立路径来实现两个网络的主机的互访,是因为路由主要都是使用私网IP,有明确IP网段的局域网之间的互联。
https://blog.csdn.net/kaoa000/article/details/52368106
NAT配置与管理的更多相关文章
- 绝对实用 NAT + VLAN +ACL管理企业网络
在企业中,要实现所有的员工都能与互联网进行通信,每个人各使用一个公网地址是很不现实的.一般,企业有1个或几个公网地址,而企业有几十.几百个员工.要想让所有的员工使用这仅有的几个公网地址与互联网通信该怎 ...
- Juniper srx防火墙NAT配置
一.基础操作说明: 1. 设备恢复出厂化 root# load factory-default root# set system root-authentication plain-text-pas ...
- Linux基础五:网络配置与管理
五.网络配置与管理 1.网络知识 2.命令 ifconfig命令 <=> ip addr show 命令--查看本地所有网卡配置信息 ens32:本地以太网网卡,lo:本地回环网卡 ...
- Azure Redis Cache (4) 配置和管理Redis Cache
<Windows Azure Platform 系列文章目录> 我们在创建完Azure Redis Cache后,经常需要切换Redis Cache的服务级别,这里我简单介绍一下使用Azu ...
- mysql多实例的配置和管理
原文地址:mysql多实例的配置和管理 作者:飞鸿无痕 多实例mysql的安装和管理 mysql的多实例有两种方式可以实现,两种方式各有利弊.第一种是使用多个配置文件启动不同的进程来实现多实例,这种方 ...
- 【Ubuntu】NAT配置
1.简介 2.配置 1.简介 NAT(Network Address Translation,网络地址转换)是将IP 数据包头中的IP 地址转换为另一个IP 地址的过程.在实际应用中,NAT 主要用于 ...
- Network Object NAT配置介绍
1.Dynamic NAT(动态NAT,动态一对一) 实例一: 传统配置方法: nat (Inside) 1 10.1.1.0 255.255.255.0 global (Outside) 1 202 ...
- 分享:linux下apache服务器的配置和管理
linux下apache服务器的配置和管理. 一.两个重要目录: Apache有两个重要的目录:1.配置目录/etc/httpd/conf:2.文档目录/var/www: 二.两种配置模式: Apac ...
- 关于spring3中No Session found for current thread!and Transaction的配置和管理(转)
今天我是特别的郁闷,本来项目做到一半,以前都好好的,结果下午就出现问题,苦逼的到现在才解决.它出现问题的时候都一声不坑, ,(天啦,现在才发现CSDN啥时候把QQ表情给整过来了)就在注册用户的时候,咦 ...
随机推荐
- Ajax.ActionLink用法
必须要引用的JS库: <script type="text/javascript" src="@Url.StaticFile("/Assets/Conte ...
- 嵌入式驱动开发之解码器tvp5150---tvp5150am1基于8148vpss的添加调试
(1)i2c (2)注册设备 (3)寄存器 --------------author:pkf ------------------------time:2015-4-5 --------------- ...
- linux驱动开发---导出内核符号
导出内核符号模板代码,验证小实例: /** *Copyright (c) 2013.TianYuan *All rights reserved. * *文件名称: Esdexp.c *文件标识: 导出 ...
- flask-第三方组件
flask-script 离线脚本 from flask_demo import create_app from flask_script import Manager app = create_a ...
- 为什么要使用自增ID作为主键
1.从业务上来说 在设计数据库时不需要费尽心思去考虑设置哪个字段为主键.然后是这些字段只是理论上是唯一的,例如使用图书编号为主键,这个图书编号只是理论上来说是唯一的,但实践中可能会出现重复的 情况.所 ...
- JavaScript------如何解决表单登录信息输入为空显示提示
<form name="fname" method="post" action="../Home/Login" onsubmit=&q ...
- HTML-HTML链接JavaScript的几种方法
把JavaScript文件放在head中 标准方法是把JavaScript文件放到head标签内. <head> <script type="text/javascript ...
- Http服务器实现文件上传与下载(二)
一.引言 欢迎大家接着看我的博客,如何大家有什么想法的话回复我哦,闲话不多聊了,接着上一讲的内容来说吧,在上一节中已经讲到了请求头字符串的解析,并且在解析中我我们已经获取了url.就是上节中提到的/d ...
- ES6入门概览一
一.let const 1.let命令:声明变量仅在块级作用域有效:let实际上为js新增了块级作用域 好处: -不存在变量提升: -内部声明的变量 函数 不会影响外部 -不可重复声明变量 2.con ...
- Less-loops循环
loop循环 example: .test(@i) when (@i > 0) { .test((@i - 1)); .study@{i} { width: (10px * @i); } } d ...