防火墙相关概念讲解

概念关联

包过滤是防火墙的基本功能,包过滤防火墙本质上是一个特殊的路由器,通过检查数据的五元组(源IP地址、目的IP地址、协议号、源端口、目的端口)来丢弃一部分网络流量,相当于在网络层和传输层对数据进行过滤。防火墙通过安全域来划分网络,标识报文流动的路线,一个安全域是若干接口所连网络的集合,这些网络中的用户具有相同的安全属性。接口用于防火墙与网络中其他设备之间的互联,其功能就是完成设备之间的数据交换。防火墙可以根据IP路由协议生成路由表,并根据路由表转发数据包,有时候指定数据发送出接口即隐含指定了下一跳地址。

安全区域(Security Zone),或者简称为区域(Zone),是设备所引入的一个安全概念,大部分的安全策略都基于安全区域实施。

定义

一个安全区域是若干接口所连网络的集合,这些网络中的用户具有相同的安全属性。

管理员可以在配置接口的时候直接将接口加入已存在的安全区域。但如果安全区域需要新建,可以在新建安全区域后再将接口加入该安全区域

目的

在网络安全的应用中,如果网络安全设备对所有报文都进行逐包检测,会导致设备资源的大量消耗和性能的急剧下降。而这种对所有报文都进行检查的机制也是没有必要的。所以在网络安全领域出现了基于安全区域的报文检测机制。

引入安全区域的概念之后,网络管理员可以将具有相同安全级别的网络设备划入同一个安全区域。由于同一安全区域内的网络设备是“同样安全”的,防火墙认为在同一安全区域内部发生的数据流动是不存在安全风险的,不需要实施任何安全策略。只有当不同安全区域之间发生数据流动时,才会触发设备的安全检查,并实施相应的安全策略。

所以防火墙在支持报文直接转发的基础上,还支持了安全区域的创建,并且允许网络管理员在安全区域的基础上实施各种特殊的报文检测与安全功能。

安全级别可通过数字表示,数字越大表示安全级别越高。

接口

接口用于防火墙与网络中其他设备之间的互联,其功能就是完成设备之间的数据交换。防火墙支持的接口分为物理接口和逻辑接口两类。连接到Internet上的设备接口必须有一个全球唯一的IPv4地址。IPv4地址长度为32比特,通常采用点分十进制方式表示,即每个IPv4地址被表示为以小数点隔开的4个十进制整数,每个整数对应一个字节,如10.0.0.1

接口获取IPv4地址的方式:

  • 静态IP 手工配置接口的IPv4地址等信息。
  • DHCP 接口通过DHCP自动获取IPv4地址等信息。
  • PPPoE 接口通过PPP协商方式获取IPv4地址等信息。
  • 借用其他接口的IPv4地址 IPv4地址借用(IPv4 Address Unnumbered)就是在本接口没有IPv4地址的情况下,可以使用其他接口的IPv4地址

接口的默认网关地址

默认网关地址必须与接口的IPv4地址在同一网段。配置该参数后,设备将会生成一条IPv4缺省路由,出接口为当前的接口,下一跳为此处指定的默认网关。

路由器与路由

防火墙可以根据IP路由协议生成路由表,并根据路由表转发数据包

路由器是在OSI第三层,连接两个网络间的设备,它可以将分组报文发送到目标路由地址,基本上也可以连接不同的数据链路。防火墙可根据IP路由协议生成路由表,并根据路由表转发数据包。

路由和路由段

在因特网中进行路由选择要使用路由器,路由器根据所收到的报文的目的地址选择一条合适的路由,将报文传送到下一个路由器,路由中最后的路由器负责将报文送交目的主机。

由于网络大小可能相差很大,而每个路由段的实际长度并不相同,因此对不同的网络,可以将其路由段乘以一个加权系数,用加权后的路由段数来衡量通路的长短。如果把网络中的路由器看成是网络中的节点,把因特网中的一个路由段看成是网络中的一条链路,那么因特网中的路由选择就与简单网络中的路由选择相似了。采用路由段数最小的路由有时也并不一定是最理想的。例如,经过三个高速局域网段的路由可能比经过两个低速广域网段的路由快得多。

