锐角云主机折腾openwrt单臂软路由实现多拨叠加负载

锐角云既然享有矿渣之王美称,说明配置方面肯定是很不错,我们来一起看看!

CPU赛扬 N3450
内存8G DDR3 1600
硬盘1闪迪DF4064 64GB EMMC
硬盘2128G SSD
网卡RTL8111G
无线网卡Intel 3165D2W

这配置只做物理软路由有点太浪费了,并且因为它只有一个网口,我手头上没有物理交换机,所以我选用安装PVE的方式虚拟KVM小鸡安装openwrt ,再利用PVE的虚拟交换机来做多网口拨号

网络架构

在安装网络环境之前,我们有必要对内网布局来个简单的梳理

我的宗旨是尽量不添加设备,利用手头的AX88U当作AP,省钱实用,在此感谢老白的拓扑图梳理

/posts/f1c643be/images/0-6-1024x731.png

那么我的AX88U 默认是192.168.50.1,我们选择不动 根据这个段来组建内网

1
2
3
4
AX88U
ip地址:192.168.50.1
子网掩码:255.255.255.0
默认网关:192.168.50.2
1
2
3
4
5
openwrt
ip地址:192.168.50.2
子网掩码:255.255.255.0
默认网关:
DNS地址:192.168.50.2
1
2
3
4
5
Proxmox VE
ip地址:192.168.50.3
子网掩码:255.255.255.0
默认网关:192.168.50.2
DNS地址:192.168.50.2

安装Proxmox VE (安装到EMMC 硬盘上)

  1. 从官网下载最新版本镜像 https://proxmox.com/en/downloads/category/iso-images-pve

  2. 用写盘工具将iso镜像写入U盘

  3. 将锐角云连接显示器插入U盘启动,按F7进入启动项,选择U盘启动

  4. 进入安装初始界面后 先选 Advanced Options, 然后点击 Install Proxmox VE (Debug mode), 在第一次提示你可以输入命令的时候输入 Ctrl-D

https://github.com/jinwyp/one_click_script/raw/master/acuteangle/pve1.jpg?raw=true

  1. 继续安装过程, 在第二次提示你可以输入命令的时候输入命令 vi /usr/bin/proxinstall 编辑文件

https://github.com/jinwyp/one_click_script/raw/master/acuteangle/pve2.jpg?raw=true

  1. 输入 /unable to get device 回车后 定位到对应位置, 输入i进入编辑模式 , 找到如下代码: (这里对VIM编辑器不熟悉的建议去学一下VIM的基本操作. VIM默认有两种模式 打开文件后默认是普通模式 可以控制光标移动,搜索但不能编辑, 输入i 进入编辑模式 可以编辑文件但无法保存, 按ESC键返回到普通模式. 普通模式输入/是搜索, 输入:wq是保存退出)
1
2
3
4
5
6
7
   } elsif ($dev =~ m|^/dev/[^/]+/hd[a-z]$|) {
        return "${dev}$partnum";
    } elsif ($dev =~ m|^/dev/nvme\d+n\d+$|) {
        return "${dev}p$partnum";
    } else {
        die "unable to get device for partition $partnum on device $dev\n";
    }

修改为下面代码 (增加 elsif ($dev =~ m|^/dev/mmcblk\d+$|) 部分代码 )

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
   } elsif ($dev =~ m|^/dev/[^/]+/hd[a-z]$|) {
        return "${dev}$partnum";
    } elsif ($dev =~ m|^/dev/nvme\d+n\d+$|) {
        return "${dev}p$partnum";

    } elsif ($dev =~ m|^/dev/mmcblk\d+$|) {
        return "${dev}p$partnum";

    } else {
        die "unable to get device for partition $partnum on device $dev\n";
    }

具体操作如下: 在普通模式移动到/dev/nvme那行输入2yy 就是复制2行的意思, 然后移动光标到else行 键入p 就是粘贴, 然后输入i 进入编辑模式 编辑成/dev/mmcblk\d+$, 然后按ESC返回到普通模式, 输入:wq, 保存退出后. 然后输入 Ctrl-D ,继续安装过程. 此时应该进入了正常的安装程序,

