天天看點

VRRP及HSRP在企業網中的應用

一:vrrp簡介:

1:VRRP(虛拟路由器備援協定)是一種備份備援解決方案,它共享多路通路媒體(如以太網)上終端ip裝置的預設網關,并進行備援備份,進而在其中一台路由裝置當機時,備份路由裝置能夠及時接管轉發工作,為使用者提供透明的切換,提高網絡服務品質。備援備份如圖所示:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352000Cib1.png"></a>

2:vrrp狀态:

initialize狀态:系統啟動後進入initialize狀态,路由器不對vrrp封包做任何處理。當收到接口up的消息後,将進入backup或master狀态

master狀态:(1):定期發送vrrp通告(2):發送免費ARP封包,以便網絡内個主機知道虛拟ip位址所對應的虛拟mac位址(3):響應對虛拟ip位址的ARP請求,且響應的是虛拟mac位址,而不是接口的真是mac位址(4):轉發目的mac位址為虛拟mac位址的ip封包(5):如果路由器是虛拟ip位址的擁有者,則接收目的ip位址為虛拟ip位址的封包,否則丢棄ip封包

backup狀态:(1):接收master發送的vrrp封包,從中了解master的狀态(2):對虛拟ip位址的ARP請求不做響應(3):丢棄目的mac位址為虛拟mac位址的ip封包(4):丢棄目的ip位址為虛拟ip位址的ip封包

3:vrrp的選舉機制:

運作vrrp的路由器都會發送和接收vrrp通告消息,在通告消息中包含了自身的vrrp優先級資訊。vrrp通過比較路由器的優先級進行選舉,優先級高的将成為主路由器(master),其他路由器都為備份路由器(backup)。如果vrrp組中存在ip位址擁有者,即虛拟ip位址與某台vrrp路由器的位址相同時,ip位址擁有者将成為主路由器,并且具有最高優先級255。如果vrrp組中不存在ip位址擁有者,vrrp路由器将通過比較優先級來确定主路由器。預設情況下,vrrp路由器的優先級為100.當優先級相同時,vrrp通過比較ip位址來進行選舉,ip位址大的路由器将成為主路由器。

4:vrrp定時器:

通告定時器:主路由器以該定時器的時間間隔定期發送vrrp通告封包,告知其他備份路由器自己仍線上。通告時間預設為1秒。

主路由器失效定時器:主路由器失效間隔指的是備用路由器多長時間沒有收到主路由器的通告封包後,将認為主路由器已失效,并開始選舉新的主路由器。主路由器失效間隔是通告間隔的3倍,預設是3秒。

5:vrrp負載均衡:

在标準的vrrp運作環境中,主路由器負責轉發到虛拟ip位址的資料,備份路由器不負責資料的轉發,如果主路由器一直處于資料轉發狀态時,備份路由器鍊路将處于空閑狀态,造成了帶寬資源的浪費。為了提高備援性,并避免造成帶寬資源的浪費,可以再vrrp中使用負載均衡。vrrp負載均衡是将路由器加入多個vrrp組中實作,是vrrp路由器在不同的組中擔任不同的角色。負載均衡如圖所示:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352004hX4D.png"></a>

二:HSRP簡介:

1:熱備份路由器協定(HSRP)的設計目标是支援特定情況下 IP 流量失敗轉移不會引起混亂、并允許主機使用單路由器,以及即使在實際第一跳路由器使用失敗的情形下仍能維護路由器間的連通性。換句話說,當源主機不能動态知道第一跳路由器的 IP 位址時,HSRP 協定能夠保護第一跳路由器不出故障。

2:hsrp狀态:

初始狀态(initial):接口初次啟動或者配置變更後進入此狀态

學習狀态(learn):路由器尚未确定虛拟IP位址,未從活動路由器接收到需要鑒權的helllo消息,等待活動路由器的消息。

監聽狀态(listen):路由器知道了虛拟IP位址,但自己不是活動或是備份路由器,此時監聽來自活動和備份路由器的hello消息。

