例:
ユニットが配置されているドメイン「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
テスト結果を確認する
[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