Lvs ip-tun(ip隧道)的原理和实现

Lvs ip-tun(ip隧道)的原理和实现,第1张

采用Nat技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务器应答比请求报文大许多,采用VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。

实验规划:

(1)将物理机上的VMnet1网卡的ip设置为200168104,子网掩码设置为2552552550

(2)为Lvs服务器配置一块网卡eth0,网络连接设置为VMnet1,设置IP地址:ifconfig eth0 200168101

(3)为两台真实服务器配置一块网卡,网络连接设置为VMnet1,设置IP地址:ifconfig eth1 200168102和ifconfig eth1 200168103

(4)为Lvs服务器和两台真实服务器都配置一个tunl0网卡,配置为单独的网段:ifconfig tunl0 2001681010 netmask 255255255255 up,route add -host 2001681010 dev tunl0

(5)Lvs ip-tun服务器脚本:

ipvsadm -C

ipvsadm -A -t 2001681010:80 -s rr(-t:采用tcp协议;-s:模式参数;rr:采用轮叫算法)

ipvsadm -a -t2001681010:80 -r 200168102 -i(-r:真实服务器ip;-i:ip-tun模式)

ipvsadm -a -t2001681010:80 -r 200168103 -i

(6)真实服务器脚本:

echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce

echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

注:目前只有Unix/Linux版本的 *** 作系统才具备ip-tun网卡

隧道代理是一种代理IP存在的模式,通俗的讲就是一个代理IP,相较于传统固定代理IP,它的特殊的地方就在于会在代理服务器端自动换IP,实现每次请求都使用一个不同的IP。
要实现隧道代理,首先必须搭建一个代理服务器,其次还需要有大量的代理IP来进行切换。一般实现起来需要一些经济基础和技术实力。
隧道代理(TB)技术提供了一种简化的隧道配置方法,它要求隧道的双方都支持双栈。通过TB,用户可以很方便地和IPv6 ISP建立隧道连接,从而访问外部可用的IPv6资源;ISP通过专用的隧道服务器提供了一种非常简捷的接入方式,并自动管理用户发出的隧道请求。在隧道代理体系中,所有功能单元之间(包括客户和TB之间、TB和隧道服务器之间以及TB和DNS之间)都需要使用安全机制保护。在客户与TB之间,有很多的安全机制可供选择(如可以使用SSL在WEB服务器上对发送和下载进行加密,还可以使用简单的用户名/密码程序来实现访问控制,等等)。在TB与隧道服务器之间可以采用SNMP。在TB与DNS之间,如果使用动态DNS更新程序,安全性与SNMP完全相同;如果使用基于RSH命令的简便方法,也可以使用标准的IPsec。

为创建隧道,隧道的客户机和服务器双方必须使用相同的隧道协议。隧道技术可分别以第2层或第3层隧道协议为基础。第2层隧道协议对应于OSI模型的数据链路层,使用帧作为数据交换单位。PPTP(点对点隧道协议)、L2TP(第二层隧道协议)和L2F(第2层转发协议)都属于第2层隧道协议,是将用户数据封装在点对点协议(PPP)帧中通过互联网发送。第3层隧道协议对应于OSI模型的网络层,使用包作为数据交换单位。IPIP(IP over IP)以及IPSec隧道模式属于第3层隧道协议,是将IP包封装在附加的IP包头中,通过IP网络传送。无论哪种隧道协议都是由传输的载体、不同的封装格式以及用户数据包组成的。它们的本质区别在于,用户的数据包是被封装在哪种数据包中在隧道中传输。
PPTP协议
PPTP(Point to Point Tunneling Protocol)提供PPTP客户机和PPTP服务器之间的加密通信。PPTP客户机是指运行了该协议的PC机,如启动该协议的Windows95/98;PPTP服务器是指运行该协议的服务器,如启动该协议的WindowsNT服务器。PPTP是PPP协议的一种扩展。它提供了一种在互联网上建立多协议的安全虚拟专用网()的通信方式。远端用户能够透过任何支持PPTP的ISP访问公司的专用网。
通过PPTP,客户可采用拨号方式接入公用IP网。拨号用户首先按常规方式拨到ISP的接入服务器(NAS),建立PPP连接;在此基础上,用户进行二次拨号建立到PPTP服务器的连接,该连接称为PPTP隧道,实质上是基于IP协议的另一个PPP连接,其中的IP包可以封装多种协议数据,包括TCP/IP、IPX和NetBEUI。PPTP采用了基于RSA公司RC4的数据加密方法,保证了虚拟连接通道的安全。对于直接连到互联网的用户则不需要PPP的拨号连接,可以直接与PPTP服务器建立虚拟通道。PPTP把建立隧道的主动权交给了用户,但用户需要在其PC机上配置PPTP,这样做既增加了用户的工作量,又会给网络带来隐患。另外,PPTP只支持IP作为传输协议。
转发协议
L2F(Layer Two Forwarding protocol )是由Cisco公司提出的可以在多种介质,如ATM、帧中继、IP网上建立多协议的安全虚拟专用网的通信。远端用户能通过任何拨号方式接入公用IP网,首先按常规方式拨到ISP的接入服务器(NAS),建立PPP连接;NAS根据用户名等信息,建立直达HGW服务器的第二重连接。在这种情况下,隧道的配置和建立对用户是完全透明的。其体系结构见图1。
隧道协议
L2TP介绍
L2TP(Layer Two Tunneling Protocol)结合了L2F和PPTP的优点,允许用户从客户端或访问服务器端建立连接。L2TP是把链路层的PPP帧装入公用网络设施,如IP、ATM、帧中继中进行隧道传输的封装协议。其体系结构见图1。
Cisco、Ascend、Microsoft和RedBack公司的专家们在修改了十几个版本后,终于在1999年8月公布了L2TP的标准RFC2661。现用户拨号访问Internet时,必须使用IP协议,并且其动态得到的IP地址也是合法的。L2TP的好处在于支持多种协议,用户可以保留原有的IPX、Appletalk等协议或公司原有的IP地址。L2TP还解决了多个PPP链路的捆绑问题,PPP链路捆绑要求其成员均指向同一个NAS,L2TP则允许在物理上连接到不同NAS的PPP链路,在逻辑上的终点为同一个物理设备。L2TP扩展了PPP连接,在传统的方式中用户通过模拟电话线或ISDN/ADSL与网络访问服务器建立一个第2层的连接,并在其上运行PPP,第2层连接的终点和PPP会话的终点均设在同一个设备上(如NAS)。L2TP作为PPP的扩充提供了更强大的功能,包括允许第2层连接的终点和PPP会话的终点分别设在不同的设备上。
L2TP主要由LAC(L2TP Access Concentrator)和LNS(L2TP Network Server)构成。LAC支持客户端的L2TP,发起呼叫,接收呼叫和建立隧道;LNS是所有隧道的终点。在传统的PPP连接中,用户拨号连接的终点是LAC,而L2TP能把PPP协议的终点延伸到LNS。
L2TP的建立过程
1用户通过公用电话网或ISDN拨号呼叫本地接入服务器LAC;LAC接受呼叫并进行基本的识别过程,这一过程可以采用几种标准,如域名、呼叫线路识别(CLID)或拨号ID业务(DNIS)等。
2当用户被确认为合法企业用户时,就建立一个通向LNS的拨号隧道。
3企业内部的安全服务器如TACACS+、RADIUS对拨号用户进行验证。
4LNS与远程用户交换PPP信息,分配IP地址。LNS可采用企业专用地址(未注册的IP地址)或服务提供商提供的地址空间分配IP地址。因为内部源IP地址与目的地IP地址实际上都通过服务提供商的IP网络在PPP信息包内传送,企业专用地址对提供者的网络是透明的。
5端到端的数据从拨号用户传到LNS。
在实际应用中,LAC将拨号用户的PPP帧封装后,传送到LNS,后者去掉封装包头,取出PPP帧,再去掉PPP帧头,最后获得网络层数据包。
L2TP方式给服务提供商和用户带来了许多方便。用户不需要在PC板上安装专门的客户端软件,企业网可以使用未注册的IP地址,并在本地管理认证数据库,从而降低了应用成本和培训维护费用。
与PPTP和L2F相比,L2TP的优点在于提供了差错和流量控制;L2TP使用UDP封装和传送PPP帧。面向无连接的UDP无法保证网络数据的可靠传输,L2TP使用Nr(下一个希望接受的信息序列号)和Ns(当前发送的数据包序列号)字段进行流量和差错控制。双方通过序列号来确定数据包的顺序和缓冲区,一旦丢失数据,根据序列号可以进行重发。
作为PPP的扩展协议,L2TP支持标准的安全特性CHAP和PAP,可以进行用户身份认证。L2TP定义了控制包的加密传输,每个被建立的隧道分别生成一个独一无二的随机钥匙,以便对付欺骗性的攻击,但是它对传输中的数据并不加密。

小菜运维仅仅只是一位菜鸟运维

废话不多说,小菜运维最近又完成了一套外包项目开发,现在准备将项目部署到甲方购买的阿里云服务器上。因为甲方是集团型大企业,又有自己的运维团队,很多规章制度比较规范,部署的时候要求通过跳板机/堡垒机登录阿里云内网ECS。虽然说跳板机很有必要也应该这样做,但奈何愿意这样做的客户是少之又少,这次是撞上大客户啦!

小菜运维平时都是使用的Xshell、Xftp管理服务器,这次通过跳板机登录内网ECS时不断输入密码,还不能直连内网ECS上传文件, *** 作了几次小菜运维就忍不住要口吐芬芳了,终于决定用Xshell的隧道来彻底解决一下这个效率低下、重复体力劳动的问题了!

Xshell的隧道转发类型共有三种,这里我们不展开介绍各自的应用场景,大家可以自行了解,我们这里选用的是Dynamic,可以实现自动连接内网ECS,也可直接连接FTP,但是前提是必须先连接跳板机建立起隧道,然后再连接内网ECS

隧道类型:
Local(Outgoing)
Dynamic(SOCKS4/5)
Remote(Incoming)

1 连接跳板机

11 建立到跳板机的会话

Xshell选择新建会话,点击左侧 连接 ,在 常规 栏依次填入会话名称、跳板机IP、跳板机端口,然后依次完成 用户身份验证 登录脚本 设置,这里需要强调的一点是,务必记得设置 登录脚本 以保证隧道的长连接,避免因隧道的断开而导致后续其他远程目标机器的连接失败,具体 *** 作如下图:

12 建立跳板机隧道

在上一步的对话框中,继续点击左侧 隧道 - 添加 ,在d出的转移规则对话框中完成规则设置,这里要强调的是 源主机 是指你当前建立隧道连接的本地机器,一般填入 localhost 127001 即可,而 目标主机 则是指你要远程连接的远程服务器,具体配置信息如下图:

2 建立远程主机连接

21 建立到远程主机的会话

Xshell选择新建会话,点击左侧 连接 ,在 常规 栏依次填入会话名称、本机/本地IP、本机/本地监听端口,然后依次完成 用户身份验证 设置,这里需要强调的一点是,务必记得这里设置的连接主机地址 12 中设置转移规则时填写的 源主机 地址,而不是远程服务器的IP地址,同样的,这里设置的端口号也是 12 中设置转移规则时填写的 侦听端口 ,但是 用户身份验证 需要填写远程服务器的用户信息。具体 *** 作如下图:

3 SSH/SFTP到远程服务器

自动连接远程服务器的前提是先连接到跳板机/堡垒机,然后再连接到远程服务器。
在Xshell中双击已建好的到堡垒机的会话,待成功完成登录后,再双击已建好的到远程服务器的会话,这时我们可以看到Xshell自动实现了登录远程服务器 *** 作,这时在Xshell已登录的远程服务器页面,点击顶部工具栏的 新建文件传输 按钮,Xshell将自动打开Xftp并自动登录远程服务器的Xftp文件管理页面;

1 连接跳板机

11 建立到跳板机的会话

这里和 Local(Outgoing)方式 的步骤完全相同,可参照之前步骤 *** 作。

12 建立跳板机隧道

这里和 Local(Outgoing)方式 的区别在于转移规则的配置,具体配置信息如下图:

2 建立远程主机连接

21 建立到远程主机的会话

这里和 Local(Outgoing)方式 的区别在于主机和端口号的配置,这里的主机和端口号都是配置的远程服务器的, 用户身份验证 同样还是需要填写远程服务器的用户信息。具体 *** 作如下图:

22 建立到远程主机会话的代理

在上一步 21 建立到远程主机的会话 的对话框左侧,点击 代理 ,然后浏览并添加代理服务器,这里我们代理服务器设置的就是本地机器,要注意的是这里 代理服务器的监听端口必须和12中隧道转移规则设置的侦听端口保持一致 ,具体配置如下图:

3 SSH/SFTP到远程服务器

这里和 Local(Outgoing)方式 的步骤完全相同,可参照之前步骤 *** 作。

基于隧道可以简化很多体力 *** 作,感觉起来就好像堡垒机不存在一样,实际 *** 作中推荐使用 Dynamic(SOCKS4/5)方式 ,因为Dynamic(SOCKS4/5)方式对于跳板机后有多台远程服务器需要连接的场景只需要配置一次隧道和代理,之后就可以直接添加到远程服务器的会话就可以了;而 Local(Outgoing)方式 则需要为每一台远程服务器添加一个单独的隧道才可以。

如果按照以上步骤 *** 作仍然不能正常访问,那么……建议你联系你的堡垒机管理员,可能是堡垒机帐号/凭据/权限等的设置没有给足你权限。

附-参考文档:
阿里云·堡垒机
阿里云·透明代理


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12909195.html

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

发表评论

登录后才能评论

评论列表(0条)

保存