DIP:调度器的IP地址
RIP:后台真实服务器(realserver)的IP地址
VIP:就是用于服务提供的虚拟IP
LVS的TUN模式可以说是对其NAT和DR模式的一个折衷方案,和DR一样是采用单网卡模式,它的DIP、VIP既可以和realserver在同一个网段,也可以不在同一个网段,但是它并不是在NAT和DR做的修改(也可以说是在DR上的修改,但是这里不这么说),它是采用的一种全新的隧道模式,当然在路由与交换的范畴这种隧道模式也是IPV4和IPV6两种版本共存的一种解决方案,这里并没有用到,当然TUN的性能也是介于NAT和DR之间的。
具体实现过程可以这么来说:
1、 客户端发来请求报文到达调度器,调度器给报文穿上“外衣“(就是把报文放入特定的隧道)封装成一个新的报文,根据某种调度算法在新报文中把目的地址指向某台realserver,从而把报文传给realserver,同时把这次连接写入缓存。
2、 Realserver端接到报文,脱去“外衣“根据要求做某些处理,处理结束后,根据自身绑定的VIP,直接把回复报文的目的地址指向客户端,源地址就是绑定在隧道模式下的VIP,这样就完成一个请求与回复。
[root@localhost ~]# yum -y install ipvsadm //安装LVS管理工具
[root@localhost ~]# ifconfig //查看原始的网卡信息
eth0 Link encap:Ethernet HWaddr 00:0C:29:09:22:5D
inet addr:192.168.1.196 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe09:225d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:20713 errors:0 dropped:0 overruns:0 frame:0
TX packets:20323 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9157142 (8.7 MiB) TX bytes:11059125 (10.5 MiB)
Interrupt:169 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:113 errors:0 dropped:0 overruns:0 frame:0
TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:10286 (10.0 KiB) TX bytes:10286 (10.0 KiB)
[root@localhost ~]# vi /etc/init.d/lvstun //编写集群管理脚本,当然你也可以自己逐条添加
#!/bin/bash
#LVS script NAT
VIP=192.168.1.200
RIP1=192.168.1.193
RIP2=192.168.1.195
#./etc/rc.d/init.d/functions
case "$1" in
start)
echo "start LVS of DirectorServer Tun"
/sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev tunl0
/sbin/ipvsadm -C
# /sbin/ipvsadm -A -t $VIP:21 -s rr -p
# /sbin/ipvsadm -a -t $VIP:21 -r $RIP1:21 -i
# /sbin/ipvsadm -a -t $VIP:21 -r $RIP2:21 -i
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1 –i //这里显示是TUN模式
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -i
/sbin/ipvsadm
;;
stop)
echo "Stop LVS of DirectorServer Tun"
/sbin/ifconfig tunl0 down
/sbin/ipvsadm -C
;;
*)
echo "Usage:$0{start|stop}"
exit 1
esac
[root@localhost ~]# chmod a+x /etc/init.d/lvstun
[root@localhost ~]# /etc/init.d/lvstun start
start LVS of DirectorServer Tun
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.200:http rr
-> 192.168.1.195:http Tunnel 1 0 0
-> 192.168.1.193:http Tunnel 1 0 0
[root@localhost ~]# ifconfig //查看网卡IP绑定信息
eth0 Link encap:Ethernet HWaddr 00:0C:29:09:22:5D