简易教程: Anyconnect( ocserv)启用 IPv6 支持

2015-11-06 10:07:43 +08:00
 alect
昨天有 V2EX 的朋友 @nolan1864 问如何启用 IPv6 地址,这里简单说下我自己是如何实现的。本人使用环境 ubuntu 1404 lts

首先 apt 安装必须的安装包:
apt-get install build-essential libwrap0-dev libpam0g-dev libdbus-1-dev libreadline-dev libnl-route-3-dev libprotobuf-c0-dev libpcl1-dev libopts25-dev autogen libgnutls28-dev libseccomp-dev libtalloc-dev gperf liblz4-1 liblz4-1 liblz4-dev liblz4-tool dnsmasq

启用 LZ4 压缩:
cd /usr/local/src
wget https://github.com/Cyan4973/lz4/archive/r129.tar.gz -O lz4-r129.tar.gz
tar -zxf lz4-r129.tar.gz
cd lz4-r129
make && make install

编译 ocserv :
cd /usr/local/src
wget ftp://ftp.infradead.org/pub/ocserv/ocserv-0.10.9.tar.xz
tar xvf ocserv-0.10.9.tar.xz
cd ocserv-0.10.9
sed -i 's/define DEFAULT_CONFIG_ENTRIES 96/define DEFAULT_CONFIG_ENTRIES 200/g' src/vpn.h
./configure --prefix=/usr --sysconfdir=/etc
make && make install

修改 sysctl.conf 文件开启 ipv4 以及 ipv6 转发功能
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding=1


启用 iptables 规则:
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
ip6tables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbor-solicitation -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbor-advertisement -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type redirect -m hl --hl-eq 255 -j ACCEPT

以上几个比较重要的步骤都写清楚了,剩下的就是编辑 ocserv.conf 文件,将 ipv6 地址池加入,一般就可以访问了。如果服务器本身无 ipv6 ,则去 tunnelbroker 申请一下一样能用。 Ocserv 官网介绍说支持
11102 次点击
所在节点    分享发现
9 条回复
nolan1864
2015-11-07 22:23:25 +08:00
google 搜了好久找不到,太感谢了。
testboy
2016-04-05 23:37:02 +08:00
你好,我想咨询下,如果需要给 anyconnect 的客户端也分配公网的 v6 地址应该怎么做呢?比如 ISP 给我分配了一段 /96 的地址,我想给每个 anyconnect 客户端也分配一个公网的 v6 地址。。
按照你这个,好像只能分配私网 v6 地址?谢谢
alect
2016-04-06 00:49:50 +08:00
@testboy 我这个就是分配的公网 IPv6 地址。
比如设置: ipv6-network = 2001:470:19:bb8::/64
不可能分配到内网 ipv6 地址。。
liuminghao233
2016-11-17 12:12:12 +08:00
为什么我这样设置分配给客户端的是内网 ipv6

用的是 Vultr

现在服务端跟客户端可以互 ping 但是客户端只能 ipv4 上网。
knva
2017-11-02 11:50:01 +08:00
我这么做之后,上网是 nat 的方式. v6 实际上只是个内网
luosonghao
2020-01-15 20:47:29 +08:00
ip6tables -t nat -A POSTROUTING -j MASQUERADE
luosonghao
2020-12-19 13:45:47 +08:00
这相当于把 IPv6 地址进行 NAT 了
alect
2020-12-19 18:06:10 +08:00
@luosonghao #7 时隔一年你竟然来挖坟。不过我依然说我的配置有效。刚截的图



[Imgur]( https://imgur.com/2VYRR6U)
alect
2020-12-19 18:07:52 +08:00
@luosonghao #7 [Imgur]( https://imgur.com/RpYBDqb)

我这设置的确实是我 ipv6 地址池里面的 ip

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/234058

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX