将宣告的subnet通过wireguard分配给proxmox ve和上面的小鸡
前几天在zx的帮助下(基本是直接把机器丢给他,让他配)终于完成了ibgp+ospf(虽然现在去程/回程路由到处跑),然后就有了想给没有ipv6的母鸡和小鸡上弄上ipv6的想法,最初尝试过直接用he的sit隧道,但当时没成功,后来准备和我其它节点打隧道通过ibgp宣告,但当时我的其它bgp节点都还是ros,还有一堆乱七八糟的问题没有解决也就没弄,最近换了ubuntu+bird之后准备再试试为proxmox ve和其小鸡配上ipv6,然后顺便还能水一片博文
材料准备
- 一个用来宣告的机器(也可以接he的bgp tunnel,总之能宣告就行)
- ubuntu 16.04 (系统无所谓能正常宣告,能正常用wireguard就行)
- proxmox ve
proxmox ve配置
ipv6的宣告请参考前面将subnet分配给openwrt的文章,一模一样,不再讲解,本篇文章主要讲如何为proxmoxve安装wireguard和将subnet分给小鸡
首先,先将proxmox ve升级至最新版本
apt update
apt-get dist-upgrade
完成升级后需要重启母鸡以便从最新内核引导启动,启动完成后开始安装header
apt update
apt install pve-headers
安装好后接着安装wireguard,安装之前我们需要先导入wireguard的key
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E1B39B6EF6DDB96564797591AE33835F504A1A25
然后安装wireguard
add-apt-repository ppa:wireguard/wireguard -y
apt uppdate
apt install wireguard-dkms wireguard-tools
安装好后还需要启用内核模块才可以使用,其中dkms autoinstall
为检测命令,正常情况下无输出,若报错请检查当前引导的内核版本和安装的pve-headers
是否一致,若不一致请更新内核或pve-headers
,内核和pve-headers
版本必须保持一致才可以.
dkms autoinstall
modprobe wireguard
启用后就可以正常使用wireguard了,wireguard的设置请参考前面的文章,这里用2000::/48做演示
,首先需要为wireguard两端各分配一个ip用来通信,这2个ip可以直接用fd
开头的ip,只要是符合规范的ipv6即可,但这里推荐还是用自己宣告的ip,这里从2000::/48
里拆出2段64来使用,2000::ffff:1
给用来宣告的机器的wiregaurd接口,2000::ffff:2
给proxmoxve的wireguard接口,然后2000::/64
给小鸡用.
其实到这里我就不会继续了,下面这一段是请教oranme才得到的方法.
首先打开proxmoxve的web面板,登录后选择母鸡里面的network,编辑vmbr0,在其ipv6/cidr中填写2000::/64
下面的gateway(ipv6)留空,然后点击ok.
然后点击上面菜单的apply configuration按钮应用更改(到这里我一直用service networking reload但就是不起作用,oranme让我尝试新建vmbr把ipv6放到新vmbr的时候我才看到上面的apply configuration按钮),如果报500错误应该是没有安装ifupdown2导致,可以在母鸡里通过apt install ifupdown2
安装,安装完成后再点击web上的apply configuration,如果不想安装也可以通过重启母鸡应用.
然后这里测试可以开一个lxc小鸡,给小鸡分配2000::/64
里面的ip,比如2000::1/128
然后小鸡的gateway写2000::
即可.
kvm小鸡则安装系统时或者安装系统之后按照lxc小鸡那样设置ip和网关即可.
此外如果不重启母鸡时,已运行的小鸡可能会断网,可以通过vnc重启小鸡或者在面板重启小鸡即可解决.
8错