CoreDNS企业级应用

DevOpSec
• 阅读 148

来源: DevOpSec公众号 作者: DevOpSec

背景

  1. IP地址会有变更,程序配置IP地址,所有涉及到此IP的地方都需要改变,对运维和研发都不友好

  2. IP不容易被记住

引入域名来替换IP,这样业务使用唯一标识域名,域名可以通过DNS服务器解析成IP供业务三层通信使用。

通过域名解耦了业务和IP,如果域名对应的IP有变动,修改域名解析即可,不用业务做调整。

使用域名研发和运维的工作也解耦了,IP有变动,运维不用求研发修改业务代码配置。

可读性和可记忆性上,域名通常由有意义的字词或短语组成,更易于人们理解和记忆。相比之下,IP地址是一串数字,不容易记忆。

要使用域名我们不得不聊聊DNS。

DNS原理

1. 什么是DNS?

百度百科:

域名和与之相对应的IP地址转换的服务器 DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。

2. 分层结构

域名分层结构

DNS(Domain Name System)采用分层结构来组织域名,并实现域名解析的分布式系统。它将域名划分为多个层次,从根域到最具体的子域名。分层结构的主要组成如下:

CoreDNS企业级应用

层级 作用 例子
根域 根域是DNS层次结构的最高级别,表示为单个点(.)。它是整个DNS命名空间的起点。根域下没有顶级域名,它的主要功能是指导DNS查询进一步向下到顶级域服务器。 .
顶级域 顶级域是紧随根域下的下一级域,通常是表示国家或通用类别的标识符。例如,.com、.org、.net 是常见的通用顶级域,而 .us、.uk、.cn 是表示国家的顶级域。顶级域是由顶级域管理员管理和分配的。 .com
二级域 二级域是顶级域名下的下一级域,由组织、企业或个人自行选择和注册。例如,在域名 example.com 中,"example" 是二级域。二级域名可以用于表示特定的组织、品牌或服务。 example.com
子域 子域是在二级域名之下的更低级别域名。子域名是通过在二级域名之前添加前缀来创建的。例如,"blog.example.com" 是 "example.com" 域名的一个子域。 三级域名:www.example.com

四级域名:www.test.example.com

域名的层级风别对应层级的DNS服务器,下面我们来看下。

DNS分层结构

DNS 作用 备注
根域名服务器 根域名服务器是DNS层次结构的最高级别,表示为单个点(.)。它是整个DNS系统的起点,负责存储和提供顶级域名服务器的地址。 全球只有13个,迭代查询
顶级域名服务器 顶级域名服务器位于DNS层次结构的下一级,负责管理特定顶级域名(例如.com、.org、.net等)的DNS信息。每个顶级域名都有自己的一组顶级域名服务器,由相应的管理机构负责维护。 迭代查询
权威域名服务器 权威域名服务器是负责存储和提供特定域名的DNS记录的服务器。每个域名都有至少一个权威域名服务器。 迭代查询
本地域名服务器 本地域名服务器也称为递归域名服务器或默认域名服务器。它是用户计算机或网络中的DNS服务器,负责处理来自用户设备的DNS查询请求。 递归查询

3. DNS工作原理?

CoreDNS企业级应用

个人电脑

Q1:在个人电脑浏览器里输入www.example.com,dns client首先查个人电脑dns缓存里有没有对应的域名解析

A1:如果缓存里有则把结果返回,缓存没有返回空

Q2:当缓存没有时,查hosts文件

A2:如果有则返回,并缓存,没有则返回空

个人电脑到本地dns服务器查询

Q3:上述Q1,Q2都没有查到结果时,会向个人电脑上配置的本地dns发起dns域名解析查询

A3:本地dns服务器将查询结果返回

本地域名解析服务器工作过程

Q4:本地域名服务器查询本地dns缓存

A4:有结果则返回给本地域名服务器, 本地域名服务器 把结果返回给个人电脑即A3,没结果返回空

Q5:A4返回空,则查询dns解析配置,有结果则返回给本地域名服务器并缓存结果,本地域名服务器把结果返回给个人电脑即步骤A3,没结果则返回空

