Skip to content

使用 linedns 进行指定 上层DNS服务器,进行DNS查询

Notifications You must be signed in to change notification settings

mingjiezxc/smartdns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

smartdns

etcd keys

smartdns 会读取以下 key 进行初始化,数据能实时更新。
acl: /acl/ip/pool/$ip
forward: /forward/$groupName/$domain
linedns: /line/dns/$zone/$line/$IP:$Port

acl

group

// acl 组 只存在管理页面 /acl/ip/group/$cidr

ip pool

// 为快速获取 ip acl and config 不使用 /24 之类的,直接单IP /acl/ip/pool/$ip

{
    # 用于优先级,如有ACL组中有 192.168.0.0/16 , 192.168.0.0/24 则 192.168.0.0/24 优先
    # 更新 192.168.0.0/16 时检查 16 是否大于 24
    # 使用完整值主要是方便 debug 确认最优先的是来自那个 CIDR
    Cidr : "192.168.0.0/24",
    Netmask24 , 

    # 优先 LineDns
    # 即如 "/gz/cm/" 则同时请求查询 /gz/cm/ 下所有 linedns,那个快回复就使用那个回复用户
    # 并同时请求上层MasterDns ["114.114.114.114", "1.1.1.1"] ,那个快回复就使用那个回复用户
    # "/.*/cm/"  所有 CM线路 下的所有LineDNS
    # "/gz/.*/"  所有 GZ区域 下的所有LineDNS
	# Master linedns 正则表达式文本
    MasterLineDnsReStr "/gz/cm/",

    # 用户指定上层DNS ,"0.0.0.0" 或 "" 则迭代查询
    # Master 使用的上层DNS
    MasterDns ["114.114.114.114", "1.1.1.1"],

    # 备份 LineDns
    # 与 Master 同时请求,但需等待 Timeout 才会返回数据
    # backup linedns 正则表达式文本
    BackupLineDnsReStr "/gz/.*/",

	# backup 使用的上层DNS
	BackupDns ["233.5.5.5", "1.1.1.1"],

    # 写入时请注意组的顺序
    ForwardGroup: ["group1", "group2"] ,

	# master linedns query timeout 秒
    # 不建议大于2, 因一般 dns client 10 秒 timeout, 每间隔3秒会重试
	Timeout 2

}

forward

获取 domain forward 配置 /forward/$groupName/$domain
将某个 domain 在 master Line 转到指定线路与使用指定的DNS
[{"LineDnsReStr": "/hk/.*/", "Dns":["114.114.114.114", "1.1.1.1"]}]

// 例子etcd暂定使用右则匹配 用户请求 www.google.com.hk

// 按以下顺序搜索如成功则不继续

/forward/abc/www.google.com.hk.
/forward/abc/google.com.hk.
/forward/abc/com.hk.
/forward/abc/hk.

LineDns

// linedns使用 keepalive key 来确认DNS是否在线 /line/dns/zone/LINKE/$IP:$Port

/line/dns/gz/cm/192.168.1.1:8888
/line/dns/bj/ct/192.168.1.2:8888
/line/dns/hk/hk/19.168.1.2:8888
/line/dns/hk/hk/19.168.1.2:8888

About

使用 linedns 进行指定 上层DNS服务器,进行DNS查询

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages