All in One mini主机搭建全屋主路由方案----自己实现自己的路由器,实现路由器自由!

1 接线

首先,需要保证家里当前状态是有网的状态(路由器有网并正常工作)

  1. 将鼠标键盘接在mini主机的USB口,HDMP/DP/VGA等接上显示器。
  2. 从路由器的lan口接一根网线出来接在mini主机的ETH0上,接在mini主机上保证mini主机在安装PVE以及虚拟路由器OpenWRT的时候有网。
  3. 用网线将mini主机的最后一个编号的网口(我的是ETH3)接在电脑上(可以用其他接口,我喜欢用最后一个口)。该网口将会作为mini主机宿主机部分的网口,负责给mini主机宿主机部分供网,以及后续管理该mini主机的宿主机。该网口一定不要在虚拟路由器开启了开机自启动的情况下直通给OpenWRT/爱快等虚拟路由器,否则将会无法管理mini主机了。

2 安装PVE

安装PVE操作系统。

这里有几个注意事项:

2.1 管理网口设置

  1. 管理网口设置为刚刚连接电脑的最后一个网口,我的mini主机是四网口,最后一个网卡对应于enp4s0。如果你的是6网口,一般是enp6s0。
  2. 设置管理网络ip地址,设置为192.168.99.2/24(之所以设置为192.168.99.2是应为192.168.99.1是准备留给虚拟路由器的,该虚拟路由器将会作为整个家庭主路由器。)
  3. 设置网络的网关为192.168.99.1(现在安装系统的时候这个没有用处,但是系统装完,虚拟路由器配置完成以后,上网需要使用网关与外界通信)