域名服务器 如果本地域名服务器缓存和db里都没有查到结果,则发起向根域名服务器查询,这部分的查询是迭代查询

Q6:本地域名服务器根域名服务器发起查询

A6:根域名服务器根据请求域名信息,返回.com顶级域名服务器IP地址

Q7:本地域名服务器根据根域名服务器返回的顶级域名服务器IP,向顶级域名服务器发起域名解析

A7:顶级域名服务器根据域名信息,返回example.com权威域名服务器IP

Q8:本地域名服务器根据顶级域名服务器返回的信息,向权威域名服务器发起域名解析

A8:权威域名服务器查询缓存和域名配置,把结果返回

最后本地域名服务器把结果返回给个人电脑,整个域名解析过程就是这样。

我们来看下域名trace的过程,dig www.example.com +trace,trace的过程是域名服务器怎么找到域名解析的过程。

### 13个根域名服务器
; <<>> DiG 9.10.6 <<>> www.example.com +trace
;; global options: +cmd
.            450212    IN    NS    i.root-servers.net.
.            450212    IN    NS    h.root-servers.net.
.            450212    IN    NS    k.root-servers.net.
.            450212    IN    NS    m.root-servers.net.
.            450212    IN    NS    a.root-servers.net.
.            450212    IN    NS    f.root-servers.net.
.            450212    IN    NS    g.root-servers.net.
.            450212    IN    NS    j.root-servers.net.
.            450212    IN    NS    b.root-servers.net.
.            450212    IN    NS    d.root-servers.net.
.            450212    IN    NS    e.root-servers.net.
.            450212    IN    NS    l.root-servers.net.
.            450212    IN    NS    c.root-servers.net.
;; Received 492 bytes from 10.1.210.254#53(10.1.210.254) in 53 ms

### 顶级域名服务器
com.            172800    IN    NS    b.gtld-servers.net.
com.            172800    IN    NS    k.gtld-servers.net.
com.            172800    IN    NS    f.gtld-servers.net.
com.            172800    IN    NS    a.gtld-servers.net.
com.            172800    IN    NS    e.gtld-servers.net.
com.            172800    IN    NS    g.gtld-servers.net.
com.            172800    IN    NS    m.gtld-servers.net.
com.            172800    IN    NS    d.gtld-servers.net.
com.            172800    IN    NS    h.gtld-servers.net.
com.            172800    IN    NS    i.gtld-servers.net.
com.            172800    IN    NS    j.gtld-servers.net.
com.            172800    IN    NS    c.gtld-servers.net.
com.            172800    IN    NS    l.gtld-servers.net.
com.            86400    IN    DS    30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.            86400    IN    RRSIG    DS 8 1 86400 20230723210000 20230710200000 11019 . eYYWsA8EHPJOEGhTFPZT0Dz4pvpZM+c5EHRLitOhjW1rX2ZP/zUE5mSs +ve23eY4NkMqZkEyYQf4FwxWMfDHcHU6FFgeFi7kSymwHf3OytZxctx8 gL2x+imyDxD/PYrgm8lr3j+q+cUOWD/KMcMerQfPpTkRl8iP6t0NG6o8 qAw9+77u3jGzo1XPnttU6s6m7Uhjv0FlhTHX3GVn3e2SOMTZ25GT4NMW i2MM/tRyoYPezwXca9/1o3owaUmHG9EwWRBymRxTzYwUVNQ0GUj42IK4 IYvQQ9fGK8+n+6JStKQ/zY6DNF1T/Bc+ncn1237nPdUr97ko8VgOdvTt BAJTlQ==
;; Received 1178 bytes from 192.5.5.241#53(f.root-servers.net) in 6 ms

