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

server/2024/10/19 9:34:12/

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是否有网

使用命令

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虚拟路由器


http://www.ppmy.cn/server/23495.html

相关文章

面试经典150题——分发糖果

面试经典150题 day15 题目来源我的题解方法一 两次不同方向的遍历(应该是贪心)方法二 贪心 题目来源 力扣每日一题;题序:135 我的题解 方法一 两次不同方向的遍历(应该是贪心) 遍历两次(左→…

Linux 基本指令(上)

目录 whoami 命令 pwd 命令 ls 命令 Linux的目录结构 cd 命令 文件操作 什么是文件 touch 命令 mkdir 命令 rmdir / rm 命令 rm 删除文件: rm 删除目录: whoami 命令 whoami :可以看出当前登录的用户名 pwd 命令 pwd 用于显示用户当…

第八章异常(是程序在执行过程中,出现的非正常的情况,如果不处理最终会导致JVM的非正常停止)

目录 2、如何对待异常 3、异常的抛出机制 8.1.2 Java异常体系 1、Throwable 2、Error和Exception 8.1.3 受检异常和非受检异常 演示常见的错误和异常 1、Error 2、运行时异常 3、编译时异常 8.2 异常的处理 8.2.1 捕获异常:try…catch 1、…

《Fundamentals of Power Electronics》——三端电池的旋转、负载差分连接

以下是关于三端电池的旋转的相关知识点: Buck电路、Boost电路和Buck-Boost电路均包含一个与单刀单掷开关相连的电感。如下图所示。 将上图中的电感和开关网络视为一个标有a,b,c三端的基础电池。该电池在电源和负载之间有三种不同的连接方式。a-A b-B c-C连接方式组…

【MySQL】多表查询

1.多表查询分类讲解 1.1等值连接vs非等值连接 等值连接: SELECT student.name, class.name AS className FROM student, class WHERE student.class_id class.class_id; 非等值连接: SELECT a.name, a.salary, b.grade FROM teacher a, grades b WH…

安卓基础知识-跨进程通信IPC篇

目录 1. Intent简介和作用分类常见操作创建intent设置component目的组件(显式intent)设置action动作添加category类别设置data数据和type类型设置和读取扩展数据extras设置flags标志位常见用法 2. Messenger3. Binderbinder机制介绍binder面试题AIDL 4. …

【Qt 学习笔记】Qt常用控件 | 输入类控件 | Combo Box的使用及说明

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 输入类控件 | Combo Box的使用及说明 文章编号&#xff…

【Python的魅力】:利用Pygame实现游戏坦克大战——含完整源码

文章目录 一、游戏运行效果二、代码实现2.1 项目搭建2.2 加载我方坦克2.3 加载敌方坦克2.4 添加爆炸效果2.5 坦克大战之音效处理 三、完整代码 一、游戏运行效果 二、代码实现 坦克大战游戏 2.1 项目搭建 本游戏主要分为两个对象,分别是我方坦克和敌方坦克。用户可…