web-dev-qa-db-ja.com

静的IPがホスト名を解決しないDHCPサーバー(クライアントは解決します)

ネットワークセットアップ

  • LXCをセットアップしようとしているサーバーがあります
  • DHCPを使用するように強制するLXDを使用しています
  • DHCPはすでに正常に機能しています
  • セットアップのため、ホスト名を使用してコンテナにアクセスできる必要があります
    • これは、.localTLDを使用して機能するようになりました

問題

ここでの問題は、DHCPサーバーから構成を受信しないホストからもホスト名を使用してコンテナーにアクセスする必要があることです。現在、これは機能しません。

編集

これは、ホストインターフェイスのDNSサーバーを独自のIPに設定した場合に機能します。それでも、どこからでもホストにpingを実行できません。

Workaround

IPを使用してホストをホストの/ etc/hostsファイルに配置することもできますが、これが正しい方法かどうかはわかりません。

ホストの設定

ホストはGentooGNU/Linux 4.1.5(OpenRC)を実行しています。

/ etc/conf.d/netは次のようになります。

dns_servers="8.8.8.8 8.8.4.4"

config_eth0="<static IP>"
routes_eth0="default via <static gateway>"
fallback_eth0="dhcp"


rc_net_lxcbr0_provide="!net"

config_lxcbr0="10.2.0.1/24"
brctl_lxcbr0="setfd 0
sethello 10
stp off"
bridge_lxcbr0=""

dns_domain_lxcbr0="local"
dns_servers_lxcbr0="10.2.0.1 8.8.8.8 8.8.4.4"

dnsmasqは次のように構成されています(コメントは削除されました):

local=/local/
interface=lxcbr0
listen-address=10.2.0.1
expand-hosts
domain=local,10.2.0.0/24
dhcp-range=10.2.0.2,10.2.0.128,255.255.255.0,12h
dhcp-range=<static ip range>, 12h
enable-ra

コンテナのセットアップ

コンテナはDHCPクライアントを実行するだけです。

ホスト名

それらを仮定しましょう:

  • ホスト
  • 続き1
  • 続き2

Ping

上の行は、誰がpingされたかを示しています。左の列は、誰がpingを実行しているかを示しています。

Pingはping <machine>.localの形式で実行されます。例:ping Host.local

+-------+-------+-------+-------+
|       | Host  | cont1 | cont2 |
+-------+-------+-------+-------+
| Host  |  no   |  yes  |  yes  |
+-------+-------+-------+-------+
| cont1 |  no   |  yes  |  yes  |
+-------+-------+-------+-------+
| cont2 |  no   |  yes  |  yes  |
+-------+-------+-------+-------+
1
benaryorg

解決策は、ホスト上のDNSサーバーとして10.2.0.1を追加し、次の行を/ etc/dnsmasq.confに追加することでした。

address=/Host.local/10.2.0.1
address=/Host.local/<ipv6 address>
1
benaryorg