返回文章

文章 2024

啊鸡折腾 NAS 之《网络篇》

分享一下我的 NAS 网络方案

NASPVENetwork
本文目录10
  1. 简介
  2. 开搞
  3. a. PVE 安装网络连接工具
  4. b. PVE 通过无线网卡连接 WiFi
  5. c. PVE 虚拟机通过无线网卡联网
  6. 方案一:网络地址转换(NAT)已跑通
  7. 方案二:使用网络桥接过滤器 ebtables(Layer 2)未跑通
  8. 方案三:使用网络桥接过滤器 Proxy ARP(Layer 3)已跑通
  9. 方案四:4 address mode (WDS),小米路由器不支持,略
  10. Reference

简介

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

开搞

a. PVE 安装网络连接工具

💡 最好是先用有线网口联网,也可以选择不临时联网,就需要使用 USB 进行离线安装无线网络连接工具库了

在安装 PVE 之后,需要先临时联网,有尝试以下方案:

  • 使用手机 USB 共享网络(经尝试未成功)

  • 拉网线直接连接(成功)

有用到以下命令:

shell
ip addr # 查看当前网络信息
dhclient eno1 # 切换当前网卡,切换后会显示内网 ip 地址,其中 eno1 是本地网卡

image-625b6d4a.png

网络通了之后就可以安装网络连接工具

shell
# 安装网络连接工具
apt install wireless-tools
apt install wpasupplicant
apt install net-tools

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

扫描 WiFi
shell
iwlist wlp3s0 scanning #扫描 WiFi

Untitled-b8ab45ba.png

生成密码配置
shell
wpa_passphrase YOUR_WIFI_SSID YOUR_WIFI_PASSWORD

Untitled-f8aee44e.png

更改网络配置并重启
shell
vim /etc/network/interfaces # 按照下图更改网络配置
ifdown vmbr0 # 关闭有线网卡,并拔出网线
ifup wlp3s0 # 开启无线网卡

Untitled-6ad953f8.png

坑 1:一个是在拔掉网线后没有禁用有线网卡,导致局域网内 arp 表错误无法找到正确的 mac 地址,关闭其他网卡后问题解决
坑2:在电脑重启后无法自动重启有线网卡,但是手动重启生效,经排查是在重启后无法立即识别无线网卡接口,在加上延迟一秒开启无线网卡后顺利解决,排查所使用命令如下:
shell
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)已跑通

  • 编辑网络配置并重启
shell
vim /etc/network/interfaces # 见下图
systemctl restart networking.service

image-d3a53500.png

  • 更改虚拟机的 ip 为 10.10.10.0/24 网段,网关配置为 10.10.10.1 即可

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

  • 指定无线网卡进行桥接
shell
 pre-up iwconfig wlan0 essid $YOUR_ESSID
 bridge_hw $MAC_ADDRESS_OF_YOUR_WIRELESS_CARD
  • 第一个规则我们要设置的是将所有发送给AP的帧的源MAC地址设置为桥接器的MAC地址。
shell
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地址。
shell
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
shell
apt install parprouted
  • 编辑网络配置重启
shell
vim /etc/network/interfaces # 见下图
systemctl restart networking.service

image-e24e209c.png

  • 更改虚拟机的 ip 为 192.168.31.0/24 网段,网关配置为 192.168.31.1 即可

https://lala.im/7757.html

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

Reference

换源、开通 SRIOV、iommu 等可以参考以下链接

https://blog.csdn.net/hivlt/article/details/134470130

https://www.bilibili.com/video/BV1qZ421q74m/

https://www.cnblogs.com/yyy413/p/18073909

返回首页
上一篇啊鸡折腾 NAS 之《存储与系统篇》下一篇啊鸡折腾之《IPV6 公网访问》

Discussion

留言与讨论

想法、补充和不同意见都欢迎。