Redhat 7 での DNS サーバーの設定とテスト

例:
ユニットが配置されているドメイン「gztzy.org」に 3 つのホストがあり、ホスト名が jwc.gztzy.org、yds.gztzy.org、および cys.gztzy.org であるとします。DNS サーバーのアドレスは 192.168.1.3 です。3 つのホストの IP アドレスは、192.168.1.4、192.168.1.5、および 192.168.1.6 です。ここで、DNS サーバー
dns.gztzy.org が 3 つのホスト名と IP アドレス間の対応関係を解決できる必要があります。
分析: 前の操作に従って、まずメイン設定ファイルを作成し、解析可能な gztzy.org 領域を設定します。次に、「gztzy.org」ゾーン ファイルを構築し、ゾーン ファイルに SOA、NS、および A リソース レコードを設定します。最後にクライアントを設定します。具体的な手順は次のとおりです。
**

1. DNSサーバーの静的IPアドレスを設定します。

**
画像の説明を追加してください

[root@localhost 桌面]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 
[root@localhost 桌面]# nmtui
[root@localhost 桌面]# systemctl restart network
[root@localhost 桌面]# ifconfig 
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.3  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe80:3fb8  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:80:3f:b8  txqueuelen 1000  (Ethernet)
        RX packets 166  bytes 15574 (15.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 275  bytes 29706 (29.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 539  bytes 48368 (47.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 539  bytes 48368 (47.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost Desktop]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   38G  2.9G   35G   8% /
devtmpfs               905M     0  905M   0% /dev
tmpfs                  914M  140K  914M   1% /dev/shm
tmpfs                  914M  8.9M  905M   1% /run
tmpfs                  914M     0  914M   0% /sys/fs/cgroup
/dev/sda1              497M  119M  379M  24% /boot
/dev/sr0               3.5G  3.5G     0 100% /run/media/root/RHEL-7.0 Server.x86_64
[root@localhost Desktop]# mkdir /mnt/cdrom && mount /dev/sr0 /mnt/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost Desktop]# vim /etc/yum.repos.d/a.repo
[a]
name=welcome to redhatroom
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
[root@localhost Desktop]# yum install -y bind-chroot.x86_64 
[root@localhost Desktop]# systemctl status named
named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled)
   Active: inactive (dead)

[root@localhost Desktop]# systemctl start named
[root@localhost Desktop]# systemctl status named
named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled)
   Active: active (running) since Thu 2022-11-03 02:26:41 EDT; 1s ago
  Process: 14259 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 14258 ExecStartPre=/usr/sbin/named-checkconf -z /etc/named.conf (code=exited, status=0/SUCCESS)
 Main PID: 14261 (named)
   CGroup: /system.slice/named.service
           └─14261 /usr/sbin/named -u named

Linuxシステムでは、バインドサービスプログラムの名前が付けられます。まず、/etc ディレクトリでサービス プログラムのメイン構成ファイルを見つけ、11 行目と 19 行目のアドレスを any に変更する必要があります。これは、サーバー上のすべての IP アドレスが DNS ドメイン名を提供できることを意味します。解決サービスを設定し、全員がこのサーバーに DNS クエリ要求を送信できるようにします。

メイン設定ファイル (/etc/named.conf): わずか 59 行で、コメント情報と空行を削除すると、実際に有効なパラメータは約 30 行のみになります。バインド サービス プログラムの動作を定義するために使用されます。

ゾーン設定ファイル (/etc/named.rfc1912.zones): ドメイン名と IP アドレスの対応関係の場所を保存するために使用されます。書籍のカタログと同様に、各ドメインの特定の場所と対応する IP アドレスが対応しており、閲覧や変更が必要な場合は、この場所に基づいて関連ファイルを見つけることができます。

データ構成ファイル ディレクトリ (/var/named): このディレクトリは、ドメイン名と IP アドレスの間の実際の対応関係のデータ構成ファイルを保存するために使用されます。

[root@localhost named]# vim /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
    
    
        listen-on port 53 {
    
     any; };
        listen-on-v6 port 53 {
    
     ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     {
    
     any; };

1. フォワード分析の実現

[root@localhost named]# vim /etc/named.rfc1912.zones
zone "gztzy.org" IN {
    
    
        type master;
        file "gztzy.org";
        allow-update {
    
     none; };
};
[root@localhost named]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -a named.localhost gztzy.org
[root@localhost named]# vim gztzy.org 
$TTL 1D #寿命は1日
@ ソアで gztzy.org。 root.gztzy.org。 (
#認可情報は次のように始まります。 #DNSゾーンのアドレス #ドメイン名管理者の電子メール アドレス (@ 記号は使用しないでください)
0 ; シリアル #シリアル番号を更新する
1D; リフレッシュする # 更新時間
1H; リトライ #再試行の遅​​延
1W; 期限切れ #有効期限
3H); 最小 #無効な解析レコードのキャッシュ時間
NS dns.gztzy.org。 # ドメインネームサーバーレコード
DNS 192.168.1.3 #アドレスレコード(dns.gztzy.org.)
水差し 192.168.1.4 # 住所レコード (jwc.gztzy.org.)
ヤード 192.168.1.5 #アドレスレコード(yds.gztzy.org.)
シス 192.168.1.6 # アドレスレコード (cys.gztzy.org.)

解決ファイルでは、A レコード タイプはドメイン名が IPv4 アドレスを指していることを示し、AAAA はドメイン名が IPv6 アドレスを指していることを示します。さらに、8 つのレコード タイプがあります。

レコードタイプ 効果
ドメイン名が IPV4 アドレスを指すようにする
CNAME ドメイン名が別のドメイン名を指すようにする
ああああ ドメイン名が IPV6 アドレスを指すようにする
NS 他のDNSサーバーによって解決されるサブドメイン名を指定します
MX ドメイン名がメールサーバーアドレスを指すようにする
SRV 特定のサービスを提供するサーバーを記録する
TXT テキスト コンテンツは通常 512 バイトで、スパム対策の SPF レコードとしてよく使用されます。
CAA CA 証明書方式の権限認証の検証
明示的な URL ドメイン名を別のアドレスにリダイレクトする
隠しURL 明示的な URL タイプと同じですが、実際のターゲット アドレスは非表示になります。
[root@localhost named]# named-checkconf				// 检查主配置文件语法或参数的错误。
[root@localhost named]# systemctl restart named
[root@localhost named]# systemctl status named
named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled)
   Active: active (running) since 一 2022-10-24 15:05:15 CST; 4s ago
  Process: 46529 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 45686 ExecReload=/bin/sh -c /usr/sbin/rndc reload > /dev/null 2>&1 || /bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
  Process: 46539 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 46537 ExecStartPre=/usr/sbin/named-checkconf -z /etc/named.conf (code=exited, status=0/SUCCESS)
 Main PID: 46543 (named)
   CGroup: /system.slice/named.service
           └─46543 /usr/sbin/named -u named
[root@localhost named]# nslookup 
> jwc.gztzy.org
Server:		192.168.1.3
Address:	192.168.1.3#53

Name:	jwc.gztzy.org
Address: 192.168.1.4
> yds.gztzy.org
Server:		192.168.1.3
Address:	192.168.1.3#53

Name:	yds.gztzy.org
Address: 192.168.1.5
> cys.gztzy.org
Server:		192.168.1.3
Address:	192.168.1.3#53

Name:	cys.gztzy.org
Address: 192.168.1.6
> 

2. 逆解析の実現

ゾーン構成ファイルを編集します。逆解決とは、IP アドレスをドメイン名形式に解決することなので、ゾーン(エリア)を定義する際に IP アドレスを逆にする必要があります。たとえば、元の 192.168.1.0 が、逆になると 1.168.192 になります。 IP を書き込みます。アドレスのネットワーク ビットで十分です。前方解析パラメータの後に次のパラメータを追加します。

[root@localhost named]# vim /etc/named.rfc1912.zones 
zone "gztzy.org" IN {
    
    
        type master;
        file "gztzy.org";
        allow-update {
    
     none; };
};
zone "1.168.192.in-addr.arpa" IN {
    
    
        type master;
        file "192.168.1.arpa";
        allow-update {
    
     none; };
};
[root@localhost named]# ls
data  dynamic  gztzy.org  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -a named.loopback 192.168.1.arpa
[root@localhost named]# vim 192.168.1.arpa 
[root@localhost named]# named-checkconf 
[root@localhost named]# systemctl restart named
[root@localhost named]# systemctl status named
named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled)
   Active: active (running) since 一 2022-10-24 15:16:07 CST; 4s ago
  Process: 46787 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 45686 ExecReload=/bin/sh -c /usr/sbin/rndc reload > /dev/null 2>&1 || /bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
  Process: 46797 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 46796 ExecStartPre=/usr/sbin/named-checkconf -z /etc/named.conf (code=exited, status=0/SUCCESS)
 Main PID: 46799 (named)
   CGroup: /system.slice/named.service
           └─46799 /usr/sbin/named -u named