2.1.1 相关原理

  1. IP地址 (Internet Protocol Address)
    定义:
    IP地址是互联网上唯一标识网络设备(如计算机、打印机、路由器等)的逻辑地址。它遵循TCP/IP协议族的规定,确保全球范围内的设备能够互相通信。
    格式:
    对于IPv4(目前最常用的一种版本),IP地址由四个字节组成,每个字节的值介于0到255之间,各字节之间用点号(.)分隔,例如 192.168.1.10。
    示例:
    设备IP地址:假设有一台个人电脑,其IP地址被配置为 192.168.1.100。这表示该电脑在网络中被赋予了这个唯一的标识符,用于与其他设备进行网络通信。
  2. 子网 (Subnet)
    定义:
    子网是在一个较大的IP地址空间中,通过应用子网掩码划分出的逻辑上的小网络。子网内的设备共享相同的网络前缀,可以相互通信而无需通过路由器转发。通俗来说,就是局域网。在一个子网内,就是在同一个局域网内。
    示例:
    如果一个网络的ip地址为192.168.99.10,子网掩码为255.255.255.0,则表明192.168.99.10这台设备与192.168.99.0~192.168.99.255范围内的所有设备均在同一子网内。
  3. 子网掩码 (Subnet Mask)
    定义:
    子网掩码通常见到的是255.255.255.0这样的格式。实际上子网掩码是一个与IP地址长度相同的32位二进制数,其值由连续的"1"和"0"组成,用于标识IP地址中哪一部分属于网络地址,哪一部分属于主机地址。例如子网掩码255.255.255.0表示,ip地址的前3个数字的为网络地址,最后一个数字是主机地址,例如192.168.99.10,子网掩码为255.255.255.0表示192.168.99为网络地址,10为主机地址。所以,192.168.99.x的所有机器均为同一子网中的机器。
    子网掩码与IP地址进行逻辑与运算,可以确定该IP地址所属的网络和子网。
    通常还有一种写法,192.168.99.10/24,/24表示前24为为"1",后8为为"0"(定义中所说,32为二进制数,即11111111.11111111.11111111.00000000。所以转换成10进程,则是255.255.255.0。
    示例:
    子网掩码表示:对于子网A(192.168.200.0/24),其子网掩码为 255.255.255.0,二进制表示为 11111111.11111111.11111111.00000000。前24位为"1",表示网络地址部分;后8位为"0",表示主机地址部分。
    子网掩码应用:如果有一个设备的IP地址为 192.168.200.2,通过与子网掩码 255.255.255.0 进行逻辑与运算,可以得知其网络地址为 192.168.200.0,因此该设备属于子网192.168.200.0。
  4. 网关 (Gateway)
    定义:
    网关是网络层设备(如路由器)的一个接口,它作为不同网络之间的桥梁,负责将源自一个网络的数据包转发到另一个网络。网关通常具有路由功能,能够根据目标IP地址和路由表信息决定数据包的转发路径。
    示例:
    家庭网络中,我的路由器ip地址是192.168.99.1,我的PC电脑的ip地址为192.168.99.5,如果此时我想通过PC电脑访问github网站,可以通过打开网站 http://tool.chinaz.com/dns/,在A类型中填写github.com,再点击`监测按钮`查询ip地址得知,github的ip地址为`20.205.243.166`,通过前面的子网知识可知,PC电脑与github服务器并不在同一个子网中,因此,PC将把与github的连接转发给网关,即PC将数据包发给192.168.99.1的路由器,随后路由器再将数据包发给20.205.243.166的github网站。

2.2 PVE宿主机上创建网桥

  1. 由于我的mini主机有4个网卡,已经存在一个网桥,用于管理pve,因此,我们再创建3个网桥,分别对应其余3个网卡。
  2. 将vmbr0对应enp1s0,vmbr1对应enp2s0,vmbr2对应enp3s0,vmbr3对应enp4s0。
  3. 重启

3 安装虚拟路由器(家庭主路由器)OpenWRT

  1. 创建虚拟机
  2. 给虚拟机创建网络,将接着路由器网络的ETH0对应的enp1s0所对应的vmbr0借给虚拟机使用。使用E1000网卡模式(当前安装OopenWRT阶段用来连接互联网,保证可以正常下载所需要的各种安装包以及驱动)。
  3. 导入虚拟路由器的硬盘
  4. qm importxxxxx
  5. 给虚拟机创建网络,将路由器管理网络的ETH3对应的enp4s0所对应的vmbr3借给虚拟机使用,使用E1000网卡模式(后续有望以后将使用该网络来给mini主机PVE宿主机部分供网)
  6. 直通剩下的两个网口ETH1和ETH2给OpenWRT。

3.1 安装网卡驱动

3.1.1 PC电脑访问OpenWRT路由器

PC使用浏览器访问192.168.99.1,默认用户名为root,默认密码为空(不填)

3.1.2 判断虚拟路由器OpenWRT是否有网

使用命令

bash 复制代码
opkg update

进行更新,如果报错,则表示虚拟路由器OpenWRT无法连接互联网。

3.1.3 设置OpenWRT的lan口和wan口

  1. 在PVE的管理页面上,打开OpenWRT控制台窗口,输入vi /etc/config/network,br-lan口设置为eth0,br-wan口设置为eth1。
  2. reboot

3.1.4 安装驱动

我直通给OpenWRT的网卡是英特尔i226,因此

  1. 安装kmod-igc驱动。
  2. 安装中文语言包(搜索zh),安装lua-base的zh简体中文语言包
  3. reboot

3.2 接入互联网

接线

将PVE迷你主机中ETH0上的从路由器接过来线拔掉,把路由器上的WAN口的线拔掉,接到mini主机上的ETH0口上,删除PVE中的vmbr0,在PVE管理界面删除OpenWRT的网络vmbr0,再将EHT0直通给OpenWRT虚拟路由器

相关推荐
wdfk_prog4 分钟前
[Linux]学习笔记系列 -- 底层CPU与体系结构宏
linux·笔记·学习
逑之8 分钟前
C语言笔记15:动态内存管理
c语言·网络·笔记
行走的bug...10 分钟前
cmake总结
linux·运维·服务器
zfxwasaboy11 分钟前
DRM KMS 子系统(3)CRTC
linux·c语言
hui函数15 分钟前
如何解决 pip install 网络报错 403 Forbidden(访问被阻止)问题
网络·pip
凌波粒17 分钟前
Linux 面试题篇
linux·运维·服务器
Joren的学习记录18 分钟前
【Linux运维疑难杂症】k8s集群创建calico网络失败
linux·运维·kubernetes
乾元22 分钟前
现场运维机器人的工程化落地——移动探针采集 + AI 诊断,在真实网络中的实现路径
运维·网络·人工智能·架构·机器人·自动化
鲨莎分不晴26 分钟前
Docker 网络深度解析:打破容器的“孤岛效应”
网络·docker·容器
虾..27 分钟前
Linux 线程控制
linux·运维·服务器