### 权威域名服务器
example.com.        172800    IN    NS    a.iana-servers.net.
example.com.        172800    IN    NS    b.iana-servers.net.
example.com.        86400    IN    DS    370 13 2 BE74359954660069D5C63D200C39F5603827D7DD02B56F120EE9F3A8 6764247C
example.com.        86400    IN    RRSIG    DS 8 2 86400 20230716061950 20230709050950 46551 com. N9fB0SSrFADxZEwXV4wPlH1qY8JEUVY6abdBPoaTB8IsWgJ4/BWJf0Tr 8+2ffU7fB0yAWViDZoUyV7yYa1gJvjssr0XjPDyB3VYYcyTlLgCzpNTX RLHcNAd7XU+/zmOBhTuNh6LNRXyaWT9cUTjhuTFENSt71xfm0bdThgb2 KB7ohKhn8JaDh5yPtExT+xs0TsFZtddSqtoLUnrxRLrBqQ==
;; Received 335 bytes from 192.35.51.30#53(f.gtld-servers.net) in 275 ms

### www.example.com 的解析记录,权威域名服务器199.43.135.53#53(a.iana-servers.net) 返回的结果

www.example.com.    86400    IN    A    93.184.216.34
www.example.com.    86400    IN    RRSIG    A 13 3 86400 20230730082849 20230709062038 28328 example.com. hxwo2qMUYS/FKBwB6hQwzsne3IygLz2J9fq2GEfLJIsvmVsFefN0O+dd wnxXS4apxV/ZnOJbF1jqOiZUWbJy6Q==
;; Received 167 bytes from 199.43.135.53#53(a.iana-servers.net) in 294 ms

CoreDNS介绍

CoreDNS是一个开源的、灵活的DNS服务器,旨在替代传统的BIND等DNS服务器。它是一个轻量级的、模块化的DNS服务器,具有插件化架构,使用户可以根据需要自定义和扩展功能。CoreDNS是CNCF(Cloud Native Computing Foundation)的一个孵化项目,广泛应用于云原生环境中。

CoreDNS特点:

模块化设计:CoreDNS的核心思想是将功能划分为可插拔的模块,每个模块都可以独立配置和扩展,使用户可以根据实际需求定制和构建自己的DNS解析服务器。

支持多种DNS协议:CoreDNS支持多种DNS协议,包括常见的DNS协议(如UDP、TCP)以及较新的协议(如DNS over TLS、DNS over gRPC等)。

灵活的插件机制:CoreDNS提供了丰富的插件集合,用户可以根据需要启用、禁用和组合这些插件,以实现各种功能,如缓存、负载均衡、日志记录、转发、DNSSEC等。

易于配置:CoreDNS使用简洁的配置文件语法,使用户能够轻松地配置和管理DNS解析规则,而无需深入了解底层的复杂性。

适应云原生环境:CoreDNS被广泛应用于云原生环境中,它与容器化技术(如Docker、Kubernetes)紧密集成,可以动态地适应容器和集群的变化,实现弹性和可伸缩性。

高性能:CoreDNS经过了优化,具有较高的并发处理能力和响应速度,能够处理大量的DNS查询请求。

可以说CoreDNS为提高技术生产力做了不少贡献,不用再维护复杂的bind配置,下面我们来看一下用CoreDNS来作为本地域名服务器的实战案例。

实战案例

1. 部署CoreDNS服务器

部署超级简单,访问官网 CoreDNS官网 点击下载最新版本即可,作者演示是MAC系统,下载是coredns_1.10.1_darwin_amd64.tgz

解压缩coredns_1.10.1_darwin_amd64.tgz

配置CoreDNS ,配置参考 CoreDNS Manual

cat Corefile

coredns.io:5300 {
    file db.coredns.io
}

example.io:53 {
    log
    errors
    file db.example.io
}

example.net:53 {
    file db.example.net
}

.:53 {
    kubernetes
    forward . 8.8.8.8
    log
    errors
    cache
}

上述配置CoreDNS的工作流程如下

CoreDNS企业级应用

启动CoreDNS

./coredns -conf Corefile

2. 多个A记录

配置 cat Corefile

.:53 {
    health :8080
    #如果配置有变化10s reload一次
    reload 10s
    cache 60
    hosts  {
        1.1.1.1 test.com
        2.2.2.2 test.com
        fallthrough
    }
    #兜底方案,不在配置的域名走forward
    forward . 114.114.114.114
    prometheus :9153
    log . "{\"coredns_collect_log\":\"coredns_collect_log\",\"remote\":\"{remote}\",\"port\":{port},\"type\":\"{type}\",\"class\":\"{class}\",\"name\":\"{name}\",\"rcode\":\"{rcode}\",\"duration\":{duration}}"
}

启动 coredns -conf Corefile

测试 nslookup test.com 127.0.0.1

测试配置中不存在的域名nslookup www.baidu.com 127.0.0.1

3. CNAME解析

k8s中pod 或 sevice ip 可能会变,如果配置A记录就不合适,这时域名canme到pod的网络标识或者service域名上就比较合适。

配置cat Corefile

.:53 {
    health :8080
    #如果配置有变化10s reload一次
    reload 10s
    cache 60
    hosts  {
        #test.com cname 到www.baidu.com
        rewrite name test.com www.baidu.com
        fallthrough
    }
    #兜底方案,不在配置的域名走forward
    forward . 114.114.114.114
    prometheus :9153
    log . "{\"coredns_collect_log\":\"coredns_collect_log\",\"remote\":\"{remote}\",\"port\":{port},\"type\":\"{type}\",\"class\":\"{class}\",\"name\":\"{name}\",\"rcode\":\"{rcode}\",\"duration\":{duration}}"
}

启动 coredns -conf Corefile

测试 nslookup test.com 127.0.0.1

4. 正则匹配解析

在做活动落地页时,防止域名被封禁,我们希望N多个域名都能访问到活动页,这时正则就很好的解决这个问题。

配置cat Corefile

.:53 {
    health :8080
    #如果配置有变化10s reload一次
    reload 10s
    cache 60
    hosts  {
        #*.test.com cname 到www.baidu.com
        rewrite name (.*).test.com www.baidu.com
        fallthrough
    }
    #兜底方案,不在配置的域名走forward
    forward . 114.114.114.114
    prometheus :9153
    log . "{\"coredns_collect_log\":\"coredns_collect_log\",\"remote\":\"{remote}\",\"port\":{port},\"type\":\"{type}\",\"class\":\"{class}\",\"name\":\"{name}\",\"rcode\":\"{rcode}\",\"duration\":{duration}}"
}

启动 coredns -conf Corefile

测试 nslookup w.test.com 127.0.0.1

nslookup test2.test.com 127.0.0.1

nslookup w666.test.com 127.0.0.1

5. 根据解析域名做DNS解析转发

当主机配置dns没有某个域名解析时,我们可以配置针对这个域名解析走其他dns帮我们做解析。这样我们不用修改本机dns配置,只用在微调dns配置即可。

配置cat Corefile

.:53 {
    health :8080
    #如果配置有变化10s reload一次
    reload 10s
    cache 60
    hosts  {
        #*.test.com cname 到www.baidu.com
        rewrite name (.*).test.com www.baidu.com
        fallthrough
    }
    #兜底方案,不在配置的域名走forward
    forward . 114.114.114.114
    prometheus :9153
    log . "{\"coredns_collect_log\":\"coredns_collect_log\",\"remote\":\"{remote}\",\"port\":{port},\"type\":\"{type}\",\"class\":\"{class}\",\"name\":\"{name}\",\"rcode\":\"{rcode}\",\"duration\":{duration}}"
}

#example.com 相关域名的走114.114.114.114做解析
example.com:53 {
    errors
    cache 30
    forward . 114.114.114.114
    reload
}

#baidu.com 相关域名的走8.8.8.8做解析
bai.com:53 {
    errors
    cache 30
    forward . 8.8.8.8
    reload
}

启动 coredns -conf Corefile

测试 nslookup www.example.com 127.0.0.1

测试 nslookup www.baidu.com 127.0.0.1

6. 禁止ipv6解析

业务不涉及ipv6 时可以禁用ipv6解析,提高dns解析性能

配置cat Corefile

.:53 {
    health :8080
    #如果配置有变化10s reload一次
    reload 10s
    cache 60
    hosts  {
        #*.test.com cname 到www.baidu.com
        rewrite name (.*).test.com www.baidu.com
        fallthrough
    }

    #禁用ipv6解析
    template IN AAAA .

    #兜底方案,不在配置的域名走forward
    forward . 114.114.114.114
    prometheus :9153
    log . "{\"coredns_collect_log\":\"coredns_collect_log\",\"remote\":\"{remote}\",\"port\":{port},\"type\":\"{type}\",\"class\":\"{class}\",\"name\":\"{name}\",\"rcode\":\"{rcode}\",\"duration\":{duration}}"
}