192.168.1.arpa 設定ファイル
テスト結果を確認する

[root@localhost named]# nslookup 
> 192.168.1.3
Server:		192.168.1.3
Address:	192.168.1.3#53

3.1.168.192.in-addr.arpa	name = dns.gztzy.org.
> 192.168.1.4
Server:		192.168.1.3
Address:	192.168.1.3#53

4.1.168.192.in-addr.arpa	name = jwc.gztzy.org.
> 192.168.1.5
Server:		192.168.1.3
Address:	192.168.1.3#53

5.1.168.192.in-addr.arpa	name = yds.gztzy.org.
> 192.168.1.6
Server:		192.168.1.3
Address:	192.168.1.3#53

6.1.168.192.in-addr.arpa	name = cys.gztzy.org.
> exit

2. スレーブサーバーを展開する

重要なインターネット インフラストラクチャ サービスとして、DNS ドメイン名解決サービスが正常に動作することは非常に重要であり、これによってのみ、安定した、高速で中断のないドメイン名問い合わせサービスを提供することができます。DNS ドメイン名解決サービスでは、スレーブ サーバーはマスター サーバーから指定されたゾーン データ ファイルを取得することで、解決記録のバックアップと負荷分散の役割を果たします。したがって、スレーブ サーバーを導入すると、マスター サーバーの負荷が軽減されるだけでなく、ユーザーのクエリ効率も向上します。

