找回密码
 加入我们
搜索
      
查看: 14172|回复: 43

[网络] 路由器自由?我把Linux服务器变成了路由器,支持IPv6

[复制链接]
发表于 2022-11-1 18:26 | 显示全部楼层 |阅读模式
本帖最后由 aitkots 于 2022-11-1 19:47 编辑

经过里几天的折腾,在参考了如下文档之后,把一台 Ubuntu Server 22.10 变成了路由器。

(不要问为啥是 Ubuntu Server 22.10,问就是 dhcpcd 的包在其他发行版中版本太老还有 Bug ,而且能不 make Install 就不 make Install )  


  

基础功能和性能看上去并不比 RouterOS OpenWrt iKuai 相差多少。



参考文档

- CPU

Microcode - Debian Wiki
CPU Performance Scaling
CPU frequency scaling - Arch Wiki

- DHCP

dhcpcd | Roy's Projects
dhcpcd - ArchWiki
dhcpcd.conf(5) — Arch manual pages
dhcpcd(8) — Arch manual pages
Kea Administrator Reference Manual

- DNS

resolv.conf - Debian Wiki
openresolv - ArchWiki
dnsmasq - ArchWiki
dnsmasq warnings - Pi-hole documentation
[OpenWrt Wiki] DNS and DHCP configuration
Unbound - ArchWiki
SmartDNS · GitHub

- IPv6

IPv6 - ArchWiki
Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
RFC4193 IPv6 Generator
Setting up IPv6 using a DHCP client - K3A
Setting up IPv6 on a Linux Router
Managing Address Spaces with NAT and IPv6 - Config Router

- Network Interface

Network bridge - Arch Wiki
systemd-networkd - Arch Wiki
Systemd.Network
Systemd.Link
BRIDGE-UTILS-INTERFACES(5) - Debian Wiki
Netplan configuration examples
Ubuntu Manpage: systemd.network
Bridge - Linux Foundation DokuWiki

- Nftables

nftables - Debian Wiki
nftables - ArchWiki
Firewall4 / NFtables Tips and Tricks

- PPPoE

ppp - ArchWiki
pppd(8) — Arch manual pages
PPP - Alpine Linux
Debian / pppoeconf · GitLab
add pppoe support to systemd-networkd · GitHub

- SYSCTL

sysctl - ArchWiki
sysctl - explorer
Huge improve network performance by change TCP congestion control to BBR
Optimizing TCP for high WAN throughput while preserving low latency

- Linux Router Setup

Router - ArchWiki
Linux Router with ** on a Raspberry Pi (IPv6) - Alpine Linux
debian-clearfog-gt-8k · GitHub
Setting up Alpine Linux as a Home Router
DIY Linux Router Part 2: Interfaces, DHCP and VLAN
我的另类软路由方案——Alpine Linux改造
X86 软路由配置 IPv6 踩坑小记
自建Linux路由器--Debian篇
使用 Debian 服务器作为家庭网关
Building Your Own Low Latency Home Router
发表于 2022-11-1 18:28 | 显示全部楼层
鸟哥的私房菜 实践能力很强么。
 楼主| 发表于 2022-11-1 18:29 | 显示全部楼层
yoakam 发表于 2022-11-1 18:28
鸟哥的私房菜 实践能力很强么。

早有耳闻鸟哥的Linux私房菜,但并未拜读。
发表于 2022-11-1 18:30 | 显示全部楼层
make Install有啥仇吗 都装usr/local/lib的还是很好的
 楼主| 发表于 2022-11-1 18:31 | 显示全部楼层
YsHaNg 发表于 2022-11-1 18:30
make Install有啥仇吗 都装usr/local/lib的还是很好的

我为了能完全自动更新,这样比较清真
发表于 2022-11-1 18:32 | 显示全部楼层
aitkots 发表于 2022-11-1 10:31
我为了能完全自动更新,这样比较清真

嗨 arch opensuse滚起来
发表于 2022-11-1 18:35 | 显示全部楼层
我是alpine linux搞得路由器,但是现在routeros出的v7版本,确实挺香的
发表于 2022-11-1 18:35 | 显示全部楼层
本帖最后由 yoakam 于 2022-11-1 19:38 编辑
aitkots 发表于 2022-11-1 18:29
早有耳闻鸟哥的Linux私房菜,但并未拜读。


