나는 이것을 알아내는 데 어려움을 겪고 있습니다.
나는 다음과 같은 네트워크를 가지고 있습니다 :
(인터넷) -- (방화벽) -- (PC1 (Ubuntu 20.04)) -- (PC2 (Fedora, 192.168.0.2))
PC1에는 두 개의 네트워크 카드가 있습니다. (enp4s0)은 방화벽을 향하고 (eno0)은 PC2를 향합니다.
방화벽이 모든 나가는 DNS 요청을 차단하고 있는 것 같으며 이를 변경할 수 없습니다. PC2는 8.8.8.8에 액세스해야 하며 이를 변경할 수도 없습니다. 그러나 PC1이 내부 DNS 서버(192.169.100.100이라고 함)를 사용하고 다음 UFW 구성을 실행하는 한 인터넷에 액세스할 수 있습니다. 알아채다
# Nat table rules
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
# Forward traffic from eno1 through enp4s0
-A PREROUTING -i enp4s0 -p udp --dport 53 -j DNAT --to-destination 192.169.100.100
-A POSTROUTING -s 192.168.0.0/24 -o enp4s0 -j MASQUERADE
# process the nat table rules
COMMIT
보시다시피 모든 트래픽은 PC2에서 PC1을 통해 전달됩니다. 좋은 결과. PC2는 아무런 문제 없이 8.8.8.8을 ping할 수 있습니다. 그러나 PC2가 8.8.8.8을 사용하여 주소 확인을 시도하고 해당 주소가 방화벽에 의해 차단되므로 필요에 따라 PC2를 사용할 수 없습니다. 내가 원하는 것은 8.8.8.8에 대한 모든 DNS 요청을 192.169.100.100으로 라우팅하여 해결하는 것입니다.
그게 가능합니까? 그렇다면 제가 뭘 잘못하고 있는 것인지 헷갈리기 때문에 말씀해주세요. 나는 한동안 Wireshark를 쳐다보며 8.8.8.8에 도달하려고 하는 패킷을 보고 있습니다.
감사해요!
답변1
Ubuntu 시스템에서 요청을 전달할 수 있는 바인딩9 또는 다른 DNS 서버를 설치하고 Fedora의 이름 서버 항목을 Ubuntu 시스템의 IP로 가리킵니다.
Debian 및 그 파생 제품(예: Ubuntu)에 기본적으로 설치되는 바인딩9은 쿼리 루트 서버 역할을 하는 캐싱 이름 서버입니다. 이 경로로 이동했는데 Ubuntu 상자에서 해당 항목에 액세스할 수 없는 경우 forwarders
다음 옵션을 사용하는 것이 좋습니다./etc/bind/named.conf.options
systemd가 작동하는 데 "필요"한 방식으로 인해 이미 내부 프록시 DNS 서버가 있지만 이를 LAN에서 서비스로 노출할 수 있는지 여부는 알 수 없습니다.