@[toc]

1.NAT的概述和原理

1.1 NAT的概述

NAT (Network Address Translation) 又称为网络地址转换,用于实现私有网络和公有网络之间的互访。由于全世界公网的IP地址是有限的,NET可以将私网地址转换成公网地址的技术就显得十分重要。

1.2 NAT的工作原理

  • NAT用来将内网地址和端口号转换成合法的公网地址和端口号,建立一个会话,与公网主机进行通信, NTA外部的主机无法主动跟位于NAT内部的主机通信,NAT内部主机想要通信,必须主动和公网的一个IP通信,路由器负责建立一个映射关系,从而实现数据的转发。

1.3 NAT的功能

  • NAT不仅能解决了IP地址不足的问题,而且还能够有效的避免来自网络外部的进入,隐藏并保护网络内部的计算机

  • 宽带分享 ,这是NAT主机最大的功能

  • 安全防护,NAT之内的PC联机到nternet上面时,他所显示的IP是NAT主机的公网IP,所以client端的PC就具有一定程度的安全了,外界在进行portscan(端口扫描)的时候,就侦测不到源client端的PC
  • 优点:节省公有合法IP地址,处理地址重叠,增强灵活性,安全性

  • 缺点:延迟增大,配置和维护的复杂性,不支持某些应用

    2.静态NAT

  • 静态NAT实现私网地址和公网地址的一对一转换。有多少个私网地址就需要配置多少个公网地址。静态NAT不能节约公网地址,但可以起到隐藏内部网络的作用。 内部网络向外部网络发送报文时,静态NAT将报文的源IP地址替换为对应的公网地址;外部网络向内部网络发送响应报文时,静态NAT将报文的目的地址替换为相应的私网地址。
  • 全局模式
  • 2.png
  • 全局模式下设置静态NAT
    [R1]nat static global 20.0.0.10 inside 192.168.10.10
    [R1 ]int g0/0/1 外网口
    [R1-GigabitEthernet0/0/1]nat static enable
    在网口上启动nat static enable功能
    2.png
    2.png
    内部接口G0/0/2抓包显示:
    4.png
    外部接口G0/0/1抓包显示:
    3.png
    2.png3.png
    直接在接口上声明nat static
    [R1]int g0/0/1 外网口
    [R1-GigabitEthernet0/0/1]nat static global 20.0.0.10 inside 192.168.10.10
    [R1]dis nat static
    查看NAT静态配置信息
    [R1]int g0/0/1
    [R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
    [R1-GigabitEthernet0/0/0]un sh
    [R1]int g0/0/1
    [R1-GigabitEthernet0/0/1]ip add 20.0.0.1 24
    [R1-GigabitEthernet0/0/1]un sh
    [R1-GigabitEthernet0/0/1]nat static global 8.8.8.8 inside 192.168.10.10
    2.png
    2.png
    2.png

    3.动态NAT

    1、配置外部网口和内部网口的IP地址
    2、定义合法IP地址池
    [R1] nat address-group 1 20.0.0.100 20.0.0.200 新建一个名为1的nat地址池
    3、定义访问控制列表
    [R1]acl 2000 创建ACL,允许源地址为192.168.20.0/24网段的数据通过
    [R1-acl-basic-2000]rule permit source 192.168.20.0 0.0.0.255
    4、在外网口上设置动态IP地址转换
    [R1-acl-basic-2000]int g0/0/1 外网口
    [R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat
    将ACL
    2000匹配的数据转换为该接口的IP地址作为源地址(no pat不做端口转换,只做IP地址转换,默认为pat)
    [R1]dis nat outbound 查看NAT Outbound的信息
    2.png

    4.PAT(NATP)端口多路复用

    PAT又称为NAPT (Network Address Port Translation),它实现一个公网地址和多个私网地址之间的映射,因此可以节约公网地址。
    ● PAT的基本原理是将不同私网地址的报文的源IP地址转换为同一公网地址,但他们被转换为该地址的不同端口号,因而仍然能够共享同一地址
    1)作用
    ● 改变数据包的IP地址和端口号

● 能够大量节约公网IP地址

2)类型
● 动态PAT,包括NAPT和Easy IP

● 静态PAT,包括NAT Server

NAPT:多个私网IP地址对应固定外网IP地址(比如200.1.1.10),配置方法与动态NAT类似
NAPT与Easy IP相比,后者会更节约公网IP

4.2 NAPT配置命令

首先设置内部和外部两个接口
3.png
2、定义合法IP地址池
[R1]nat address-group 1 20.0.0.100 20.0.0.100 使用一个固定IP
3、定义访问控制列表
[R1]acl 2000 允许源地址为192.168. 10.0/24网段的数据通过
[R1-acl-adv-2000]rule permit source 192.168.30.0 0.0.0.255
4、在外网口上设置IP地址转换
[R1-acl-basic-2000]int g0/0/1 外网口
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1

2.png3.png
2.png

  1. EasyIp:多个私网IP地址对应外网接口公网IP地址(比如12.0.0.1)
    1、配置外部网口和内部网口的IP地址
    2、定义合法IP地址池
    由于直接实验外网口IP地址所以不用再定义IP地址池
    3、定义访问控制列表
    [R1]acl 3000 允许源地址为192.168.30.0/24网段的数据通过
    [R1-acl-adv-3000]rule permit ip source 192.168.30.0 0.0.0.255
    4、在外网口上设置IP地址转换
    [R1]int g0/0/1 外网口
    [R1-GigabitEthernet0/0/1]nat outbound 3000
    当ac13000匹配的源IP数据到达此接口时,转换为该接口的IP地址做为源地址
    [R1]display nat session all 查看NAT的流表信息
    NAT Server:端口映射,将私网地址端口映射到公网地址,实现内网服务器供外网用户访问
    [R1]int g0/0/1
    [R1-GigabitEthernet0/0/1]nat server protocol tcp global 9.9.9.9 www inside 192.168.10.100 www
    在连接公网的接口上将私网服务器地址和公网地址做一对NAT映射绑定
    [R1-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 800 inside 10.1.1.1 www
    在连接公网的接口上将私网服务器地址和外网接口做一对NAT映射绑定
    [R1-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 2121 inside 10.1.1.2 ftp
    端口为21可以直接使用关键字"ftp"代替

[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 12.0.0.1 24
[R1-GigabitEthernet0/0/1]q
[R1]nat address-group 1 20.0.0.1 20.0.0.1
[R1]acl 2000
[R1-acl-basic-2000]rule permit source any
[R1-acl-basic-2000]q
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
[R1-GigabitEthernet0/0/1]q
[R1]dis nat session all (跟踪)


[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 12.0.0.1 24
[R1-GigabitEthernet0/0/1]q
[R1]acl 2000
[R1-acl-basic-2000]rule permit source any
[R1-acl-basic-2000]q
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000
[R1]dis nat session all


[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 12.0.0.1 24
[R1-GigabitEthernet0/0/1]q
[R1]acl 2000
[R1-acl-basic-2000]rule permit source any
[R1-acl-basic-2000]q
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000
[R1]dis nat session all


[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 12.0.0.1 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1jip add 192.168.20.1 24
[R1-GigabitEthernet0/0/1]q
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0)]nat server protocol tcp global current-interface 8080 inside
接上面 192.168.20.20 80