跳转至

2022

hexo 使用

记录 hexo 相关内容

tag:关键词 categories:

  • 软件工具:介绍新发现的好用工具
  • 折腾:做的一件事
  • 网络:路由器,openwrt,软路由

虚拟游戏房

打算弄多个 windows 虚拟机,分享给 guest。

好处

  • pcie 4.0 的固态作系统 (6000MB 的读写)
  • Ryzen 5800x + 16GB 内存
  • 共享高性能显卡(目前为 1060 3G)

具体

  • 所有 windows 虚拟机的 C 盘共用一个基本镜像
    • 虚拟机的修改关机后不保存
  • 所有 windows 虚拟机共享 2TB 的游戏盘
    • 普通用户关机后,数据不保存
    • 管理员虚拟机对其修改可以保存
  • 一个存储盘,50GB。数据私有并进行保存

实现

  • 通过 COW 文件系统的 overlay 技术,在 base 镜像上创建一个 overlay 镜像。之后删除 overlay 即可回退到基础状态。

VLAN 实现单网口软路由

起因是发现在原本的两个路由器间架设 wireguard 隧道,其中一个路由器 (小米 4A 千兆版) 遇到了 CPU 瓶颈,导致带宽只能达到 100-200 左右。后面研究了市面上的各种路由器的 CPU 型号,包括矿渣路由器。购买了一个 100 元的可以刷 openwrt 的竞斗云 2.0,带宽可以达到 200-300M,但仍远低于理想的千兆。目前即便是 500 元以上的高端路由器,其配置仍然只有 4 核 Cortex A53@2.0GHz 的水平。

偶然看到用旧笔记本做软路由的视频,遂萌生了折腾软路由的想法。仔细研究其方案后发现为 pppoe 拨号上网的方式,不适用于 dhcp 上网的情况。后偶然发现所购买路由器支持 vlan 功能(其实后面发现所有 openwrt 路由器都支持),于是自己独立构思了后面的架构图。并尝试成功 (11/5),最终在红米 AX6S+ 软路由的情况下,达到了 500M 的带宽,此时 AX6S 的双核 Cortex A53@1.2GHz CPU 占用率也达到了 100%。

之后再接再励,将 AX6S 也配置了 vlan,并在旧笔记本实现软路由。最终带宽达到了 880Mbps,scp 文件达到 98MB/s 的速率。并且之后还成功配置了 Guest WIFI,将其和主网络隔离开来,更加保证了安全性。

通过本次项目,学会了:

  • linux 下,ip, netplan 创建 bridge 和 vlan
  • lxc 容器的使用
  • openwrt DSA 架构配置 vlan

LXC 使用

1 说明

lxc vs docker

LXC 是一种轻量虚拟机,复用 host 内核。与 docker 尽可能每个容器只跑一个应用不同,lxc 的思路更接近虚拟机。 image-20221102112404544

The key networking difference between Docker and LXC is that with LXC one can attach a container to any bridge on the Host. This includes a bridge on the outside interface. Via transparent bridging the container can have unfettered access to the existing IPv6 subnet, including picking up Global Unique Addresses (GUAs) without the host having to do router-like functions, such as adding routes, auto propagation of prefixes (with DHCPv6-PD), redistribution of routes, etc. Again, things which Docker doesn't support.

lxc vs lxd

LXD is actually two parts, the lxd daemon, and the lxc CLI client which makes calls to the lxd daemon

Wireguard 组网

wireguard 是一种基于 UDP 的隧道协议,可以在不同设备间建立虚拟隧道,从而连接不同子网。本文总结了不同使用场景

尝试非官方 openwrt

说明

我的红米 ac2100 不知道怎么回事,使用自己编译的固件,无法开启 5G 无线。radio1 显示 not active,并且为 802.11n 协议。先后尝试编译 22.03-rc6, 21.02 稳定版都是如此。(官方稳定版是有的)(想到一些第三方的 openwrt 说针对国内进行了优化,因此想尝试下第三方的 openwrt

retroarch 配置

RetroArch Starter Guide – Retro Game Corps

retroarch 是一个模拟器前端,不同的模拟器以 core 的形式嵌入 retro。retroarch 相对于单独的模拟器来说好处如下

  • 跨平台。retroarch 支持非常多的平台。由于 core 是动态链接库的形式嵌入 retroarch 的,相当于解决了不同 core 的跨平台问题。
  • 支持全局的按键映射。不用为每个模拟器设置手柄,快捷键等等配置。
  • shader and filters。可以实现一些特别的视觉效果,比如

Openwrt Mesh 和快速漫游配置

背景

家里原本有两个路由器,一个负责楼上,一个负责楼下。但是仍然有许多覆盖不到的地方,比如厨房。并且更影响体验的是楼上楼下的 WIFI 使用不同的 SSID,手机无法很好地自动切换。经常是楼上连接到楼下的网络导致信号很差。因此决定对家里的网络改造一番。

以前听过 mesh 这个技术,可以将很多台路由器通过无线连接起来,共同提供一个网络。于是去搜索了 openwrt 是否支持 mesh,发现是可以的。并且经过进一步的了解,纠正了自己之前对无线网络的一些错误认知。

  • 首先,mesh 解决的并不是如何让设备自动切换网络,而是如何进行无线组网,可以避免布线的困难。mesh 节点通过同一个信道的的无线相互连接,而通过另一个无线提供 WIFI。
  • 快速漫游(fast roaming) 协议,准确来说叫做 802.11r 协议,可以减少设备切换无线网络的耗时。

硬件设备上,我选择使用小米路由 3G 来搭建,主要是因为硬件配置上在 wifi5 的路由器中算是很不错的了,且某鱼上一个只需要 50 元。于是又买了两个,加上原本的,现在有 4 台 openwrt 路由器,一个红米 AC2100 作为主路由,3 个 R3G 作为 AP 节点。

为了方便配置还实现了一个自动配置脚本放在 github:TheRainstorm/my-openwrt-config (github.com)

openwrt DNS 详解

openwrt DNS 说明

参考:

  • openwrt DNS 和 DHCP 配置均位于/etc/config/dhcp
  • openwrt 使用 dnsmasq 和 odhcpd。它们功能如下:

    image-20220816220011245

  • 总结来说:
    • dnsmasq 将自己设置为 DHCP 客户端的 DNS
    • dnsmasq 使用缓存来提升性能。到达的 dns 请求如果没有命中则转发给上游 DNS

      Dnsmasq serves as a downstream caching DNS server advertising itself to DHCP clients. This allows better performance and management of DNS functionality on your local network. Every received DNS query not currently in cache is forwarded to the upstream DNS servers.