啊鸡儿折腾 NAS 之《网络篇》

Last Edited Time
May 31, 2024 02:13 AM
date
May 25, 2024
slug
nas-network
status
Published
tags
NAS
PVE
summary
分享一下我的 NAS 网络方案
type
Post

简介

由于我家的路由器与电脑离的远,拉网线又太丑了,所以想让 PVE 日常只使用无线网卡。由于遇到了很多

开搞

a. PVE 安装网络连接工具

💡
最好是先用有线网口联网,也可以选择不临时联网,就需要使用 USB 进行离线安装无线网络连接工具库了
在安装 PVE 之后,需要先临时联网,有尝试以下方案:
  • 使用手机 USB 共享网络(经尝试未成功)
  • 拉网线直接连接(成功)
有用到以下命令:
ip addr # 查看当前网络信息
dhclient eno1 # 切换当前网卡,切换后会显示内网 ip 地址,其中 eno1 是本地网卡
notion image
网络通了之后就可以安装网络连接工具
# 安装网络连接工具
apt install wireless-tools
apt install wpasupplicant
apt install net-tools

b. PVE 通过无线网卡连接 WiFi

扫描 WiFi
iwlist wlp3s0 scanning #扫描 WiFi
notion image
生成密码配置
wpa_passphrase YOUR_WIFI_SSID YOUR_WIFI_PASSWORD
notion image
更改网络配置并重启
vim /etc/network/interfaces # 按照下图更改网络配置
ifdown vmbr0 # 关闭有线网卡,并拔出网线
ifup wlp3s0 # 开启无线网卡
notion image
坑 1:一个是在拔掉网线后没有禁用有线网卡,导致局域网内 arp 表错误无法找到正确的 mac 地址,关闭其他网卡后问题解决
坑2:在电脑重启后无法自动重启有线网卡,但是手动重启生效,经排查是在重启后无法立即识别无线网卡接口,在加上延迟一秒开启无线网卡后顺利解决,排查所使用命令如下:
systemctl status networking.service # 查询网络服务是否启动
systemctl restart networking.service # 重启网络服务
arp -a # 查询路由表,看是否正确获取 mac 地址
arp -d 192.168.31.121 # 删除不正确的 mac 路由数据

c. PVE 虚拟机通过无线网卡联网

根据 《PVE WLAN》官方文档描述,其实是不建议使用 WLAN 的,主要有以下两个限制:
  • Wi-Fi适配器只能通过一些变通方法作为Linux桥接口使用,而且大多数接入点(AP)会拒绝源地址未经AP认证的帧。
  • 根有线连接比起来,更有可能遇到延迟波动、带宽减少、连接不稳等问题
但是没办法电脑离路由器太远了,只能硬搞了,有以下方案:

方案一:网络地址转换(NAT)已跑通

  • 编辑网络配置并重启
    • vim /etc/network/interfaces # 见下图
      systemctl restart networking.service
      notion image
  • 更改虚拟机的 ip 为 10.10.10.0/24 网段,网关配置为 10.10.10.1 即可

方案二:使用网络桥接过滤器 ebtables(Layer 2)未跑通

  • 指定无线网卡进行桥接
    •  pre-up iwconfig wlan0 essid $YOUR_ESSID
       bridge_hw $MAC_ADDRESS_OF_YOUR_WIRELESS_CARD
      /etc/network/interface
  • 第一个规则我们要设置的是将所有发送给AP的帧的源MAC地址设置为桥接器的MAC地址。
    • ebtables -t nat -A POSTROUTING -o wlan0 -j snat --to-src $MAC_OF_BRIDGE --snat-arp --snat-target ACCEPT
  • 下一个规则要求您知道桥后每台机器的MAC地址和IP地址。将$MAC和$IP替换为实际的MAC地址和IP地址。
    • ebtables -t nat -A PREROUTING -p IPv4 -i wlan0 --ip-dst $IP -j dnat --to-dst $MAC --dnat-target ACCEPT
      ebtables -t nat -A PREROUTING -p ARP -i wlan0 --arp-ip-dst $IP -j dnat --to-dst $MAC --dnat-target ACCEPT
  • 后面就卡在这里了,安装的虚拟机无法指定 wlan0 为网卡,后面虽添加的新的虚拟网卡,但是配置怎么都不正确

方案三:使用网络桥接过滤器 Proxy ARP(Layer 3)已跑通

  • 安装代理 ARP 软件包 parprouted
    • apt install parprouted
  • 编辑网络配置重启
    • vim /etc/network/interfaces # 见下图
      systemctl restart networking.service
      notion image
  • 更改虚拟机的 ip 为 192.168.31.0/24 网段,网关配置为 192.168.31.1 即可

方案四:4 address mode (WDS),小米路由器不支持,略

Reference

换源、开通 SRIOV、iommu 等可以参考以下链接
PVE 无法控制虚拟机 Win11 关机的问题可以看