01-DNS透明代理配置
本章节下载: 01-DNS透明代理配置 (280.18 KB)
目 录
在企业租用多条出口链路的场景中,DNS透明代理技术可以解决由于客户端的DNS服务器地址配置不均导致的出口流量分配不均的问题。
如图1-1所示,企业内网用户可以通过运营商ISP 1和ISP 2的链路分别访问提供相同Web服务的服务器Web server A和Web server B。通常情况下,企业内网用户都会配置一个相同的DNS服务器地址DNS server A,当企业内网用户通过域名访问Web服务时,DNS请求报文会被发送到客户端配置的DNS sever A上进行解析,通常会解析为同一ISP内Web sever A的IP地址,这将使内网用户的所有流量都通过出接口Interface A对应的链路Link1转发,导致出接口Interface A流量拥塞,而出接口Interface B闲置的情况。
DNS透明代理功能可以忽略客户端DNS服务器的配置,所有DNS请求流量都会由设备统一分配给合适的DNS服务器。设备依据出接口带宽等要素,选出最优出口链路对应的DNS服务器,并将DNS请求报文发往选中的DNS服务器,DNS服务器将其解析为同一ISP内Web服务器的IP地址并返回给内网用户。从而使内网用户的访问流量较为均匀地分配到多条出口链路上,提高了链路带宽资源的利用率,提升了内网用户的上网体验。
图1-1 DNS透明代理原理图
DNS透明代理功能通过在不同ISP的DNS服务器上解析DNS请求报文,从而根据解析结果使业务流量较为均匀地分配到多条出口链路上。如图1-2所示,设备通过改变DNS请求报文的目的地址,将内网用户的DNS请求重定向到最优出口链路对应的DNS服务器上进行解析。
图1-2 DNS透明代理工作流程图
DNS透明代理工作流程简述如表1-1所示。
表1-1 DNS透明代理工作流程简述
步骤 |
描述 |
源IP地址 |
目的IP地址 |
(1) |
内网用户向设备发送DNS请求报文 |
Host's IP |
DNS server A's IP |
(2) |
设备收到DNS请求报文后根据调度算法选出应将此请求分发给哪台DNS服务器 |
- |
- |
(3) |
设备将DNS请求报文的目的IP地址修改为选定的DNS服务器的IP地址 |
Host's IP |
DNS server B's IP |
(4) |
DNS服务器接收并处理DNS请求报文,返回DNS应答报文 |
DNS server B's IP |
Host's IP |
(5) |
设备收到DNS应答报文后,将其源IP地址修改为DNS请求报文中的目的IP地址 |
- |
- |
(6) |
将目的地址转换后的DNS应答报文转发给内网用户 |
DNS server A's IP |
Host's IP |
(7) |
内网用户根据DNS应答报文中的IP地址访问外网服务器 |
Host's IP |
Web server B's IP |
(8) |
外网服务器应答内网用户 |
DNS server B's IP |
Host's IP |
管理员通过配置不同的调度算法,可依据接口带宽或用户信息等不同的流量分配原则,将用户DNS请求报文均衡地分配到各个出口链路对应的DNS服务器进行域名解析处理。DNS透明代理技术支持以下调度算法:
随机算法是将用户的DNS请求随机分发给某台DNS服务器。经过一段时间后,各个DNS服务器的请求数大致相同。
随机算法适用于出接口带宽相近,但每条流所占的出口带宽差别不大的场景。
管理员可为每台参与调度的DNS服务器配置权值。加权轮转算法根据DNS服务器权值的大小,将用户DNS请求依次分发给每台DNS服务器,权值越大,分配的DNS请求越多。
加权轮转算法适用于出接口带宽不同,但每条流所占的出口带宽差别不大的场景。
管理员可为每台参与调度的DNS服务器配置权值。加权带宽算法根据DNS服务器的权值与接口剩余带宽乘积,按比例把DNS请求分发给每台DNS服务器。剩余带宽为接口的最大期望带宽与当前带宽的差值。接口最大期望带宽可通过配置指定,具体请参见1.5 配置接口相关参数。
加权带宽算法适用于出接口带宽不同,且每条流所占带宽差别较大的场景。
设备总是将请求分发给处于空闲状态且剩余带宽最大的出接口对应的DNS服务器。剩余带宽为接口的最大期望带宽与当前带宽的差值。接口最大期望带宽可通过配置指定,具体请参见1.5 配置接口相关参数。
最大带宽算法适用于出接口带宽相近,但每条流所占的出口带宽差别较大的场景。
根据识别报文信息不同,DNS透明代理支持的哈希算法分为源IP地址哈希算法和源IP地址+端口哈希算法。
· 源IP地址哈希算法:设备将具有相同源IP地址的DNS请求分配给相同的DNS服务器。适用于同一源IP地址的DNS请求必须要从同一出接口发送出去的场景。
· 源IP地址+端口哈希算法:设备将具有相同源IP地址和端口的DNS请求分配给相同的DNS服务器。适用于同一源IP地址和端口的DNS请求必须要从同一出接口发送出去的场景。
DNS透明代理配置任务如下:
(1) 配置DNS代理
(2) 配置DNS服务器
(3) (可选)配置接口相关参数
若配置调度算法为加权带宽算法、最大带宽算法,或开启带宽繁忙保护功能是,则需要配置接口相关参数。
DNS代理用来匹配内网用户的DNS请求报文。当配置了DNS代理后,设备会对所有接收到的DNS请求报文进行代理。
管理员需要在DNS代理视图下为指定出接口绑定DNS服务器,同一出接口可以关联多个DNS服务器,但同一DNS服务器只能关联一个出接口。关联的DNS服务器是否参与调度,还取决于DNS服务器的调用优先级和参与调度的DNS服务器的数量限制。优先级最高的DNS服务器优先参与调度,如果DNS服务器数量未到达预设的最低门限,则将次高优先级的DNS服务器均加入调度,依次类推,直至达到预设的最小参与调度个数或没有可用DNS服务器为止。若将某一优先级的DNS服务器均加入调度后,超出了预设的最大参与调度个数,则只加入部分此优先级的DNS服务器,此时最终参与调度的可用DNS服务器个数将为预设的最大参与调度个数。
根据管理员配置的调度算法,设备可依据接口带宽或用户信息等不同的流量分配原则,将用户DNS请求报文分配到各个出口链路对应的DNS服务器进行域名解析处理。
若管理员开启带宽繁忙保护功能,设备选择DNS服务器时,会对DNS服务器对应接口带宽的繁忙状态进行监控。当链路的实际流量超过某个接口的带宽繁忙比(当前带宽与最大期望带宽的百分比)后,设备不会再将新建流量调度至此接口,原有流量则仍由该接口继续转发。
若配置调度算法为加权带宽算法或最大带宽算法,则必须指定带宽统计方向:上行或下行。
带宽繁忙保护功能仅在配置了接口最大期望带宽和带宽繁忙比的情况下生效。相关配置请参见1.5 配置接口相关参数。
system-view
(2) 创建并进入DNS代理视图。
loadbalance dns-proxy
(3) 开启DNS代理功能。
service enable
缺省情况下,DNS代理功能处于关闭状态。
(4) 指定出接口绑定的DNS服务器。
schedule interface interface-type interface-number dns-server { ip ipv4-address | ipv6 ipv6-address } [ priority priority ]
缺省情况下,出接口未绑定DNS服务器。
(5) 配置调度算法。
predictor { { bandwidth | max-bandwidth } { inbound | outbound } | hash address { source | source-ip-port } [ mask mask-length | prefix prefix-length ] * | random | round-robin }
缺省情况下,调度算法为加权轮转算法。
(6) (可选)配置参与调度的DNS服务器的数量限制。
dns-server limit min min-number max max-number
缺省情况下,调用优先级最高的成员全部被调度算法调用。
(7) (可选)开启带宽繁忙保护功能。
bandwidth busy-protection enable
缺省情况下,带宽繁忙保护功能处于关闭状态。
通过配置DNS服务器,指定处理和响应DNS请求报文的实体。DNS服务器接收并处理DNS请求报文,将其解析为同网络内外网服务器的IP地址,并返回DNS应答报文。此处配置的DNS服务器通过IP地址唯一标识,对应于运营商网络内的DNS服务器。
在创建DNS服务器时,管理员可以为其指定权值,该权值用于加权轮转调度算法和带宽调度算法。通常情况下,管理员可以为带宽较大的接口绑定的DNS服务器配置较大的权值。
管理员创建的DNS服务器需要在DNS代理视图下与指定接口绑定后,才能参与调度。并且,DNS代理视图下绑定的接口要与创建DNS服务器的接口相同。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 创建DNS服务器。
loadbalance dns-server { ip ipv4-address | ipv6 ipv6-address } [ weight weight ]
缺省情况下,未添加DNS服务器。
通过本配置可以指定接口的最大期望带宽和带宽繁忙比。
接口的最大期望带宽指的是接口预计可承载的上/下行流量带宽上限,所配置的带宽上限可用于带宽繁忙保护功能,以及加权带宽算法和最大带宽算法的计算。
带宽繁忙比为当前接口实际带宽与配置的最大期望带宽的百分比值,若最大期望带宽配置为不受限,则使用其可设置的最大值进行计算。带宽繁忙比可用于带宽繁忙保护功能,包括:
· 带宽繁忙比:用于界定接口是否处于繁忙状态,若接口的实际带宽与接口的最大期望带宽之比超过了该接口的带宽繁忙比,则接口进入繁忙状态,不再参与调度。
· 带宽繁忙恢复比:用于界定接口是否解除繁忙状态,若接口的实际带宽与接口的最大期望带宽之比小于等于该接口的带宽繁忙恢复比,则接口解除繁忙状态,重新参与调度。
配置和修改接口的最大期望带宽、带宽繁忙比和带宽繁忙恢复比仅对新建连接生效,对已经存在的连接不生效。
若未配置带宽繁忙恢复比,则当带宽繁忙比大于10%时,带宽繁忙恢复比为带宽繁忙比减去10%;当带宽繁忙比小于等于10%时,带宽繁忙恢复比等于带宽繁忙比。
同一接口的带宽繁忙恢复比必须小于等于带宽繁忙比。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-name
(3) 配置接口的最大期望带宽。
max-bandwidth { inbound | outbound } bandwidth-value kbps
缺省情况下,接口的最大期望带宽不受限制。
(4) 配置接口的带宽繁忙比。
loadblance bandwidth { inbound | outbound } busy-rate busy-rate-number [ recovery recovery-rate-number ]
缺省情况下,接口的带宽繁忙比为70%。
可在任意视图下执行以下命令,显示DNS代理的统计信息。
display loadbalance dns-proxy statistics [ slot slot-number ]
请在用户视图下执行以下命令,清除DNS代理的统计信息。
reset loadbalance dns-proxy statistics [ interface interface-type interface-number ]
可在任意视图下执行以下命令,显示DNS服务器的统计信息。
display loadbalance dns-server statistics [ interface interface-type interface-number ] [ slot slot-number ]
请在用户视图下执行以下命令,清除DNS服务器的统计信息。
reset loadbalance dns-server statistics [ interface interface-type interface-number ] [ slot slot-number ]
可在任意视图下执行以下命令,显示DNS代理的配置信息。
display loadbalance dns-proxy
用户从两个运营商ISP 1和ISP 2处分别租用了带宽相同的两条链路Link 1和Link 2。属于ISP 1 DNS服务器的IP地址为10.1.2.100,属于ISP 2的DNS服务器的IP地址为20.1.2.100。
当内网用户通过域名www.exp.example.com访问外网的Web服务器Web Server A和Web Server B时,使上网流量均匀地分布在不同的链路上。
图1-3 DNS透明代理基本组网配置组网图
(1) 配置接口IP地址
# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。
<Device> system-view
[Device] interface gigabitethernet 1/0/1
[Device-GigabitEthernet1/0/1] ip address 192.168.1.100 255.255.255.0
[Device-GigabitEthernet1/0/1] quit
请参考以上步骤配置其他接口的IP地址,具体配置步骤略。
(2) 配置接口加入安全域。
# 请根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[Device] security-zone name trust
[Device-security-zone-Trust] import interface gigabitethernet 1/0/1
[Device-security-zone-Trust] quit
[Device] security-zone name untrust
[Device-security-zone-Untrust] import interface gigabitethernet 1/0/2
[Device-security-zone-Untrust] import interface gigabitethernet 1/0/3
[Device-security-zone-Untrust] quit
(3) 配置安全策略
# 配置名称为lbrule1的安全策略规则,放行Trust与Untrust安全域之间的流量,使用户可以访问外网服务器,具体配置步骤如下。
[Device] security-policy ip
[Device-security-policy-ip] rule name lbrule1
[Device-security-policy-ip-1-lbrule1] source-zone trust
[Device-security-policy-ip-1-lbrule1] destination-zone untrust
[Device-security-policy-ip-1-lbrule1] source-ip-subnet 192.168.1.0 255.255.255.0
[Device-security-policy-ip-1-lbrule1] action pass
[Device-security-policy-ip-1-lbrule1] quit
(4) 配置DNS服务器
# 在GigabitEthernet1/0/2上创建DNS服务器,配置其IPv4地址为10.1.2.100,权值为200。
[Device] interface gigabitethernet 1/0/2
[Device-GigabitEthernet1/0/2] loadbalance dns-server ip 10.1.2.100 weight 200
[Device-GigabitEthernet1/0/2] quit
# 在GigabitEthernet1/0/2创建DNS服务器,配置其IPv4地址为20.1.2.100,权值为200。
[Device] interface gigabitethernet 1/0/3
[Device-GigabitEthernet1/0/3] loadbalance dns-server ip 20.1.2.100 weight 200
[Device-GigabitEthernet1/0/3] quit
(5) 配置DNS透明代理
# 创建DNS代理,并开启DNS代理功能。
[Device] loadbalance dns-proxy
[Device-lb-dnsproxy] service enable
# 将GigabitEthernet1/0/2绑定IPv4地址为10.1.2.100的DNS服务器。
[Device-lb-dnsproxy] schedule interface gigabitethernet 1/0/2 dns-server ip 10.1.2.100
# 将GigabitEthernet1/0/3绑定IPv4地址为20.1.2.100的DNS服务器。
[Device-lb-dnsproxy] schedule interface gigabitethernet 1/0/3 dns-server ip 20.1.2.100
[Device-lb-dnsproxy] quit
# 显示所有DNS代理的详细配置信息。
[Device] display loadbalance dns-proxy
DNS proxy info
State: Enabled
Predictor: round-robin
Mask Length: 16
DNS server limit:
Min number: --
Max number: --
Bandwidth busy protection: Disabled
IPv4 DNS server list:
Interface Address Priority
GE1/0/2 10.1.2.100 4
GE1/0/3 20.1.2.100 4
IPv6 DNS server list:
Interface Address Priority
-- -- --
# 显示DNS代理的统计信息。
[Device] display loadbalance dns-proxy statistics
Received requests: 201
Dropped requests: 1
Retransmitted requests: 10
Received responses: 188
Dropped responses: 1
# 显示所有DNS服务器的统计信息。
[Device] display loadbalance dns-server statistics
DNS server: 10.1.2.100
Interface: GigabitEthernet1/0/2
Received requests: 100
Retransmitted requests: 5
Sent responses: 95
DNS server: 20.1.2.100
Interface: GigabitEthernet1/0/3
Received requests: 102
Retransmitted requests: 5
Sent responses: 94
完成上述配置后,设备可以将DNS请求报文均匀地分发到DNS Server A和DNS Server B上,从而将内网用户访问外网Web服务器的流量均匀地分配到Link 1和Link 2上。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!