找回密码
 加入我们
搜索
      
查看: 16295|回复: 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-5 14:04 | 显示全部楼层
goat 发表于 2022-11-4 01:59
最最最最早用centos,接下去转虚拟机+op。有时间折腾还好,真要忙起来谁还给自己后院除草。
玩这东西不是职 ...

干就是要自动化
 楼主| 发表于 2022-11-5 14:04 | 显示全部楼层
liusimin 发表于 2022-11-4 01:28
建议可以拿debian搞,思路一样,效率更高,别问我怎么知道的

我本来也是准备拿Debian搞的,但是发现要用dhcpcd这个包,所以选择了Ubuntu,但是,没错又来了但是,最后发现可以不用dhcpcd。。。。
发表于 2022-11-4 01:59 | 显示全部楼层
最最最最早用centos,接下去转虚拟机+op。有时间折腾还好,真要忙起来谁还给自己后院除草。
玩这东西不是职业相关就是触手怪。
发表于 2022-11-4 01:28 | 显示全部楼层
建议可以拿debian搞,思路一样,效率更高,别问我怎么知道的
发表于 2022-11-2 15:53 | 显示全部楼层
我查了一下,现在是这么调整的,大家可以探讨一下。
其实这些都是临时方案,最终还是要出台新路由器ipv6的标准.
估计当初设计ipv6的时候,就没想到会有动态ipv6的问题,所有设备都应该会分配到固定的ipv6地址。

ND01.jpg ND02.jpg

参考:
https://superuser.com/questions/ ... v6-address-from-isp
https://datatracker.ietf.org/doc ... -renum-01#section-5
 楼主| 发表于 2022-11-2 13:49 | 显示全部楼层
softz 发表于 2022-11-2 11:44
我是这么调整的,目前来看有效
Valid Lifetime  00:30:00
Preferred Lifetime 00:10:00

  这么短啊。nice 我去试试
发表于 2022-11-2 11:44 | 显示全部楼层
aitkots 发表于 2022-11-2 10:47
你说的是这个地方么? 建议是多少啊?

我是这么调整的,目前来看有效
Valid Lifetime  00:30:00
Preferred Lifetime 00:10:00
 楼主| 发表于 2022-11-2 10:48 | 显示全部楼层
ksong 发表于 2022-11-2 09:51
我觉得应该用freebsd来做

感觉可以试试,毕竟 opnsense 和 pfsense 底层也是这个
 楼主| 发表于 2022-11-2 10:47 | 显示全部楼层
softz 发表于 2022-11-2 09:16
ros v7 目前暂时可以通过修改ND中的过期时间来解决该问题

你说的是这个地方么? 建议是多少啊?
Snipaste_2022-11-02_10-47-35.jpg
发表于 2022-11-2 10:40 | 显示全部楼层
希望我写的东西对你有所启发
发表于 2022-11-2 09:51 | 显示全部楼层
我觉得应该用freebsd来做
发表于 2022-11-2 09:16 | 显示全部楼层
aitkots 发表于 2022-11-1 21:10
拨号后,通过dhcpv6 client给bridge1分配一个公网地址A(使用的前缀为a),这时候内网设备能拿到公网地址 ...

ros v7 目前暂时可以通过修改ND中的过期时间来解决该问题
发表于 2022-11-2 08:13 | 显示全部楼层
aitkots 发表于 2022-11-2 01:03
你说的是我 RouterOS的那个问题么,我觉得用策略路由可能有解决方法,但是最近没时间尝试 ...

应该不是把....
我起FRR纯粹是因为我想试试Linux上用到某些梯子工具而已。。。
后来感觉....我很何必。。
最后还是直接用浮动静态解决得了。。
 楼主| 发表于 2022-11-2 01:03 | 显示全部楼层
smallfount 发表于 2022-11-1 21:55
我之前为了用Linux base的**工具然后能自动切换所以在内网起了BGP然后用Linux的FRR直接做了BGP Peering...
...

