
ネットワーク管理者を使用せずにIPアドレスを設定するためにdhcpcdのみを使用する多くのコンピュータがあります。たとえば、私のRaspberry Pi 4があります。 /etc/dhcpcd.confファイルにIPアドレスを静的に割り当てましたが、うまく動作するので満足です。私が望むのは、nslookup machine2(たとえば)を入力すると、設定されたドメインをそのクエリに追加することです。
dhcpcd(私のArchLinux PC)を使用する他のコンピュータでは、dhcpcdを介してdhcpを使用するようにアドレスを設定しました(つまり、今回は静的ではありません)。私のDHCPサーバーは、クライアントに返されるオプションとしてドメイン名フィールドを指定するように設定しました。その結果、私の/etc/resolv.confファイルは次の行に更新されます。
ドメイン名 mydomain.local
このファイルにはこの「ドメイン」値が設定されているため、nslookup machine2と入力するとクエリにmydomain.localが追加され、DNSサーバーはmachine2.mydomain.localのfqdnのIPを確認します。
したがって、理想的には、この設定を模倣して、ラズベリーパイ4に同じことをしたいのですが、静的に設定されているのでどうすればよいですか?
/etc/resolv.confファイルに "search domain.local"を追加しようとしましたが、必要に応じて機能しましたが、再起動時にこれらの設定が失われるため、ここでこの値を設定できませんでした。 dhcpcdの正しい作業ソリューションが必要です。
修正する:
/etc/resolv.confの出力をここに入れるように求められました:
$ cat /etc/resolv.conf
# Generated by resolvconf
nameserver 10.10.0.1
答え1
(最後に)正しく理解したら、dhcpcd.conf(dhcpd.confではない)を使用してネットワークを構成しました。
次のような構成を使用したいと思います。
interface eth0
static ip_address=192.168.2.31/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1 8.8.8.8 4.2.2.1
ドメインと検索ドメインを設定するには、次の項目を追加できる必要があります。
static domain_name=example.com
static domain_search=example.com
つまり、単にdomain_search
静的オプションに設定するだけです。
参考までにここを見てくださいhttp://www.techsneeze.com/configuring-static-ip-raspberry-pi-running-raspbian/
OPが指摘したように、このオプションはうまく隠されています。推論によると、dhcpcdはDHCPの概念に基づいて構築されたネットワーク構成ツールです。 dhcpcdでは、DHCP応答(部分)を定義して静的構成を設定できます。したがって、この場合、答えはdomain_search
静的に定義された値に追加することです。
文書が不足している理由は、DHCPがカスタムDHCPオプションを追加できるようにするためです。したがって、dhcpcdが静的に定義できるすべてのオプションを一覧表示することは不可能です。これはdomain_search
コアDHCP規格の一部ではないためRFC 3397。
それが言うことです。マニュアルでよりよく説明されています。
答え2
nslookupを使って答えを得る方法がわかりません。ただし、トラブルシューティング方法を知らせるためにnsswitch.confファイルを使用するプログラムの場合、クエリのターゲットがavahi(またはZero_conf、つまりmDNSデーモン)を実行している場合はこれを行うことができます。 getent cmdはそのようなユーティリティの1つです。たとえば、私のLANに「shadow」という名前のPCがあります。
`getent hosts shadow`
何も返しません。
ただし、
getent hosts shadow.local
次を返します。
192.168.1.76 Shadow.local
avahi-resolve -n shadow
返品
ホスト名リゾルバーを作成できません。ホスト名が正しくありません。
avahi-resolve -n Shadow.local は以下を返します。
Shadow.local192.168.1.76
どこにも「ローカル」ドメインを定義したことはありません。
これを行うには、ターゲットがオンラインでなければmDNSポーリングに応答できます。たとえば、ホストヘクターがオフラインの場合:
avahi-resolve -n hector.local
ホスト名 'hector.local'を解決できません:タイムアウトに達しました。
getent hosts hector.local
タイムアウトし、何も返されませんでした。
重要なのは、/etc/nsswitch.conf ファイルに次の行を含めることです。
ホスト: ファイル mdns4_minimal [NOTFOUND=return] dns myhostname
これにより、getentなどのcmdが最初に/ etc / hostsファイルをチェックし、ホストがそこに見つからない場合はmDNS機能を試してみます。
avahiをインストールして実行すると、getentが確認するパスに必要なライブラリが自動的に追加され、getentがnsswitch.confファイルでmdns4_minimalを見るときに何をすべきかを知ることができると思いました。
上記はいくつかの(不満足な)ハッキングです。 dhcpdが望むことをするように強制する方法を知りたいです。 PGMER6809