CCNA-ACL和NAT

  • 访问控制表(access control list,ACL)
    • 配置acl的原则(3p原则)
    • 执行过程
    • 分类
      • 标准acl
      • 扩展acl
      • 命名acl
    • acl的放置位置
    • 配置过程和排错
      • 标准acl配置
      • 扩展acl配置
      • 命名acl配置
      • 排错
    • 复杂acl
      • 动态acl
      • 自反acl
      • 基于时间的acl
  • 网络地址转换(network address translation)
    • 基本概念
      • 内部本地地址
      • 内部全局地址
      • 外部本地地址
      • 外部全局地址
    • 类型及其执行过程
      • 静态nat
      • 动态nat
      • 端口地址转换pat(nat重载)
    • nat的优点和缺点
    • 配置和排错
      • 静态nat配置
      • 动态nat配置
      • 端口地址转换pat配置-单地址
      • 端口地址转换pat配置-nat池
      • 排错

访问控制表(access control list,ACL)

配置acl的原则(3p原则)

每个接口(per port),每个协议(per protocol),每个方向(per direction)只能配置一条acl

执行过程

acl-process需要注意的是如果在一个接口的一个方向如果所有acl规则都不匹配,默认路由器会丢弃该数据包

分类

从根本上来说acl分为两类,他们的区别如下表:


名称 标准acl 扩展acl acl编号 1-99;1300-1999 100-199;2000-2699 控制条件 仅用源ip 协议类型,源ip和端口,目的ip和端口


另外两种acl都可以配置成命名acl,命名acl的好处是直观,并且可以根据编号调整控制表各条语句的相互顺序

acl放置位置

为了提高网络的工作效率,也更精确的控制流量,需要把acl放置的合理的位置。标准访问控制表只能通过源ip地址来决定数据包的通过与否,所以要将其放置到尽可能接近目的网络的位置;扩展访问控制表可以通过源和目的ip以及源和目的端口来控制数据包,所以要把acl放置到尽可能接近源网络的位置

配置和排错

访问控制表建立是在全局模式下而控制表的应用是在接口模式下

标准acl配置

  • #access-list access-list-id permit | deny | remark source-ip-address wildmask 其中remark用于注释控制表
  • #ip access-group access-list-id in | out

扩展acl配置

  • #access-list access-list-id permit | deny | remark protocol-type source-ip wildcard operator port-numb dest-ip wildcard operator port-numb 这里只是列举了部分规则,具体规则根据协议的类型而变化
  • #ip access-group access-list-id in | out

命名acl配置

如上所说命名acl是可以直接通过编号进行编辑控制语句的前后顺序,具体如下

  • #ip access-list standard | extended name
  • #sequence-number permit ** 下面的就和标准和扩展的配置规则一样了

排错

关于排错需要注意的是网络规划和通配符子网掩码的分配,另外明确路由器的隐式拒绝规则,排错命令有sh ip access-list,注释信息需要在running-config下才能看到

复杂acl

复杂acl通过其他策略实现的访问控制,如验证后自动添加一条acl,自反acl也就是只允许由内部发起连接的返回数据流通过的acl,还有基于时间的acl允许数据特定时间段内通过

动态(锁和钥匙)acl

默认使用一条acl阻止所有数据通过,当用户通过telnet登陆并通过身份验证时telnet断开,自动建立一条动态acl允许数据通过,还可以设置超时时间

自反acl

只允许响应内部网络发起的连接的外部数据通过,而拒绝其他的数据

基于时间的acl

相关配置如下:

#time-range acl-name

#periodic Weekday 7:00 to 8:00

#创建acl时就是在扩展acl之后加上一个time-range acl-name

网络地址转换(network address translation)

基本概念


名称 含义 内部本地地址 内部网络分配给主机的地址 内部全局地址 数据包离开nat路由器是的公网ip地址 外部全局地址 分配给外部主机的公网地址 外部本地地址 通常认为和外部全局地址相同


类型和执行过程

静态nat

当数据包从nat路由器发送出去时仅源ip地址被更改,并且nat路由器是参考nat表来更改地址,一个内部地址对应一个外部地址

动态nat

nat路由器上指定一个地址池,由路由器自动分配内部地址对应的外部地址,并且在通信过程中一直保存着这种对应关系

端口地址转换(pat,或者nat重载)

nat路由器同时修改数据包的源ip地址和端口号(合成socket)都更改掉,并且维护着这种对应关系。这里又根据转换后的数据包的源ip地址又有两种情况,单公有ip地址的重载(overload)和公有ip地址池的重载。实际上我们可以把这两种情况想象成灾静态nat和动态nat的基础上加上了重载的特性

nat的优点和缺点

如下表所示


优点 缺点 节省了公有ip地址;提高了连接到公网的灵活性;提供了一致的内部网络编址方案;提供了网络安全性 影响性能,重新封装;影响端到端的功能;无法跟踪端到端的ip地址;一些协议无法工作


配置和排错

静态nat配置

#ip nat inside source inside-address global-address 定义一条nat规则使内网地址和外网地址建立联系

#ip nat inside设置需要转换的接口

#ip nat outside转换后的送出接口

动态nat配置

#ip nat pool pool-name start-addr end-addr netmask net-netmask定义一个nat池

#access-list access-list-id permit net-addr net-netmask定义一个访问控制表来控制需要nat的范围

#ip nat inside source list  access-list-id pool pool-name定义一条nat规则把需要nat的网段范围和供nat用的nat池联系起来

#ip nat inside

#ip nat outside

端口地址转换(pat)配置-单地址

#access-list access-list-id permit net-addr net-netmask

#ip nat inside source list access-list-id interface interface-id overload 定义一条nat规则建立一个网段和一个接口的端口地址转换规则

#ip nat inside

#ip nat outside

端口地址转换(pat)配置-nat池

#access-list access-list-id permit net-addr net-netmask

#ip nat pool pool-name start-addr end-addr netmask net-netmask

#ip nat inside list access-list-id pool pool-name overload 定义一条规则建立一个网段和一个nat池的端口地址转换规则

#ip nat inside

#ip nat outside

排错

可以从以下角度分析问题所在:

  • 检查访问控制表的ip范围
  • 检查nat地址池的范围
  • 确定内部和外部接口分配正确

还有sh ip nat translations查看nat表

Show Comments