Hetnzer Proxmox 开 ipv4 NAT + 独立ipv6 小鸡教程

网上有很多教程了,但这几天试下来,ipv4 NAT 没有问题,但独立ipv6一直不好用,有说直接 PVE 直接加一块儿 vmbr0 的网卡,然后就被HZ滥用警告了2333,最终沿袭这位老哥的思路https://www.liujason.com/article/477.html,终于搞定了 ipv6 的问题,目前使用一切正常。
下面贴一下母鸡的网络架构以及一些具体配置

母鸡网络基本架构
enp9s0:物理网卡,空
vmbr0:物理网卡桥接——公网IPv4+公网IPv6
vmbr1:物理vLAN网卡桥接——内网IPV4+公网IPv6(无gateway)

下面是网卡具体配置

  1. ### Hetzner Online GmbH installimage
  2.  
  3. source /etc/network/interfaces.d/*
  4.  
  5. auto lo
  6. iface lo inet loopback
  7. iface lo inet6 loopback
  8.  
  9. auto enp9s0
  10. iface enp9s0 inet manual
  11. # post-up /sbin/ethtool -K enp9s0 tx off rx off
  12. iface enp9s0 inet6 manual
  13.  
  14. auto vmbr0
  15. iface vmbr0 inet static
  16. address 母鸡ip
  17. netmask 子网掩码
  18. gateway 网关ip
  19. pointopoint 同上网关ip
  20. hwaddress ether MAC地址
  21. bridge_ports enp9s0
  22. bridge_stp off
  23. bridge_fd 0
  24. bridge_maxwait 0
  25. # post-up /sbin/ethtool -K vmbr0 tx off rx off
  26.  
  27. iface vmbr0 inet6 static
  28. address 母鸡v6地址 #例子 2a01:abc:abc:abc::2
  29. netmask 64 #64或者128,看你之前的网络参数
  30. gateway fe80::1 #网关
  31. bridge_ports enp9s0
  32. bridge_stp off
  33. bridge_fd 0
  34. up ip -6 route del 2a01:abc:abc:abc::/64 dev vmbr0 #这个是你母鸡ipv6的网段,含义说明下面有写
  35.  
  36. auto vmbr1
  37. iface vmbr1 inet static
  38. address 192.168.1.1
  39. netmask 255.255.255.0
  40. bridge_ports none
  41. bridge_stp off
  42. bridge_fd 0
  43. post-up echo 1 > /proc/sys/net/ipv4/ip_forward
  44. post-up iptables -t nat -A POSTROUTING -s '192.168.1.0/24' -o vmbr0 -j MASQUERADE
  45. post-down iptables -t nat -D POSTROUTING -s '192.168.1.0/24' -o vmbr0 -j MASQUERADE
  46.  
  47. auto vmbr1
  48. iface vmbr1 inet6 static
  49. address 另一个ipv6地址 # 例子 2a01:abc:abc:abc::3/64
  50. #gateway fe80::1
  51. bridge_ports none
  52. bridge_stp off
  53. bridge_fd 0
  54. up ip -6 route add 2a01:abc:abc:abc::/64 dev vmbr1
  55. post-down ip -6 route del 2a01:abc:abc:abc::/64 dev vmbr1

这里面

  1. up ip -6 route add 2a01:abc:abc:abc::/64 dev vmbr1

是让所有的ipv6流量走vmbr1,才能将ipv6流量转发出去

  1. up ip -6 route del 2a01:abc:abc:abc::/64 dev vmbr0

是将2a01:abc:abc:abc::/64从vmbr0网桥中去掉
这里额外在提一下up post-down是干啥的
pre-up 网卡启用前的动作
up 启用时候的动作
post-up 启用后的动作
pre-down 关闭前的动作
down 关闭时动作
post-down 关闭后动作

配置一下转发
编辑

  1. /etc/sysctl.conf

加入

  1. net.core.default_qdisc=fq
  2. net.ipv4.tcp_congestion_control=bbr
  3. net.ipv4.ip_forward=1
  4. net.ipv6.conf.all.accept_dad = 1
  5. net.ipv6.conf.all.accept_ra = 0
  6. net.ipv6.conf.all.accept_redirects = 1
  7. net.ipv6.conf.all.accept_source_route = 0
  8. net.ipv6.conf.all.autoconf = 0
  9. net.ipv6.conf.all.disable_ipv6 = 0
  10. net.ipv6.conf.all.forwarding=1

上面两行是开启BBR,下面是相关转发
保存生效

  1. sysctl -p

重启网络服务

  1. systemctl restart networking.service

复制代码

查看网络状态

  1. systemctl status networking.service

复制代码

如果你在配置桥接网络这块配完了重启网络服务失败但是机器还有网,那么恭喜你还可以继续折腾,也就是你还可以继续修改网卡的配置文件,但如果你想让你新修改的配置生效就得用下面这条命令强制重启vmbr0(networking restart是没用的):

  1. ifdown --force vmbr0 && ifup --force vmbr0

复制代码

确认好全部完成之后,重启母鸡

  1. reboot

复制代码

检查下路由

  1. ip -6 route

复制代码

长这样就ok了

  1. ::1 dev lo proto kernel metric 256 pref medium
  2. 2a01:abc:abc:abc::/64 dev vmbr1 proto kernel metric 256 linkdown pref medium
  3. 2a01:abc:abc:abc::/64 dev vmbr1 metric 1024 linkdown pref medium
  4. fe80::/64 dev vmbr0 proto kernel metric 256 pref medium
  5. fe80::/64 dev vmbr1 proto kernel metric 256 linkdown pref medium
  6. default via fe80::1 dev vmbr0 metric 1024 onlink pref medium

复制代码

小鸡网卡配置
v4填

  1. 192.168.1.x

,别是网关就行,网关 是

  1. 192.168.1.1

,另外记得填上dns

  1. 8.8.8.8

v6填

  1. 2a01:abc:abc:abc::xxxx

,xxxx别是网关就行, 网关是

  1. 2a01:abc:abc:abc::3

,DNS填Google的,

  1. 2001:4860:4860::8888

母鸡NAT转发小鸡

  1. iptables -t nat -A PREROUTING -p tcp -m tcp --dport 23333 -j DNAT --to-destination 192.168.1.2:22

复制代码

把母鸡端口23333,转发到IP为192.168.1.2的小鸡端口22上,这样访问母鸡的公网IP+23333端口就相当于访问了这台小鸡的22端口
ipv6直接连就行了,连接地址就是小鸡v6地址

点赞