刚工作时翻过几十页,太厚了。
这个都能搞,那pfsense基于FreeBSD应该也能玩转。
用Ubuntu当路由器太纯粹了,要是隔几个月没笔记的话出现异常我不知道该咋维护。
发表于 2022-11-1 18:41 | 显示全部楼层
天使您好,这帖子看起来是为了纪念注册10周年吧。
发表于 2022-11-1 18:43 | 显示全部楼层
本帖最后由 声色茶马 于 2022-11-1 18:45 编辑
YsHaNg 发表于 2022-11-1 18:30
make Install有啥仇吗 都装usr/local/lib的还是很好的


服务端的各种东西,大佬们一般都建议make install,而不是pacman apt啥的装。

不过LZ既然敢在Router这种东西上滚更,不用担心跪洗衣板机械键盘,想来生活还相当自由的。膜拜一下。

不过我个人要是搞,肯定还是在Arch或者gentoo上干。毕竟系统精简得多,干净卫生。
发表于 2022-11-1 18:52 | 显示全部楼层
楼主 10 周年快乐。赞动手能力不是一般的强
发表于 2022-11-1 18:52 | 显示全部楼层
声色茶马 发表于 2022-11-1 10:43
服务端的各种东西,大佬们一般都建议make install,而不是pacman apt啥的装。

不过LZ既然敢在Router这种 ...

是的 生产环境谁滚 现在都巴不得全docker里写死 部署完全一样的
发表于 2022-11-1 19:01 | 显示全部楼层
声色茶马 发表于 2022-11-1 18:43
服务端的各种东西,大佬们一般都建议make install,而不是pacman apt啥的装。

不过LZ既然敢在Router这种 ...

干了15年运维,刚出道两年时都编译安装,后来要求apt或yum安装,现在只用docker/k8s了
发表于 2022-11-1 19:15 | 显示全部楼层
YsHaNg 发表于 2022-11-1 18:52
是的 生产环境谁滚 现在都巴不得全docker里写死 部署完全一样的

配置环境太熬人太累了。如上面那位兄弟所言,不写笔记过一周就特么完全不记得自己干过啥了。

前两天想试试wayland,看能不能完全移植过去让X11彻底下岗,于是虚拟机搞了个arch+wayfire。结果我勒个去,被折腾个死去活来,然后决定转投garuda现成的发行版。转过去以后……继续死去活来。
发表于 2022-11-1 19:24 | 显示全部楼层
terryhux 发表于 2022-11-1 19:01
干了15年运维,刚出道两年时都编译安装,后来要求apt或yum安装,现在只用docker/k8s了 ...

我原来以为Linux“装软件10秒、配环境一年”这种风格得延续到宇宙终结了,没想到Docker和K8s这种神器终于憋了出来。现在感觉用Portainer部署个容器比win上装个服务还爽利,爽利多了,搞得现在Linux上装点儿啥第一反应都是去找个好用的docker。
发表于 2022-11-1 19:28 | 显示全部楼层
声色茶马 发表于 2022-11-1 11:15
配置环境太熬人太累了。如上面那位兄弟所言,不写笔记过一周就特么完全不记得自己干过啥了。

前两天想试 ...

Fcitx搞不好没法当个正经桌面用 总结还是ssh吧
 楼主| 发表于 2022-11-1 19:41 | 显示全部楼层
normanlu 发表于 2022-11-1 18:35
我是alpine linux搞得路由器,但是现在routeros出的v7版本,确实挺香的

RouterOS 我已经折腾完了
 楼主| 发表于 2022-11-1 19:42 | 显示全部楼层
YsHaNg 发表于 2022-11-1 18:32
嗨 arch opensuse滚起来

Arch 雀食不错,就是安装过程不太友好
 楼主| 发表于 2022-11-1 19:43 | 显示全部楼层
yoakam 发表于 2022-11-1 18:35
刚工作时翻过几十页,太厚了。
这个都能搞,那pfsense基于FreeBSD应该也能玩转。
用Ubuntu当路由器太纯粹 ...

其实,简单来说就是 设置网桥,配置防火墙,配置pppoe ,配置 dhcp dns,配置 ipv6,和一些简单的系统软件调整。
 楼主| 发表于 2022-11-1 19:45 | 显示全部楼层
AAGun 发表于 2022-11-1 18:52
楼主 10 周年快乐。赞动手能力不是一般的强

