路由器自由?我把Linux服务器变成了路由器,支持IPv6
本帖最后由 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
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 鸟哥的私房菜 实践能力很强么。 yoakam 发表于 2022-11-1 18:28
鸟哥的私房菜 实践能力很强么。
[偷笑] 早有耳闻鸟哥的Linux私房菜,但并未拜读。 make Install有啥仇吗 都装usr/local/lib的还是很好的 YsHaNg 发表于 2022-11-1 18:30
make Install有啥仇吗 都装usr/local/lib的还是很好的
[偷笑] 我为了能完全自动更新,这样比较清真 aitkots 发表于 2022-11-1 10:31
我为了能完全自动更新,这样比较清真
嗨 arch opensuse滚起来 我是alpine linux搞得路由器,但是现在routeros出的v7版本,确实挺香的[傻笑] 本帖最后由 yoakam 于 2022-11-1 19:38 编辑
aitkots 发表于 2022-11-1 18:29
早有耳闻鸟哥的Linux私房菜,但并未拜读。
刚工作时翻过几十页,太厚了。
这个都能搞,那pfsense基于FreeBSD应该也能玩转。
用Ubuntu当路由器太纯粹了,要是隔几个月没笔记的话出现异常我不知道该咋维护。 天使您好,这帖子看起来是为了纪念注册10周年吧。 本帖最后由 声色茶马 于 2022-11-1 18:45 编辑
YsHaNg 发表于 2022-11-1 18:30
make Install有啥仇吗 都装usr/local/lib的还是很好的
服务端的各种东西,大佬们一般都建议make install,而不是pacman apt啥的装。
不过LZ既然敢在Router这种东西上滚更,不用担心跪洗衣板机械键盘,想来生活还相当自由的。膜拜一下。
不过我个人要是搞,肯定还是在Arch或者gentoo上干。毕竟系统精简得多,干净卫生。 楼主 10 周年快乐。赞动手能力不是一般的强 声色茶马 发表于 2022-11-1 10:43
服务端的各种东西,大佬们一般都建议make install,而不是pacman apt啥的装。
不过LZ既然敢在Router这种 ...
是的 生产环境谁滚 现在都巴不得全docker里写死 部署完全一样的 声色茶马 发表于 2022-11-1 18:43
服务端的各种东西,大佬们一般都建议make install,而不是pacman apt啥的装。
不过LZ既然敢在Router这种 ...
干了15年运维,刚出道两年时都编译安装,后来要求apt或yum安装,现在只用docker/k8s了 YsHaNg 发表于 2022-11-1 18:52
是的 生产环境谁滚 现在都巴不得全docker里写死 部署完全一样的
配置环境太熬人太累了。如上面那位兄弟所言,不写笔记过一周就特么完全不记得自己干过啥了。
前两天想试试wayland,看能不能完全移植过去让X11彻底下岗,于是虚拟机搞了个arch+wayfire。结果我勒个去,被折腾个死去活来,然后决定转投garuda现成的发行版。转过去以后……继续死去活来。 terryhux 发表于 2022-11-1 19:01
干了15年运维,刚出道两年时都编译安装,后来要求apt或yum安装,现在只用docker/k8s了 ...
我原来以为Linux“装软件10秒、配环境一年”这种风格得延续到宇宙终结了,没想到Docker和K8s这种神器终于憋了出来。现在感觉用Portainer部署个容器比win上装个服务还爽利,爽利多了,搞得现在Linux上装点儿啥第一反应都是去找个好用的docker。 声色茶马 发表于 2022-11-1 11:15
配置环境太熬人太累了。如上面那位兄弟所言,不写笔记过一周就特么完全不记得自己干过啥了。
前两天想试 ...
Fcitx搞不好没法当个正经桌面用 总结还是ssh吧 normanlu 发表于 2022-11-1 18:35
我是alpine linux搞得路由器,但是现在routeros出的v7版本,确实挺香的
[偷笑] RouterOS 我已经折腾完了 YsHaNg 发表于 2022-11-1 18:32
嗨 arch opensuse滚起来
[偷笑] Arch 雀食不错,就是安装过程不太友好 yoakam 发表于 2022-11-1 18:35
刚工作时翻过几十页,太厚了。
这个都能搞,那pfsense基于FreeBSD应该也能玩转。
用Ubuntu当路由器太纯粹 ...
其实,简单来说就是 设置网桥,配置防火墙,配置pppoe ,配置 dhcp dns,配置 ipv6,和一些简单的系统软件调整。 AAGun 发表于 2022-11-1 18:52
楼主 10 周年快乐。赞动手能力不是一般的强
[偷笑] 就是喜欢折腾咯 normanlu 发表于 2022-11-1 18:35
我是alpine linux搞得路由器,但是现在routeros出的v7版本,确实挺香的
[傻笑] 不过 RouterOS 的 IPv6 有不方便的地方,pppoe 拨号之后 IPv6 默认路由有问题。 aitkots 发表于 2022-11-1 19:51
不过 RouterOS 的 IPv6 有不方便的地方,pppoe 拨号之后 IPv6 默认路由有问题。 ...
我倒是没发现问题嘛,上外网都正常。
你这里具体啥表现呢? 声色茶马 发表于 2022-11-1 19:24
我原来以为Linux“装软件10秒、配环境一年”这种风格得延续到宇宙终结了,没想到Docker和K8s这种神器终于 ...
portainer用于docker图形界面管理确实好用,4年前还在用docker swarm的时候用过几次,界面不错,不过k8s已经开始转向containerd了,不知道portainer现在发展成什么样了[恶魔] terryhux 发表于 2022-11-1 12:04
portainer用于docker图形界面管理确实好用,4年前还在用docker swarm的时候用过几次,界面不错,不过k8s ...
Docker感觉并不需要什么图形界面 毕竟主要管理不在这 都是用k8s做资源分配 再加上docker需要sudo 现在主流都是只把docker当作oci标准 用kaniko之类的 至于图形界面完全可以用k9s lens YsHaNg 发表于 2022-11-1 20:09
Docker感觉并不需要什么图形界面 毕竟主要管理不在这 都是用k8s做资源分配 再加上docker需要sudo 现在主 ...
现在k8s管理大多就kubectl搞搞了,图形界面可有可无,有时候看日志方便点,rancher现在也挺不错的 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网络了。 aitkots 发表于 2022-11-1 21:10
拨号后,通过dhcpv6 client给bridge1分配一个公网地址A(使用的前缀为a),这时候内网设备能拿到公网地址 ...
刚才看了一下,确实有这个问题。 我之前为了用Linux base的**工具然后能自动切换所以在内网起了BGP然后用Linux的FRR直接做了BGP Peering...
总体来说。。。其实还挺简单的哈哈 terryhux 发表于 2022-11-1 12:55
现在k8s管理大多就kubectl搞搞了,图形界面可有可无,有时候看日志方便点,rancher现在也挺不错的 ...
觉得k9s很cool 不过不是devops平时接触不到 normanlu 发表于 2022-11-1 21:42
刚才看了一下,确实有这个问题。
[傻笑] 可能是个疑难杂症
页:
[1]
2