网络地址转换(NAT)---静态实践篇

发布时间:2020-05-29 01:17:22 作者:caozhengtao1213
来源:网络 阅读:482

NAT概述

1.NAT出现背景

NAT(Network Address Translation,网络地址转换),当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。


2.NAT工作原理

借助于NAT,私有地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址即可实现私有地址网络内所有计算机与Internet的通信需求。
NAT将自动修改IP报文的源IP地址和目的IP地址,Ip地址校验则在NAT处理过程中自动完成。有些应用程序将源IP地址嵌入到IP报文的数据部分中,所以还需要同时对报文的数据部分进行修改,以匹配IP头中已经修改过的源IP地址。否则,在报文数据部分嵌入IP地址的应用程序就不能正常工作。


3.NAT的优缺点

(1)NAT的优点
节省共有合法IP地址
处理地址重叠
增强灵活性
安全性

(2)NAT缺点
延迟增大
配置和维护的复杂性
不支持某些应用,可以通过静态NAT映射来避免


4.NAT的实现方式

1.静态转换
是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
2.动态转换
是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
3.端口多路复用(PAT)
是指改变外出数据包的源端口并进行端口转换,即端口地址转换采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的叨扰。


5.NAT包含4类地址

内部 外部
内部局部地址 内部全局地址
外部局部地址 外部全局地址

6. NAT的转换条目

简单转换条目              ip
扩展转换条目              ip和port(端口)                 


静态NAT案列演示

拓扑结构图

网络地址转换(NAT)---静态实践篇



第一步:配置SW交换机

SW#conf t 
SW(config)#no ip routing    //关闭路由功能
SW(config)#int f1/0         //进入端口f1/0
SW(config-if)#speed 100     //配置速率
SW(config-if)#dup full      //配置全双工模式
SW(config-if)#ex


第二步:配置R2路由器

R2#conf t
R2(config)#int f0/0
R2(config-if)#ip add 12.0.0.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#int f0/1
R2(config-if)#ip add 13.0.0.1 255.255.255.0
R2(config-if)#no shut
R2(config-if)#ex
R2(config)#ip route 0.0.0.0 0.0.0.0 12.0.0.1    //配置默认路由


第三步:配置R1路由器

R1#conf t
R1(config)#int f0/0
R1(config-if)#ip add 192.168.100.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#int f0/1 
R1(config-if)#ip add 12.0.0.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#ex
R1(config)#ip route 0.0.0.0 0.0.0.0 12.0.0.2


第四步:配置客户机ip地址,并测试全网互通性

1.配置客户机IP地址

PC1> ip 192.168.100.10 192.168.100.1
Checking for duplicate address...
PC1 : 192.168.100.10 255.255.255.0 gateway 192.168.100.1

PC2> ip 192.168.100.20 192.168.100.1
Checking for duplicate address...
PC1 : 192.168.100.20 255.255.255.0 gateway 192.168.100.1

PC3> ip 13.0.0.13 13.0.0.1
Checking for duplicate address...
PC1 : 13.0.0.13 255.255.255.0 gateway 13.0.0.1

2.测试互通性

PC1> ping 13.0.0.13
13.0.0.13 icmp_seq=1 timeout
13.0.0.13 icmp_seq=2 timeout
84 bytes from 13.0.0.13 icmp_seq=3 ttl=62 time=45.879 ms
84 bytes from 13.0.0.13 icmp_seq=4 ttl=62 time=37.925 ms
84 bytes from 13.0.0.13 icmp_seq=5 ttl=62 time=38.894 ms

PC1> ping 192.168.100.20
84 bytes from 192.168.100.20 icmp_seq=1 ttl=64 time=0.000 ms
84 bytes from 192.168.100.20 icmp_seq=2 ttl=64 time=0.000 ms
84 bytes from 192.168.100.20 icmp_seq=3 ttl=64 time=0.000 ms
84 bytes from 192.168.100.20 icmp_seq=4 ttl=64 time=0.000 ms
84 bytes from 192.168.100.20 icmp_seq=5 ttl=64 time=0.069 ms


第五步:在R1路由器上配置NAT,并开启debug功能

R1(config)#ip nat inside source static 192.168.100.10 12.0.0.10
R1(config)#ip nat inside source static 192.168.100.20 12.0.0.20 
R1(config)#int f0/0
R1(config-if)#ip nat inside         //将NAT应用于内部
R1(config)#int f0/1 
R1(config-if)#ip nat out            //将NAT应用于内部
R1#debug ip nat                 //测试NAT地址
IP NAT debugging is on

第六步:测试NAT地址转换,并使用debug功能