適用例
IP アドレス 192.168.1.3 の DNS サーバーのスレーブ サーバーを構成し、アドレスは 192.168.1.20 です。
ステップ 1: マスター サーバーのゾーン構成ファイルでスレーブ サーバーの更新要求を許可する (つまり、allow-update {ゾーン情報の更新を許可するホスト アドレス;}; パラメーターを変更してから、DNS サービスを再起動します)マスターサーバーのプログラム。

[root@localhost named]# vim /etc/named.rfc1912.zones 
 		zone "gztzy.org" IN {
    
    
        type master;
        file "gztzy.org";
        allow-update {
    
     192.168.1.20; };
};
zone "1.168.192.in-addr.arpa" IN {
    
    
        type master;
        file "192.168.1.arpa";
        allow-update {
    
     192.168.1.20; };
};

ステップ 2: DNS プロトコル トラフィックがスムーズに通過できるように、マスター サーバーでファイアウォール リリース ルールを構成します。
[root@localhostnamed]# firewall-config
画像の説明を追加してください
ステップ 3: スレーブ サーバーにbind-chroot パッケージをインストールします。スレーブ サーバーが外部に DNS サービスを提供できるように構成ファイルを変更し、スレーブ サーバーの IP アドレスを設定し、マスター サーバーとのネットワーク接続をテストします。

[root@localhost 桌面]# yum install -y bind
[root@localhost 桌面]# ifconfig 
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.20  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe44:2ec6  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:44:2e:c6  txqueuelen 1000  (Ethernet)
        RX packets 744  bytes 66179 (64.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2215  bytes 188465 (184.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost named]# vim /etc/named.conf
options {
    
    
        listen-on port 53 {
    
     any; };
        listen-on-v6 port 53 {
    
     ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     {
    
     any; };

[root@localhost 桌面]# ping 192.168.1.3 -c4       
PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data.
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.228 ms
64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.292 ms
64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=1.25 ms
64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.295 ms

--- 192.168.1.3 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.228/0.516/1.252/0.426 ms

ステップ 4: マスター サーバーの IP アドレスとスレーブ サーバーで取得するエリア情報を入力し、サービスを再起動します。このときのサービスタイプはマスター(master)ではなくスレーブ(slave)であることに注意してください。masters パラメータの後にはマスター サーバーの IP アドレスを指定する必要があり、file パラメータの後には同期されたデータ構成ファイルが保存される場所を指定する必要があります。同期されたファイルは後でこのディレクトリで確認できるようになります。

[root@localhost named]# vim /etc/named.rfc1912.zones 
zone "gztzy.org." IN {
    
    
        type slave;
        masters {
    
    192.168.1.3; };
        file "slaves/gztzy.org.zones";
};
zone "1.168.192.in-addr.arpa" IN {
    
    
        type slave;
        masters {
    
    192.168.1.3; };
        file "slaves/192.168.1.arpa";
};
[root@localhost named]# named-checkconf 
[root@localhost named]# systemctl restart named
root@localhost named]# cd /var/named/slaves/
[root@localhost slaves]# ls
192.168.1.arpa  gztzy.org.zones

ステップ 5: 分析結果を確認します。スレーブ サーバーの DNS サービス プログラムが再起動されると、データ構成ファイルはマスター サーバーから自動的に同期され、そのファイルはデフォルトでゾーン構成ファイルに定義されたディレクトリの場所に配置されます。次に、スレーブ サーバーのネットワーク パラメーターを変更し、DNS アドレス パラメーターを 192.168.1.20 に変更して、スレーブ サーバー自体が提供する DNS ドメイン名解決サービスを使用できるようにします。最後に、nslookupコマンドを使用すると、分析結果をスムーズに確認できます。

[root@localhost slaves]# nslookup 
> 192.168.1.3
Server:		192.168.1.20
Address:	192.168.1.20#53

3.1.168.192.in-addr.arpa	name = dns.gztzy.org.
> yds.gztzy.org
Server:		192.168.1.20
Address:	192.168.1.20#53

Name:	yds.gztzy.org
Address: 192.168.1.5
> exit

おすすめ

転載: blog.csdn.net/weixin_52532523/article/details/127490262