就是喜欢折腾咯
 楼主| 发表于 2022-11-1 19:51 | 显示全部楼层
normanlu 发表于 2022-11-1 18:35
我是alpine linux搞得路由器,但是现在routeros出的v7版本,确实挺香的

不过 RouterOS 的 IPv6 有不方便的地方,pppoe 拨号之后 IPv6 默认路由有问题。
发表于 2022-11-1 19:56 | 显示全部楼层
aitkots 发表于 2022-11-1 19:51
不过 RouterOS 的 IPv6 有不方便的地方,pppoe 拨号之后 IPv6 默认路由有问题。 ...

我倒是没发现问题嘛,上外网都正常。

你这里具体啥表现呢?
发表于 2022-11-1 20:04 | 显示全部楼层
声色茶马 发表于 2022-11-1 19:24
我原来以为Linux“装软件10秒、配环境一年”这种风格得延续到宇宙终结了,没想到Docker和K8s这种神器终于 ...

portainer用于docker图形界面管理确实好用,4年前还在用docker swarm的时候用过几次,界面不错,不过k8s已经开始转向containerd了,不知道portainer现在发展成什么样了
发表于 2022-11-1 20:09 | 显示全部楼层
terryhux 发表于 2022-11-1 12:04
portainer用于docker图形界面管理确实好用,4年前还在用docker swarm的时候用过几次,界面不错,不过k8s ...

Docker感觉并不需要什么图形界面 毕竟主要管理不在这 都是用k8s做资源分配 再加上docker需要sudo 现在主流都是只把docker当作oci标准 用kaniko之类的 至于图形界面完全可以用k9s lens
发表于 2022-11-1 20:55 | 显示全部楼层
YsHaNg 发表于 2022-11-1 20:09
Docker感觉并不需要什么图形界面 毕竟主要管理不在这 都是用k8s做资源分配 再加上docker需要sudo 现在主 ...

现在k8s管理大多就kubectl搞搞了,图形界面可有可无,有时候看日志方便点,rancher现在也挺不错的
 楼主| 发表于 2022-11-1 21:10 | 显示全部楼层
normanlu 发表于 2022-11-1 19:56
我倒是没发现问题嘛,上外网都正常。

你这里具体啥表现呢?

拨号后,通过dhcpv6 client给bridge1分配一个公网地址A(使用的前缀为a),这时候内网设备能拿到公网地址,这些都没问题。

当pppoe重新拨号时候,公网的前缀会发生变化,这时候bridge1的公网地址也将同步发生变化,假设拿到的公网地址是B(使用的前缀是b),内网设备此时也能拿到新的前缀b从而生成新的公网地址。

问题在于(可能是我设置有点问题哈),内网设备通过前缀a生成的公网地址并未过期(默认有效期3天)的情况下,又拿到了新前缀b,这时内网设备将有4个公网地址(新旧公网地址2固定地址2临时地址)。

而 RouterOS 并未在路由表中记录旧的公网地址的路由信息,也没有通过 ND 告知内网设备说之前的地址已经不可用 deprecated 。

就会让内网设备无法正确选择最新的公网地址进行通信。

表现形式就是ping不通ipv6网络了。
发表于 2022-11-1 21:42 | 显示全部楼层
aitkots 发表于 2022-11-1 21:10
拨号后,通过dhcpv6 client给bridge1分配一个公网地址A(使用的前缀为a),这时候内网设备能拿到公网地址 ...

刚才看了一下,确实有这个问题。
发表于 2022-11-1 21:55 | 显示全部楼层
我之前为了用Linux base的**工具然后能自动切换所以在内网起了BGP然后用Linux的FRR直接做了BGP Peering...
总体来说。。。其实还挺简单的哈哈
发表于 2022-11-2 00:32 | 显示全部楼层
terryhux 发表于 2022-11-1 12:55
现在k8s管理大多就kubectl搞搞了,图形界面可有可无,有时候看日志方便点,rancher现在也挺不错的 ...

觉得k9s很cool 不过不是devops平时接触不到
 楼主| 发表于 2022-11-2 01:02 | 显示全部楼层
normanlu 发表于 2022-11-1 21:42
刚才看了一下,确实有这个问题。

可能是个疑难杂症
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-1-17 07:52 , Processed in 0.012991 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表