Linus中做的DNS服务

mac2023-01-23  18

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、这个网段属于私有网段,不能再公网上使用。**

最新回复(0)