私は数年間OpenVZの使用をやめましたが、今戻ってきました。私は何時間もこの簡単な仕事に閉じ込められていました。
ハードウェアノードをローカルDNSキャッシュとして使用したいと思います。みんなコンテナタイプ(このパラダイムは私にとって新しい概念です)、ホストとブリッジ。
コンテナだけあります。
ブリッジコンテナとホスト専用コンテナをdnsmasq
それぞれ受信するようにインターフェイスを正常に設定しました。この手順を確認でき、動作します。br0
virbr0
dig @interface <public host name>
うまくいかないもの:
- すべてのコンテナの名前解決タイムアウト
- ハードウェアノードアドレスをpingしても応答がありません。
ハードウェアノードで:
# prlsrvctl net list
Network ID Type Bound To Bridge Slave interfaces
Bridged bridged enp2s0 br0
Host-Only host-only virbr0
そしてvirbr0: 10.37.130.2/24
そしてbr0:192.168.xx.5/28
。
prlctl set <my test container @ 192.168.xx.4> --nameserver 10.37.130.2
名前解決はありませんが、これを実行しています。
私考えるルールを追加する必要がありますが、iptables
ローカルプロセスにもルールが多すぎます!常識でさえ役に立ちません。両方のインターフェイスで、ポート53でUDPパケットを許可するためのルールを追加してみました。
何を破るのか分からない。
dnsmasq
DNS要求が受信されたかどうかわからない- 答えがあるかもしれません。
- ファイアウォールによって応答がブロックされるかどうかわかりません。
tcpdump
ファイアウォールルールを追加するかどうかにかかわらず、私に何が起こるかは次のとおりです。
# tcpdump
tcpdump: WARNING: venet0: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on venet0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
23:03:20.876113 IP 192.168.xx.4.53894 > myhostname.local.domain: 32621+ A? google.com. (28)
23:03:25.875974 IP 192.168.xx.4.53894 > myhostname.local.domain: 32621+ A? google.com. (28)
^C
2 packets captured
2 packets received by filter
0 packets dropped by kernel
host google.com
このコマンドを使用してコンテナで簡単な操作を実行すると、これが発生しますhost
。
そのコンテナから:
# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=39 time=328 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=39 time=19.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=39 time=20.3 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=39 time=20.3 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=39 time=44.1 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=39 time=20.4 ms
^C
--- 8.8.8.8 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5002ms
rtt min/avg/max/mdev = 19.836/75.699/328.996/113.614 ms
それでは、なぜ...ファイアウォールにこれらの規則がリストされていますか?
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
がっかりするほど複雑です。