目标,利用已有的软件包,多网卡配置一个路由器
还没完成的配置学习:
事实上我在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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)