Featured image of post 内网DNS重要使用作用

内网DNS重要使用作用

服务简介:域名系统是因特网的一项服务。它作为将域名和地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。是一个应用层的协议使用和端口。是一个分布式数据库命名系统采用层次的逻辑结构如同一颗倒置的。。。。。。。

DNS服务简介:

DNS(Domain Name System–域名系统),是因特网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。是一个应用层的协议DNS使用TCP和UDP端口53。

DNS是一个分布式数据库,命名系统采用层次的逻辑结构,如同一颗倒置的树,这个逻辑的树形结构称为域名空间,由于DNS划分了域名空间,所以各机构可以使用自己的域名空间创建DNS信息.

注:DNS域名空间中,树的最大深度不得超过127层,树中每个节点最长可以存储63个字符.

以上是在公网中的使用

更详细介绍:DNS服务器搭建与配置 | 曹世宏的博客

DNS内网使用

首先,我们纯内网中,是不能过连接外网的环境的。

但是纯内网也会有许多的IP和服务,我们该怎么来区分,总不能记录所有IP,所以我们需要自建内网的DNS,达到内网域名解析的效果。

DNS使用作用

WHAT:DNS(域名系统)说白了,就是把一个域和IP地址做了一下绑定,如你在里机器里面输入 nslookup <www.qq.com>,出来的Address是一堆IP,IP是不容易记的,所以DNS让IP和域名做一下绑定,这样你输入域名就可以了

WHY:我们要用ingress,在K8S里要做7层调度,而且无论如何都要用域名(如之前的那个百度页面的域名,那个是host的方式),但是问题是我们怎么给K8S里的容器绑host,所以我们必须做一个DNS,然后容器服从我们的DNS解析调度

我们会在10.4.7.11 安装dns主服务,10.4.7.12作为备用dns服务

也可以走一层keepalive虚拟IP。

可以简单理解成:

11机器:反向代理

12机器:反向代理

21机器:主控+运算节点(即服务群都是跑在21和22上)

22机器:主控+运算节点(生产上我们会把主控和运算分开)

200机器:运维主机(放各种文件资源)

这样控节点有两个,运算节点有两个,就是小型的分布式,现在你可能没办法理解这些内容,我们接着做下去,慢慢的,你就理解了

 

初始化

1
2
3
4
5
6
7
8
9
# 查看enforce是否关闭,确保disabled状态,当然可能没有这个命令
~]# getforce
# 查看内核版本,确保在3.8以上版本
~]# uname -a
# 关闭firewalld
~]# systemctl stop firewalld
# 安装epel源及相关工具
~]# yum install epel-release -y
~]# yum install wget net-tools telnet tree nmap sysstat lrzsz dos2unix bind-utils -y

 

uname:显示系统信息

  • -a/-all:显示全部

yum:提供了查找、安装、删除某一个、一组甚至全部软件包的命令

  • install:安装

  • -y:当安装过程提示选择全部为"yes"

安装步骤 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 在11机器:
~]# yum install bind -y
~]# rpm -qa bind
# out: bind-9.11.4-9.P2.el7.x86_64
# 配置主配置文件,11机器
~]# vi /etc/named.conf
listen-on port 53 { 10.4.7.11; };  # 原本是127.0.0.1
# listen-on-v6 port 53 { ::1; };  # 需要删掉
allow-query     { any; };  # 原本是locall
forwarders      { 10.4.7.254; };  #另外添加的
dnssec-enable no;  # 原本是yes
dnssec-validation no;  # 原本是yes

# 检查修改情况,没有报错即可(即没有信息)
~]# named-checkconf

 

 

rpm:软件包管理器

  • -qa:查看已安装的所有软件包

rpm和yum安装的区别:前者不检查相依性问题,后者检查(即相关依赖包)

named.conf文件内容解析:

  • listen-on:监听端口,改为监听在内网,这样其它机器也可以用

  • allow-query:哪些客户端能通过自建的DNS查

  • forwarders:上级DNS是什么

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 11机器,经验:主机域一定得跟业务是一点关系都没有,如host.com,而业务用的是od.com,因为业务随时可能变
# 区域配置文件,加在最下面
~]# vi /etc/named.rfc1912.zones
zone "host.com" IN {
        type  master;
        file  "host.com.zone";
        allow-update { 10.4.7.11; };
};

