[CCNA图文笔记]-31-NAT协议实例详解

0×1.NAT概述
简单的来说,NAT是将私有IP地址通过边界路由转换成外网IP地址,在边界路由的NAT地址转换表中记录下这个转换,当外部数据返回时,路由使用NAT技术查询NAT转换表,再将目标地址替换成内网用户IP地址。
RFC1918规定了三块专有的地址,作为私有的内部组网使用:
A类:10.0.0.0—10.255.255.255B类:172.16.0.0—172.31.255.255C类:192.168.0.0—192.168.255.255
这三块私有地址本身是可路由的,只是公网上的路由器不会转发这三块私有地址的流量;当一个公司内部配置了这些私有地址后,内部的计算机在和外网通信时,公司的边界路由会通过NAT或者PAT技术,将内部的私有地址转换成外网IP,外部看到的源地址是公司边界路由转换过的公网IP地址,这在某种意义上也增加了内部网络的安全性。
三种常用的NAT技术:
静态NAT:静态NAT就是一对一的NAT,内部有多少私有地址需要和外部通信,就要配置多少外网IP地址与其对应。动态NAT:动态NAT是在路由器上配置一个外网IP地址池,当内部有计算机需要和外部通信时,就从地址池里动态的取出一个外网IP,并将他们的对应关系绑定到NAT表中,通信结束后,这个外网IP被释放,可供其他内部IP转换使用,这和DHCP租约IP有相似之处。PAT(Port address Translation,端口地址转换,也叫端口地址复用):这是最常用的NAT技术,也是IPv4能维持到今天的最重要原因之一,它提供了一种多对一的方式,对多个内网IP地址,边界路由可以给他们分配一个外网IP,利用这个外网IP的不同端口(不同的端口对应不同的内网IP)和外部进行通信。
0×2.在Cisco路由器上配置NAT
a.如何配置静态NAT
请看下面这张拓扑图,VPC1和PVC2是使用VPCS模拟的两台计算机,连接在GNS3中的不可网管二层交换机上(Ethernet switch),它们处于同一个内网环境,路由均为c3640,R1是这个内网的边界路由,R2是公网上的一台路由器(可以看做是ISP的路由器),各设备IP配置如图所示:


图1

通过在R1上配置静态NAT,让VPC1和VPC2通过两个静态分配的公网IP和R2通信。
首先配置VPCS中的两台虚拟计算机的IP:
1

VPCS> set pcname VPC1

2

VPC1>
ip
192.168.1.2 24 192.168.1.1

3

Checking for duplicate
address
...

4

PC1 : 192.168.1.2 255.255.255.0 gateway 192.168.1.1

5

6

VPC2>
ip
192.168.1.3 24 192.168.1.1

7

PC2 : 192.168.1.3 255.255.255.0 gateway 192.168.1.1

配置R1使用静态NAT:
01

/配置内网网关接口/

02

R1(config)#
int
fa 1/0

03

R1(config-if)#
ip
add
192.168.1.1 255.255.255.0

04

05

/这个接口是内网接口,需要配置成NAT对内接口/

06

R1(config-if)#
ip
nat
inside

07

R1(config-if)#
no
shut

08

09

/配置与ISP相连的外网接口/

10

R1(config-if)#
int
s 0/0

11

R1(config-if)#
ip
add
12.1.1.1 255.255.255.0

12

13

/配置成NAT对外接口/

14

R1(config-if)#
ip
nat
outside

15

R1(config-if)#
no
shut

16

R1(config-if)#
exit

17

18

/配置静态转换条目,每个内网IP需要和一个外网IP对应/

19

R1(config)#
ip
nat
inside
source
static
192.168.1.2 12.1.1.20

20

R1(config)#
ip
nat
inside
source
static
192.168.1.3 12.1.1.30

21

R1(config)#
end

配置R2:
1

R2(config)#
int
s 0/0

2

R2(config-if)#
ip
add
12.1.1.2 255.255.255.0

3

R2(config-if)#
no
shut

4

R2(config-if)#
end

5

6

/在R2上开启ICMP调试/

7

R2#debug
ip
icmp

8

ICMP packet debugging is on

在VPCS上面进行Ping测试:
01

/使用192.168.1.3去Ping/

02

VPC2>
ping
12.1.1.2

03

12.1.1.2 icmp_seq=1 ttl=254 time=78.000 ms

04

05

/*

06

  • R2上的ICMP调试输出显示,echo reply的目的地址是12.1.1.30,

07

  • 说明R1上的静态NAT是成功的,成功将VPC2的私有IP转换成了公网IP。

08

*/

09

R2#

10

*Mar 1 00:10:08.383: ICMP: echo reply sent, src 12.1.1.2, dst 12.1.1.30

11

12

/使用192.168.1.2去Ping/

13

VPC1>
ping
12.1.1.2

14

12.1.1.2 icmp_seq=1 ttl=254 time=125.000 ms

15

16

/R2显示/

17

R2#

18

*Mar 1 00:10:24.751: ICMP: echo reply sent, src 12.1.1.2, dst 12.1.1.20

查看R1 NAT地址转换表:
1

R1#
show
ip
nat
translations

2

Pro Inside global Inside local Outside local Outside global

3

--- 12.1.1.20 192.168.1.2 --- ---

4

--- 12.1.1.30 192.168.1.3 --- ---

