########?
TUN是IP Tunneling ,IP隧道的簡稱,它將調度器收到的IP數據包封裝在一個新的IP數據包中,轉交給應用服務器,然后實際服務器的返回數據會直接返回給用戶。
工作原理:
用戶請求負載均衡服務器,當IP數據包到達負載均衡服務器后,根據算法選擇一臺真實的服務器,然后通過IP隧道技術將數據包原封不動再次封裝,并發送給真實服務器,當這個數據包到達真實服務器以后,真實服務器進行拆包(拆掉第一層的IP包)拿到里面的IP數據包進行處理,然后將結果直接返回給客戶端。
實驗配置:
此實驗需用到3臺虛擬機和一臺物理機
server1(directorserver):172.25.8.1
server2(realserver):172.25.8.2
server3(realserver):172.25.8.3
vip:172.25.8.100
?
server1:
[root@server1 ~]# ifconfig tunl0 172.25.8.100 netmask 255.255.255.255 up ? ? ?? ##創建tunl0 ip,并讓其自己獨處一個網段[root@server1 ~]# route add -host 172.25.8.100 dev tunl0
[root@server1 ~]# ipvsadm -C
[root@server1 ~]# ipvsadm -A -t 172.25.8.100:80 -s rr
[root@server1 ~]# ipvsadm -a -t 172.25.8.100:80 -r 172.25.8.2:80 -i
[root@server1 ~]# ipvsadm -a -t 172.25.8.100:80 -r 172.25.8.3:80 -i
[root@server1 ~]# ipvsadm -Ln
[root@server1 ~]# ipvsadm -C
[root@server1 ~]# ipvsadm -A -t 172.25.8.100:80 -s rr
[root@server1 ~]# ipvsadm -a -t 172.25.8.100:80 -r 172.25.8.2:80 -i
[root@server1 ~]# ipvsadm -a -t 172.25.8.100:80 -r 172.25.8.3:80 -i
[root@server1 ~]# ipvsadm -Ln

?
ip addr

?
server2:
yum install httpd?
/etc/init.d/httpd start
[root@server2 ~]# ifconfig tunl0 172.25.8.100 netmask 255.255.255.255 up[root@server2 ~]# route add -host 172.25.8.100 dev tunl0
[root@server2 ~]# echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
[root@server2 ~]# echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce
[root@server2 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@server2 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
ip addr

?
server3:
yum install httpd?
/etc/init.d/httpd start
[root@server3 ~]# ifconfig tunl0 172.25.8.100 netmask 255.255.255.255 up[root@server3 ~]# route add -host 172.25.8.100 dev tunl0
[root@server3 ~]# echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
[root@server3 ~]# echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce
[root@server3 ~]#? echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@server3 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
ip addr

?
測試:
curl 172.25.8.100
[kiosk@foundation8 Desktop]$ curl 172.25.8.100
<h1>server2-tun</h1>
[kiosk@foundation8 Desktop]$ curl 172.25.8.100
<h1>server3-tun</h1>
[kiosk@foundation8 Desktop]$ curl 172.25.8.100
<h1>server2-tun</h1>
[kiosk@foundation8 Desktop]$ curl 172.25.8.100
<h1>server3-tun</h1>
[kiosk@foundation8 Desktop]$ curl 172.25.8.100
<h1>server2-tun</h1>
[kiosk@foundation8 Desktop]$ curl 172.25.8.100
<h1>server3-tun</h1>
[kiosk@foundation8 Desktop]$ curl 172.25.8.100
<h1>server2-tun</h1>
[kiosk@foundation8 Desktop]$ curl 172.25.8.100
<h1>server3-tun</h1>

?
?