Debian 12 软路由配置随记
最近自己拉了一条联通的千兆宽带,并成功地找官方客服要到了公网 IPv4。为了有效利用这个公网 IP,同时避免重演之前在房东的光猫上的血泪史,我决定将拨号等各项网络功能全部交由软路由实现,光猫仅保留广电转换功能。这篇文章用于记录我的配置过程,防止以后在软路由配置上重复踩坑,也为需要的人提供参考。 准备工作 在开始配置软路由之前,需要安装一系列工具,并对系统的一些参数进行修改。我使用的工具包括: pppoeconf,用于宽带拨号 wide-dhcpv6-client,用于获取 IPv6 PD 前缀并配置到接口 dnsmasq,用于为 LAN 提供 DNS 服务、DHCP 服务和 IPv6 路由通告服务 nftables,用于提供 IPv4 NAT 和防火墙功能 以上三个工具均可通过apt直接安装。 同时,为了保证系统能够正确获取 IPv6 地址和转发数据包,还需要向/etc/sysctl.conf中添加以下内容: net.ipv4.ip_forward=1 net.ipv6.conf.all.disable_ipv6=0 net.ipv6.conf.default.disable_ipv6=0 net.ipv6.conf.all.forwarding=1 net.ipv6.conf.default.forwarding=1 net.ipv6.conf.all.accept_ra=2 net.ipv6.conf.default.accept_ra=2 其中,第一条用于启用对 IPv4 数据包的转发,后面六条分别对应启用 IPv6 功能、启用对 IPv6 数据包的转发和接受 IPv6 的路由器通告。带default的配置用于系统对接口的默认设置,如果未对其进行修改,可能导致新添加的接口与 all 的配置不一致,从而产生问题。(在我的场景中,拨号后新增的ppp0接口的accept_ra项为1,无法正确从 ISP 的 RA 通告中获取并设置 IPv6 地址,导致其只有公网 IPv4 地址和 FE80 打头的 IPv6 link local 地址,没有 GUA,即公网 IPv6 地址。) 配置网络接口 在进行后续工作前,首先需要正确配置软路由 LAN 口和 WAN 口的地址。方便起见,我直接使用 Debian 12 自带的networking服务进行网络配置,不使用NetworkManager等管理器。具体配置如下,其中enp1s0为 LAN 口,LAN 的 IPv4 网段为10....