發言狀态(speak):路由器定時發送hello消息,積極參與競選,無虛拟IP位址的路由器将無法參與選舉。

備份狀态(standby):路由器候選成為下一個活動路由器,它會定時發送hello消息,一組最多隻有一個備份路由器。

活動狀态(active):此狀态的路由器負責轉發發往改組的虛拟MAC位址的資料包,定時發送hello消息,一組最多隻有一台活動路由器。

三:vrrp與hsrp的相同點與不同點:

1、兩個都支援認證

2、兩個都支援搶占,VRRP搶占預設開啟

3、都可以做負載均衡(不同組之間)

4、HSRP中路由狀态有6中,VRRP有3種

5、HSRP中叫做active路由器和standby路由器,VRRP叫做master路由器和backup路由器。HSRP是cisco私有,VRRP公有

6、HSRP standby路由器也主動發送hello包,這樣HSRP活動路由器可以發現網絡當中的備份路由器 VRRP backup路由器不主動發送hello包,是以master路由器不可以主動發現網絡當中的backup路由器 。

7、HSRP虛拟路由器的Ip不能是活動路由器接口的ip,VRRP可以:

8、HSRP的standby路由器選舉隻有優先級起作用,ip位址不起作用。 VRRP的活動路由器選舉優先級和ip位址都起作用

9、HSRP的hello時間為3秒,間隔hold時間為10秒 VRRP中失效間隔時間是通告間隔時間的3倍,通告間隔時間預設1秒

10、VRRP支援辭職,HSRP不支援辭職(辭職是指将接口優先級改為0後不參加活動路由器的選舉)

11、虛拟MAC:00-00-5e-00-01-01    VRRP 多點傳播位址224.0.0.18

                     00-00-0c-07-ac-01     HSRP 多點傳播位址 224.0.0.2

案例一:VRRP備援備份及負載均衡(H3C裝置):

原理:vrrp進行備援備份,并且實作負載均衡,如圖:在路由器R5和R10上建立子接口,實作鍊路的備援備份;并建立2個vrrp組,實作R5和R10的負載均衡。

拓撲方案:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352008RIla.png"></a>

配置:

R5:

[R5]int eth 0.1              #劃分子接口 

[R5-Ethernet0.1]vlan-type dot1q vid 10        #封裝類型為dot1q,添加vlan10标簽 

[R5-Ethernet0.1]ip add 192.168.10.1 24 

[R5]int eth 0.2              #劃分子接口 

[R5-Ethernet0.2]vlan-type dot1q vid 20         #封裝類型為dot1q,添加vlan20标簽 

[R5-Ethernet0.2]ip add 192.168.20.1 24 

[R5]vrrp ping-enable 

[R5]int e 0.1 

[R5-Ethernet0.1]vrrp vrid 10 virtual-ip 192.168.10.254        #為vlan10建立虛拟ip位址 

[R5-Ethernet0.1]vrrp vrid 10 priority 120               #在e 0.1子接口上設定vlan10鍊路的優先級為120 

[R5-Ethernet0.1]int e 0.2                              

[R5-Ethernet0.2]vrrp vrid 20 virtual-ip 192.168.20.254        #為vlan20建立虛拟ip位址 

[R5-Ethernet0.2]vrrp vrid 20 priority 100               #在e 0.2子接口上設定vlan20鍊路的優先級為100

R10:

[R10]interface e0.1      #劃分子接口 

[R10-Ethernet0.1]vlan-type dot1q vid 10       #封裝類型dot1q,添加vlan10标簽 

[R10-Ethernet0.1]ip add 192.168.10.2 24 

[R10-Ethernet0.1]interface e0.2          

[R10-Ethernet0.2]vlan-type dot1q vid 20       #封裝類型dot1q,添加vlan20标簽 

[R10-Ethernet0.2]ip add 192.168.20.2 24 

[R10]vrrp ping-enable 

[R10]interface e0.1 

[R10-Ethernet0.1]vrrp vrid 10 virtual-ip 192.168.10.254        #為vlan10建立虛拟ip位址 