zone "od.com" IN {
        type  master;
        file  "od.com.zone";
        allow-update { 10.4.7.11; };
};

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 11机器:
# 注意serial行的时间,代表今天的时间+第一条记录:20200112+01
7-11 ~]# vi /var/named/host.com.zone
$ORIGIN host.com.
$TTL 600	; 10 minutes
@       IN SOA	dns.host.com. dnsadmin.host.com. (
				2020011201 ; serial
				10800      ; refresh (3 hours)
				900        ; retry (15 minutes)
				604800     ; expire (1 week)
				86400      ; minimum (1 day)
				)
			NS   dns.host.com.
$TTL 60	; 1 minute
dns                A    10.4.7.11
HDSS7-11           A    10.4.7.11
HDSS7-12           A    10.4.7.12
HDSS7-21           A    10.4.7.21
HDSS7-22           A    10.4.7.22
HDSS7-200          A    10.4.7.200

7-11 ~]# vi /var/named/od.com.zone
$ORIGIN od.com.
$TTL 600	; 10 minutes
@   		IN SOA	dns.od.com. dnsadmin.od.com. (
				2020011201 ; serial
				10800      ; refresh (3 hours)
				900        ; retry (15 minutes)
				604800     ; expire (1 week)
				86400      ; minimum (1 day)
				)
				NS   dns.od.com.
$TTL 60	; 1 minute
dns                A    10.4.7.11

# 看一下有没有报错
7-11 ~]# named-checkconf
7-11 ~]# systemctl start named
7-11 ~]# netstat -luntp|grep 53

TTL 600:指定IP包被路由器丢弃之前允许通过的最大网段数量

  • 10 minutes:过期时间10分钟

SOA:一个域权威记录的相关信息,后面有5组参数分别设定了该域相关部分

  • dnsadmin.od.com. 一个假的邮箱

  • serial:记录的时间

$ORIGIN:即下列的域名自动补充od.com,如dns,外面看来是dns.od.com

netstat -luntp:显示 tcp,udp 的端口和进程等相关情况

 

1
2
3
4
5
6
7
8
# 11机器,检查主机域是否解析
7-11 ~]# dig -t A hdss7-21.host.com @10.4.7.11 +short
# 配置linux客户端和win客户端都能使用这个服务,修改
7-11 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=10.4.7.11
7-11 ~]# systemctl restart network
7-11 ~]# ping www.baidu.com
7-11 ~]# ping hdss7-21.host.com

 

dig -t A:指的是找DNS里标记为A的相关记录,而后面会带上相关的域,如上面的hdss7-21.host.com,为什么外面配了HDSS7-21后面还会自动接上.host.com就是因为$ORIGIN,后面则是对应的IP

  • +short:表示只返回IP

 

1
2
3
# 在所有机器添加search... ,即可使用短域名(我的是自带的)
~]# vi /etc/resolv.conf
~]# ping hdss7-200

 

 

1
2
3
4
5
6
7
8
9
# 在非11机器上,全部改成11
~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=10.4.7.11

~]# systemctl restart network
# 试下网络是否正常
~]# ping baidu.com
# 其它机器尝试ping7-11机器
7-12 ~]# ping hdss7-11.host.com

让其它机器的DNS全部改成11机器的好处是,全部的机器访问外网就只有通过11端口,更好控制

 # 修改window网络,并ping

 

 

 

后续域名解析

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[root@hdss7-11 ~]# cat /var/named/od.com.zone 
$ORIGIN od.com.
$TTL 600	; 10 minutes
@   		IN SOA	dns.od.com. dnsadmin.od.com. (
				2020011523 ; serial  #这个需要每次增加1
				10800      ; refresh (3 hours)
				900        ; retry (15 minutes)
				604800     ; expire (1 week)
				86400      ; minimum (1 day)
				)
				NS   dns.od.com.
$TTL 60	; 1 minute
dns                A    10.4.7.11
harbor             A    10.4.7.200
k8s-yaml           A    10.4.7.200
traefik            A    10.4.7.10
dashboard          A    10.4.7.10
zk1                A   10.4.7.11
zk2                A   10.4.7.12
zk3                A   10.4.7.21
jenkins            A   10.4.7.10
gitlab             A    10.4.7.200
dubbo-monitor      A    10.4.7.10
demo               A    10.4.7.10
config             A    10.4.7.10
mysql              A    10.4.7.11
portal             A    10.4.7.10
zk-test            A    10.4.7.11
zk-prod            A    10.4.7.12
config-test        A    10.4.7.10
config-prod        A    10.4.7.10
demo-test          A    10.4.7.10
demo-prod          A    10.4.7.10
blackbox           A    10.4.7.10
prometheus         A    10.4.7.10
grafana            A    10.4.7.10
km                 A    10.4.7.10
kibana             A    10.4.7.10