名前でvirshホストを見つける方法は?

名前でvirshホストを見つける方法は?

tl;dr: virsh で作成した仮想マシンを見つけるために、自分のコンピュータの DNS をどのように取得しますか?

Ubuntu 18.04(bionic)では、通常のパッケージからvirshをインストールしました。これにより、192.168.122.1で実行されているdnsmasqインスタンス(virshインスタンス用)と127.0.0.53で実行される/lib/systemd/systemd-resolvedインスタンスという2つのネームサーバーが作成されます。

後者は前者と会話しない。この問題を解決したいのですが、どこから始めるべきかわかりません。

virsh を使用して仮想マシンを作成すると、DHCP を使用して dnsmasq インスタンスから IP アドレスを取得します。ホストは名前(vippy)を送信し、dnsmasqはそれを記録します。私の入力はうまくhost vippy 192.168.122.1いきますが、dnsmasqがドメイン名を使用するように設定されていない場合。だから働きたいですhost vippy.hosts.virsh 192.168.122.1

次の問題は、.hosts.virshのすべての要求を192.168.122.1にルーティングするようにsystemd-resolvedを取得することです。

ベストアンサー1

systemd重要なサービス(ntp、dns、cronなど)のほとんどの選択肢と同様に、systemd-resolvedこれはLennart Poetteringのサービスと非常によく似たデスクトップでのみ機能する半分の実装です。それが彼のシステム要件を満たしていれば、誰にでも十分なので、文句を止めてください。 WONTFIX NOTABUG ユーザー・エラーです。 systemdはinitのように優れていますが、残念ながら必要なものよりも多くのことをやろうとします。

まず無効にしてくださいsystemd-resolved

systemctl stop systemd-resolved
systemctl disable systemd-resolved

次に、実際の再帰キャッシュネームサーバー(dnsmasq、、、unboundまたはその他)をインストールし、ドメインに対する要求を192.168.122.1にbind転送するように構成します。hosts.virsh

dnsmasqの場合は、次のものを使用できます--server=/hosts.virsh/192.168.122.1

バインディングを使用して、次のように転送領域を定義しますnamed.conf

zone "hosts.virsh" {
        type forward;
        forwarders { 192.168.1.122; };
};

アンバウンドの場合は次のようになります。

forward-zone:
name: "hosts.virsh."
forward-addr: 192.168.1.122

このネームサーバーがすべてのIPアドレス(または少なくともLAN接続可能アドレス)を受信するように設定されている場合は、ネットワーク上の他のコンピュータのキャッシュリゾルバとしても機能できます。国際海事機関すべてミリ秒、数十、または数百ミリ秒よりも優れたキャッシュDNS解決のために、ミリ秒未満の応答時間を持つキャッシュ検証者がネットワークに存在する必要があります。

dnsmasqすでに仮想マシンで使用している場合は、Hosts.virshのフォワーダ(ドメインはすでに構成されています)。

私はそれを使用しないので試していなかったので、「しなければならない」と言いますdnsmasq。代わりにISCを使用dhdcpdし、bind9自分のドメインのMACアドレスに基づいて静的IPアドレスをハードコーディングdhdpd.confし、VMエントリをドメインのゾーンファイルに手動で追加します。 。真ん中。

おすすめ記事