Linus中做的DNS服务

DNS:Domain Name Server(域名服务器)或者Domain Name System(域名系统)

将域名解析为IP地址,基本解决IP地址难于记忆的问题。也可以将IP地址解析为域名。

DNS最早在1983年出现
一开始网络规模比较小,不需要解析,直接记IP就ok了。后来多了,就借助hosts文件,在dns出现之前,linux中的/etc/hosts文件
windows:C:\WINDOWS\system32\drivers\etc\hosts
后来网络规模更大了,规模大的时候,出现了专业的dns服务器。

全世界IPv4根服务器只有13台。10台在美国,其中1台是主根服务器,9台是辅根服务器,嗯,老美…2台在欧洲,1台在日本。

正向解析和反向解析:

www.baidu.com -->变成12.4.5.6 正向
16.5.9.6 -->变成www.name.com 反向

DSN服务的配置思路:
1、安装软件,bind和bind-chroot(这个是隐藏根目录的)
2、编辑配置文件,主配置文件和区域配置文件
3、重启服务
4、测试

实际操作:
1、安装软件

[root@localhost yum.repos.d]# yum install bind bind-chroot -y
Installed:
  bind.x86_64 32:9.9.4-50.el7                         bind-chroot.x86_64 32:9.9.4-50.el7                        

Dependency Installed:
  bind-libs.x86_64 32:9.9.4-50.el7                                                                               

Complete!
[root@localhost yum.repos.d]# rpm -qa | grep bind
bind-license-9.9.4-50.el7.noarch
bind-libs-9.9.4-50.el7.x86_64
bind-chroot-9.9.4-50.el7.x86_64
bind-9.9.4-50.el7.x86_64
bind-libs-lite-9.9.4-50.el7.x86_64

2、编写配置文件:
由于使用了chroot,将真正的配置文件隐藏起来了。
就需要在所有的目录前加上/var/named/chroot/

所以主配置文件和区域配置文件变为:
/var/named/chroot/etc/named.conf
/var/named/chroot/var/named/xxxxx.zone

没使用chroot的话配置文件就是:
/etc/named.conf
/var/named/xxxx.zone

[root@localhost yum.repos.d]# vi /var/named/chroot/etc/named.conf
//这个是主配置文件,主配置文件在/etc/named.conf有示例,在/usr/share/doc/相应目录也有示例
[root@localhost /]# cat /var/named/chroot/etc/named.conf 
options {
	directory "/var/named";
};

zone "geili.com" {
	type master;
	file "geili.com.zone";
};
//我就写了最基本的.......

这个geili.com 指的是一个域,只要输入的网址包含在这个域中就用相应的区域配置文件进行处理解析。一个域就有一个区域配置文件。

[root@localhost /]# cp -p /var/named/named.localhost /var/named/chroot/var/named/geili.com.zone

//这个是区域配置文件,在/var/named/named.localhost 是示例 -p是一个将文件的权限也拷贝过来。
[root@localhost /]# cat /var/named/chroot/var/named/geili.com.zone 
$TTL 1D
@	IN SOA	@ root.localhost. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
geili.com  NS	dns.geili.com.
dns 	A	172.16.12.10
geili	A	172.16.12.10
user    A 	172.17.0.240

最重要的就是最后那几行,表示的是对应关系。
geili.com 表示的是域。dns.geili.com指的是域的服务器的名字,这个名字也需要被解析,就会被dns也就是第二行的172.16.12.10这个服务解析。后边的就很好理解了,主机名和IP地址。

注意权限问题,配置文件用的是named用户访问,named是系统用户不能登陆,文件的权限要变为named用户可读的权限,所以最好是带权限拷贝。

3、重启

[root@localhost /]# systemctl status named-chroot
● named-chroot.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named-chroot.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-10-28 19:31:14 CST; 13min ago
  Process: 9082 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} -t /var/named/chroot $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 9079 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -t /var/named/chroot -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
 Main PID: 9084 (named)
   CGroup: /system.slice/named-chroot.service
           └─9084 /usr/sbin/named -u named -c /etc/named.conf -t /var/named/chroot

[root@localhost /]# ps -ef | grep named
named      9084      1  0 19:31 ?        00:00:00 /usr/sbin/named -u named -c /etc/named.conf -t /var/named/chroot
root       9108   1513  0 19:45 pts/1    00:00:00 grep --color=auto named

4、测试

能解析出来。

[root@localhost /]# nslookup user.geili.com 172.16.12.10
Server:		172.16.12.10
Address:	172.16.12.10#53

Name:	user.geili.com
Address: 172.17.0.240

[root@localhost /]# nslookup geili.com 172.16.12.10
Server:		172.16.12.10
Address:	172.16.12.10#53

Name:	geili.com
Address: 172.16.12.10

[root@localhost /]# nslookup geili.geili.com 172.16.12.10
Server:		172.16.12.10
Address:	172.16.12.10#53

Name:	geili.geili.com
Address: 172.16.12.10

以上是正向解析,反向解析和正项的一样,只不过域要注意写法。

5、反向解析

zone "16.172.in-addr.arpa" {
	type master;
	file "172.17.rev";
};
和正向的同一个配置文件加这一堆。

新建一个配置文件172.17.rev

[root@localhost /]# cp -p /var/named/named.loopback /var/named/chroot/var/named/172.17.rev
依旧是拷贝。
[root@localhost /]# vi /var/named/chroot/var/named/172.17.rev 
[root@localhost /]# cat /var/named/chroot/var/named/172.17.rev 
$TTL 1D
@	IN SOA	@ rname.invalid. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	@
	A	172.16.12.10
240.0	PTR	user.geili.com.


6、测试反向:

[root@localhost /]# nslookup 172.16.0.240 172.16.12.10
Server:		172.16.12.10
Address:	172.16.12.10#53

240.0.16.172.in-addr.arpa	name = user.geili.com.

ok

可能出现的问题:
uslookup没有这个命令。
这是因为少装了个软件。bind-util

执行这个安装util软件就好了 。yum install bind-utils -y

另外这个做好的DNS服务是可以被写到网卡配置文件里的,但是要确定主机名和IP地址存在,如果不存在就会出现下面情况。

[root@localhost named]# ping stu101.geili.com
PING stu101.geili.com (172.16.12.101) 56(84) bytes of data.
From localhost.localdomain (172.16.12.11) icmp_seq=1 Destination Host Unreachable
From localhost.localdomain (172.16.12.11) icmp_seq=2 Destination Host Unreachable
From localhost.localdomain (172.16.12.11) icmp_seq=3 Destination Host Unreachable
From localhost.localdomain (172.16.12.11) icmp_seq=4 Destination Host Unreachable
^C

其实细看的话就能发现,已经将域名解析成IP了,输出结果的第一行就是,但是因为2点**,1、这个 主机根本不存在所以找不到,会找到网关就停止了。2、这个网段属于私有网段,不能再公网上使用。**

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值