https://github.com/jinwyp/one_click_script/raw/master/acuteangle/pve3.jpg?raw=true

  1. 硬盘选择的时候选择 /dev/mmcblk1 (没有 bootX 后缀). 点击下图 options (建议关闭 swap, swapsize设置为0, 延长EMMC寿命. maxvz 也推荐设置为0, 毕竟只有64G, 不需要分太多卷). 最后安装完成后输入 Ctrl-D ,重启系统. 完成后访问 http://IP:8006 进入后台

https://github.com/jinwyp/one_click_script/raw/master/acuteangle/pve9.jpg?raw=true

  1. 更新软件源, 删除逻辑卷 /pve/data 合并磁盘等操作 (安装完/dev/pve/root 只有14G)
1
wget --no-check-certificate -P /root https://raw.githubusercontent.com/jinwyp/one_click_script/master/dsm/pve.sh && chmod 700 /root/pve.sh && /root/pve.sh

设置PVE网卡ip指向openwrt

在之前我们将openwrt作为DHCP主路由(网关)使用,下级所有设备必须指向openwrt 不然不通外网

  1. 来到PVE—-网络 将网关设为openwrt的ip地址

https://p.qlogo.cn/qqmail_head/SoFpB4n4LSFxhHLX1Qoykz03xUXicBgpYBGuoAC2nBunkicpf3RpLgRiciawq1u7ZIUD/0

  1. 修改pve的DNS服务器为openwrt的IP地址

https://p.qlogo.cn/qqmail_head/SoFpB4n4LSFxhHLX1Qoykz03xUXicBgpYBGuoAC2nBukGmo1EesHT19chE5yVehmr/0

在PVE下安装openwrt

  1. 从网上下载你喜欢的openwrt固件,或者自己编译,或者用大佬这个在线编译 https://supes.top

  2. openwrt X86 镜像有2种 uefi 引导和 传统的legacy引导,锐角云物理机是UEFI启动,如果物理安装必须UEFI,如果用legacy刷入物理机 立马变砖。而在PVE下就不需要考虑这种问题,随便选,通吃uefi与legacy.

  3. 创建虚拟机. 点击右上角 “创建虚拟机” 按钮 输入名称 例如OpenWRTX86. 点击勾选 下面的高级选项, 勾选开机自启动. 点击 下一步. 选择不使用任何介质, 稍后自己制作硬盘

https://github.com/jinwyp/one_click_script/raw/master/acuteangle/vm1.jpg?raw=true

https://github.com/jinwyp/one_click_script/raw/master/acuteangle/vm2.jpg?raw=true

  1. CPU菜单 可以选择2核, 也可以根据情况添加更多的核. 锐角云是4核8G内存. 如果需要在openwrt里面安装docker 可以增加CPU核数或内容, 但不建议, 如果要使用docker建议在创建另外的linux虚拟机. 类别选host. 点击勾选 下面的高级选项, 开启 aes. 点击下一步 内存设置为1024 除非要在openwrt里面跑docker, 否则1024(1G) 已经够用了. 点击下一步进入网络, 一切都默认后继续点击直到完成.

https://github.com/jinwyp/one_click_script/raw/master/acuteangle/vm3.jpg?raw=true

  1. 把之前下载的openwrt镜像 解压出来并改名为 openwrt.img (原文件名太长了,改名后方便以后打字输入). 点击 PVE 节点 -> local (PVE) 储存盘 -> ISO镜像 点击上传按钮 在弹出选择文件框 选择 openwrt.img文件上传. 上传成功后会弹出信息提示 记住上传的文件路径 例如 target file: /var/lib/vz/template/iso/openwrt.img

https://github.com/jinwyp/one_click_script/raw/master/acuteangle/img1.jpg?raw=true

https://github.com/jinwyp/one_click_script/raw/master/acuteangle/img2.jpg?raw=true

  1. 把镜像转成虚拟磁盘并导入到虚拟机. 选择“pve”节点 > shell > 输入以下命令并回车
