NAT 网络地址转换

全称:Network Address Translation

为什么需要NAT?

因为公网IP(IPv4)地址紧缺,内容地址通过NAT转换成一个公有地址去访问公网资源;

如下图展示:

私有地址列表

  • A类: 10.0.0.0/8
  • B类: 172.16.0.0/16
  • C类: 192.168.1.0/24
名词 解释
内部本地 转换之前内部原地址的名字
外部本地 转换之前目标主机的名字
内部全局 转换之后内部主机的名字
外部全局 转换之后外部目标主机的名字

NAT的三种类型

1、静态NAT

内部本地地址与内部全局地址进行一对一的明确转换。这种方法主要用在内部网络中有对外提供服务的服务器,如WEBMAIL服务器时。该方法的缺点是需要占独宝贵的合法IP地址。即如果某个合法IP地址已经被NAT静态地址转换定义,即使该地址当前没有被使用,也不能被用作其他的地址转换。

配置:

Router(config)#ip nat inside source static local-ip globl-ip

  • Establishes static translation between an inside local address and an inside global address

Router(config)#ip nat inside

  • Marks the interface as connected to the inside

Router(config)#ip nat outside

  • Marks the interface as connected to the outside

Router(config)#show ip nat translations

  • Displays active translations

案例:
如下图:

2、动态NAT

动态地址转换也是将内部本地地址与内部全局地址进行一对一的转换。但是是从内部全局地址池中动态的选择一个未使用的地址对内部本地地址进行转换。该地址是由未被使用的地址组成的地址池中在定义时排在最前面的一个当数据传输完毕后,路由器将把使用完的内部全局地址放回到地址池中,以供其他内部本地地址进行转换。但是在改地址被使用时,不能用改地址再进行一次转换。

配置:

Router(config)#ip nat poll name start-ip end-ip {netmask netmask | prefix-length prefix-length}

  • Defines a pool of global addresses to be allocated as needed

Router(config)#access-list access-list-number permit source [source-wildcard]

  • Defines a standard IP ACL permitting those inside local addresses that are to be translated

Router(config)#ip nat inside source list access-list-number pool name

  • Establishes dynameic source translation, specifying the ACL that was defined in the previous step

Router(config)#show ip nat translations

  • Displays active translations

案例:

3、端口复用(PAT)

  • 服用地址转换也称为端口地址转换(Port Address Translation, PAT),首先是一种动态地址转换,路由器将通过几率地址、应用程序端口等唯一标示一个转换。通过这种转换,可以使多个内部本地地址同时与同一个内部全局地址进行转换并对外部网络进行访问。很多只申请到少量IP地址甚至只有一个合法IP、地址,却京城有很多用户同时要求上午的情况,这转换方式非常有用;
  • 理想状态下,一个单一的IP地址可以使用的端口为4000个

配置:

Router(config)#access-list access-list-number permit source source-wildcard

  • Defines a standard IP ACL that will permit the inside local addresses that are to be translated

Router(config)#ip nat inside source list access-list-number interface interface overload

  • Establishes dynameic source translation, specifying the ACL that was defined in the previous step

Router(config)#show ip nat translations

  • Displays active translations

案例:

NAT试验

按照下图中的网络拓扑进行配置:

同样server和PC均使用路由来代替,需要一下配置:

no ip routing
ip default-gateway xxx.xxx.xxx.xxx

注:如果没有配置no ip routing,则默认网关的配置不生效;

下面进行配置:

Server配置:

R2>en
R2#conf t
R2(config)#hostname Server
Server(config)#int f 0/0
Server(config-if)#ip add 192.168.1.100 255.255.255.0
Server(config-if)#no sh
Server(config-if)#exit
Server(config)#no ip routing
Server(config)#ip default-gateway 192.168.1.254
Server(config)#line vty 0 4
Server(config-line)#pass
Server(config-line)#password sijiayong

服务器配置了vty,等下需要测试telnet连接;

PC配置:

R1>en
R1#conf t
R1(config)#hostname PC
PC(config)#int f 0/0
PC(config-if)#ip add 192.168.1.1 255.255.255.0
PC(config-if)#no sh
PC(config-if)#exit
PC(config)#no ip routing
PC(config)#ip default-gateway 192.168.1.254

路由配置:

R3>en
R3#conf t
Router(config)#hostname Gateway
Gateway(config)#int f 0/0
Gateway(config-if)#ip add 192.168.1.254 255.255.255.0
Gateway(config-if)#no sh
Gateway(config-if)#exit
Gateway(config)#int s 1/0
Gateway(config-if)#ip add 10.0.0.1 255.255.255.0
Gateway(config-if)#no sh
Gateway(config-if)#exit
Gateway(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.2
Gateway(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Gateway(config)#ip nat inside source list 1 interface s1/0 overload
Gateway(config)#int f 0/0
Gateway(config-if)#ip nat inside
Gateway(config-if)#int s 1/0
Gateway(config-if)#ip nat outside
Gateway(config-if)#end

模拟外网配置:

R4>en
R4#conf t
R4(config)#hostname Internet
Internet(config)#int s 0/0
Internet(config-if)#ip add 10.0.0.2 255.255.255.0
Internet(config-if)#no sh

这样配置,服务器和PC就都可以访问外网地址10.0.0.2

测试:

PC#ping 10.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/25/76 ms


Server#ping 10.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/15/40 ms

验证通过;

实验要求2:

要求公网能够通过10.0.0.3的公网地址,连接到服务器Server,也就是能够telnet连接到服务器;

这样只需要配置路由器,吧10.0.0.3映射到192.168.1.100地址上即可;
配置如下:

Gateway(config)#ip nat inside source static 192.168.1.100 10.0.0.3

这个映射的配置,就可以了,通过10.0.0.1的公网进行测试pingtelnet

Internet#ping 10.0.0.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/27/80 ms
Internet#telnet 10.0.0.3
Trying 10.0.0.3 ... Open
User Access Verification
Password:
Server>exit
[Connection to 10.0.0.3 closed by foreign host]

测试通过;

但同时发现有个危险,这种配置,是把Server服务器整个暴露在公网上,存在安全隐患;

常规工作中,一般只需要对公网暴露一个或者两个端口,一般都是Http80端口和SSH22端口,这样更能够保障服务器的安全;

本次以开放telnet23端口进行测试;
首先要删除掉当前的nat配置,然后在进行端口映射;
配置如下:

Gateway(config)#no ip nat inside source static 192.168.1.100 10.0.0.3
Gateway(config)#ip nat inside source static tcp 192.168.1.100 23 10.0.0.3 8080

这里对外暴露的是8080端口,映射到内网地址的192.168.1.10023端口上,下面进行telnet测试。

Internet#telnet 10.0.0.3 8080
Trying 10.0.0.3, 8080 ... Open
User Access Verification
Password:
Server>exit
[Connection to 10.0.0.3 closed by foreign host]

测试通过,至此,配置完成;

CCNA 之 十一 NAT 子网地址转换的更多相关文章

  1. NAT(地址转换技术)学习

    一.什么是NAT,NAT产生的背景 NAT通常部署在一个组织的网络出口位置,通过将内部网络IP地址替换为出口的IP地址提供公网可达性和上层协议的连接能力. NAT产生的背景是为了解决IPv4地址不足的 ...

  2. NAT地址转换原理全攻略

    NAT转换方式及原理 在NAT的应用中,可以仅需要转换内部地址(就是“内部本地址”转换成“内部全局地址”),这是最典型的应用,如内部网络用户通过NAT转换共享上网:也可以是仅需要转换外部地址(就是“外 ...

  3. 【转帖】NAT类型及转换原理深入剖析

    NAT类型及转换原理深入剖析 http://www.m6000.cn/other/459.html  2018年8月4日16:40:14发表评论 297 views 大家都知道.NAT是位于内.外网之 ...

  4. 清除路由器NAT地址转换

    首先当你的NAT网络地址转换成功搭建起来,并且测试过网络通信时,此时NAT地址转换表上面是存在转换信息的,你可以通过在特权模式下输入命令"show ip nat translation&qu ...

  5. 手把手系列:实现Nat地址转换

    1.实验目的: 掌握内网中的主机C1连接到Internet时,通过NAT实现私有全局地址转换.   2.实验拓扑: 3.实验步骤: 步骤一:给主机C1和C2配置IP地址.子网掩码和网关.如图: C1: ...

  6. iptables配置——NAT地址转换

    iptables nat 原理同filter表一样,nat表也有三条缺省的"链"(chains): PREROUTING:目的DNAT规则 把从外来的访问重定向到其他的机子上,比如 ...

  7. 网络防火墙和NAT地址转换

    网络防火墙 iptables/netfilter网络防火墙: (1) 充当网关 (2) 使用filter表的FORWARD链 注意的问题: (1) 请求-响应报文均会经由FORWARD链,要注意规则的 ...

  8. 云计算--网络原理与应用--20171123--网络地址转换NAT

    NAT的概述 NAT的配置 实验 一. NAT的概述 NAT(Network address translation,网络地址转换)通过将内部网络的的私有地址翻译成全球唯一的共有网络IP地址,是内部网 ...

  9. 神州数码NAT地址转换配置

    实验要求:熟练掌握NAT地址转换的配置方法 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface s0/1 进入端口 ip ad ...

随机推荐

  1. 20190723_C中使用API函数

    学习关于API函数的格式 #include <stdlib.h> #include <string.h> #include <stdio.h> #pragma wa ...

  2. regexp盲注的一些改进

    index.php?id=1 and 1=(SELECT 1 FROM information_schema.tables WHERE TABLE_SCHEMA="blind_sqli&qu ...

  3. F#周报2019年第45期

    新闻 邀请博客主们:2019年的F# Advent日历 宣告ML.NET 1.4 .NET Core与Jupyter笔记本 在Jupyter笔记本中使用ML.NET 用于Windows桌面的.NET ...

  4. 问题 L: 「Usaco2005 Feb」竞选划区O(∩_∩)O 纯属的暴力

    题目描述 农场被划分为5x5的格子,每个格子中都有一头奶牛,并且只有荷斯坦(标记为H)和杰尔西(标记为J)两个品种. 如果一头奶牛在另一头上下左右四个格子中的任一格里,我们说它们相连. 奶牛要大选了. ...

  5. 易初大数据 2019年11月14日 spss笔记 王庆超

    “均匀分布”的随机数 需要打开本章的数据文件“sim.sav.”. 1.设置随机数种子 1选择[转换]--[随机数字生成器],勾选‘设置起点’,并在‘固定值’ 的下‘值’中输入一个用户给定的数值.该数 ...

  6. 简单的倒叙应用---倒序打印字符串(C语言)

    void reverseStr(char* str){ if(*str=='\0'){ return; } reverseStr(str+1); printf("%c\n",*st ...

  7. 用c语言打印一个三角形

    #define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h&g ...

  8. (二十六)golang--切片

    基本介绍: 切片是数组的引用: 切片的使用和数组类似: 切片的长度是可以变化的: 切片的定义 var a []int,注意和数组定义的区别: 切片不仅可以使用len函数,还有cap函数来计算切片的容量 ...

  9. abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之一(二十七)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  10. nyoj 76-超级台阶 (递推)

    76-超级台阶 内存限制:64MB 时间限制:1000ms 特判: No 通过数:8 提交数:12 难度:3 题目描述: 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共 ...