博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NAT网络地址转换(一)
阅读量:7015 次
发布时间:2019-06-28

本文共 3312 字,大约阅读时间需要 11 分钟。

NAT网络地址转换(一)

  1. 简介

    NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。因此我们可以认为,NAT在一定程度上,能够有效的解决公网地址不足的问题。

  2. 分类

NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。

静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。

动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。

端口多路复用(Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的***。因此,目前网络中应用最多的就是端口多路复用方式。

相关实验

  • 静态地址转换

实验拓扑图

image

其中c3是公网的一台pc机,实验的要求:实现c3能够和c1、c2互连互通

sw#conf t        //进入全局模式sw(config)#no ip routing   //关闭路由功能sw(config)#int f1/0   //进入f1/0的接口模式sw(config-if)#speed 100sw(config-if)#duplex full   //设置双工匹配
R1#conf t    //进入全局模式 R1(config)#int f0/1     //进入f0/1的接口模式 R1(config-if)#speed 100R1(config-if)#duplex full    //配置双工匹配R1(config-if)#ip add 192.168.1.1 255.255.255.0R1(config-if)#no shut       //配置IP地址并且开启接口R1(config-if)#exitR1(config)#int f0/0         //进入f0/0的接口模式R1(config-if)#ip add 12.0.0.1 255.255.255.0    R1(config-if)#no shut      //配置IP地址并且开启接口R1(config)#exit
R1(config)#ip nat inside source static 192.168.1.2 12.0.0.3    //将内部局部地址192.168.1.2转换为内部全局地址12.0.0.3R1(config)#ip nat inside source static 192.168.1.3 12.0.0.4   //将内部局部地址192.168.1.3转换为内部全局地址12.0.0.4R1(config)#int f0/1R1(config-if)#ip nat inside    //设置应用入口为f0/1R1(config)#int f0/0R1(config-if)#ip nat outside   //设置应用出口为f0/0R1(config-if)#end             //退回特权模式R1#debug ip nat                //启用抓包

此时用GNS3上的vpcs为三台pc机配置IP地址,然后用pc1 ping 接pc3

image

这里显示的s=192.168.1.2->12.0.0.3.d=12.0.0.2,就是NAT转换地址的过程,把局域网的私网地址192.168.1.2转换为内部全局地址12.0.0.3,然后进行与12.0.0.2(公网地址)的互通

pc2 ping 接pc3

image

这里通过nat的地址转换就实现了互连互通了

  • 动态地址转换

实验拓扑图

image

这里和静态地址转换不同的是可以设置一个地址池,然后转换时在地址池里选取相应的地址进行转换

sw#conf t          //进入全局配置模式sw(config)#no ip routing     //关闭路由功能sw(config)#int f1/0          //进入f1/0的接口模式sw(config-if)#speed 100sw(config-if)#duplex full      //设置双工匹配

下面配置路由器R1

R1#conf t          //进入全局配置模式R1(config)#int f0/0     //进入f0/0的接口配置模式R1(config-if)#speed 100R1(config-if)#duplex full     //设置双工匹配R1(config-if)#ip add 192.168.1.1 255.255.255.0R1(config-if)#no shut        //配置IP地址(局域网的网关)并开启接口R1(config-if)#exitR1(config)#int f0/1            //进入f0/1的接口配置模式R1(config-if)#ip add 12.0.0.1 255.255.255.0R1(config-if)#no shut           //配置IP地址(外网网关)开启接口R1(config-if)#exitR1(config)#access-list 1 permit 192.168.1.0 0.0.0.255        //设置局域网中允许访问公网的acl(访问控制列表)R1(config)#ip nat pool abc 12.0.0.3 12.0.0.6 netmask 255.255.255.0    //定义合法的公网IP地址池R1(config)#ip nat inside source list 1 pool abc    //实现网络地址的转换R1(config)#int f0/0 R1(config-if)#ip nat inside       //设置应用入口为f0/0R1(config)#int f0/1R1(config-if)#ip nat outside      //设置应用出口为f0/1R1(config-if)#end           //退回特权模式R1#debug ip nat             //启用抓包

此时同样的使用vpcs配置pc机的IP地址

用pc1 ping 接 pc3

image

这里的转换过程可以看到192.168.1.2先转换为内部全局地址12.0.0.3(地址池开始的第一个地址)

用pc2 ping 接 pc3

image

下面这里可以看到转换为12.0.0.4(合法的IP地址池的第二个IP地址)

这里就是NAT地址转换的前两个实验

转载于:https://blog.51cto.com/13659301/2115612

你可能感兴趣的文章
CentOS VMware 下SSH配置方法详解
查看>>
PHP错误级别 error_reporting() 函数详解
查看>>
jdk环境变量配置
查看>>
为网卡配置多个IP地址(windows)
查看>>
句柄的理解
查看>>
手机网络连接问题
查看>>
Go -- runtime.Gosched()的作用分析
查看>>
Java Lambda 表达式 对 Map 对象排序
查看>>
WIndows 使用VS编译 Lua5
查看>>
转 VB ListView控件各种操作详解
查看>>
查看name的状态,是属于active还是standby
查看>>
<LeetCode OJ> 337. House Robber III
查看>>
PSR规范
查看>>
[Javascript] this in Function Calls
查看>>
MinGW32和64位交叉编译环境的安装和使用
查看>>
laravel 增加不存在数据库的字段
查看>>
什么是“单播”“组播”和“多播”
查看>>
flex---->图表控件
查看>>
Android Developers:在命令行构建和运行
查看>>
firefox 不识别background-position-y / background-position-x
查看>>