7. 多k8s集群统一dns服务解析

知道域名不确定资源在哪个集群,dns我们想统一,通过统一的dns访问不通的k8s资源解析到不同的k8s集群的ip

方式一 不同的k8s集群使用不同的域名

比如A集群使用acluster.local ,B集群使用bcluster.local,在安装k8s集群时可以修改默认的域名cluster.local

这样我们就可以使用DNS转发能力

配置cat Corefile

.:53 {
    health :8080
    #如果配置有变化10s reload一次
    reload 10s
    cache 60
    hosts  {
        #*.test.com cname 到www.baidu.com
        rewrite name (.*).test.com www.baidu.com
        fallthrough
    }
    #兜底方案,不在配置的域名走forward
    forward . 114.114.114.114
    prometheus :9153
    log . "{\"coredns_collect_log\":\"coredns_collect_log\",\"remote\":\"{remote}\",\"port\":{port},\"type\":\"{type}\",\"class\":\"{class}\",\"name\":\"{name}\",\"rcode\":\"{rcode}\",\"duration\":{duration}}"
}

#acluster.local 相关域名的走A集群的coredns做解析
acluster.local:53 {
    errors
    cache 30
    forward . A集群corednsip
    reload
}

#bcluster.local 相关域名的走B集群的coredns做解析
bcluster.local:53 {
    errors
    cache 30
    forward . B集群corednsip
    reload
}

启动 coredns -conf Corefile

测试 nslookup servicename.namespace.svc.acluster.local 127.0.0.1

测试 nslookup servicename.namespace.svc.bcluster.local 127.0.0.1

方式二 借助插件alternate

A、B两个k8s集群已经部署好域名都是cluster.local,需要在集群外解析集群内资源,我们利用alternate间接实现forwardfallthrough

servicename.namespace.svc.cluster.localA集群dns查不到,查B集群的dns

配置cat Corefile

.:53 {
    health :8080
    #如果配置有变化10s reload一次
    reload 10s
    cache 60
    hosts  {
        #*.test.com cname 到www.baidu.com
        rewrite name (.*).test.com www.baidu.com
        fallthrough
    }
    #兜底方案,不在配置的域名走forward
    forward . 114.114.114.114
    prometheus :9153
    log . "{\"coredns_collect_log\":\"coredns_collect_log\",\"remote\":\"{remote}\",\"port\":{port},\"type\":\"{type}\",\"class\":\"{class}\",\"name\":\"{name}\",\"rcode\":\"{rcode}\",\"duration\":{duration}}"
}

#cluster.local 相关域名的先走A集群的coredns做解析,A集群dns没有解析走B集群dns查询
cluster.local:53 {
    errors
    cache 30
    forward . A集群corednsip
    alternate NXDOMAIN . B集群corednsip
    reload
}

启动 coredns -conf Corefile

测试 nslookup servicename.namespace.svc.cluster.local 127.0.0.1

8. 智能DNS不同网段同一个域名解析不同ip

如果我们需要机房的就近访问,可以针对不同机房设置不同网段,然后针对同一个域名不同机房的请求返回对应机房的解析ip结果。

配置cat Corefile

:53 {
  view aaa {
    expr incidr(client_ip(), '127.0.0.0/24')
  }
  hosts {
    1.1.1.1 test.com
  }
}

.:53 {
  view bbb {
    expr incidr(client_ip(), '192.168.0.0/16')
  }
  hosts {
    2.2.2.2 test.com
  }
}

.:53 {
  hosts {
    3.3.3.3 test.com
  }
}

启动 coredns -conf Corefile

#本机回环接口ip 127.0.0.1 测试 nslookup test.com 127.0.0.1, 返回结果1.1.1.1

#本机eth0网卡ip 192.168.1.10 测试 nslookup test.com 192.168.1.10 ,返回结果2.2.2.2

总结

本文我们一起学习了dns相关的理论知识,通过coredns这个利器讲了讲生产环境中dns使用场景,希望对你有帮助,关注devopsec我们一起进步。

