- ✨ はじめに
- コンセプト構成
- ✅ 1. BINDのインストール(DNSサーバー側で実行)
- ✅ 2. /etc/named.confの設定(DNSサーバー側で編集)
- ✅ 3. ゾーンファイルの作成(DNSサーバー側で作成)
- ✅ 4. パーミッション設定(DNSサーバー側で実行)
- ✅ 5. namedの起動(DNSサーバー側で実行)
- ✅ 6. 動作確認(クライアントVM側で実行)
- ✅ 7. クライアント側の /etc/resolv.conf 設定(クライアントVM側で編集)
- ✅ 8. Oracle DatabaseでのDNS使用例(Oracleインストールサーバー側で設定)
- ⚠️ .localドメインについて
- ☑️ おわりに
✨ はじめに
Oracle Linux 7を使用したVM環境で、独自のDNSサーバーを構築したい方向けに、BINDを用いた構築手順を詳細に解説します。VM同士の名前解決やローカル開発環境での独自ドメイン使用に便利です。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
コンセプト構成
+-----------------------+ +------------------------+
| クライアントVM | ----> | DNSサーバー |
| 192.168.56.101 | dig | 192.168.56.20 |
| /etc/resolv.conf | | BIND + named |
+-----------------------+ +------------------------+
✅ 1. BINDのインストール(DNSサーバー側で実行)
yum install -y bind bind-utils
リポジトリが無効な場合は /etc/yum.repos.d/public-yum-ol7.repoを有効にしましょう。
✅ 2. /etc/named.confの設定(DNSサーバー側で編集)
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { none; };
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
recursion yes;
dnssec-enable no;
dnssec-validation no;
bindkeys-file "/etc/named.root.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "example.local" IN {
type master;
file "example.local.zone";
};
zone "56.168.192.in-addr.arpa" IN {
type master;
file "56.168.192.zone";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
✅ 3. ゾーンファイルの作成(DNSサーバー側で作成)
(正引き)/var/named/example.local.zone
$TTL 86400
@ IN SOA dns-server.example.local. root.example.local. (
2025062201 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
IN NS dns-server.example.local.
dns-server IN A 192.168.56.100
host01 IN A 192.168.56.101
(逆引き)/var/named/56.168.192.zone
$TTL 86400
@ IN SOA dns-server.example.local. root.example.local. (
2025062201 ; Serial
3600
1800
604800
86400 )
IN NS dns-server.example.local.
100 IN PTR dns-server.example.local.
101 IN PTR host01.example.local.
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
✅ 4. パーミッション設定(DNSサーバー側で実行)
chown root:named /var/named/*.zone
restorecon -Rv /var/named
✅ 5. namedの起動(DNSサーバー側で実行)
systemctl enable --now named
問題がある場合:
systemctl status named -l
journalctl -xe
✅ 6. 動作確認(クライアントVM側で実行)
dig @192.168.56.20 host01.example.local
dig -x 192.168.56.101 @192.168.56.20
対応例:
host01.example.local. 86400 IN A 192.168.56.101
✅ 7. クライアント側の /etc/resolv.conf 設定(クライアントVM側で編集)
nameserver 192.168.56.20
NetworkManagerで上書きされる場合:
chattr +i /etc/resolv.conf
※
/etc/resolv.confは NetworkManager 管理下にある場合、再起動時に上書きされるので注意が必要です
✅ 8. Oracle DatabaseでのDNS使用例(Oracleインストールサーバー側で設定)
Oracle Databaseで以下のような用途にDNSが使用されます:
◾ リスナー設定でホスト名を使用する
listener.ora や tnsnames.ora にホスト名を記述している場合、名前解決にDNSが使われます。
# tnsnames.ora の例
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = host01.example.local)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl.example.local)
)
)
DNSが正しく設定されていないと、接続に失敗します。
◾ Data Guard や RAC環境でのVIP管理
RAC構成ではVIP(仮想IP)の名前解決にもDNSを使う構成が可能です。
⚠️ .localドメインについて
WARNING: .local is reserved for Multicast DNS
と表示される場合がありますが、これはローカル環境では問題なく使用できます。 実運用では .test や .localdomainを使うのがベターです。
☑️ おわりに
Oracle Linux 7上でBINDを使ったDNSサーバー構築は、この手順でわずかなステップで完成することができます。クライアントVMや開発環境の同期化に役立つので是非導入してみてください。Oracle Databaseの構成においても、DNSによる名前解決が安定性や可搬性を高める鍵になります。
[参考]
Oracle Database Database Net Services リファレンス 19c




コメント