「設定 - DNSMasq」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「== 概要 == DNSサーバ(DNSMasq)は、suse.comというドメイン名からIPアドレスを返したり、IPアドレスからドメイン名を返すサーバである。<br> <br> 内部向けDNSサーバは、LANにあるサーバまたはクライアントPCにアクセスする時、IPアドレスではなくsuse.com等のドメイン名を入力してアクセスできるようにするDNSサーバである。<br> <br><br> == DNSMasqのインストール =…」) |
|||
(同じ利用者による、間の4版が非表示) | |||
19行目: | 19行目: | ||
port=53 | port=53 | ||
# | # リッスンするインターフェースの設定 | ||
interface=<インターフェース名 例: eth0> # または使用するインターフェース名 | |||
listen-address=127.0.0.1,<Raspberry PiのIPアドレス 例: 192.168.0.100> # 実際のIPアドレスに変更 | |||
# ドメイン名および.(ドット)を付加しないクエリの場合、上位のDNSサーバに転送しない | |||
# また、外部のDNSへ問い合わせをする場合は、ホスト名では問い合わせない | # また、外部のDNSへ問い合わせをする場合は、ホスト名では問い合わせない | ||
domain-needed | domain-needed | ||
25行目: | 29行目: | ||
# プライベートIPアドレスの逆引きを、上位のDNSサーバに転送しない | # プライベートIPアドレスの逆引きを、上位のDNSサーバに転送しない | ||
bogus-priv | bogus-priv | ||
# 任意のIPアドレスに強制的に接続させたいドメインを追加 | # 任意のIPアドレスに強制的に接続させたいドメインを追加 | ||
address=/ | address=/raspi.com/192.168.1.XX | ||
# 名前解決で参照するためのファイルにおいて、デフォルトの/etc/hostsファイルは使用しない | # 名前解決で参照するためのファイルにおいて、デフォルトの/etc/hostsファイルは使用しない | ||
37行目: | 38行目: | ||
# /etc/hosts-dnsmasqファイルをDNSのレコードとして使用する | # /etc/hosts-dnsmasqファイルをDNSのレコードとして使用する | ||
addn-hosts=/etc/hosts-dnsmasq | addn-hosts=/etc/hosts-dnsmasq | ||
# ドメインを付加しないホスト名の問い合わせの場合、自動的にdomain=で指定されたドメイン名を補完する | |||
# 例. ホスト名sleで問い合わせがある時、domain=で指定しているsuse.comを自動的に追加して、sle.suse.comで返す | |||
domain=raspi.com | |||
# LANで使用する内部ドメインの指定 | |||
local=/raspi.com/ | |||
# 名前解決で参照するためのファイルを指定 | # 名前解決で参照するためのファイルを指定 | ||
# ドメイン名のないクエリに対して、自動的にドメイン(domain項目で記述する)を付加する | |||
expand-hosts | expand-hosts | ||
# FQDNとIPアドレスの対応を保存するキャッシュサイズを指定 | # FQDNとIPアドレスの対応を保存するキャッシュサイズを指定 | ||
cache-size=10000 | cache-size=10000 | ||
# 上流DNSサーバの設定 | |||
server=<HGWを使用している場合 例: 192.168.0.1> | |||
server=1.1.1.1 | |||
<br> | <br> | ||
名前解決で参照するためのファイルを作成する。<br> | 名前解決で参照するためのファイルを作成する。<br> | ||
54行目: | 63行目: | ||
# /etc/hosts-dnsmasqファイル | # /etc/hosts-dnsmasqファイル | ||
192.168. | 192.168.x.x raspi.raspi.net raspi # 内部向けDNSサーバのIPアドレス | ||
192.168. | 192.168.x.x suse.raspi.net suse # クライアントPC 1 | ||
192.168. | 192.168.x.x sle.raspi.net sle # クライアントPC 2 | ||
<br> | |||
設定変更後、DNSmasqを再起動する。<br> | |||
sudo systemctl restart dnsmasq | |||
<br> | |||
ログを確認して問題がないか確認する。<br> | |||
sudo journalctl -u dnsmasq | |||
<br> | <br> | ||
上記の設定により、DNSMasqは、以下に示すように動作する。<br> | 上記の設定により、DNSMasqは、以下に示すように動作する。<br> | ||
71行目: | 86行目: | ||
sudo firewall-cmd --permanent --add-service=dns | sudo firewall-cmd --permanent --add-service=dns | ||
# または | |||
sudo firewall-cmd --zone=internal --permanent --add-service=dns | |||
sudo firewall-cmd --reload | sudo firewall-cmd --reload | ||
<br><br> | <br><br> | ||
80行目: | 98行目: | ||
sudo firewall-cmd --permanent --remove-service=dns | sudo firewall-cmd --permanent --remove-service=dns | ||
# または | |||
sudo firewall-cmd --zone=internal --permanent --add-service=dns | |||
sudo firewall-cmd --reload | sudo firewall-cmd --reload | ||
<br><br> | <br><br> | ||
98行目: | 119行目: | ||
*: または | *: または | ||
*: <code>search suse.com</code> | *: <code>search suse.com</code> | ||
*: <br> | |||
*: 編集後、/etc/resolv.confファイルを更新する。 | |||
*: <code>sudo netconfig update -f</code> | |||
<br> | <br> | ||
次に、クライアントPCのネットワークを再起動する。<br> | 次に、クライアントPCのネットワークを再起動する。<br> |
2025年2月2日 (日) 21:21時点における最新版
概要
DNSサーバ(DNSMasq)は、suse.comというドメイン名からIPアドレスを返したり、IPアドレスからドメイン名を返すサーバである。
内部向けDNSサーバは、LANにあるサーバまたはクライアントPCにアクセスする時、IPアドレスではなくsuse.com等のドメイン名を入力してアクセスできるようにするDNSサーバである。
DNSMasqのインストール
DNSサーバを構築するため、DNSMasqをインストールする。
sudo apt install dnsmasq dnsmasq-base libnetfilter-conntrack3 libnfnetlink0
DNSMasqの設定
内部向けDNSサーバを設定する。
sudo vi /etc/dnsmasq.conf
# /etc/dnsmasq.confファイル # DNSサーバのポート番号の指定 port=53 # リッスンするインターフェースの設定 interface=<インターフェース名 例: eth0> # または使用するインターフェース名 listen-address=127.0.0.1,<Raspberry PiのIPアドレス 例: 192.168.0.100> # 実際のIPアドレスに変更 # ドメイン名および.(ドット)を付加しないクエリの場合、上位のDNSサーバに転送しない # また、外部のDNSへ問い合わせをする場合は、ホスト名では問い合わせない domain-needed # プライベートIPアドレスの逆引きを、上位のDNSサーバに転送しない bogus-priv # 任意のIPアドレスに強制的に接続させたいドメインを追加 address=/raspi.com/192.168.1.XX # 名前解決で参照するためのファイルにおいて、デフォルトの/etc/hostsファイルは使用しない no-hosts # /etc/hosts-dnsmasqファイルをDNSのレコードとして使用する addn-hosts=/etc/hosts-dnsmasq # ドメインを付加しないホスト名の問い合わせの場合、自動的にdomain=で指定されたドメイン名を補完する # 例. ホスト名sleで問い合わせがある時、domain=で指定しているsuse.comを自動的に追加して、sle.suse.comで返す domain=raspi.com # LANで使用する内部ドメインの指定 local=/raspi.com/ # 名前解決で参照するためのファイルを指定 # ドメイン名のないクエリに対して、自動的にドメイン(domain項目で記述する)を付加する expand-hosts # FQDNとIPアドレスの対応を保存するキャッシュサイズを指定 cache-size=10000 # 上流DNSサーバの設定 server=<HGWを使用している場合 例: 192.168.0.1> server=1.1.1.1
名前解決で参照するためのファイルを作成する。
以下の例に記述しているXXやYY等のIPアドレスを、該当するクライアントPCのIPアドレスに変更すること。
sudo vi /etc/hosts-dnsmasq
# /etc/hosts-dnsmasqファイル 192.168.x.x raspi.raspi.net raspi # 内部向けDNSサーバのIPアドレス 192.168.x.x suse.raspi.net suse # クライアントPC 1 192.168.x.x sle.raspi.net sle # クライアントPC 2
設定変更後、DNSmasqを再起動する。
sudo systemctl restart dnsmasq
ログを確認して問題がないか確認する。
sudo journalctl -u dnsmasq
上記の設定により、DNSMasqは、以下に示すように動作する。
- クライアントPCからDNSサーバ(dnsmasq)へ問い合わせが来る。
- ホスト名のみの場合(例. sle)、/etc/hosts-dnsmasqファイルを参照して、名前解決を行う。
- ホスト名 + ドメイン名の場合(例. sle.suse.com)、/etc/hosts-dnsmasqファイルを参照して、名前解決を行う。
- ドメイン外の場合(例. google.co.jp)、上位のDNSサーバに問い合わせをフォワードする。
DNSMasqの起動
DNSMasqを起動する。
併せて、ファイアーウォールのポート開放も行う。
sudo systemctl start dnsmasq sudo firewall-cmd --permanent --add-service=dns # または sudo firewall-cmd --zone=internal --permanent --add-service=dns sudo firewall-cmd --reload
DNSMasqの停止
DNSMasqを停止する。
併せて、ファイアーウォールのポートも閉じる。
sudo systemctl stop dnsmasq sudo firewall-cmd --permanent --remove-service=dns # または sudo firewall-cmd --zone=internal --permanent --add-service=dns sudo firewall-cmd --reload
クライアントPCの設定
まず、ドメイン検索の設定を行う。
- KDEを使用している場合
- [KDEシステム設定]を起動して、[接続]を選択する。
- [接続]画面左の接続名を選択して、[接続]画面右の[IPv4]タブ - [DNSサーバ:]項目に内部向けDNSサーバのIPアドレスを追加する。
- 同様に、[接続]画面右の[IPv4]タブ - [検索ドメイン:]項目に内部向けDNSサーバのドメイン名を入力する。
例えば、DNSサーバ名がns.suse.com
の場合、suse.com
と入力する。
- リゾルバファイルを編集する場合
- /etc/resolv.confファイルにおいて、内部向けDNSサーバのドメイン名を入力する。
- 例えば、DNSサーバ名が
ns.suse.com
の場合、suse.com
と入力する。 sudo vi /etc/resolv.conf
domain suse.com
- または
search suse.com
- 編集後、/etc/resolv.confファイルを更新する。
sudo netconfig update -f
次に、クライアントPCのネットワークを再起動する。
systemctl
コマンドを使用する場合sudo systemctl restart NetworkManager
nmcli
コマンドを使用する場合- NetworkManagerの全てのインターフェイスを停止した後、それらを起動する。
sudo nmcli networking off && sudo nmcli networking on
- Linuxを再起動する場合
sudo shutdown -r now
ドメイン名の正引きおよび逆引きの確認
各クライアントPCの正引きおよび逆引きができるかどうかを確認する。
digコマンドの基本的な使用方法を以下に示す。
# OSに設定されているDNSサーバに問い合わせ dig <問い合わせをするホスト名> # @以下で指定したDNSサーバに問い合わせ dig @<DNSサーバのIPアドレス> <問い合わせをするホスト名> # IPアドレスからの逆引き dix -x <IPアドレス>
nslookup ns.suse.com # 内部向けDNSサーバの正引き nslookup pc1.suse.com # クライアントPC 1の正引き nslookup pc2.suse.com # クライアントPC 2の正引き nslookup pc3.suse.com # クライアントPC 3の正引き nslookup 192.168.1.XX # 内部向けDNSサーバの逆引き nslookup 192.168.1.YY # クライアントPC 1の逆引き nslookup 192.168.1.ZZ # クライアントPC 2の逆引き nslookup 192.168.1.AA # クライアントPC 3の逆引き # 再帰問い合わせが無効の場合(recursion項目がnoの場合) dig @<該当PCのIPアドレス> <該当PCのドメイン名> 例1. dig @192.168.10.5 ns.suse.net 例2. dig @192.168.10.6 pc01.suse.net