NAT网关环境下DNS解析被ufw阻断的问题求助
NAT网关环境下DNS解析被ufw阻断的问题求助
大家好,我现在碰到一个网络配置的难题,折腾了好久没搞定,想请各位帮忙排查下问题出在哪。
先跟大家说下我的网络环境:
我有一个172.16.0.0/24的局域网,里面有两台服务器:
- Bastion(IP:
172.16.0.3):带公网IP,可以正常访问互联网 - Redis(IP:
172.16.0.4):没有公网IP,本身无法直接连外网
局域网的默认路由配置是0.0.0.0/0指向172.16.0.3(也就是Bastion服务器),理论上所有局域网内的出站流量都会走Bastion。
为了让Redis通过Bastion做NAT转发访问互联网,我在Bastion上执行了以下配置命令:
# 开启IP转发功能 echo 1 > /proc/sys/net/ipv4/ip_forward # 配置NAT伪装,让局域网流量通过eth0出口上网 iptables -t nat -A POSTROUTING -s '172.16.0.0/24' -o eth0 -j MASQUERADE # 配置ufw允许局域网的TCP/UDP进出流量 ufw allow in from 172.16.0.0/24 to any proto tcp ufw allow in from 172.16.0.0/24 to any proto udp ufw allow out to 172.16.0.0/24 proto tcp ufw allow out to 172.16.0.0/24 proto udp
同时在Redis服务器上,我做了这些网络设置:
# 添加默认路由 ip route add default via 172.16.0.1 # 配置DNS服务器 echo "nameserver 1.1.1.1" >> /etc/resolvconf/resolv.conf.d/head resolvconf -u
按道理说,这样配置后Redis应该能通过Bastion的NAT访问互联网,但实际测试下来根本连不上——不管是ping公网IP还是解析域名都失败。我怀疑是ufw的规则阻断了DNS解析或者相关的UDP流量,或者是哪里的路由配置错了?有没有大佬能帮我分析下问题出在哪?
备注:内容来源于stack exchange,提问作者Alexander Nestorov
相关产品推荐
相关产品推荐

