加速原理
概念
定义
- 加速即访问海外资源(翻墙),公司有营业执照、合法访问
无法访问海外资源原因
- DNS解析: 国内DNS Server对国外资源进行DNS污染(无法解析出正确的IP)
- 报文转发: 访问国外资源响应慢或者无法访问
相关配置
DNS解析文件
-
在
/etc/dnsmasq.d/
下会存在以下文件:-
domain-X.conf
:域名名单,只用在BSS上手动添加名单时,该文件就会创建;文件内容为 域名 -> DNS Server ,只要请求的域名匹配上规则的域名后,会从重定向到规则的 DNS Server;若是白名单域名,则DNS Server是隧道出口的当地DNS Server,若是黑名单域名,则DNS Server默认都为114.114.114.114
223.5.5.5
-
defaultserver.conf
:白名单默认DNS,该DNS Server默认用加速隧道的出口的当地DNS Server(默认填充两个DNS Server),在CC系统的业务DNS配置信息板块
-
ipset.conf
:该文件内容为 域名 -> ipset_name ,将该域名解析出的IP追加到 ipset的地址集中
-
-
reslov.conf
- 该文件在
/etc
下,用于DNS请求在本地Internet上请求,WAN口指定的DNS Server
- 该文件在
ipset地址集
whitedns-X
:存放隧道出口的当地DNS Server的IPnoproxy
:存放不需要加速的网段,如私网网段、D类网段CN-DNS
:精确黑名单,存放手动添加黑名单的IPCN
:模糊黑名单,存放国内的IPX-DNS
:白名单,存放手动添加白名单的IP
iptables
- 对于非本机报文,iptables 匹配链顺序为
PREROUTING
->路由表
->POSTROUTING
->下一跳
;对于本机报文, iptables 匹配链顺序为OUTPUT
->路由表
->POSTROUTING
->下一跳
- 报文的DIP匹配上白名单的IP进行打标记,将国内/外流量进行区分,再通过
ip rule
的策略路由,对该标记的报文指定某个路由表查询路由,路由指定下一跳为vnetc口
,在vnetc口
内进行封装以送入加速隧道中 - 若有多个加速隧道,则有多个 白名单 <-> 标记 <-> 策略路由 <-> vnetc口 ,通过不同标记进入不同
vnetc口
封装并送入不同隧道进行加速
ip rule
- 配置策略路由,匹配标记以指定某个路由表进行查询路由;该策略路由优于普通路由
原理
概括
- 通过打标记进行分流。对访问国外资源的报文进行打标记,再通过策略路由指定到
vnetc口
上进行封装,最后本机转发到入PoP节点;入PoP节点解封装后,再次封装并转发到出PoP节点;出PoP节点收到报文后解封装,用出接口的IP进行NAT地址转发,向当地Internet转发报文
匹配规则
类型 | 顺序 |
---|---|
匹配链顺序 | 非本机报文: PREROUTING ( mangle -> nat ) -> 路由表 -> POSTROUTING ( mangle -> nat ) -> 下一跳 本机报文: OUTPUT ( mangle -> nat ) -> 路由表 -> POSTROUTING ( mangle -> nat ) -> 下一跳 |
匹配DNS解析文件顺序 | domain-X.conf > dnsserver.conf > reslov.conf |
vnet 链匹配顺序 |
whitedns-X -> noproxy -> CN-DNS -> CN -> X-DNS ,白名单默认DNS -> 不加速名单 -> 精确黑名单 -> 模糊黑名单 -> 精确白名单 |
分流报文转发流程
-
DNS请求报文(DNS劫持)
-
非本机DNS请求报文
- 该报文匹配
PREROUTING
链时,mangle
表匹配规则并允许通过、nat
表匹配规则并重定向到本地(向本机请求),本机查询并匹配DNS解析文件内容,重新重定向到新的DNS Server上请求-
重定向为白名单默认DNS:
- 重定向后的报文为本机报文,匹配
OUTPUT
链时,mangle
表规则会跳转到vnet
链中, 匹配whitedns-X
并打上标记,查看路由表时命中策略路由,指定在某个路由表上查询路由,该路由指向vnet口
;然后报文匹配POSTROUTING
链,mangle
表匹配规则并允许通过,nat
表匹配规则并用vnetc口
进行NAT转换;最后进入ventc口
进行封装
- 重定向后的报文为本机报文,匹配
-
重定向为国内DNS:
- 重定向后的报文为本机报文,匹配
OUTPUT
链时,mangle
表规则会跳转到vnet
链中,会匹配CN
,不会打上标记,查看路由表时命中默认路由,进行本机转发;然后报文匹配POSTROUTING
链,mangle
表匹配规则并用允许通过,nat
表匹配规则并用WAN口
进行NAT转换;最后进入WAN口
进行本地转发
- 重定向后的报文为本机报文,匹配
-
- 该报文匹配
-
本机DNS请求报文
- 该报文查询并匹配DNS解析文件内容,重定向到新的DNS Server上请求,后续流程跟非本机报文匹配 iptables 规则一样
-
-
其他报文
-
非本机报文
- 匹配
PREROUTING
链时,在mangle
表上跳转到vnet
链中- 报文的DIP为国外的IP:
- 匹配上
X-DNS
,打上标记,nat
表匹配默认规则,允许通过;然后匹配路由时命中策略路由,指定某个路由表上查询路由,该路由指向vnetc口
,然后报文匹配POSTROUTING
链,mangle
表匹配规则并允许通过,nat
表匹配规则并用vnetc口
进行NAT转换;最后进入ventc口
进行封装
- 匹配上
- 报文的DIP为国内的IP:
- 匹配上
CN-DNS
/CN
,不会打上标记,查看路由表时命中默认路由,进行本机转发;然后报文匹配POSTROUTING
链,mangle
表匹配规则并允许通过,nat
表匹配规则并用WAN口
进行NAT转换;最后进入WAN口
进行本地转发
- 匹配上
- 报文的DIP为国外的IP:
- 匹配
-
本机报文
- 匹配
OUTPUT
链,在mangle
表上跳转到vnet
链中,后续流程跟非本机报文匹配 iptables 规则一样
- 匹配
-
分流后报文转发流程
-
封装后的报文以及国内本地转发报文都属于本地报文,匹配链顺序按照本地报文进行匹配
- 封装后的报文:报文的DIP为隧道的入PoP节点,会命中
CN
地址集 - 国内本地转发报文:报文的DIP为国内的IP,会命中
CN-DNS
地址集
- 封装后的报文:报文的DIP为隧道的入PoP节点,会命中
-
在
OUTPUT
链上,匹配mangle
表的规则,由于封装报文的DIP为入PoP节点,报文会命中CN-DNS
/CN
,不打标记;匹配路由时查看策略路由,匹配本地路由表的默认路由;在POSTROUTING
链上,mangle
表匹配规则并允许通过,nat
表匹配规则并用WAN口
进行NAT转换;最后进入WAN口
进行本地转发
配置解析
- DNS解析阶段(非本机DNS请求报文)
加速模式
- 模式
- 加速 :匹配白名单的流量就会进行加速
- 匹配规则顺序:
CN-DNS
(精确黑名单) ->CN
(模糊黑名单)->X-DNS
(白名单)
- 匹配规则顺序:
- 全加速 :没有匹配上
CN
的流量都会进行加速- 匹配规则顺序:CN-DNS(精确黑名单) -> X-DNS(白名单) -> CN(模糊黑名单)
- 全转 :所有流量都会加速
- 对于DNS Server需指向国外公共DNS Server
- 由于CPE设备配置全转后,不再DNS劫持,若终端的DNS指向CPE设备后,CPE设备收到DNS请求后,会用
/etc/resolv.conf
内的DNS进行请求,即会请求国内DNS Server,这时就会出现DNS污染
- 加速 :匹配白名单的流量就会进行加速
Web配置
- 配置步骤
- 进入客户管理,创建用户-->进入用户的“编辑”界面-->创建设备(设备型号、区域、城市、带宽、服务时间)-->进入”设备管理“并搜索用户名称,找到新增的设备列表-->绑定设备的SN号-->添加黑白名单(区域、黑/白名单)-->添加加速隧道
- DNS解析截图
-
终端解析域名:Google.com(加了白名单)
-
终端解析域名:Google.com(加了黑名单)
-