现状: 企业内网建有一台 dnsmasq 接收本厂区所有用户请求, 上游是公共 DNS. 网络有电信、移动双线按部门网段分流, 而 dnsmasq 走的是电信, 解析结果对走移动的用户不友好, 为了实现多 AD 域转发和自定义解析又不能直接使用外部 DNS. 如何实现一个内网 DNS 针对不同内网网段的请求, 返回不同运营商的解析结果? 实现方式不限, 服务器数量不限. 我的设想:
1
wheat0r 177 天前
最简单的方法,装两台 dnsmasq
|
2
tomczhen 177 天前 via Android
mosdns
|
3
yaott2020 177 天前 via Android
两个 dnsmasq 监听不同端口,分别设置不同上游,用 iptables 根据源 ip 重定向到不同端口
|
4
zzlyzq 177 天前
把当前 dnsmasq 变成 haproxy ,然后用两个 dnsmasq 服务器分别对应移动和电信,然后 haproxy 采用 round-robin 进行负载。
|
5
aogg 177 天前
coredns
|
6
GeekGao 177 天前
在 dnsmasq 配置文件中定义不同的地址段,并为每个地址段分配一个 tag 。然后,可以使用“server”指令为每个 tag 指定不同的上游 DNS 服务器, 使用“dhcp-option”指令为每个 tag 设置不同的 DNS 服务器。
这样就能根据用户的 IP 地址段将 DNS 查询转发到不同的上游 DNS 服务器了。 |
7
kursk 177 天前
dnsmasq 只能基于域名区别,不能基于源 ip ,iptables 才能干这个
我是一个企业用户,有两个互联网的出口,假设 ip 分别为 10.1.0.1 和 10.2.0.1 ,如何用 Iptables 实现根据内部用户的 ip 地址,分别从不同的出口出去 为了根据内部用户的 IP 地址使流量通过不同的网络出口,可以使用 Linux 的 iptables 和 iproute2 工具。下面的示例假设您的两个互联网出口接口分别为 eth1 和 eth2 ,内部网络接口为 eth0 。 创建路由表: 首先,在/etc/iproute2/rt_tables 文件中添加两个新的路由表,例如 table1 和 table2: plaintext Copy code echo "200 table1" >> /etc/iproute2/rt_tables echo "201 table2" >> /etc/iproute2/rt_tables 配置路由: 为每个表添加路由。假设默认网关为 10.1.0.1 和 10.2.0.1: bash Copy code ip route add default via 10.1.0.1 table table1 ip route add default via 10.2.0.1 table table2 配置规则: 基于源 IP 地址添加规则,将特定的流量定向到正确的表: bash Copy code ip rule add from 192.168.1.0/24 table table1 ip rule add from 192.168.2.0/24 table table2 在上面的例子中,所有从 192.168.1.0/24 网络来的流量将通过 10.1.0.1 出口,所有从 192.168.2.0/24 网络来的流量将通过 10.2.0.1 出口。 配置 iptables: 如果需要,还可以使用 iptables 来管理、过滤或修改流量: bash Copy code iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth2 -j MASQUERADE 上面的命令将确保从指定网络发出的所有数据包都会经过正确的网络接口,并且会应用正确的源地址伪装( NAT )。 这样,您就可以根据内部用户的 IP 地址,将流量路由到不同的网络出口。请注意,这个配置可能需要根据您的实际网络环境和需求进行调整。 |
8
Dzsss 177 天前
超 DNSMASQ 纲了,换用 RouterOS 。
|
9
renothing 177 天前
楼主的需求可以看看 blocky , 针对不同 clients 使用不同的 upstream
|
10
yyfdsz OP 感谢大家的回复,我来测试
|
11
hyyNull 176 天前
还有一个 SmartDNS 跟 MosDNS 这俩都是标榜多运营商多线路 DNS 优选的,建议开这个然后再 dnsmasq 里给不同网段 dhcp 下放不同的 DNS
|