저는 몇 년 동안 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
실망스러울 정도로 복잡합니다.