StrongSwan IKEv2 IPv6配置

我有了个想法,能不能通过我的Linode,给我的其他服务器和终端设备也接入Linode的IPv6,取而代之当下速度极慢的电信IPv6,毕竟当前电信IPv6用户少之又少,相信广大电信v6用户也都体验过Linux里面把包管理器的源设置成中国各大学的源,然后更新源、下载软件包的速度。

于是,我就给Linode发了个ticket,告诉他我需要更多IPv6地址,不久便收到了回复。

屏幕快照 2016-07-26 下午3.28.20

可以看出Linode客服还是非常有礼貌的。这里小小地震撼一下。

现在问题来了,既然/116地址够用,为什么我最后还是选择了/64呢?

我们来看看Linode官方IPv6文档

屏幕快照 2016-07-26 下午3.33.13

看到这里,我想到/116地址可能并非路由到自己的Linode上,而是可以通过以太网与该数据中心的所有Linode共享。

既然我们需要搭建一个IPv6隧道,如果通过以太网桥接接入将会有各种各样的问题,既然Linode也说给我们/64的地址段很容易了,我就选择了/64地址段。

之后,我就得到了一个IPv6地址段

屏幕快照 2016-07-26 下午3.28.31

 

好了,现在/64的地址段拿到了,IPv4地址总数量的平方倍的地址段都拿到了,想想也有点小激动,Linode真大方啊。

之后,就开始配置这台IPv6路由器了。

首先在/etc/sysctl.conf里把IPv6转发打开,实现路由器功能

屏幕快照 2016-07-26 下午3.40.06

之后运行sysctl -p使配置生效

这时,我发现服务器的IPv6地址都没有了,只有一个fe80::的Link Local地址。

原来,Linux在开启IPv6路由功能后会关闭IPv6 NDP功能,也就是IPv6里用来自动配置IP的协议

这样,我们来到/etc/network/interfaces中配置静态地址

屏幕快照 2016-07-26 下午5.02.29

这样,我们就把IPv6地址和新拿到的地址池的第一个IP地址配置进去了。

甚至,我们可以在这个地址上bind网站,比如nginx可以listen [2400:8900:e000:15f::]:80;

之后,就开始配置StrongSwan了。

StrongSwan的IKEv2配置方式这里不详细介绍,毕竟网上教程非常多,这里就只讲IPv6需要改变的部分

其实只要在leftsubnet加上::/0,rightsourceip加上自己分配的ipv6地址段就行了。

屏幕快照 2016-07-26 下午3.55.55

这样,只要客户端有请求分配IPv6地址,IKEv2连上之后我们得到的就是两个IP地址了,一个是IPv4一个是IPv6。

到这里,我们的配置就算完成了,ipsec restat试试看吧。

屏幕快照 2016-07-26 下午4.01.01

可以看到我们的设备已经得到了一个IPv6地址

屏幕快照 2016-07-26 下午4.03.33

至此,我的电脑就接入了Linode提供的IPv6网络,并得到了一个Public IP。

注意:对于Windows用户,IPv6需要自己加入路由表

屏幕快照 2016-07-26 下午4.35.02

8 Responses

  1. 我用的是搬瓦工VPS,会分配/128的IPv6 addr,此时应该没法沿用以上方法。
    不过是不是可以考虑让VPN自行生成一个IPv6 NAT?

    1. /128的地址是单个IP而不是一个地址段,IPv6的NAT我自己也不会配置,可以尝试给服务商发Ticket问问能否给一个IPv6地址段路由到自己的服务器上

  2. 请问一下ip6tables的规则是怎么写的?网上没有找到详细的介绍,我按着ipv4的介绍配置后,ipv4链接显示已连接,ipv6显示无网络访问权限

    1. ipv6只要把路由器功能打开就不需要配置iptables规则了,请先确保你得到了一个IPv6地址段路由到你的服务器上

  3. 我使用的是 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

  4. 请问大佬,就是我想问问,客户端只有Ipv4,然后服务端有Ipv6+Ipv4,我想让客户端既能访问服务端的Ipv4也能访问IPV6,应该在哪里设置呢,看了几篇的教程还是没搞明白,谢谢大佬!

    1. IPv4开启NAT即可,服务端有单个IPv6地址是不够的(除非使用很不推荐的NAT6)。

      其实关键在于Strongswan只需要在配置文件里写上V6地址就可以推送给客户端了,只要服务端开启v6转发即可。

  5. 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

    有点班门弄斧之嫌 -;)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Back to Top