深入解析反射访问控制列表

默认情况下,访问控制列表并不会追踪会话状态。访问列表包含了一系列允许和拒绝的规则,这些规则会从上到下进行扫描。一旦某个条件匹配,就会执行相应的操作,并且不再继续匹配其他条件。

对于一个小型的办公网络来说,反射访问控制列表可以充当有状态防火墙的角色,因为它只允许由网络内部发起的流量通过,并拒绝来自网络外部的其他数据包。

什么是反射访问控制列表?

反射访问控制列表是一种特殊的访问列表,它仅允许针对网络内部发起的会话的数据包进行回复(从外部网络返回)。

工作原理

当一个会话在网络内部发起,并通过运行反射访问控制列表的路由器流向外部网络时,反射访问控制列表会被触发。因此,它会为这些由网络内部发起的流量创建一个临时条目,并仅允许属于该会话(即由网络内部产生的流量)的外部流量进入。当会话结束时,这个临时条目会被自动移除。

临时条目的特征

  • 该条目指定的源地址和目的地址与原始出站数据包(流向外部的数据包)相同,只是当数据包从外部返回时,源地址和目的地址互换了。
  • 这些条目应具有与原始出站数据包相同的源端口和目的端口号,同样,当数据包从外部返回时,它们也是互换的。
  • 该条目使用的协议应与原始出站数据包的协议相同。

反射访问控制列表的特征

  • 反射访问控制列表必须嵌套在命名的扩展访问控制列表内部。
  • 它不能直接应用在接口上。
  • 当会话开始时会生成一个临时条目,并在会话结束时自动销毁。
  • 在访问列表的末尾,它没有隐式的拒绝规则。
  • 就像普通的访问列表一样,如果其中一个条件匹配,将不再评估其他条目。
  • 反射访问控制列表不能使用带编号的访问控制列表来定义。
  • 反射访问控制列表不能使用命名的或带编号的标准访问控制列表来定义。

配置实例

!image

在这个场景中,我们有2台路由器:router1(fa0/0接口IP地址为 10.1.1.1/24,fa0/1接口IP地址为 11.1.1.1/24)和 router2(fa0/0接口IP地址为 11.1.1.2/24,fa0/1接口IP地址为 12.1.1.1/24),以及 PC1(IP地址为 10.1.1.2/24)和 PC2(IP地址为 12.1.1.2/24)。首先,我们需要通过 EIGRP 为所有路由器提供路由,以便 PC 能够互相 ping 通。

在 router1 上配置 Eigrp:

router1(config)#router Eigrp 100
router1(config-router)#network 10.1.1.0
router1(config-router)#network 11.1.1.0
router1(config-router)#No auto-summary

在 router2 上配置 Eigrp:

router2(config)#router Eigrp 100
router2(config-router)#network 11.1.1.0
router2(config-router)#network 12.1.1.0
router2(config-router)#No auto-summary

现在,我们将允许来自网络内部(10.1.1.0 网络)的 IP、TCP 和 UDP 流量通过,并评估来自网络外部(12.1.1.0 和 11.1.1.0 网络)的流量。让我们创建一个名为 reflexive 的访问控制列表,用于处理流向外部的内部流量。

router1(config)#ip Access-list extended reflexive 
router1(config-ext-na)#permit ip any any reflect ip_database
router1(config-ext-nacl)#permit tcp any any reflect tcp_database
router1(config-ext-nacl)#permit udp any any reflect udp_database

在这里,我们允许了 IP、TCP 和 UDP 流量,并将它们分别命名为 ipdatabase、tcpdatabase 和 udp_database。

注意:

这里的 Reflexive 是访问列表的名称,而不是关键字。现在,我们将此访问控制列表应用到 router1 的 fa0/1 接口的出站方向,以便允许流出的流量通过。

router1(config)#int fa0/1
router1(config-if)#ip access-group reflexive out

接下来,让我们为入站流量(即进入网络的流量)应用一个访问列表。我们应该只允许那些由内部网络(10.1.1.0)发起的流量进入。

router1(config)#ip access-list extended reflexive_in
router1(config-ext-nacl)#permit Eigrp any any
router1(config-ext-nacl)#evaluate tcp_database
router1(config-ext-nacl)#evaluate udp_database
router1(config-ext-nacl)#evaluate ip_database

在这里,我们允许了 Eigrp 流量,以确保路由器之间的可达性,否则没有流量能够返回到内部网络。

我们评估了 udpdatabse、ipdatabase 和 tcp_database,以便允许由网络内部发起的流量(TCP、UDP 或 IP)通过。现在,让我们将其应用到 fa0/1 接口的入站方向,因为进入的流量需要被评估。

router1(config)#int fa0/1
router1(config-if)#ip access-group reflexive_in in

这里的 reflexive_in 就是访问列表的名称。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/27655.html
点赞
0.00 平均评分 (0% 分数) - 0