1
qm importdisk 100 /var/lib/vz/template/iso/openwrt.img local

这里注意 100 是相应的虚拟机的ID 需要修改成对应的ID. local 是PVE储存盘, 也有可能是local-lvm

https://p.qlogo.cn/qqmail_head/Q3auHgzwzM5UeOMwLxibgkRwd5OtQ6GiaxnwAQBoRqaP3icWXSCV993wok0CAm01zqQPymywniaD1SA/0

  1. 导入成功后在 Openwrt 虚拟机的“硬件”选项卡就能看到一个“未使用的磁盘0”,选中它 双击弹出配置窗口,总线/设备类型选“sata”,最后点击添加。并在选项卡中选择引导双击“引导顺序”,第一引导项拖拽选‘sata0’ 勾选 已启用 点击 确定

https://github.com/jinwyp/one_click_script/raw/master/acuteangle/img3.jpg?raw=true

https://github.com/jinwyp/one_click_script/raw/master/acuteangle/img4.jpg?raw=true

  1. 启动虚拟机,修改LAN口ip地址为内网相应地址
1
vi /etc/config/network

https://p.qlogo.cn/qqmail_head/SoFpB4n4LSFxhHLX1Qoykz03xUXicBgpYcbqkoClWiazIPegHCrIGXpZJKm2RSARn3/0

  1. 按i 进入编辑模式,修改完成后按esc再:wq 回车 再reboot 重启

  2. 重启后就可以在电脑浏览器上用IP打开openwrt管理页面

配置硬路由(AX88u)

硬路由之前一直在普通模式使用,现在可以选择更改为AP模式,或者停留在普通模式,我建议在普通模式关闭DHCP 就这样使用,因为在AP模式下 硬路由不能开启全锥形NAT

  1. 进入硬路由的后台,找到内部网络与外部网络 将ip设置为同一个网段,并关闭DHCP

https://p.qlogo.cn/qqmail_head/SoFpB4n4LSFxhHLX1Qoykz03xUXicBgpYGGYvxiaibBtCbkcffSNZ0gUic7OVMwodzro/0

https://p.qlogo.cn/qqmail_head/SoFpB4n4LSFxhHLX1Qoykz03xUXicBgpYGGYvxiaibBtCaQFYWYjD6iaNYeee1CQEo4d/0

https://p.qlogo.cn/qqmail_head/SoFpB4n4LSFxhHLX1Qoykz03xUXicBgpYGGYvxiaibBtCaroibHMJecIOQVj9BhtZvpv/0

配置拨号与多播

本次多拨我们不用插件,那个插件我试过在单网卡软路由(单臂软路由) 下有冲突,所以手操最没有BUG

  1. 在openwrt面板中我们找到 网络—-接口—-编辑LAN口 取消桥接,设备口选择我们的eth0

https://p.qlogo.cn/qqmail_head/SoFpB4n4LSFxhHLX1Qoykz03xUXicBgpYPSNeOyzCia0C2LZP5T2M72XsWVlWHX8Ce/0

  1. 如果你是刷的esir的高大全版 这里删除你用不到的乱七八糟接口,只留LAN口与WAN口

  2. 来到PVE 选择openwrt虚拟机—-硬件—-添加网络设备我这里拨4次,那么就添加4个,加上之前一个等于5个,这就是虚拟化的优势,可以无限虚拟网口,当然最终都通过唯一的物理网口传输,那就要考验nat的能力了,那是后话了

https://p.qlogo.cn/qqmail_head/Q3auHgzwzM5UeOMwLxibgkRwd5OtQ6GiaxnwAQBoRqaP1k7xdNibg55AhbgqBOiaEMaVwQpGVdc0EsI/0

  1. 然后回到openwrt 网络—接口—添加新接口 你在pve建立4个就添加4个wan口,协议为pppoe,原本的eth0给LAN口在用,那么下面建立的WAN口就是wan=eth1 wan1=eth2 wan2=eth3 …………