静态NAT的缺点就是每个内网IP要占用一个外网IP,就算这台终端现在处于关闭状态,这个外网IP也被静态分配占用着,动态NAT可以很好的解决这个问题。
b.如何配置动态NAT
使用上面的图1作为拓扑,图中VPC1、VPC2和R2的配置保持不变,重新配置R1,使用动态NAT:
01

R1(config)#
int
fa 1/0

02

R1(config-if)#
ip
add
192.168.1.1 255.255.255.0

03

R1(config-if)#
ip
nat
inside

04

R1(config-if)#
no
shut

05

06

R1(config-if)#
int
s 0/0

07

R1(config-if)#
ip
add
12.1.1.1 255.255.255.0

08

R1(config-if)#
ip
nat
outside

09

R1(config-if)#
no
shut

10

11

/*

12

  • 配置外网地址池,poolname1是这个地址池的自定义名称,

13

  • 外网地址池范围从12.1.1.20-12.1.30,11个可用于转换的IP地址,

14

  • 子网掩码24位。

15

*/

16

R1(config)#
ip
nat
pool
poolname1 12.1.1.20 12.1.1.30 netmask 255.255.255.0

17

18

/*

19

  • 设置一个ACL来允许哪些内网IP被转换,

20

  • 这里是192.168.1.0/24网段都允许被转换。

21

*/

22

R1(config)#
access-list
1
permit
192.168.1.0 0.0.0.255

23

24

/开启动态NAT,允许ACL 1中的私有地址转换成poolname1中的外网IP/

25

R1(config)#
ip
nat
inside
source
list 1
pool
poolname1

26

R1(config)#
end

在VPCS中Ping测试:
01

VPC1>
ping
12.1.1.2

02

12.1.1.2 icmp_seq=1 ttl=254 time=94.000 ms

03

04

/R2的ICMP调试输出/

05

R2#

06

*Mar 1 00:43:05.727: ICMP: echo reply sent, src 12.1.1.2, dst 12.1.1.20

07

08

VPC2>
ping
12.1.1.2

09

12.1.1.2 icmp_seq=1 ttl=254 time=78.000 ms

10

11

/R2的ICMP调试输出/

12

R2#

13

*Mar 1 00:43:18.431: ICMP: echo reply sent, src 12.1.1.2, dst 12.1.1.21

14

15

/查看R1的NAT转换表/

16

R1#
show
ip
nat
translation

17

Pro Inside global Inside local Outside local Outside global

18

--- 12.1.1.20 192.168.1.2 --- ---

19

--- 12.1.1.21 192.168.1.3 --- ---

20

R1#

NAT动态转换介绍完了,下面介绍PAT端口转换。
c.如何配置PAT
图1中其他设备配置保持不变,重设R1(右击R1,stop->start),配置PAT:
01

R1(config)#
int
fa 1/0

02

R1(config-if)#
ip
add
192.168.1.1 255.255.255.0

03

R1(config-if)#
ip
nat
inside

04

R1(config-if)#
no
shut

05

R1(config-if)#
int
s 0/0

06

R1(config-if)#
ip
add
12.1.1.1 255.255.255.0

07

R1(config-if)#
ip
nat
outside

08

R1(config-if)#
no
shut

09

R1(config-if)#
exit

10

11

/配置允许转换的内部地址范围/

12

R1(config)#
access-list
1
permit
192.168.1.0 0.0.0.255

13

14

/ACL1中允许的私有IP地址将会共用R1的s0/0接口外网IP地址/

15

R1(config)#
ip
nat
inside
source
list 1
interface
s 0/0
overload

16

R1(config)#
end

在VPCS中Ping测试:
01

VPC2>
ping
12.1.1.2

02

12.1.1.2 icmp_seq=3 ttl=254 time=78.000 ms

03

04

VPC2> 1

05

VPC1>
ping
12.1.1.2

06

12.1.1.2 icmp_seq=2 ttl=254 time=94.000 ms

07

08

/在R2中显示相同的ICMP调试信息/

09

R2#

10

*Mar 1 00:56:43.723: ICMP: echo reply sent, src 12.1.1.2, dst 12.1.1.1

11

12

/查看R1的PAT转换表,可以看到内部IP地址使用了外网IP不同的端口/

13

R1#
show
ip
nat
translations

14

Pro Inside global Inside local Outside local Outside global

15

icmp 12.1.1.1:17252 192.168.1.2:17252 12.1.1.2:17252 12.1.1.2:17252

16

icmp 12.1.1.1:21092 192.168.1.3:21092 12.1.1.2:21092 12.1.1.2:21092

PAT的基本配置就是这样,下面介绍如何将内网IP的某端口静态映射到外网IP的某端口。
d.如何配置静态端口映射
在图1中,假设VPC1上面架设了TFTP服务,外网要访问VPC1的TFTP服务就需要将VPC1(192.168.1.2)的69端口映射到外网s0/0(12.1.1.1)的某个端口上,请看下面的实际操作:

1

/添加静态端口映射,TFTP使用的是UDP的69号端口/

2

R1(config)#
ip
nat
inside
source
static
udp 192.168.1.2 69 12.1.1.1 69

3

R1(config)#
end

4

5

/查看NAT转换表/

6

R1#
show
ip
nat
translations

7

Pro Inside global Inside local Outside local Outside global

8

udp 12.1.1.1:12345 192.168.1.2:69 --- ---

配置完这个静态映射后,外网的用户只需要访问12.1.1.1:69就能访问到内网的192.168.1.2:69,即可通过外网IP访问到内网VPC1的TFTP服务了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容