1 接线
首先,需要保证家里当前状态是有网的状态(路由器有网并正常工作)
- 将鼠标键盘接在mini主机的USB口,HDMP/DP/VGA等接上显示器。
- 从路由器的
lan口
接一根网线出来接在mini主机的ETH0上,接在mini主机上保证mini主机在安装PVE以及虚拟路由器OpenWRT的时候有网。 - 用网线将mini主机的最后一个编号的网口(我的是ETH3)接在电脑上(可以用其他接口,我喜欢用最后一个口)。该网口将会作为mini主机宿主机部分的网口,负责给mini主机宿主机部分供网,以及后续管理该mini主机的宿主机。该网口一定不要在虚拟路由器开启了开机自启动的情况下直通给OpenWRT/爱快等虚拟路由器,否则将会无法管理mini主机了。
2 安装PVE
安装PVE操作系统。
这里有几个注意事项:
2.1 管理网口设置
- 管理网口设置为刚刚连接电脑的最后一个网口,我的mini主机是四网口,最后一个网卡对应于enp4s0。如果你的是6网口,一般是enp6s0。
- 设置管理网络ip地址,设置为192.168.99.2/24(之所以设置为192.168.99.2是应为192.168.99.1是准备留给虚拟路由器的,该虚拟路由器将会作为整个家庭主路由器。)
- 设置网络的网关为192.168.99.1(现在安装系统的时候这个没有用处,但是系统装完,虚拟路由器配置完成以后,上网需要使用网关与外界通信)
2.1.1 相关原理
- IP地址 (Internet Protocol Address)
定义:
IP地址是互联网上唯一标识网络设备(如计算机、打印机、路由器等)的逻辑地址。它遵循TCP/IP协议族的规定,确保全球范围内的设备能够互相通信。
格式:
对于IPv4(目前最常用的一种版本),IP地址由四个字节组成,每个字节的值介于0到255之间,各字节之间用点号(.)分隔,例如 192.168.1.10。
示例:
设备IP地址:假设有一台个人电脑,其IP地址被配置为 192.168.1.100。这表示该电脑在网络中被赋予了这个唯一的标识符,用于与其他设备进行网络通信。 - 子网 (Subnet)
定义:
子网是在一个较大的IP地址空间中,通过应用子网掩码划分出的逻辑上的小网络。子网内的设备共享相同的网络前缀,可以相互通信而无需通过路由器转发。通俗来说,就是局域网。在一个子网内,就是在同一个局域网内。
示例:
如果一个网络的ip地址为192.168.99.10,子网掩码为255.255.255.0,则表明192.168.99.10这台设备与192.168.99.0~192.168.99.255范围内的所有设备均在同一子网内。 - 子网掩码 (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。 - 网关 (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宿主机上创建网桥
- 由于我的mini主机有4个网卡,已经存在一个网桥,用于管理pve,因此,我们再创建3个网桥,分别对应其余3个网卡。
- 将vmbr0对应enp1s0,vmbr1对应enp2s0,vmbr2对应enp3s0,vmbr3对应enp4s0。
- 重启
3 安装虚拟路由器(家庭主路由器)OpenWRT
- 创建虚拟机
- 给虚拟机创建网络,将接着路由器网络的ETH0对应的enp1s0所对应的vmbr0借给虚拟机使用。使用E1000网卡模式(当前安装OopenWRT阶段用来连接互联网,保证可以正常下载所需要的各种安装包以及
驱动
)。 - 导入虚拟路由器的硬盘
qm importxxxxx
- 给虚拟机创建网络,将路由器管理网络的ETH3对应的enp4s0所对应的vmbr3借给虚拟机使用,使用E1000网卡模式(后续有望以后将使用该网络来给mini主机PVE宿主机部分供网)
- 直通剩下的两个网口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口
- 在PVE的管理页面上,打开OpenWRT控制台窗口,输入vi /etc/config/network,br-lan口设置为eth0,br-wan口设置为eth1。
- reboot
3.1.4 安装驱动
我直通给OpenWRT的网卡是英特尔i226,因此
- 安装kmod-igc驱动。
- 安装中文语言包(搜索zh),安装lua-base的zh简体中文语言包
- reboot
3.2 接入互联网
接线
将PVE迷你主机中ETH0上的从路由器接过来线拔掉,把路由器上的WAN口的线拔掉,接到mini主机上的ETH0口上,删除PVE中的vmbr0,在PVE管理界面删除OpenWRT的网络vmbr0,再将EHT0直通给OpenWRT虚拟路由器