https://p.qlogo.cn/qqmail_head/SoFpB4n4LSFxhHLX1Qoykz03xUXicBgpYXlYISQMTH2xLdiajEVONMPnIzgFcPQrQx/0

建立好之后,保存并应用,它会自己拨号你不用管,现在宽带拨上去还没叠加,需要做负载均衡来叠加带宽

博主的宽带是300M电信,可以播到600M,这个值在日常使用你感觉不到,日常看视频刷网页也就100-200M就够了,那么多拨也就在下载时候能体现出来峰值,可以用迅雷下载测试或speedtest

负载均衡

来到网络—-负载均衡 依照规则 建立你那几个wan口

https://p.qlogo.cn/qqmail_head/4GMpbT7rsleujZveAIXU7NrbkLJnEd3ibPLVEibKKK8X3XdvMOd9oNet7wsnq6mibQ7/0

https://p.qlogo.cn/qqmail_head/4GMpbT7rsleujZveAIXU7NrbkLJnEd3ibIPfbnibOpuBCWFJe3JyFjE5eNpsGHzZ3S/0

https://p.qlogo.cn/qqmail_head/Q3auHgzwzM5UeOMwLxibgkRwd5OtQ6GiaxnwAQBoRqaP0ticjt7f6OJWNJKSzvCRibFeKb0YkcgxKHc/0

https://p.qlogo.cn/qqmail_head/Q3auHgzwzM5UeOMwLxibgkRwd5OtQ6GiaxnwAQBoRqaP1pTnibcspWp8aPIHu83V9YO6woGoQXxPag/0

https://p.qlogo.cn/qqmail_head/Q3auHgzwzM5UeOMwLxibgkRwd5OtQ6GiaxnwAQBoRqaP3CfIhpwyunsWE0sZHap66PnicknUuvGszc/0

修改完成后保存并应用,然后到状态—-负载均衡 可以看到当前负载情况,和掉线重连情况

https://p.qlogo.cn/qqmail_head/Q3auHgzwzM5UeOMwLxibgkRwd5OtQ6GiaxnwAQBoRqaP2OAjeY9XcSqXLRA5HhTCplSUzEJL8IA3g/0

然后来到网络—-防火墙 我们可以看到 有个全锥形NAT功能,这个如果网络卡要关掉,IP动态伪装要开,如果你的那边还有MSS钳制,也需要开启来(MSS钳制是用来自动调节适配运营商MTU) bbr那个你试着看,家宽的上传就那么点,再BBR也够呛,反正我没开,如果开了全锥形,软件流量分载,这些网速变慢就全关掉

/posts/f1c643be/images/12-1007x1024.png

https://p.qlogo.cn/qqmail_head/Q3auHgzwzM5UeOMwLxibgkRwd5OtQ6GiaxnwAQBoRqaP37UxTNfCpgNBW25YeQMsBAPRPqPicGNeUs/0

然后测速看看 叠加情况

https://p.qlogo.cn/qqmail_head/4GMpbT7rsleujZveAIXU7NrbkLJnEd3ibskdrCZ1oYtUuQ9o6tbxuywQBC6oy3fdF/0

https://p.qlogo.cn/qqmail_head/Q3auHgzwzM5UeOMwLxibgkRwd5OtQ6GiaxnwAQBoRqaP1nnNlJfK2mmP4kEHP02vZibMYs1xc3JycY/0

https://p.qlogo.cn/qqmail_head/Q3auHgzwzM5UeOMwLxibgkRwd5OtQ6GiaxnwAQBoRqaP2CLJVbJSpfWJckZDXCYONcv4XMoK7wPoM/0

https://p.qlogo.cn/qqmail_head/Q3auHgzwzM5UeOMwLxibgkRwd5OtQ6GiaxnwAQBoRqaP1yOWRzDogZAtuvgvDF8Ehfb5Fc1Y8o2fs/0

感谢:

Hunter 支付宝支付宝
Hunter 微信微信
0%