求助,怎样把debian打造成软路由+服务器

发布网友 发布时间:2022-04-22 19:08

我来回答

1个回答

热心网友 时间:2023-10-01 21:05

目标,利用已有的软件包,多网卡配置一个路由器

还没完成的配置学习:

事实上我在github看到一个 关于pppoe集成到systemd的讨论 ,抄作业即可

系统:debian10

防火墙:nftables(代替iptables)

DHCP/DNS服务:dnsmasq

网卡接口管理服务:systemd-udevd systemd-networkd

流量控制和策略路由:iproute2 (这个还没开始学习)

步骤流程:

例如

link/ehter项目对应的是mac地址,记住他们

这一小节需要参考的文档有 systemd.link 中文手册 ,利用mac地址匹配网卡设备,更改网卡名。

使用systemd.link为wan、lan网口创建网络接口名称命名规则的配置,创建配置文件:

文件内容如下,主要通过MAC地址进行匹配,参数含义参考手册,link配置由 systemd-udevd 读取。

网络管理软件可能通过两个源头来触发网络配置:服务与udev规则;如果禁用服务失败,需要考虑是否因为udev的rule触发事件导致配置变化。

网络管理服务一般情况只存在一个,此处使用 systemd-networkd 作为网络管理服务,它包括:

三个相关服务,对应的命令有 networkctl 、 resolvectl 。

创建 10-wan.network 、 10-lan.network 两个配置,文件名没要求,后缀要求是 .network

wan口暂时设置为DHCP方式上网

wan口网络配置文件内容如下:

lan口网络配置文件内容如下:

使用systemd-networkd管理网络,还需要启用systemd-resolved管理本机的DNS服务,确保域名解正常。

编辑 systemd-resolved.service 配置文件如下:

选项配置如下:

启动并允许开机启动:

对于内核网络调整方面接触较少,本节网上抄作业,但是调整参数选项的含义需要参考 linux内核网络文档 。

主要的调整目标为:

添加以下配置:

调整说明:

/etc/nftables.conf 文件内容(comment关键字可以为规则添加注释,增强可读性)

具体的情况分析:

使用 dnsmasq 守护进程作为网关计算机的DNS以及DHCP服务。

把 dnsmasq 默认的配置都不要了,把sysV启动的软连接全部删了,把 dnsmasq.service 的服务也删除了。可以满足多个网卡配置dnsmasq,不应该使用包内自带的服务配置,由自己编辑一个适合情况的配置文件。

编写新的dnsmasq服务的service模板,以适应多个网卡单独启动不同的dnsmasq服务。

编写 /etc/systemd/system/dnsmasq@.service 内容:

%I 是模板实例化后,被替换的名称,例如, dnsmasq@lan.service , %I 就会被替换成 lan

软连接新建一个实例,这个服务是针对 lan 网卡的。创建 dnsmasq 配置存放的文件夹,我放在 /opt/router-config/dnsmasq/lan/ 下,

配置说明:

主配置文件内容:

更多dhcp-option的选项可以通过 dnsmasq --help dhcp 查询到。

/opt/router-config/dnsmasq/lan/resolv.conf 内容(它定义了上游查询服务器,最多只能使用2个):

MYCOMPUTER 内容,针对mac地址为 23:33:33:33:33:44 的主机固定分配IP为 192.168.31.5

/opt/router-config/dnsmasq/lan/hosts.d/MYCOMPUTER 文件内容:

文件格式是 --dhcp-host 选项的右值,以上相当于 --dhcp-host=23:33:33:33:33:44, 192.168.31.5 ,它可以是IPv4的,也可以是IPv6的,具体参考manpage。也是一行一个参数,不同的主机,可以分开不同的文件写配置,也会被读入。

文件配置完毕后,需要尝试启动 dnsmasq@lan.service ,并且允许它开机自启。

TODO:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com