示例:使用监管器管理超额订阅
在接口超额订阅时,您可能想使用监管器,并控制一旦发生拥塞会发生什么。例如,您可能已将服务器连接到交换机,如中 表 1所示。
服务器类型 |
连接 |
IP 地址 |
---|---|---|
网络应用服务器 |
1 千兆位接口 |
10.0.0.1 |
认证服务器 |
1 千兆位接口 |
10.0.0.2 |
数据库服务器 |
10 千兆位接口 |
10.0.0.3 |
在此示例中,用户访问网络应用服务器提供的服务,后者会根据需要从数据库服务器请求信息。在收到用户的请求时,网络应用服务器会首先与身份验证服务器联系,以验证用户的凭据。在对用户进行身份验证且网络应用程序服务器提供请求的服务时,从数据库服务器发送到应用服务器的所有数据包都必须通过连接到应用服务器的 1 千兆以太网接口两次传输—一次在入口到应用服务器时,再传输一次到用户出口。
用户会话的事件顺序如下所示:
用户连接到应用程序服务器并请求服务。
应用程序服务器请求用户的凭据,并将其中继到身份验证服务器。
如果身份验证服务器验证凭据,应用程序服务器将启动请求的服务。
应用程序服务器请求满足用户从数据库服务器的请求所需的文件。
数据库服务器将请求的文件发送至应用服务器。
应用程序服务器在响应用户时会包含请求的文件。
从数据库服务器到应用服务器的流量可能会使应用服务器所连接的 1 千兆位接口拥塞。这种拥塞可能会阻止服务器响应用户的请求并为用户创建新会话。您可以使用管制来确保这种情况不会发生。
要创建此防火墙配置,请对虚拟服务器执行以下步骤:
创建监管器,在流量超过某些限制时将来自虚拟服务器的流量丢弃到应用服务器:
[edit firewall] user@switch# set policer Database-Egress-Policer if-exceeding bandwidth-limit 400 burst-size-limit 500m user@switch# set policer Database-Egress-Policer then discard
创建过滤器以检查从虚拟服务器到应用程序服务器的流量:
[edit firewall] user@switch# edit family inet filter Database-Egress-Filter
配置过滤器,将监管器应用于出口数据库并运往应用服务器的流量:
[edit firewall family inet filter Database-Egress-Filter] user@switch# set term term-1 from destination-address 10.0.0.1 user@switch# set term term-1 then policer Database-Egress-Policer
如果需要,请配置一个术语以允许从虚拟服务器到其他目标的流量(否则,流量将通过隐式 deny 语句丢弃):
[edit firewall family inet filter Database-Egress-Filter] user@switch# set term term-2 then accept
请注意,省略
from
语句会使术语匹配所有数据包,这是所需的行为。在连接应用服务器的数据库服务器接口上将出口过滤器作为输出过滤器安装:
[edit interfaces] user@switch# set xe-0/0/3 unit 0 family inet filter output Database-Egress-Filter
以下是最终配置的显示方式:
firewall { policer Database-Egress-Policer { if-exceeding { bandwidth-limit 400; burst-size-limit 500m; } then discard; } family inet { filter Database-Egress-Filter { term term-1 { from { destination-address { 10.0.0.1/24; } } then policer Database-Egress-Policer; } term term-2 { # If required, include this term so that traffic from the database server to other destinations is allowed. then accept; } } } ]