PC1> ping 13.0.0.13
13.0.0.13 icmp_seq=1 timeout
13.0.0.13 icmp_seq=2 timeout
84 bytes from 13.0.0.13 icmp_seq=3 ttl=62 time=41.886 ms
84 bytes from 13.0.0.13 icmp_seq=4 ttl=62 time=38.922 ms

R1#
*Mar  1 00:30:38.259: NAT*: s=192.168.100.10->12.0.0.10, d=13.0.0.13 [1514]
R1#
*Mar  1 00:30:40.259: NAT*: s=192.168.100.10->12.0.0.10, d=13.0.0.13 [1515]
R1#
*Mar  1 00:30:42.263: NAT*: s=192.168.100.10->12.0.0.10, d=13.0.0.13 [1516]
*Mar  1 00:30:42.291: NAT*: s=13.0.0.13, d=12.0.0.10->192.168.100.10 [1516]
R1#
*Mar  1 00:30:43.307: NAT*: s=192.168.100.10->12.0.0.10, d=13.0.0.13 [1517]
*Mar  1 00:30:43.335: NAT*: s=13.0.0.13, d=12.0.0.10->192.168.100.10 [1517]
R1#
*Mar  1 00:30:44.347: NAT*: s=192.168.100.10->12.0.0.10, d=13.0.0.13 [1518]
*Mar  1 00:30:44.379: NAT*: s=13.0.0.13, d=12.0.0.10->192.168.100.10 [1518]
//出方向将源地址s=192.168.100.10转换成12.0.0.10,回方向将
目标地址d=12.0.0.10转换成192.168.100.10


静态NAT端口映射案列演示

拓扑结构图

网络地址转换(NAT)---静态实践篇环境需求:
一台Linux虚拟机(CentOS 7),作为局域网内提供服务服务器
一台Windows 虚拟机(win 7),作为公网的客户端


第一步:打开Linux虚拟机,在网络连接时安装并架设服务

[root@192 ~]# yum install httpd -y //安装服务

[root@192 ~]# vim /var/www/html/index.html //编辑测设网页

<hl>this is inside web</hl>

[root@192 ~]# systemctl start httpd //开启服务
[root@192 ~]# systemctl stop firewalld.service //关闭防火墙
[root@192 ~]# setenforce 0 //关闭增强型安全功能


第二步:测试网站是否架设成功

网络地址转换(NAT)---静态实践篇


第三步:将Linux虚拟机的网卡绑定为VMnet1(仅主机模式),并设定静态ip地址

1.绑定网卡
网络地址转换(NAT)---静态实践篇
2.设定静态ip

root@192 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static            
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=88cf4975-29b8-4041-9cb0-456a56d1fddb
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.100          
NETMASK=255.255.255.0
GATWAY=192.168.100.1

[root@192 ~]# service network start 
Starting network (via systemctl):                          [  确定  ]

第四步:配置R1路由器

R1#conf t
R1(config)#int f0/0
R1(config-if)#ip add 192.168.100.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#ex
R1(config)#int f0/1
R1(config-if)#ip add 12.0.0.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#ex

第五步:将win 7虚拟机的网卡绑定为VMnet2(仅主机模式),并设定静态ip地址

1.绑定网卡
网络地址转换(NAT)---静态实践篇

2.设定静态ip网络地址转换(NAT)---静态实践篇


第六步:在R1路由器上配置NAT映射,并开启debug功能

1.先查看Linux的服务端口号

[root@192 ~]# netstat -ntap | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      2659/httpd    

2.设定路由器上的NAT映射关系

R1(config)#ip nat inside source static tcp 192.168.100.100 80 12.0.0.100 8080 extendable
R1(config)#int f0/0                                                            
R1(config-if)#ip nat in
R1(config-if)#int f0/1
R1(config-if)#ip nat out
R1(config-if)#end

R1#debug ip nat
IP NAT debugging is on

第七步:使用win 7虚拟机模拟公网主机来访问私网Linux服务器搭建的服务

网络地址转换(NAT)---静态实践篇

R1#
*Mar  1 00:09:18.395: NAT*: TCP s=49163, d=8080->80
*Mar  1 00:09:18.395: NAT*: s=12.0.0.12, d=12.0.0.100->192.168.100.100 [119]
//抓取到端口与地址转换的过程
推荐阅读:
  1. 如何在golang开发中使用redis
  2. 如何在jquery中利用name获取select选中的值

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

nat 静态nat

上一篇:数据库一些重要概念和数据类型总结(读书笔记)--python

下一篇:川模型 一款新的测试模型的提出与研究

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》