StrongSwan IKEv2 IPv6配置
我有了个想法,能不能通过我的Linode,给我的其他服务器和终端设备也接入Linode的IPv6,取而代之当下速度极慢的电信IPv6,毕竟当前电信IPv6用户少之又少,相信广大电信v6用户也都体验过Linux里面把包管理器的源设置成中国各大学的源,然后更新源、下载软件包的速度。
于是,我就给Linode发了个ticket,告诉他我需要更多IPv6地址,不久便收到了回复。
可以看出Linode客服还是非常有礼貌的。这里小小地震撼一下。
现在问题来了,既然/116地址够用,为什么我最后还是选择了/64呢?
我们来看看Linode官方IPv6文档
看到这里,我想到/116地址可能并非路由到自己的Linode上,而是可以通过以太网与该数据中心的所有Linode共享。
既然我们需要搭建一个IPv6隧道,如果通过以太网桥接接入将会有各种各样的问题,既然Linode也说给我们/64的地址段很容易了,我就选择了/64地址段。
之后,我就得到了一个IPv6地址段
好了,现在/64的地址段拿到了,IPv4地址总数量的平方倍的地址段都拿到了,想想也有点小激动,Linode真大方啊。
之后,就开始配置这台IPv6路由器了。
首先在/etc/sysctl.conf里把IPv6转发打开,实现路由器功能
net.ipv6.conf.all.forwarding=1
之后运行sysctl -p
使配置生效
这时,我发现服务器的IPv6地址都没有了,只有一个fe80::的Link Local地址。
原来,Linux在开启IPv6路由功能后会关闭IPv6 NDP功能,也就是IPv6里用来自动配置IP的协议
这样,我们来到/etc/network/interfaces
中配置静态地址
这样,我们就把IPv6地址和新拿到的地址池的第一个IP地址配置进去了。
甚至,我们可以在这个地址上bind网站,比如nginx可以listen [2400:8900:e000:15f::]:80;
之后,就开始配置StrongSwan了。
StrongSwan的IKEv2配置方式这里不详细介绍,毕竟网上教程非常多,这里就只讲IPv6需要改变的部分
其实只要在leftsubnet加上::/0
,rightsourceip加上自己分配的ipv6地址段就行了。
这样,只要客户端有请求分配IPv6地址,IKEv2连上之后我们得到的就是两个IP地址了,一个是IPv4一个是IPv6。
到这里,我们的配置就算完成了,ipsec restart
试试看吧。
可以看到我们的设备已经得到了一个IPv6地址
至此,我的电脑就接入了Linode提供的IPv6网络,并得到了一个Public IP。
注意:对于Windows用户,IPv6需要自己加入路由表
我用的是搬瓦工VPS,会分配/128的IPv6 addr,此时应该没法沿用以上方法。
不过是不是可以考虑让VPN自行生成一个IPv6 NAT?
/128的地址是单个IP而不是一个地址段,IPv6的NAT我自己也不会配置,可以尝试给服务商发Ticket问问能否给一个IPv6地址段路由到自己的服务器上
请问一下ip6tables的规则是怎么写的?网上没有找到详细的介绍,我按着ipv4的介绍配置后,ipv4链接显示已连接,ipv6显示无网络访问权限
ipv6只要把路由器功能打开就不需要配置iptables规则了,请先确保你得到了一个IPv6地址段路由到你的服务器上
我使用的是 DIGITALOCEAN 的 VPS ,给我 IPV6 是这样的
Public IPv6 network
Public IPv6 Address: 2604:a880:2:d0::1177:b001
Public IPv6 Gateway: 2604:a880:2:d0::1
Configurable Address Range: 2604:a880:2:d0::1177:b000 – 2604:a880:2:d0::1177:b00f
我把 rightsourceip=2604:a880:2:d0::1177:b002/124
客户端 PPP 适配器获取到 2604:a880:2:d0::1177:b002 这个地址, 在CMD中执行那个 route add 命令,还是不能 IPV6
我用的中国移动的光宽带,NAT局域网,不支持IPV6
请问大佬,就是我想问问,客户端只有Ipv4,然后服务端有Ipv6+Ipv4,我想让客户端既能访问服务端的Ipv4也能访问IPV6,应该在哪里设置呢,看了几篇的教程还是没搞明白,谢谢大佬!
IPv4开启NAT即可,服务端有单个IPv6地址是不够的(除非使用很不推荐的NAT6)。
其实关键在于Strongswan只需要在配置文件里写上V6地址就可以推送给客户端了,只要服务端开启v6转发即可。
TAT,根本不知道怎么搞,我服务端获取的ipv6是路由器给的- -不知道那个是IP地址还是/64
顺带想问问,就是Strongswan里面写的那个ipv6地址是什么,就是我LAN分配的地址前缀么还是?
NAT ipv6 的配置和 ipv4 的配置差不多,ip6tables 大概是这样
ip6tables -A FORWARD -s ipv6/64 -j ACCEPT
ip6tables -t nat -A POSTROUTING -s ipv6/64 -o eth0 -j MASQUERADE
如果是直接分配 IPv6 地址,一般的服务器(linode除外)需要用到 proxyndp.updown ,具体看这个网页
https://www.cl.cam.ac.uk/~mas90/resources/strongswan/
如果给客户机只分配 IPv6 地址,ipsec.conf 中需要加上
rightdns=8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844
有点班门弄斧之嫌 -;)