登到机器内查看机器的ipv6地址:
ip -6 a
回显类似:
查看机器的ipv6网关:
ip -6 route list
回显类似:
kimsufi的网站上虽然标明每台机器只有/128的ipv6,但实际可用应该是/64,为了后续的步骤能够正常进行,这里先简单检查一下机器到底能用多少个ipv6,可以先往机器的主网卡接口添加一个ipv6测试:
ip addr add 2001:41d0:x:xxxx::2/128 dev eno1
在别的机器上能ping通刚添加的地址就说明可用的ipv6不止/128:
那就可以继续下面的操作了,按照我先前这篇文章的步骤安装好proxmox:
Kimsufi独服通过救援系统虚拟KVM安装Proxmox7
编辑网卡配置文件:
nano /etc/network/interfaces
在先前这篇文章的配置基础上,加入ipv6相关的配置:
auto lo iface lo inet loopback iface eth0 inet manual auto vmbr0 iface vmbr0 inet static address xx.xx.xx.xx/24 gateway xx.xx.xx.xx bridge-ports eth0 bridge-stp off bridge-fd 0 iface vmbr0 inet6 static address 2001:41d0:x:xxxx::1/64 gateway 2001:41d0:x:xxxx:ff:ff:ff:ff auto vmbr1 iface vmbr1 inet static address 10.1.0.1 netmask 255.255.255.0 bridge_ports none bridge_stp off bridge_fd 0 post-up echo 1 > /proc/sys/net/ipv4/ip_forward post-up iptables -t nat -A POSTROUTING -s '10.1.0.0/24' -o vmbr0 -j MASQUERADE post-down iptables -t nat -D POSTROUTING -s '10.1.0.0/24' -o vmbr0 -j MASQUERADE
重启网络服务:
systemctl restart networking.service
正常的话,现在母鸡的ipv6就通了:
为了让小鸡也能用上ipv6,现在还需要做一系列的配置。首先开启ipv6转发:
echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf && sysctl -p
使用NPD6自动配置IPV6子网
把下面代码中的IPV6地址前缀换成你自己的,注意不要丢掉末尾的冒号,然后在独服上执行:
apt install -y git g++ npd6 cd /etc/init.d/ wget https://github.com/npd6/npd6/raw/master/etc/npd6 chmod +x npd6 echo "prefix = 2607:xxxx:120:d9a:" >> /etc/npd6.conf echo "interface = vmbr0" >> /etc/npd6.conf /etc/init.d/npd6 start
执行完这些代码,如果没有遇到什么错误提示,IPV6子网就已经设置好了,后面再开这个IPV6前缀的虚拟机就不再需要任何配置了。
下面是开小鸡时的设置,注意不论是lxc还是kvm架构的小鸡,我这个配置统一都需要添加两个网卡。
对于lxc小鸡,在创建的时候可以先添加一个用于ipv6网络的eth0,桥接vmbr0,ipv6选择slaac:
等小鸡创建完成后再添加一个用于ipv4网络的eth1,桥接vmbr1,手动配置ipv4的地址和网关:
正常情况下,小鸡现在就是natipv4+ipv6双栈网络了:
如何想要小鸡自动获取ipv4的ip,可以这样设置.
安装Dnsmasq及配置DHCP服务器
我将从默认的上游存储库中的一个Proxmox虚拟机管理程序中安装dnsmasq:
sudo apt update sudo apt install dnsmasq
安装提供dig命令的dnsutils软件包:
sudo apt install dnsutils -y
Dnsmasq中的DNS功能配置为将所有请求转发到系统的/etc/resolv.conf文件中配置的默认DNS设置。
使用Dnsmasq配置DHCP服务器
在Proxmox服务器上成功安装Dnsmasq之后,您可以开始配置DHCP服务:
nano /etc/dnsmasq.conf
让dnsmasq知道它将用于侦听DHCP请求的以太网接口:(这里设置监听ipv6的虚拟网卡)
interface=vmbr1
设置要分发的IP地址的DHCP服务器范围:
dhcp-range=10.1.0.2,10.1.0.150,12h
设置dnsmasq提供的默认路由:(小鸡获取的网关)
dhcp-option=3,10.1.0.1
设置dnsmasq提供的dns服务器:(小鸡自动获取的dns)
dhcp-option=option:dns-server,213.186.33.99,8.8.8.8
测试您的配置:
dnsmasq --test
dnsmasq: syntax check OK.
重新启动dnsmasq服务:
systemctl restart dnsmasq systemctl enable dnsmasq
设置完这些之后,创建小鸡的时候,选择DHCP自动获取IP就可以获得内网ipv4地址了。
对于kvm小鸡,实际操作大同小异,这里我就开个debian11的小鸡演示一下配置。
创建的时候先添加一个桥接vmbr0的网卡(获取ipv6):
等小鸡创建完成后再添加一个桥接vmbr1的网卡(获取ipv4):
打开vnc控制台开始安装系统:
这里有两块网卡ens18和ens19,实际ens18对应vmbr0,ens19对应vmbr1,这里选择ens18就可以实现ipv6的slaac:
至于ens19那块对应vmbr1的网卡,等待系统安装完成后手动配置ipv4即可。
接下来需要配置一个dns:
剩下的就是设置root密码,创建普通用户,还有分区这些了,这里就不多说了。等系统安装好,登录进去后,测试ipv6是否正常:
只需要在文件的尾部添加ens19网卡的ipv4配置:
auto ens19 iface ens19 inet static address 10.1.0.2/32 gateway 10.1.0.1
然后添加一个dns服务器:
nano /etc/resolv.conf
写入如下配置:
nameserver 8.8.8.8
重启机器即可。
如果要手动指点小鸡的ip可以这样设置:
桥接选择刚才新建的那个虚拟网口vmbr1(获取ipv4),如果桥接vmbr0,则获取ipv6.
IPV4/CIDR设置小鸡的内网IP,后面要加/24。IPV4网关设置为vmbr1的IPV4地址,后面不带/24
IPV6/CIDR设置小鸡的IPV6地址,后面要加/64。IPV6网关设置为vmbr1的IPV6地址,后面不带/64
另外,DNS选项卡可以不设置,保持默认即可。
设置完毕后等待系统创建小鸡,创建完毕后点左侧菜单的小鸡ID,然后点网页右上角启动按钮,就可以启动小鸡了。
在母鸡上做dnat,把小鸡的ssh端口暴露出来:
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 16822 -j DNAT --to-destination 10.1.0.2:22
同样如果要把小鸡的80端口暴露可以这样:
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 16880 -j DNAT --to-destination 10.1.0.2:80
其他端口暴露,以此类推。
设置永久暴露,编辑/etc/network/interfaces文件的vmbr1下增加:
post-up iptables -t nat -A PREROUTING -p tcp --dport 10080 -j DNAT --to-destination 10.1.1.100:80 pre-down iptables -t nat -D PREROUTING -p tcp --dport 10080 -j DNAT --to-destination 10.1.1.100:80
重启网络
systemctl restart networking.service
最后设置母鸡的DNS设置