跳到主要内容

基本 IPv4 NAT 网关

DHCP WAN、routerd 管理的 LAN 网关、DHCPv4、NAT44 与区域资源组成的 IPv4 网关

这是一个适合实验室阅读的家用 IPv4 网关形状:WAN 通过 DHCPv4 获得地址,LAN 使用 192.168.10.1/24,客户端经 NAT44 访问外部网络。完整 YAML 在 examples/example-basic-ipv4-nat.yaml。

先在隔离 Ubuntu Server VM 上测试,并保留控制台。这个示例不是把一台正在承载生产网络的设备改造成路由器的快捷命令。

拓扑​

Internet / 上游路由器
|
wan(DHCPv4)
|
routerd 主机
|
lan(192.168.10.1/24)
|
LAN 客户端
任务主要资源
声明 WAN 和 LANInterface/wan、Interface/lan
获取 WAN IPv4DHCPv4Client/wan-dhcpv4
持有 LAN 网关地址IPv4StaticAddress/lan-base
分配 LAN 地址DHCPv4Server/lan-dhcpv4
让 LAN IPv4 出网NAT44Rule/lan-to-wan

关键配置:现代 NAT 字段​

- apiVersion: net.routerd.net/v1alpha1
kind: NAT44Rule
metadata:
name: lan-to-wan
spec:
type: masquerade
egressInterface: wan
sourceRanges:
- 192.168.10.0/24
excludeDestinationCIDRs:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16

这是当前的 NAT44Rule 形状:使用 type、egressInterface 和 sourceRanges。masquerade 适合 WAN 地址会变化的 DHCP 上游。排除的私有目的网段不会被 NAT,以免破坏内部、VPN 或管理路由。

下列资源把 LAN 地址和 DHCP 地址池联系在一起:

- apiVersion: net.routerd.net/v1alpha1
kind: IPv4StaticAddress
metadata:
name: lan-base
spec:
interface: lan
address: 192.168.10.1/24

- apiVersion: net.routerd.net/v1alpha1
kind: DHCPv4Server
metadata:
name: lan-dhcpv4
spec:
interface: lan
addressPool:
start: 192.168.10.100
end: 192.168.10.199
leaseTime: 12h
gatewayFrom:
resource: IPv4StaticAddress/lan-base
field: address
dnsServers:
- 1.1.1.1
- 1.0.0.1

这个第一轮实验直接向客户端公布外部 DNS 解析器 1.1.1.1 和 1.0.0.1,这样路由器自身还不需要承担 DNS 服务。请先确认学校、家庭、单位或上游网络允许使用这些公共解析器;若网络策略要求指定 DNS,或你要让路由器提供本地名称、过滤或条件转发,请改为获准的 DNS 地址,或先配置 DNSResolver,再公布路由器的 LAN 地址。

运行这个示例​

第一台实验路由器提供与安装版本匹配的文件下载、 接口修改、验证、隔离 dry-run、真实应用、服务启动及客户端检查的完整步骤。 发布归档不包含仓库的 examples/ 目录。上面的片段用于解释资源,实际运行时请用 下载的完整文件。

关于防火墙​

完整示例还包含 FirewallZone 和 FirewallPolicy,用来说明 NAT 与区域策略如何组合。但防火墙功能仍处于预发布的基础实现阶段,不是完整的安全边界。不要把 NAT 成功、dry-run 成功或一张 nftables 表存在当成公网暴露已经安全的证明。

常见调整​

  • 将 ens18、ens19 改为实际接口名。
  • 若 192.168.10.0/24 与上游、VPN 或管理网重叠,改成一个未使用的私有网段。
  • 若需要可信的访客隔离,使用 VLAN、独立 SSID 或独立物理端口;不要只依赖同一二层 LAN 上的 MAC 分类。