• 链路负载均衡之DNS透明代理


    一、DNS透明代理

    一般来说,企业的客户端上都只能配置一个运营商的DNS服务器地址,DNS服务器通常会将域名解析成自己所在ISP内的Web服务器地址,这将导致内网用户的上网流量都集中在一个ISP的链路上转发,最终可能会造成链路拥塞,影响用户的上网体验。同时,由于其他ISP的链路资源没有被使用,也造成了资源的浪费。

    为了解决上述问题,可以使用DNS透明代理功能。防火墙配置DNS透明代理功能后,对于命中DNS透明代理策略的DNS请求报文,防火墙会根据DNS请求报文选择的出接口,修改请求报文的目的地址(DNS服务器地址),即将其修改为其他ISP内的DNS服务器地址,DNS请求被转发到不同的ISP,解析后的Web服务器地址也就属于不同的ISP,所以上网流量将通过不同的ISP链路转发,充分利用了所有链路资源。

    二、DNS透明代理策略

    管理员通过DNS透明代理策略来定义哪些DNS请求报文是否需要代理。DNS透明代理策略的具体规则如下:

    ①定义DNS请求报文的源和目的地址,默认为any,并执行配置的动作;

    ②各个匹配条件之间是“与”的关系,与安全策略类似;

    ③一个匹配条件中如果可以配置多个值,与安全策略类似;

    ④防火墙可以有多条DNS透明代理策略,DNS请求报文将按照策略的配置顺序依次进行匹配;

    ⑤只要匹配到其中一条策略,就按照此策略的动作进行处理,不再继续匹配剩余的其他策略。

    注意:防火墙默认提供了一个DNS透明代理策略"default",所有报文不做代理,default位于策略列表的最底部,优先级最低。

    三、DNS透明代理处理流程

    1、DNS请求报文命中DNS透明代理策略后,对于需要做DNS透明代理的报文,防火墙首先判断待解析的域名是否为排除域名:

    (1)若是排除域名,防火墙不会做DNS透明代理;

    ①对于排除域名,若需要更换DNS服务器来解析该域名,则防火墙会将DNS请求报文的目的地址修改为指定DNS服务器的地址。

    (2)不是排除域名,防火墙会为报文做一个DNS透明代理标记,此标记用于后续流程的判断。

    2、DNS请求报文根据智能选路或者普通静态/动态路由选路选择出接口。

    优先级关系为:DNS透明代理自身配置的智能选路方式> 策略路由> 全局选路策略 > 普通静态/动态路由选路。

    当出接口上绑定了DNS服务器,且报文有DNS透明代理标记时,防火墙才会做DNS透明代理。两个条件中有一个不满足时,FW都不会做DNS透明代理

    注意:

    防火墙在每个出接口上最多绑定2个DNS服务器,一个为首选DNS服务器,一个为备用DNS服务器,它们都属于该出接口直连的ISP网络。只有当首选DNS服务器的状态为DOWN时,才使用备用DNS服务器的地址进行替换。

    可配置健康检查,检查主用DNS服务器是否故障,当首选DNS服务器和备用DNS服务器都不可用,则DNS透明代理不生效。

    四、DNS透明代理配置

    某企业分别从ISP1和ISP2租用了一条链路,ISP1链路的带宽为100M,ISP2链路的带宽为50M。ISP1的DNS服务器地址为8.8.8.8和8.8.8.9,ISP2的DNS服务器地址为9.9.9.8和9.9.9.9。内网用户客户端的DNS服务器地址均设置为10.10.10.10。

    企业提出对应的需求如下:

    ①192.168.1.0/24网段内网用户的上网流量按照2:1的比例分配到ISP1和ISP2链路,保证各条链路得到充分利用且不会发生拥塞,提升内网用户的上网体验。

    ②内网用户访问域名www.example.com时,不做DNS透明代理,但是要在指定的DNS服务器(8.8.8.10)上解析该域名对应的Web服务器地址。

    ③当一条ISP链路过载(阈值为90%)时,可以使用另一条ISP链路进行流量转发。

    1、配置思路

    ①内网用户的上网流量按照2:1的比例分配到ISP1和ISP2链路,智能选路的方式设置为根据链路带宽负载分担的全局选路策略;

    ②健康检测(可选,模拟器无法实现,忽略);

    ③配置接口的IP地址、安全区域、网关地址、带宽和过载保护阈值,并在接口上应用健康检查;

    ④配置基本的安全策略,允许企业内网用户访问外网资源。

    ⑤配置ISP选路功能。制作isp1.csv和isp2.csv两个ISP地址文件,并上传到防火墙上;

    ⑥配置DNS透明代理功能。在出接口上绑定DNS服务器地址,配置DNS透明代理策略来指定做DNS透明代理的流量,并配置要排除的域名;

    ⑦配置全局选路策略。配置智能选路方式为根据链路带宽负载分担,并指定FW和ISP1、ISP2网络直连的出接口作为智能选路成员接口;

    2、配置步骤

    ①配置ISP1和ISP2链路的健康检查功能;

    进入对象——健康检查——新建

    1. healthcheck enable
    2. healthcheck name ISP1_health
    3. destination 1.1.1.2 interface GigabitEthernet 1/0/1 protocol tcp
    4. healthcheck name ISP2_health
    5. destination 2.2.2.2 interface GigabitEthernet 1/0/2 protocol tcp

    ②配置接口的IP地址、安全区域、网关地址、带宽和过载保护阈值,并在接口上应用健康检查(存在BUG,忽略)

    1. interface g1/0/1
    2. ip address 1.1.1.1 24
    3. gateway 1.1.1.254
    4. bandwidth ingress 100000 threshold 90
    5. bandwidth egress 100000 threshold 90
    6. healthcheck ISP1_health
    7. interface g1/0/2
    8. ip address 2.2.2.1 24
    9. gateway 2.2.2.254
    10. bandwidth ingress 50000 threshold 90
    11. bandwidth egress 50000 threshold 90
    12. healthcheck ISP2_health
    1. interface g1/0/0
    2. ip address 192.168.1.254 24
    3. firewall zone trust
    4. add interface G1/0/0
    5. firewall zone untrust
    6. add interface G1/0/1
    7. add interface G1/0/2

    ③配置基本的安全策略,允许企业内网用户访问外网资源

    1. security-policy
    2. rule name trust_to_untrust
    3. source-zone trust
    4. destination-zone untrust
    5. source-address 192.168.1.0 mask 255.255.255.0
    6. service any
    7. action permit

    ④配置ISP选路功能。制作isp1.csv和isp2.csv两个ISP地址文件,并上传到防火墙上

    1. ip name isp1 set filename isp1.cv
    2. ip name isp2 set filename isp2.cv
    3. ip route-isp isp1 interface g1/0/1 1.1.1.2
    4. ip route-isp isp2 interface g1/0/2 2.2.2.2

    ⑤配置DNS透明代理功能。在出接口上绑定DNS服务器地址,配置DNS透明代理策略来指定做DNS透明代理的流量,并配置要排除的域名

    1. [USG6000V1]dns-transparent-policy
    2. [USG6000V1-policy-dns]dns-transparent-policy enable
    3. [USG6000V1-policy-dns]display this
    4. 2024-03-04 09:00:45.470
    5. #
    6. dns-transparent-policy
    7. rule name DNS_policy
    8. source-address 192.168.1.0 mask 255.255.255.0
    9. action tpdns
    10. #
    11. [USG6000V1-policy-dns]dns server bind interface gigabitethernet 1/0/1 preferred 8.8.8.8 alternate 8.8.8.9 health-check enable
    12. [USG6000V1-policy-dns]dns server bind interface gigabitethernet 1/0/2 preferred 9.9.9.8 alternate 9.9.9.9 health-check enable
    13. [USG6000V1-policy-dns]dns transparent-proxy exclude domain www.example.com serve
    14. r preferred 8.8.8.10

    ⑥配置全局选路策略。配置智能选路方式为根据链路带宽负载分担,并指定FW和ISP1、ISP2网络直连的出接口作为智能选路成员接口

    1. multi-interface
    2. mode proportion-of-bandwidth
    3. add interface GigabitEthernet 1/0/1
    4. add interface GigabitEthernet 1/0/2
    5. load-balance flow hash source-ip

    参考资料:防火墙和VPN技术与实践——李学昭

  • 相关阅读:
    强化训练:day4
    RPC機制 exactly one 問題
    2023.11.18html中如何使用input/button进行网页跳转
    代码随想录算法训练营第23期day2 | 977.有序数组的平方 、209.长度最小的子数组、59.螺旋矩阵II
    卫星图像应用 - 洪水检测 使用DALI进行数据预处理
    8 - 函数
    Pytorch CPU版本安装教程
    2023云栖大会,Salesforce终敲开中国CRM市场
    HuggingFace——Tokenizer的简单记录
    Java HttpClient-Restful 工具各种请求高度封装提炼总结及案例
  • 原文地址:https://blog.csdn.net/Mario_Ti/article/details/136453097