AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1042383
Accepted
OwN
OwN
Asked: 2020-11-13 20:38:35 +0800 CST2020-11-13 20:38:35 +0800 CST 2020-11-13 20:38:35 +0800 CST

KVM 端口通过 NAT 将端口 53 转发到访客 - 名称解析暂时失败

  • 772

我正在尝试将端口 53 从主机转发到 virtbr0 接口(使用 NAT)上的一个 KVM 虚拟机来宾。

来宾 VM 将运行自定义的 DNS 服务器。但是,端口转发端口 53 后,DNS 将无法在 guest 中解析。我只是不断收到错误Temporary failure in name resolution

如果我从主机中删除我的 iptables 规则,DNS 会在来宾 VM 中再次解析。需要做什么才能让 DNS 在来宾中工作,同时允许端口 53 从主机转发到来宾?

我在钩子脚本中使用的 IP 表规则:

/sbin/iptables -I FORWARD -o virbr0 -d  192.168.122.5 -j ACCEPT
/sbin/iptables -t nat -I PREROUTING -p tcp --dport 53 -j DNAT --to 192.168.122.5:53
/sbin/iptables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to 192.168.122.5:53

有人知道吗?以这种相同方式转发的其他端口似乎按预期工作。DNS不会,我不知道为什么。我在我的家庭网络路由器上转发了端口 53,我没有这个问题。也许这是一个KVM错误?我正在使用最新版本的 qemu 和 kvm 运行 CentOS 8。

domain-name-system kvm-virtualization port-forwarding qemu
  • 1 1 个回答
  • 377 Views

1 个回答

  • Voted
  1. Best Answer
    Michael Hampton
    2020-11-14T00:42:04+08:002020-11-14T00:42:04+08:00

    你的 DNAT 规则太笼统了。他们尝试将所有DNS 流量转发到您的 VM,而不仅仅是应该适用于来自外部的 DNS 流量。因此,当您的访客 DNS 服务器发送自己的 DNS 查询时,它们会被重定向回自身。

    要解决此问题,还要指定传入 DNS 流量将从网络到达的接口,或者指定要排除的接口。

    /sbin/iptables -t nat -I PREROUTING -i enp4s0 -p udp --dport 53 -j DNAT --to 192.168.122.5:53
    

    或者

    /sbin/iptables -t nat -I PREROUTING \! -i virbr0 -p udp --dport 53 -j DNAT --to 192.168.122.5:53
    
    • 1

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve