家里的入户的光猫在书房,书房到客厅的只有一条网线。因此诞生了单线复用的需求,拓扑如下:
VLAN 交换机单线复用
2024年12月21日
...阅读全文
家里的入户的光猫在书房,书房到客厅的只有一条网线。因此诞生了单线复用的需求,拓扑如下:
最近有一个需求,修改 TCP 回程数据包的 SRC 和 DST IP 使与去程走不一样的路由。第一反应是使用 iptables 做 SNAT 和 DNAT,但是实测发现 iptables 是基于 Conntrack 实现的,对回程数据包并不生效。因为曾经用 XDP 实现过 LB,准备再次使用 XDP 写个小程序实现。
随后突然想起 ebpf 的 XDP Hook 是对 ingress 生效的,如果想做 egress 则得使用 TC Hook。既然如此, Linux 的 TC 工具是不是已经原生支持了我的小需求呢,之前对 TC 工具的使用局限在 netem 和 tbf 模块,也就是弱网模拟和流控。查阅文档发现 TC 的 Pedit 模块可以很轻松的提供我需要的无状态(Stateless)NAT 能力。
初闻不知曲中意,再闻已是曲中人。
二〇二一。忙着恋爱,忙着毕业,忙着工作。
之前一直在用 Ocserv 或者 Softether 进行组网,但是这两者不能比较好的去中心化,且需要公网 IP,总的来说不适合跨地区的家庭组网。这次考虑使用 ZeroTier 进行组网,参考了相关的教程,发现很多都选择采用 iptables 对网络进行 NAT 的方式,不仅配置繁琐,还会损失性能。这里直接使用静态路由的方式,无需多余配置,性能也比较好。