前言

前些日子搭建了一台FreeNAS,由于性能过剩,于是就想着再虚拟一个软路由使用

搭建环境

FreeNAS11.3-U1物理机

配件 型号
CPU E5-2630L v3
主板 华硕X99-A
显卡 GeForce 310(GT218)
内存 镁光DDR4 2133Mhz RECC 16G
硬盘 淘汰的2.5寸500G机械硬盘
电源 全汉FSP600-60WS2
机箱 12盘位服务器机架式2U机箱

在此基础上开启虚拟机安装Lean大神源码编译的openwrt固件,固件版本是R20.3.19,内核版本是4.19.108

故障描述

一开始wan口使用DHCP模式网络还是正常的,但不知为何wol唤醒无法正常使用,端口转发也无效,后面切换为PPPoE协议拨号时,始终是0个数据包

尝试过的解决方案

拨号问题

貌似类似的例子很少出现,找了很久也只有一个较为明确的解决方案:
在命令行下手动指定wan口mac地址

#修改配置文件
vi /etc/config/network
#按i进入编辑模式,找到wan口的位置,在最后一行添加
option macaddr ‘xx:xx:xx:xx:xx:xx’
#按Esc键退出编辑模式,输入命令保存并退出
:wq
#重启网络服务
service network restart

这是由于部分地区的ISP运营商开启了mac地址限制,类似白名单,只有固定的mac地址可以拨号成功,其他的设备一律失败
也就是最开始拨号成功的设备的mac地址才能使用
但在openwrt固件下也有人随意指定一个mac地址就成功拨号的情况出现,具体原因不明
而我的情况应该不在此列,毕竟我后来用家里的电视盒子,二级路由什么的去拨号也还是成功了的
但我还是死马当活马医的去试了一下,结果当然还是失败

wol唤醒设备&端口转发问题

由于我是想外网远程控制家里的台式机,但是软路由无法拨号的情况下,只得作为二级路由使用,再进行两层端口转发
即:PC-openwrt-主路由-互联网这样的路线
这时遇到的新问题就是在主路由下无法远程控制PC,更不用说外网了.而且使用openwrt的网络唤醒(wol)功能显示正常,没有报错,但PC没有开机

wol这块我找到的帖子是由于mac地址最开始的两位数是00,导致识别错误,mac地址没有正确输入的bug,但我的mac地址最开始的两位数也不是00:sleepy:

而端口转发这一块,我查了很多教程,明确设置没有问题,所以怀疑是防火墙的问题,随后使用命令行停止了防火墙

 #关闭防火墙
 /etc/init.d/firewall stop
 #阻止防火墙服务开机自动启动
 /etc/init.d/firewall disable

再次尝试在主路由下远程控制PC,结果是成功了,但等了一会后,网络就挂了,一查才发现openwrt的防火墙直接关闭会导致断网

折腾了好几天的多重打击之下,暂时让我压抑住了探究的内心
命运扼住了我的咽喉

最后的尝试

经过这么久的折腾,也能猜到是FreeNAS的虚拟机不够完善造成的问题,偏偏国内还没什么人折腾FreeNAS ,查阅英文资料对我来说也很吃力,我也基本快要放弃使用FreeNAS搭建软路由了,但偶然在FreeNAS官方论坛里看见一篇帖子有人和我遇到了一样的问题,下面的回复有提到解决方法,于是我再最后挣扎一下

进入FreeNAS Web管理页面-系统(System )-微调(Tunables)

  1. 添加(ADD)一条规则
  2. 变量(Variable)为net.link.bridge.pfil_onlyip
  3. 值为(Value)0
  4. 选择类型(Type)为sysctl
  5. 点击保存(SAVE)
  6. 最后重启FreeNAS
  7. 把wan口网线插入光猫
  8. 重新拨号

神奇的是,以上问题全部解决了
貌似原因是因为FreeNAS虚拟机的网卡不是直通,而是经过了转换导致的
果然还是再搭建一个ESIX物理机专门用来玩虚拟机吧


版权属于:本文为原创文章,版权归 AUK CL 所有。
文章地址: https://aukcl.win/archives/445/
所有原创文章由知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
您可以自由转载或修改,但禁止一切形式的商业使用,同时,务必请注明原文地址及作者信息。

Last modification:July 12, 2020
如果觉得我的文章对你有用,请随意赞赏