f5 VPN报未能初始化本地隧道服务器的原因

f5 VPN报未能初始化本地隧道服务器的原因,第1张

网络连接失败,

初始化失败是一种app常见的初始化错误。

App响应用户请求后,需要把请求转发到对应的业务服务器,因此app初始化时必须首先和业务服务器建立网络连接,完成用户登录,授权认证等基础操作。如果在此过程中同业务服务器建立网络连接时失败,就会遇到初始化失败错误。

首先要确认vps支持tun/tap设备。运行

cat /dev/net/tun

如果返回File descriptor in bad state,说明支持tun/tap。否则请发ticket联系客服。

下面要申请一个用于ipv6隧道的ipv6地址池。进入http://tunnelbroker.net/ ,点击左上角面板的Register按钮注册一个帐号。

注册完成后登录,点击左侧的Create Regular Tunnel,在IPv4 Endpoint (Your side):中填入vps的ipv4地址,然后在下面的Available Tunnel Servers里选择一个离你vps机房最近的地点。我是美国西海岸机房的vps,就选择North America ,Los Angeles, CA, US的隧道服务器。点击Create Tunnel创建隧道。

创建完成后进入刚申请的隧道的详情页面,记下以下信息:

Server IPv4 Address: 服务端的ipv4地址,假设为1.2.3.4

Client IPv4 Address: vps的ipv4地址,假设为5.6.7.8

Client IPv6 Address: 获得的ipv6地址,假设为2000:200:a:f00::2/64

点击中间的Example Configurations选项卡可以看见各种系统上建立隧道的配置方法,不过OpenVZ虚拟机都是用不了的。此时需要使用用户层的tb-tun隧道客户端。

装好gcc,下载并编译tb-tun:

wget http://tb-tun.googlecode.com/files/tb-tun_r18.tar.gz

tar xvf tb-tun_r18.tar.gzgcc tb_userspace.c -l pthread -o tb_userspace

顺便把编译出的程序移到$PATH里吧

mv tb_userspace /usr/local/sbin

用tb_userspace创建一个名为tb的虚拟接口并后台运行,第一个地址为服务端地址,第二个地址为vps的本地地址。

setsid tb_userspace tb 5.6.7.8 1.2.3.4 sit

启用虚拟接口:

ifconfig tb up

为虚拟接口分配前面申请到的ipv6地址:

ifconfig tb inet6 add 2000:200:a:f00::2/64

调整虚拟接口的最大传输单元:

ifconfig tb mtu 1480

添加ipv6路由

/sbin/route -A inet6 add ::/0 dev tb

/sbin/ip -6 route add default dev tb

可能还需要删除venet0上的默认ipv6路由,否则ping不通其他ipv6地址。我就是这种情况

ip -6 route del default dev venet0

设置无误的话尝试运行ping6 ipv6.google.com

PING ipv6.google.com(lax02s02-in-x08.1e100.net) 56 data bytes64 bytes from lax02s02-in-x08.1e100.net: icmp_seq=1 ttl=59 time=12.5 ms64 bytes from lax02s02-in-x08.1e100.net: icmp_seq=2 ttl=59 time=22.4 ms64 bytes from lax02s02-in-x08.1e100.net: icmp_seq=3 ttl=59 time=12.4 ms64 bytes from lax02s02-in-x08.1e100.net: icmp_seq=4 ttl=59 time=13.2 ms64 bytes from lax02s02-in-x08.1e100.net: icmp_seq=5 ttl=59 time=12.4 ms64 bytes from lax02s02-in-x08.1e100.net: icmp_seq=6 ttl=59 time=12.4 ms64 bytes from lax02s02-in-x08.1e100.net: icmp_seq=7 ttl=59 time=14.6 ms

^C--- ipv6.google.com ping statistics ---

7 packets transmitted, 7 received, 0% packet loss, time 6006ms

rtt min/avg/max/mdev = 12.441/14.326/22.446/3.396 ms

说明vps本机访问ipv6已经没问题了。然后可以试试从本地ping到vps的ipv6地址。也能ping通说明大功告成了

测试无误就把建立和设置隧道的命令写到/etc/rc.local里去吧

除了tunnel broker,tb_tun也支持isatap连接,不过我没试过,毕竟好用的isatap服务器不好找。

不过tb-tun似乎不是很稳定,有时会丢包或者出现Network is unreachable,不知道是程序的原因还是网络的原因。

类似这种,存成bash脚本,每次开机启动就行

ifconfig sit0 up

ifconfig sit0 inet6 tunnel ::64.62.134.130

ifconfig sit1 up

ifconfig sit1 inet6 add 2001:470:66:16e::2/64

route -A inet6 add ::/0 dev sit1

参考: https://www.xxorg.com/archives/4413

本文以Ubuntu系统的腾讯云VPS为测试机。ECS 里面的系统配置,由于腾讯云的网络不支持IPv6,所以他官方镜像里面相关的设置都是被禁用了的,想要使用 IPv6 就要做一些修改。首先修改 /etc/sysctl.conf ,将其中两条禁用IPv6的设置更改为0:

1、登录 https://www.tunnelbroker.net/register.php 注册,然后在邮件里认证。

2、Create Regular Tunnel

IPv4 Endpoint (Your side):填写你的IPV4。

一般服务器都有ping功能,路由器可能关闭了ICMP,需要开通。否则会报错:

IP is not ICMP pingable. Please make sure ICMP is not blocked. If you are blocking ICMP, please allow 66.220.2.74 through your firewall.

3、隧道服务器,默认选的是 Los Angeles, CA, US

4、点击Create Tunnel

可以看到自己刚才输入的IPV4,及IPV6。

5、点击Example Configurations,选择自己的OS。配置后重启!即可使用。测试如下:


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/280253.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-21
下一篇2023-04-21

发表评论

登录后才能评论

评论列表(0条)

    保存