NAT概述

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

NAT的工作原理

借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。

NAT实现方式

NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad。

静态转换:是指将内部网络的私有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的***。因此,目前网络中应用最多的就是端口多路复用方式。

NAT的优缺点

(1)NAT的优点

节省共有合法IP地址

处理地址重叠

增强灵活性

安全性

(2)NAT缺点

延迟增大

配置和维护的复杂性

不支持某些应用,可以通过静态NAT映射来避免

NAT包含四类地址

内部局部地址

外部局部地址

内部全局地址

外部全局地址

NAT的转换条目

简单转换条目

扩展转换条目

静态NAT配置案例

实验拓扑图

1,配置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

2,配置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 ##配置为默认路由

3,配置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 //配置默认路由

4,配置pc机的ip地址并测试全网互通性

配置pc机的ip地址

测试全网互通性

5,在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

6,测试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端口映射案列

实验拓扑图

实验环境

一台Linux作为提供服务的服务器

一台win7作为公网的客户端

1,打开Linux,安装web服务并且编辑网页内容

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

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

this is inside web

[root@192 ~]# systemctl start httpd //开启服务

[root@192 ~]# systemctl stop firewalld.service //关闭防火墙

[root@192 ~]# setenforce 0 //关闭增强型安全功能

2,测试访问Linux提供的出来的网站

3,将Linux的网卡绑定为vmnet1(仅主机模式)

4,给Linux服务器固定ip地址

[root@192 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 ##修改固定ip

[root@192 ~]# service network restart ##重启网卡服务

5,配置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

6,将win7网卡绑定为vmnet2(仅主机模式),并设定固定ip

7,在R1路由器上配置NAT映射,并开启debug功能

R1#conf t

R1(config)#ip nat inside source static tcp 192.168.100.100 80 12.0.0.100 8080 extendable

//内部端口启用NAT,tcp协议,IP地址加端口,映射外部网地址加端口,后面一定要加个扩展extendable

on Interface NVI0, changed state to up

R1(config)#int f0/0 ##进入接口f0/0

R1(config-if)#ip nat inside //设置为内部

R1(config-if)#int f0/1 ##进入接口f0/1

R1(config-if)#ip nat outside //设置为外部

R1(config-if)#end

R1#debug ip nat //测试启动端口映射

IP NAT debugging is on

8,使用公网win7访问丝网Linux服务器搭建的网站服务

9,debug捕捉端口和地址转换的过程

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]

//抓取到端口与地址转换的过程,实现NAT端口映射

谢谢阅读!!!

标签:R1,ip,12.0,网络地址,实操,NAT,IP地址,config

来源: https://blog.51cto.com/14080162/2444273

java nat 端口转发_NAT网络地址转换——静态NAT,端口映射(实操!!)相关推荐

  1. linux配置nat端口转换,NAT网络地址转换——静态NAT,端口映射(实操!!)

    NAT概述 NAT(Network Address Translation,网络地址转换)是1994年提出的.当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但 ...

  2. 网络地址转换--静态NAT

    网络地址转换NAT(Network Address Translation)技术作为延缓IPv4地址枯竭的方法之一,目前已经普遍流行于各种企业网络之中.NAT技术的出现改变了原来简答的网络结构变得复杂 ...

  3. CCNA之网络地址转换(NAT)简介

    网络地址转换(NAT) 1.  在什么情况下使用NAT 需要连接到因特网,但主机没有全局唯一的IP地址: 更换的ISP要求对网络进行从新编址: 需要合并两个使用相同编址方案的内联网. 实现NAT的优缺 ...

  4. 什么是网络地址转换(NAT)—Vecloud 微云

    网络地址转换(NAT)最初在RFC 1631中进行了描述.尽管最初是作为防止IPv4地址耗尽的短期解决方案提出的,但仍在使用它.NAT有什么特别之处,使网络工程师可以使用26年以上?让我们找出答案. ...

  5. 外部地址是什么意思_NAT网络地址转换

    目录 一.NAT是什么? 二.为什么需要NAT? 三.NAT的类型 四.NAT的配置 一.NAT是什么? 网络地址转换(NAT,Network Address Translation)属接入广域网(W ...

  6. virtualbox只能选用网络地址转换(NAT)模式下搭建个人局域网

    个人博客:https://suveng.github.io/blog/​​​​​​​ virtualbox只能选用网络地址转换(NAT)模式下搭建个人局域网 这里先引用以为大佬的博客,上面清楚的介绍虚 ...

  7. virtualbox 网络地址转换(NAT)

    因为个人在工作的时候条件比较充足,基本上不需要用到 virtualbox 或者 vmware 等这些虚拟软件,一个是因为他们占用本机的资源挺大的,电脑配置稍微低点就很难受了,所以说的条件充足是因为我多 ...

  8. NAT(Network Address Translation)网络地址转换

    NAT(Network Address Translation)网络地址转换 (不止能pingt通,可以访问网站) 背景:IPv4地址不够用 IPv6 IPv4:32位 2^32 IPv6:128位 ...

  9. 网络地址转换(NAT)(二)

    作者简介:一名在校计算机学生.每天分享网络运维的学习经验.和学习笔记.   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.NAT的配置 1.NAT静态配置 (1)静态 ...

最新文章

  1. 取消Eclipse等号、分号、空格代码自动补全
  2. 【opencv】22.HOG的原理与详细步骤
  3. mysql系列之2.mysql多实例
  4. tfrecord文件生成与读取
  5. Linux命令大全(Ubuntu18系统)
  6. 使用c:forEach 控制5个换行
  7. Linux主机系统加固
  8. frame中src怎么设置成一个变量_webpack中Css的处理
  9. mvn命令传递参数和pom文件配置的关系
  10. 原创 | 职场风云 (二)试验田
  11. ssm-学子商城-项目第十二天
  12. 罗马时钟代码html,用Html实现炫酷罗马时钟
  13. 百度云盘群组中资源文件实时同步更新保存到自己群组的方法
  14. win10如何添加linux开机引导,win10 linux 双系统怎么设置开机引导
  15. 前端项目从计划到上线的大致流程
  16. linux中buff/cache占用高
  17. 手机射频中的常见术语
  18. html时区时间显示,JS显示多个国家时区当前时间代码
  19. 计算机考试没有输入法怎么办,输入法没有了怎么办呢 解决方法有哪些
  20. html背景自动适应,css背景图片如何自适应?

热门文章

  1. windows10+MongDb4.0.4下载和安装
  2. 澳大利亚计算机领域的科学家,澳科学家首创硅基元件 突破量子计算机制造瓶颈...
  3. android登录界面居中,Android TextView前加图标垂直居中第一行(仿大众点评购买须知/提示语)...
  4. mysql join越多性能_mysqljoin的原理和优化
  5. fscanf不读取_NCNN-Breakdown(3) 读取网络的proto信息
  6. c语言学习-使用指针对三个变量互相赋值
  7. OpenShift 4 之 GitOps(6)用ArgoCD部署MongoDB主从集群
  8. Python生成器和类
  9. arduino支持python吗_python能给arduino的板子编程吗?stm32支持吗?什么游戏引擎支持python?...
  10. 图片裁剪(cropperjs)