[R10-Ethernet0.1]vrrp vrid 10 priority 100            #在e 0.1子接口上設定vlan10鍊路的優先級為100 

[R10-Ethernet0.1]interface e0.2 

[R10-Ethernet0.2]vrrp vrid 20 virtual-ip 192.168.20.254        #為vlan20建立虛拟ip位址 

[R10-Ethernet0.2]vrrp vrid 20 priority 120           #在e 0.2子接口上設定vlan20鍊路的優先級為120

SW-8:

[SW8]int e 0/24 

[SW8-Ethernet0/24]port link-type trunk           #将e 0/24端口設定為trunk 

[SW8-Ethernet0/24]port trunk permit vlan all    #該端口允許所有vlan通過 

[SW8]int Ethernet 0/2 

[SW8-Ethernet0/2]port link-type trunk             #設定e0/2端口設定為trunk 

[SW8-Ethernet0/2]port trunk permit vlan all      #該端口允許所有vlan通過 

[SW8]vlan 10 

[SW8-vlan10]port Ethernet 0/5 to Ethernet 0/10      #将該範圍端口劃分到vlan10 

[SW8]vlan 20 

[SW8-vlan20]port Ethernet 0/11 to Ethernet 0/15     #将該範圍端口劃分到vlan20

SW-9:

[SW9]interface Ethernet 0/24 

[SW9-Ethernet0/24]port link-type trunk           #将e0/24設定為 trunk 

[SW9-Ethernet0/24]port trunk permit vlan all    #該端口允許所有vlan通過 

[SW9]interface Ethernet 0/2 

[SW9-Ethernet0/2]port link-type trunk             #設定e0/2端口設定為trunk 

[SW9-Ethernet0/3]port trunk permit vlan all      #該端口允許所有vlan通過 

[SW9]vlan 10 

[SW9-vlan10]port Ethernet 0/5 to Ethernet 0/10        #将該範圍端口劃分到vlan10 

[SW9-vlan10]vlan 20 

[SW9-vlan20]port Ethernet 0/11 to Ethernet 0/15       #将該範圍端口劃分到vlan20

測試:

1:檢視R5和R10路由器的master和backup狀态:互為備份:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352015i7fn.png"></a>

2:測試網絡連通性,并跟蹤資料走向:

左側vlan10 ping 右側vlan20:

右側vlan20  ping 左側 vlan10:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352037BKyN.png"></a>

3:當斷掉R5和SW-8之間的鍊路時,觀察網絡的連同性,然後跟蹤資料走向:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352040oqmi.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_13453520433kcm.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352047NXga.png"></a>

4:斷掉R5鍊路後,R10的全部是master狀态:

案例二:HSRP備援備份及負載均衡:HSRP與vrrp相似(cisco裝置)

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352059cpn8.png"></a>

R1:

R1(config)#interface ethernet 0/0 

R1(config-if)#no shut          #開啟e0/0接口 

R1(config-if)#full-duplex      #配置全雙工 

R1(config)#interface ethernet 0/0.1 

R1(config-subif)#encapsulation dot1Q 10          #子接口封裝dot1q ,添加vlan10标簽 

R1(config-subif)#ip add 192.168.10.1 255.255.255.0 

R1(config-subif)#no shut 

R1(config-subif)#standby 10 ip 192.168.10.254      #配置vlan10的虛拟位址 

R1(config-subif)#standby 10 preempt               #配置搶先模式 

R1(config-subif)#standby 10 priority 120 

R1(config)#interface ethernet 0/0.2 

R1(config-subif)#encapsulation dot1Q 20       #子接口封裝dot1q ,添加vlan20标簽 

R1(config-subif)#ip add 192.168.20.1 255.255.255.0 

R1(config-subif)#standby 20 ip 192.168.20.254    #配置vlan20的虛拟位址 

R1(config-subif)#standby 20 preempt

R2:

R2(config)#interface ethernet 0/0 

R2(config-if)#no shut 

R2(config-if)#full-duplex 

R2(config)#interface ethernet 0/0.1 

R2(config-subif)#encapsulation dot1Q 10 

