DNSmasq多网卡

我在 私有云架构 中同时构建了 Kubernetes集群(z-k8s)Kubernetes集群(y-k8s) 两个 Kubernetes Atlas 集群,分别使用了不同的网段 192.168.6.0/24192.168.8.0/24 。在物理网卡 eno1 上通过 ip aliaslibvirt 网桥型网络 为多个虚拟机网络提供网段路由。此外,我也想为我的局域网客户端(例如我的工作笔记本)提供DNS解析,这就涉及到DNSmaq的多网卡DNS服务

参考 /etc/dnsmasq.conf 配置注释,也结合 配置DNSmasq对不同子网提供不同域名扩展(expand-hosts) 采用如下配置:

# 本地默认域名
local=/staging.huatai.me/
# 转发上游域名解析服务器,请求DNS解析
server=8.8.8.8
# 监听DNS请求的网卡接口(br0上使用了IP Alias,但是ifconfig只看到一个br0,所以这里配置一个接口)
interface=br0,eno4
# 监听DNS请求的IP地址(注意eno4接口是DHCP动态获取IP,所以使用上面的interface配置)
listen-address=192.168.6.200,192.168.7.200,192.168.8.200,127.0.0.1
# 扩展主机域名,也就是请求 zcloud 默认扩展成 zcloud.staging.huatai.me
expand-hosts
# 服务器提供解析的域名,可以为多个网段提供不同的域名解析
domain=staging.huatai.me,192.168.6.0/24
domain=edge.cloud-atlas.io,192.168.7.0/24
domain=staging.cloud-atlas.io,192.168.8.0/24
# DNS解析缓存
cache-size=1000
# DHCP
dhcp-range=192.168.6.21,192.168.6.50,255.255.255.0,12h
dhcp-option=option:router,192.168.6.200
dhcp-option=option:dns-server,192.168.6.200
dhcp-authoritative

这里 br0 上使用了 netplan网络配置 做了 IP Alias,也就是一个网卡上绑定多个IP地址来为 libvirt 网桥型网络 的多个网段进行路由

参考