路由表

路由器转发报文的关键是路由表。每个路由器中都保存着一张路由表,表中每条路由项都指明报文到某子网或某主机应通过路由器的哪个接口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。

根据来源不同,路由表中的路由通常可分为以下三类:

  • 链路层协议发现的路由(也称为接口路由或直连路由)。
  • 由网络管理员手工配置的静态路由。
  • 动态路由协议发现的路由。路由协议见下图

路由表中包含了下列关键项:

  • 目的地址:用来标识IP包的目的地址或目的网络。
  • 网络掩码:与目的地址一起来标识目的主机或路由器所在的网段的地址。将目的地址和网络掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为10.102.8.10,掩码为255.255.0.0的主机或路由器所在网段的地址为10.102.0.0。掩码由若干个连续“1”构成,既可以以点分十进制表示,也可以用掩码中连续“1”的个数来表示。
  • 出接口:说明IP包将从该路由器哪个接口转发。
  • 下一跳IP地址:说明IP包所经由的下一个路由器。
  • 本条路由加入IP路由表的优先级:针对同一目的地,可能存在不同下一跳的若干条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级高(数值小)将成为当前的最优路由。

后面以静态路由为例作下讲解

静态路由

静态路由适用于网络拓扑结构简单的网络环境。配置静态路由可以在网络的路由选择中实施非常精确的控制,但是当网络发生变化或故障时需要管理员重新进行手工配置。

静态路由的属性及功能

当网络结构比较简单时,只需配置静态路由就可以使网络正常工作。仔细设置和使用静态路由可以精确控制路由选择行为,改进网络的性能,并可为重要的应用保证带宽。

静态路由的缺点在于:当网络发生故障或者拓扑发生变化后,静态路由不会自动改变,必须由管理员进行重新手工配置。

IPv6静态路由与IPv4静态路由类似,也需要管理员手工配置,适合于一些结构比较简单的IPv6网络。

它们之间的主要区别是目的地址和下一跳地址有所不同,IPv6静态路由是使用IPv6地址为下一跳,而IPv4静态路由则使用IPv4地址为下一跳。另外,目前仅IPv4静态路由支持VPN实例。

缺省路由

缺省路由是一种特殊的路由。通常情况下,管理员可以通过手工方式配置缺省路由;但有些时候,也可以使动态路由协议生成缺省路由,如OSPF和IS-IS。

简单来说,缺省路由是在没有找到匹配的路由表入口项时才使用的路由。在路由表中,缺省路由的目的地址和子网掩码都是0.0.0.0。对于IPv6缺省路由的目的地址为::/0(掩码长度为0)。

如果报文的目的地址不能与路由表的任何入口项相匹配,那么该报文将选取缺省路由。如果没有缺省路由且报文的目的地不在路由表中,那么该报文将被丢弃,并向源端返回一个ICMP报文,报告该目的地址或网络不可达。

出接口和下一跳地址

在配置静态路由时,可指定出接口,也可指定下一跳地址,是指定出接口还是指定下一跳地址要视具体情况而定。如对于对于点到点接口,指定发送接口即隐含指定了下一跳地址,这时认为与该接口相连的对端接口地址就是路由的下一跳地址。

实际上,所有的路由项都必须明确下一跳地址。在发送报文时,首先根据报文的目的地址寻找路由表中与之匹配的路由。只有指定了下一跳地址,链路层才能找到对应的链路层地址,并转发报文。

路由聚合

路由聚合的原理是,同一个自然网段内的不同子网的路由在向外(其它网段)发送时聚合成一个网段的路由发送。RIP-1的协议报文中没有携带掩码信息,故RIP-1发布的就是自然掩码的路由。RIP-2支持路由聚合,因为RIP-2报文携带掩码位,所以支持子网划分。

最后上两张从网上截的图,有兴趣可以深入学习研究:

原文发布于微信公众号 - java达人(drjava)

原文发表时间:2019-01-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券