你说的是我 RouterOS的那个问题么,我觉得用策略路由可能有解决方法,但是最近没时间尝试
 楼主| 发表于 2022-11-2 01:02 | 显示全部楼层
normanlu 发表于 2022-11-1 21:42
刚才看了一下,确实有这个问题。

可能是个疑难杂症
发表于 2022-11-2 00:32 | 显示全部楼层
terryhux 发表于 2022-11-1 12:55
现在k8s管理大多就kubectl搞搞了,图形界面可有可无,有时候看日志方便点,rancher现在也挺不错的 ...

觉得k9s很cool 不过不是devops平时接触不到
发表于 2022-11-1 21:55 | 显示全部楼层
我之前为了用Linux base的**工具然后能自动切换所以在内网起了BGP然后用Linux的FRR直接做了BGP Peering...
总体来说。。。其实还挺简单的哈哈
发表于 2022-11-1 21:42 | 显示全部楼层
aitkots 发表于 2022-11-1 21:10
拨号后,通过dhcpv6 client给bridge1分配一个公网地址A(使用的前缀为a),这时候内网设备能拿到公网地址 ...

刚才看了一下,确实有这个问题。
 楼主| 发表于 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 20:55 | 显示全部楼层
YsHaNg 发表于 2022-11-1 20:09
Docker感觉并不需要什么图形界面 毕竟主要管理不在这 都是用k8s做资源分配 再加上docker需要sudo 现在主 ...

现在k8s管理大多就kubectl搞搞了,图形界面可有可无,有时候看日志方便点,rancher现在也挺不错的
发表于 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:04 | 显示全部楼层
声色茶马 发表于 2022-11-1 19:24
我原来以为Linux“装软件10秒、配环境一年”这种风格得延续到宇宙终结了,没想到Docker和K8s这种神器终于 ...

portainer用于docker图形界面管理确实好用,4年前还在用docker swarm的时候用过几次,界面不错,不过k8s已经开始转向containerd了,不知道portainer现在发展成什么样了
发表于 2022-11-1 19:56 | 显示全部楼层
aitkots 发表于 2022-11-1 19:51
不过 RouterOS 的 IPv6 有不方便的地方,pppoe 拨号之后 IPv6 默认路由有问题。 ...

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

你这里具体啥表现呢?
 楼主| 发表于 2022-11-1 19:51 | 显示全部楼层
normanlu 发表于 2022-11-1 18:35
我是alpine linux搞得路由器,但是现在routeros出的v7版本,确实挺香的

不过 RouterOS 的 IPv6 有不方便的地方,pppoe 拨号之后 IPv6 默认路由有问题。
 楼主| 发表于 2022-11-1 19:45 | 显示全部楼层
AAGun 发表于 2022-11-1 18:52
楼主 10 周年快乐。赞动手能力不是一般的强

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

其实,简单来说就是 设置网桥,配置防火墙,配置pppoe ,配置 dhcp dns,配置 ipv6,和一些简单的系统软件调整。
 楼主| 发表于 2022-11-1 19:42 | 显示全部楼层
YsHaNg 发表于 2022-11-1 18:32
嗨 arch opensuse滚起来

Arch 雀食不错,就是安装过程不太友好
 楼主| 发表于 2022-11-1 19:41 | 显示全部楼层
normanlu 发表于 2022-11-1 18:35
我是alpine linux搞得路由器,但是现在routeros出的v7版本,确实挺香的

RouterOS 我已经折腾完了
发表于 2022-11-1 19:28 | 显示全部楼层
声色茶马 发表于 2022-11-1 11:15
配置环境太熬人太累了。如上面那位兄弟所言,不写笔记过一周就特么完全不记得自己干过啥了。

前两天想试 ...

Fcitx搞不好没法当个正经桌面用 总结还是ssh吧
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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

GMT+8, 2025-6-13 11:02 , Processed in 0.014333 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

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