R2(config-subif)#ip add 192.168.10.2 255.255.255.0 

R2(config-subif)#no shut 

R2(config-subif)#standby 10 ip 192.168.10.254 

R2(config-subif)#standby 10 preempt 

R2(config)#interface ethernet 0/0.2 

R2(config-subif)#encapsulation dot1Q 20 

R2(config-subif)#ip add 192.168.20.2 255.255.255.0 

R2(config-subif)#standby 20 ip 192.168.20.254 

R2(config-subif)#standby 20 preempt 

R2(config-subif)#standby 20 priority 120

SW-1:

SW-1(config)#no ip routing          #在路由器上關閉路由功能 

SW-1(config)#interface fastEthernet 0/0 

SW-1(config-if)#switchport mode trunk          #将f0/0設定為trunk鍊路 

SW-1(config)#interface fastEthernet 0/1 

SW-1(config-if)#switchport mode trunk          #将f0/1設定為trunk鍊路 

SW-1(config)#interface fastEthernet 0/2 

SW-1(config-if)#switchport mode trunk          #将f0/2設定為trunk鍊路 

SW-1(config)#interface fastEthernet 0/3 

SW-1(config-if)#switchport mode trunk          #将f0/3設定為trunk鍊路 

SW-1(config)#interface fastEthernet 0/4 

SW-1(config-if)#switchport mode trunk          #将f0/4設定為trunk鍊路 

SW-1(config)#interface range fa0/2 -3 

SW-1(config-if-range)#channel-group 1 mode on        #将f0/2和f0/3設定為聚合端口,組号為1 

SW-1# vlan database 

SW-1(vlan)#vlan 10             #建立vlan10 和vlan20 

SW-1(vlan)#vlan 20 

SW-1(config)#spanning-tree vlan 10 root primary       #将SW-1設定為vlan10的根交換機

SW-2:

SW-2(config)#no ip routing          #在路由器上關閉路由功能 

SW-2(config)#interface fastEthernet 0/0 

SW-2(config-if)#switchport mode trunk 

SW-2(config)#interface fastEthernet 0/1 

SW-2(config)#interface fastEthernet 0/2 

SW-2(config)#interface fastEthernet 0/3 

SW-2(config)#interface fastEthernet 0/4 

SW-2(config)#interface range fastEthernet 0/2 - 3 

SW-2(config-if-range)#channel-group 1 mode on      #将f0/2和f0/3設定為聚合端口,組号為1 

SW-2#vlan database 

SW-2(vlan)#vlan 20 

SW-2(vlan)#vlan 10 

SW-2(config)#spanning-tree vlan 20 root primary      #将SW-2設定為vlan20的根交換機

SW-3:

SW-3#vlan database 

SW-3(vlan)#vlan 10        #建立vlan10和vlan20 

SW-3(vlan)#vlan 20 

SW-3(config)#interface range f0/2 -5 

SW-3(config-if-range)#switchport access vlan 10       #将f0/2-5加入vlan10中 

SW-3(config)#interface range f0/6 -10 

SW-3(config-if-range)#switchport access vlan 20       #将f0/6-10加入vlan20中 

SW-3(config)#interface f0/0 

SW-3(config-if)#switchport mode trunk             #将f0/0設定為trunk鍊路 

SW-3(config)#interface f0/1 

SW-3(config-if)#switchport mode trunk             #将f0/1設定為trunk鍊路

SW-4:

SW-4#vlan database 

SW-4(vlan)#vlan 10       #建立vlan10和vlan20 

SW-4(vlan)#vlan 20 

SW-4(config)#interface range f0/2 –5             

SW-4(config-if-range)#switchport access vlan 10       #将f0/2-5加入vlan10中 

SW-4(config)#interface range f0/6 - 10 

SW-4(config-if-range)#switchport access vlan 20       #将f0/6-10加入vlan20中 

SW-4(config)#interface f0/0 

SW-4(config-if)#switchport mode trunk            #将f0/0設定為trunk鍊路 

SW-4(config)#interface f0/1 