点赞
收藏
评论区
推荐文章
3A网络 3A网络
1年前
DNS 系列(三):如何免受 DNS 欺骗的侵害
互联网上每一台设备都会有一个IP地址,我们在访问网站或发送信息时,其实都是通过IP地址达成准确请求的。但是这个IP地址由很长一串数字组成,记忆起来相当困难,所以我们创造了更实用的域名来代替IP地址。而如何将域名和IP地址联系起来,就是域名系统(DNS)发挥作用的地方。它由各种名称服务器(即DNS服务器)组成,负责域名解析,帮助客户端建
芝士年糕 芝士年糕
1年前
DNS域名详细解析过程
最近需要搭建一个网站,需要域名解析和备案了,租了一个很便宜的服务器,而且服务超级好,有兴趣私聊我。什么是DNS域名解析我们首先要了解域名和IP地址的区别。IP地址是互联网上计算机唯一的逻辑地址,通过IP地址实现不同计算机之间的相互通信,每台联网计算机都需要通过IP地址来互相联系和分别。但由于IP地址是由一串容易混淆的数字串构成,人们
Wesley13 Wesley13
2年前
Ubuntu Linux 学习篇 配置DNS服务器
BIND9DNS(DomainNameServer,域名服务器)是进行域名(domainname)和与之相对应的IP地址(IPaddress)转换的服务器。DNS中保存了一张域名(domainname)和与之相对应的IP地址(IPaddress)的表,以解析消息的域名。域名是Internet上某一台计算机或计算机组的名称,用于在数据传输
Stella981 Stella981
2年前
Apache解析和绑定域名
转载修改 如果你想让你上线项目的域名解析的是你本地的IP,该怎么做呢?难道要一个个的改配置文件吗?例:域名为 aaa.com端口默认为80.我试图修改为8080端口,但是出错了1.本地hosts什么是本地hosts?我们知道访问一个域名,通过dns服务器得到该域名所指向的服务器ip地址,然后通过ip地址和服务器建立连接,
Stella981 Stella981
2年前
Linux下DNS简单部署(主从域名服务器)
一、DNS简介DNS(DomainNameSystem),域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。DNS服务器的作用就是
Wesley13 Wesley13
2年前
CDN与智能DNS原理和应用
1.cdn概念,DNS概念CDN:CententDeliveryNetwork(内容分发网络)使用户可以就近取得所需内容,提高用户访问网站相应速度CDN更智能的镜像缓存流量导流;DNS:DomainNameSystem域名系统域名和ip地址相互映射的一个分布式数据库,不用去记住被机器读取的ip地址CDN是内容分发网络,
Stella981 Stella981
2年前
Postfix邮件服务
DNS域名系统服务器IP与域名之间解析;提供分层的域名解析服务;bing伯克利加州大学应用最广的域名服务系统;bind主要分为主配置文件和域数据记录文件yum安装:yuminstallbindy配置NDS域名解析直接添加一下内容:root@mail~cat/e
Wesley13 Wesley13
2年前
DNS解析过程
DNS解析过程是重点也是难点,下面我按自己的理解一步步来解释,可能有错误之处,欢迎指正。以下步骤中,将DNS缓存中存在域名对应IP则DNS解析成功,用户计算机将直接访问服务器,若DNS服务器缓存中不存在域名对应IP,则自动进入下一步。1.浏览器缓存 当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址
芝士年糕 芝士年糕
1年前
更改配置本地host地址
Hosts是一个没有扩展名的系统文件,主要作用是定义IP地址和主机名的映射关系,就是将一些常用的域名网址与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,如果找到,系统会立即打开对应网页,若没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析,若发现是被屏蔽
郑天寿 郑天寿
2个月前
内网部署,移动端如何使用,且保障电脑端安全
"A.在企业内网自建DNS服务,然后使用域名代替公网IP重新配置;B.在互联网区域,使用互联网DNS服务将域名解析到公网IP;C.在内网区域,使用自建DNS服务将域名解析到服务器内网IP,这样内网电脑不能联网也能正常使用,互联网手机也能正常收发消息;D.如