LVS tun(隧道 模式)

2021-09-24 03:43:13 字數 3997 閱讀 8179

ip隧道是乙個將ip報文封裝到另乙個ip報文的技術,這可以使得目標為乙個ip位址的資料報文被封裝和**到另乙個ip位址。ip隧道技術也成為ip封裝技術。

它 和nat模式不同的是,它在lb和rs之間的傳輸不用改寫ip位址(新增新的ip頭)。而是把客戶請求包封裝在乙個ip tunnel裡面,然後傳送給rs節點伺服器,節點伺服器接收到之後解開ip tunnel後,進行響應處理。並且直接把包通過自己的外網位址傳送給客戶不用經過lb伺服器。ip隧道技術主要用於移動主機和虛擬私有網路 (virtual private network),在其中隧道都是靜態建立的,隧道一端有一ip位址,令一端也有唯一的ip位址。

1.客戶請求資料報,目標位址vip(排程器的ip位址)傳送到排程器上

2.排程器接收到客戶請求包,進行ip tunnel封裝,在原有的包頭加上ip tunnel的包頭,然後傳送給伺服器

3.伺服器根據ip tunnel包頭資訊(此時就又一種邏輯上的**隧道,只有排程器和伺服器之間懂)收到請求包,然後解開ip tunnel包頭資訊,得到客戶的請求包並進行響應處理

4.響應處理完畢之後,伺服器使用自己的出公網的線路,將這個響應資料報傳送給客戶端,源ip位址還是vip位址

效率:和dr一樣。返回的值不經過lvs,所以**效率比nat快,但是效率不如dr。

最大優點:可以跨網段**,甚至還可以跨機房**(必然帶來跨機房間的流量,提高成本。另外,rs機房上必然要繫結vip,可能會被防火牆視為ip偽造而進行攔截)

相較於nat能夠解決的問題:採用nat技術時,由於請求和響應都需要通過排程器進行位址的改寫,那麼當客戶端的請求越來越多的時候,排程器的處理能力就會成為乙個瓶頸。為了解決這個問題,排程器通過ip隧道,將客戶端的請求通過ip隧道,傳送給真實的伺服器,伺服器處理完請求之後,將響應請求的ip改為排程器的ip,然後將響應報文傳送給客戶端。

rip,dip,vip都是公網位址

rs的閘道器不能,也不可能指向dip

rs 的os必須支援ip隧道,現在只有linux系統支援

實驗環境:redhat6.5

vs:server4:172.25.254.4   vip:172.25.254.100

rs:server6:172.25.254.6   vip:172.25.254.100

rs : server8 :  172.25.254.8   vip : 172.25.254.100

vs:[root@server4 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

device=eth0

ipaddr0=172.25.254.4

ipaddr1=172.25.254.100

prefix=24

onboot=yes

bootproto=static

[root@server4 ~]# /etc/init.d/network  restart

[root@server4 ~]# ipvsadm -c#清除策略

[root@server4 ~]# ipvsadm -a -t 172.25.254.100:80 -s rr

[root@server4 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.6 -i #i表示隧道模式

[root@server4 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.8 -i

[root@server4 ~]#  ipvsadm -ln

ip virtual server version 1.2.1 (size=4096)

prot localaddress:port scheduler flags

-> remoteaddress:port           forward weight activeconn inactconn

tcp  172.25.254.100:80 rr

-> 172.25.254.6:80              tunnel  1      0          0         

-> 172.25.254.8:80              tunnel  1      0          0 

rs:(兩台相同的操作)

server6:

[root@server6 ~]# cd /etc/sysconfig/network-scripts/

[root@server6 network-scripts]# modprobe ipip #載入隧道模組生成tunl0,給tunl0新增vip

檢視:[root@server6 ~]# ifconfig -a

tunl0     link encap:ipip tunnel  hwaddr   

noarp  mtu:1480  metric:1

[root@server6 ~]# cd /etc/sysconfig/network-scripts/

[root@server6 network-scripts]# vim ifcfg-tunl0 新增vip

device=tunl0

ipaddr=172.25.254.100

netmask=255.255.255.0

onboot=yes

name=tunl0

[root@server6 network-scripts]# /etc/init.d/network  restart

配置核心

[root@server6 network-scripts]# vim /etc/sysctl.conf    //arp抑制,保證只能從排程器方反映,而不能正常響應

net.ipv4.conf.tunl0.arp_ignore = 1

net.ipv4.conf.tunl0.arp_announce = 2

net.ipv4.conf.tunl0.rp_filter = 0

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.all.rp_filter = 0

臨時新增:

[root@server8 network-scripts]# sysctl -w net.ipv4.conf.tunl0.rp_filter=0 臨時新增

net.ipv4.conf.tunl0.rp_filter = 0

[root@server6 network-scripts]#  echo '0'>/proc/sys/net/ipv4/ip_forward    //禁用路由**功能

寫發布頁面

[root@server6 network-scripts]# cat /var/www/html/index.html

server6'page

測試:

補充:當後台其中一台伺服器壞掉,沒有影響,自動踢除

排程器的vip可以新增在eth0上,還可以新增在tunl0模組上:

ifconfig tunl0 192.168.14.101 netmask 255.255.255.255 up
為了保證突出tun能後突出可以以直接以外網機器作為伺服器,外網的伺服器應該處於不同的網段

Lvs Tun隧道模式配置

tun是ip tunneling ip隧道的簡稱,它將排程器收到的ip資料報封裝在乙個新的ip資料報中,轉交給應用伺服器,然後實際伺服器的返回資料會直接返回給使用者。使用者請求負載均衡伺服器,當ip資料報到達負載均衡伺服器後,根據演算法選擇一台真實的伺服器,然後通過ip隧道技術將資料報原封不動再次封...

ip隧道模式

dr進行繫結,綁ip隧道 ifconfig tunl0 192.168.199.250 broadcast 192.168.199.250 netmask 255.255.255.0 up ifconfig.檢視tunl0是否存在 新增路由 route add host 192.168.199.25...

企業實戰 LVS實現(LVS Tun模式實現)

本次實驗需要三個虛擬機器以及物理機 虛擬機器名稱 作用 ip server1 ds 172.25.63.1 server2 rs1 172.25.63.2 server3 rs2 172.25.63.3 vip為 172.25.63.100 測試服務 http 埠 80 物理機為客戶端 實驗前使用清...