SW-4(config-if)#switchport mode trunk            #将f0/1設定為trunk鍊路

PC-1:

PC-1(config)#interface ethernet 0/0 

PC-1(config-if)#ip add 192.168.10.5 255.255.255.0        #将pc-1配置為vlan10中的主機 

PC-1(config-if)#no shut 

PC-1(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.254     #為pc-1配置預設路由,也即網關

PC-2:

PC-2(config)#interface e0/0 

PC-2(config-if)#ip add 192.168.20.5 255.255.255.0        #将pc-2配置為vlan20中的主機 

PC-2(config-if)#no shut 

PC-2(config-if)#exit 

PC-2(config)#ip route 0.0.0.0 0.0.0.0 192.168.20.254     #為pc-2配置預設路由,也即網關

左邊vlan10主機 ping 右邊vlan20 ,測試網絡連通性,并跟蹤資料走向:

右邊vlan 20主機 ping 左邊vlan 20,測試網絡連通性,并跟蹤資料走向:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352069kLpp.png"></a>

在sw-1上面斷掉f0/0之後檢視網絡通信狀況:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352073fZ91.png"></a>

在SW-1上面回複f0/0後,檢視:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352075Xl5D.png"></a>

檢視路由器的master和backup狀态:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352080ouWe.png"></a>

案例三:利用H3C裝置,配置vrrp協定實作兩台路由器的負載均衡,并配置vrrp跟蹤端口監控上網接口。并且使用網絡位址轉換實作内網主機上網:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352299pG5E.png"></a>

[R2]interface s0 

[R2-Serial0]ip add 192.168.1.1 255.255.255.0 

[R2]interface e0.10 

[R2-Ethernet0.10]vlan-type dot1q vid 10         #封裝dot1q,為vlan10添加标簽 

[R2-Ethernet0.10]ip add 192.168.10.1 255.255.255.0 

[R2-Ethernet0.10]interface e0.20                  

[R2-Ethernet0.20]vlan-type dot1q vid 20         #封裝dot1q,為vlan20添加标簽 

[R2-Ethernet0.20]ip add 192.168.20.1 255.255.255.0 

[R2]ip route-static 0.0.0.0 0.0.0.0 192.168.1.2          #預設路由實作對外網也即R14的通路 

[R2]acl 2000                   #定義标準通路控制清單 

[R2-acl-2000]rule permit source any                #定義規則:允許所有源位址通過 

[R2]interface s0   

[R2-Serial0]nat out 2000 interface                   #将acl2000運用在出口方向 

[R2]vrrp ping-enable           #開啟vrrp的ping指令用于測試網絡連通性 

[R2-Ethernet0.10]vrrp vrid 10 virtual-ip 192.168.10.254          #配置vlan10的虛拟位址 

[R2-Ethernet0.10]vrrp vrid 10 preempt                   #配置該子接口下vlan10為搶占模式 

[R2-Ethernet0.10]vrrp vrid 10 priority 120             #配置該子接口下vlan10的優先級為120 

[R2-Ethernet0.10]vrrp vrid 10 track s0  reduced 30       #跟蹤s0口,如果down掉,優先級減少30 

[R2-Ethernet0.10]interface e0.20      

[R2-Ethernet0.20]vrrp vrid 20 virtual 192.168.20.254       #配置vlan20的虛拟位址 

[R2-Ethernet0.20]vrrp vrid 20 preempt                 #配置vlan20為搶占模式 

[R2-Ethernet0.20]vrrp vrid 20 priority 100           #配置該子接口下vlan20的優先級為120

R11:

[R11]interface s1 

[R11-Serial1]ip add 192.168.2.1 255.255.255.0 

[R11-Serial1]interface e0.10 

[R11-Ethernet0.10]vlan-type dot1q vid 10 

[R11-Ethernet0.10]ip add 192.168.10.2 255.255.255.0 

[R11-Ethernet0.10]interface e0.20 

[R11-Ethernet0.20]vlan-type dot1q vid 20 

[R11-Ethernet0.20]ip add 192.168.20.2 255.255.255.0 

[R11]ip route-static 0.0.0.0 0.0.0.0 192.168.2.2       #配置預設路由,實作對外網也即對R14的通路 

[R11]acl 2000                    #定義标準通路控制清單 

[R11-acl-2000]rule permit source any            #定義規則:允許所有源位址通過 

[R11-Serial1]nat out 2000 interface                #将acl2000運用到出口方向 

[R11]vrrp ping-enable               #開啟vrrp的ping指令 

[R11]interface e0.10 

[R11-Ethernet0.10]vrrp vrid 10 virtual-ip 192.168.10.254 

[R11-Ethernet0.10]vrrp vrid 10 preempt 

[R11-Ethernet0.10]vrrp vrid 10 priority 100 

[R11]interface e0.20 

[R11-Ethernet0.20]vrrp vrid 20 virtual-ip 192.168.20.254 

[R11-Ethernet0.20]vrrp vrid 20 preempt 

[R11-Ethernet0.20]vrrp vrid 20 priority 120 

[R11-Ethernet0.20]vrrp vrid 20 track s1  reduced 30        #如果s1down掉,則優先級減少30

[SW-9]interface Ethernet 0/1 

[SW-9-Ethernet0/1]port link-type trunk        #将e0/1配置為trunk鍊路 

[SW-9-Ethernet0/1]port trunk permit vlan all       #該trunk鍊路允許所有vlan通過 

[SW-9]interface Ethernet 0/2    

[SW-9-Ethernet0/2]port link-type trunk        #将e0/2配置為trunk鍊路 

[SW-9-Ethernet0/2]port trunk permit vlan all       #該trunk鍊路允許所有vlan通過 

[SW-9]vlan 10    

[SW-9-vlan10]port Ethernet 0/3 to Ethernet 0/10      #将這些接口劃分到vlan10中 

[SW-9-vlan10]vlan 20 

[SW-9-vlan20]port Ethernet 0/11 to Ethernet 0/15     #将這些接口劃分到vlan20中

SW-12:

[SW-12]interface Ethernet 0/1    

[SW-12-Ethernet0/1]port link-type trunk 

[SW-12-Ethernet0/1]port trunk permit vlan all 

[SW-12]interface Ethernet 0/2    

[SW-12-Ethernet0/2]port link-type trunk     

[SW-12-Ethernet0/2]port trunk permit vlan all 

[SW-12]vlan 10 

[SW-12-vlan10]port Ethernet 0/3 to Ethernet 0/10 

[SW-12-vlan10]vlan 20     

[SW-12-vlan20]port Ethernet 0/11 to Ethernet 0/15

R14:

[R14]interface s0 

[R14-Serial0]ip add 192.168.1.2 255.255.255.0 

[R14-Serial0]shut            #重新開機該接口 

[R14-Serial0]undo shut 

[R14-Serial0]interface s1 

[R14-Serial1]ip add 192.168.2.2 255.255.255.0 

[R14-Serial1]shut            #重新開機該接口 

[R14-Serial1]undo shut 

[R14-Serial1]interface e0 

[R14-Ethernet0]ip add 172.168.1.1 255.255.255.0 

[R14-Ethernet0]loopback          #将e0接口配置為回環接口,用于測試

1:左邊vlan10 ping 右邊vlan 20 ,測試網絡的連通性,并跟蹤資料走向:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352309buHd.png"></a>

斷開R2 上的s0口後:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352316MrYv.png"></a>

當接通R2上的s0後:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352325l6pz.png"></a>

2:右邊vlan 20 ping 左邊vlan 10 , 測試網絡連通性,并跟蹤資料走向:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352331nyWL.png"></a>

當斷開R11上s1口後:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352337RhGD.png"></a>

當接通R11上的s1口後:

<a href="http://5493845.blog.51cto.com/attachment/201208/19/5493845_1345352343Guvc.png"></a>

本文轉自 liuyatao666 51CTO部落格,原文連結:http://blog.51cto.com/5503845/966968,如需轉載請自行聯系原作者

繼續閱讀