debian搭建简易路由笔记(未完成外网部分)

debian搭建简易路由笔记(未完成外网部分),第1张

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

还没完成的配置学习:

事实上我在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:

1、首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。2、其次,在linux命令行中输入:routeadddefaultgw192.168.0.1。3、键盘按“回车键”运行shell指令,此时会看到192.168.0.1被成功添加到了默认路由routeadddefaultgw192.168.0.1添加192.168.0.1为默认路由(即网关)也可以写成#routeadd-net0.0.0.0gw192.168.0.1;前提必须加上-net参

服务器添加永久静态路由

一、Linux添加永久静态路由

方法一:修改 rc.local 配置文件

范围:测试 Ubuntu 14.04、centos 6.4、debian 8.1、redhat 6.4 系统可用

使用方法:

向 linux 系统的 /etc/rc.local文件中添加命令route add -net 192.168.2.0/24 gw 192.168.2.254(服务器的默认路由为192.168.2.254),或者添加命令route add -net 192.168.3.0/24 dev eth0,前者是依赖默认路由进行数据的转发,后者是依赖网卡接口进行数据的转发

reboot重启系统命令生效

用 route -n 命令查看命令是否已经生效

方法二:修改 static-routes 配置文件

范围:测试 centos 6.4、redhat 6.4 系统可用

使用方法(此方法比 rc.local 方法实用,能保证网络链路的通畅):

向系统的 /etc/sysconfig/static-routes 文件(如果系统没有此文件,可以新建此文件)中添加命令 any net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.254(服务器的默认路由为192.168.2.254),或者添加命令 any net 192.168.2.0 netmask 255.255.255.0 dev eth0, 前者是依赖默认路由进行数据的转发,后者是依赖网卡接口进行数据的转发

service network restart 命令重启网络服务

用 route -n 命令查看命令是否已经生效

方法三:修改 interface 配置文件

范围:测试 debian 8.1、Ubuntu 14.04 系统可用

使用方法:

向系统的 /etc/network/interface 文件中添加命令 up route add -net 192.168.2.0/24 gw 192.168.2.254(服务器的默认路由为192.168.2.254),或者添加命令 up route add -net 192.168.3.0/24 dev eth0,前者是依赖默认路由进行数据的转发,后者是依赖网卡接口进行数据的转发

reboot 重启系统命令生效

用 route -n 命令查看命令是否已经生效

注 1:(引用网上内容)如果在 rc.local中添加路由会造成NFS无法自动挂载问题,所以使用 static-routes 的方法是最好的。无论重启系统和 service network restart 都会生效,按照linux启动的顺序,rc.local 里面的内容是在linux所有服务都启动完毕,最后才被执行的,也就是说,这里面的内容是在netfs之后才被执行的,那也就是说在netfs启动的时候,服务器上的静态路由是没有被添加的,所以netfs挂载不能成功。

注 2:以上添加命令可以通过 linux 命令 sed -i ‘2i route add -net 192.168.2.0/24 gw 192.168.2.254’ + 文件路径 命令向相应的文件的第二行添加命令或者用 echo route add -net 192.168.2.0/24 gw 192.168.2.254 >>文件路径向文件的末尾添加命令

Ubuntux系统可以修改vim /etc/NetworkManager/system-connections/Wired\ connection\ 3


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11759468.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存