兩個實驗中我們發(fā)現(xiàn)EVPN中大量使用了VPN實例,并得到以下結(jié)論:RT是一種BGP擴展團體屬性,用于控制EVPN路由的發(fā)布與接收。也就是說,RT決定了本端的EVPN路由可以被哪些對端所接收,以及本端是否接收對端發(fā)來的EVPN路由。RT分為ERT(Export RT,本端發(fā)送EVPN路由時,攜帶的RT屬性設(shè)置為ERT)和IRT(Import RT,本端設(shè)置接收的對端的EVPN路由屬性)。本端在收到對端的EVPN路由時,將路由中攜帶的ERT與本端的IRT進行比較,只有兩者相等時才接收該路由,否則丟棄該路由
VSR1、VSR2、VSR3為與服務(wù)器連接的分布式EVPN網(wǎng)關(guān)設(shè)備,VSR-RR為RR,負責(zé)在路由器之間反射BGP路由。
虛擬機VM 1屬于VXLAN 10、位于VPN實例VPNA;VM 2和VM 4屬于VXLAN 20、位于VPN實例VPNB;VM 3屬于VXLAN 30、位于VPN實例VPNC。通過EVPN分布式網(wǎng)關(guān)配置,相同VXLAN之間可以二層互通,確保虛擬機在站點之間進行遷移時用戶的訪問流量不會中斷;不同VXLAN之間通過分布式EVPN網(wǎng)關(guān)實現(xiàn)VM 1和VM 4之間互通,VM 4不能訪問VM 3,VM 1和VM 3之間互通。
VMWare ESXi 6.7.0(ProLiant DL360 Gen9,48核心,128G內(nèi)存)
H3C VSR1000(Version 7.1.064, Release 0621P18,4核心,8G內(nèi)存)
H3C VFW1000(Version 7.1.064, ESS 1171P13,4核心,8G內(nèi)存)
Windows 7旗艦版(測試用虛擬機,8核心,16G內(nèi)存)
互通配置組網(wǎng)圖如下。
M地址指遠程管理的帶外管理口地址。新建一個vSwitch,所有線路均使用該vSwitch中端口組實現(xiàn),建議將不同鏈路隔離進不同的VLAN,避免廣播風(fēng)暴。
調(diào)通底層網(wǎng)絡(luò),配置各接口的IP地址和子網(wǎng)掩碼,并在IP核心網(wǎng)絡(luò)內(nèi)配置OSPF協(xié)議,和之前的實驗配置基本相同。
將VM1的網(wǎng)關(guān)地址指定為192.168.2.1,將VM2和VM4的網(wǎng)關(guān)地址指定為192.168.10.1,將VM3的網(wǎng)關(guān)地址指定為192.168.20.1。
如文章開始所講,限制VXLAN網(wǎng)絡(luò)間的訪問時間上就是通過調(diào)整VPN實例的vpn-target來實現(xiàn)訪問限制。調(diào)整后的VSR1配置如下:
#
ip vpn-instance vpna
route-distinguisher 1:1
#
address-family ipv4
vpn-target 2:2 3:3 1:1 import-extcommunity
vpn-target 1:1 export-extcommunity
#
address-family evpn
vpn-target 1:1 2:2 3:3 import-extcommunity
vpn-target 1:1 export-extcommunity
#
ip vpn-instance vpnb
route-distinguisher 2:2
#
address-family ipv4
vpn-target 2:2 1:1 import-extcommunity
vpn-target 2:2 export-extcommunity
#
address-family evpn
vpn-target 2:2 1:1 import-extcommunity
vpn-target 2:2 export-extcommunity
#
vxlan tunnel mac-learning disable
#
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 14.1.1.0 0.0.0.255
#
l2vpn enable
vxlan tunnel arp-learning disable
#
vsi vpna
gateway vsi-interface 1
vxlan 10
evpn encapsulation vxlan
route-distinguisher auto
vpn-target auto export-extcommunity
vpn-target auto import-extcommunity
#
vsi vpnb
gateway vsi-interface 2
vxlan 20
evpn encapsulation vxlan
route-distinguisher auto
vpn-target auto export-extcommunity
vpn-target auto import-extcommunity
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
interface GigabitEthernet2/0
ip address 14.1.1.1 255.255.255.0
#
interface GigabitEthernet3/0
xconnect vsi vpna
#
interface GigabitEthernet4/0
xconnect vsi vpnb
#
interface Vsi-interface1
ip binding vpn-instance vpna
ip address 192.168.2.1 255.255.255.0
mac-address 0001-0001-0001
local-proxy-arp enable
distributed-gateway local
#
interface Vsi-interface2
ip binding vpn-instance vpnb
ip address 192.168.10.1 255.255.255.0
mac-address 0002-0002-0002
local-proxy-arp enable
distributed-gateway local
#
interface Vsi-interface3
ip binding vpn-instance vpna
l3-vni 1000
#
interface Vsi-interface4
l3-vni 2000
#
interface Vsi-interface5
l3-vni 3000
#
bgp 1234
peer 4.4.4.4 as-number 1234
peer 4.4.4.4 connect-interface LoopBack0
#
address-family l2vpn evpn
peer 4.4.4.4 enable
調(diào)整VPN實例的vpn-target來實現(xiàn)訪問限制,調(diào)整后的VSR2配置如下:
#
ip vpn-instance vpnb
route-distinguisher 2:2
#
address-family ipv4
vpn-target 2:2 1:1 import-extcommunity
vpn-target 2:2 export-extcommunity
#
address-family evpn
vpn-target 2:2 1:1 import-extcommunity
vpn-target 2:2 export-extcommunity
#
vxlan tunnel mac-learning disable
#
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 22.1.1.0 0.0.0.255
network 24.1.1.0 0.0.0.255
#
l2vpn enable
vxlan tunnel arp-learning disable
#
vsi vpnb
gateway vsi-interface 1
vxlan 20
evpn encapsulation vxlan
route-distinguisher auto
vpn-target auto export-extcommunity
vpn-target auto import-extcommunity
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
#
interface GigabitEthernet2/0
ip address 24.1.1.2 255.255.255.0
#
interface GigabitEthernet3/0
xconnect vsi vpnb
#
interface Vsi-interface1
ip binding vpn-instance vpnb
ip address 192.168.10.1 255.255.255.0
mac-address 0002-0002-0002
local-proxy-arp enable
distributed-gateway local
#
interface Vsi-interface3
l3-vni 1000
#
interface Vsi-interface4
ip binding vpn-instance vpnb
l3-vni 2000
#
interface Vsi-interface5
l3-vni 3000
#
bgp 1234
peer 4.4.4.4 as-number 1234
peer 4.4.4.4 connect-interface LoopBack0
#
address-family l2vpn evpn
peer 4.4.4.4 enable
調(diào)整VPN實例的vpn-target來實現(xiàn)訪問限制,調(diào)整后的VSR3配置如下:
#
ip vpn-instance vpnc
route-distinguisher 3:3
#
address-family ipv4
vpn-target 3:3 1:1 import-extcommunity
vpn-target 3:3 export-extcommunity
#
address-family evpn
vpn-target 3:3 1:1 import-extcommunity
vpn-target 3:3 export-extcommunity
#
vxlan tunnel mac-learning disable
#
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 34.1.1.0 0.0.0.255
#
l2vpn enable
vxlan tunnel arp-learning disable
#
vsi vpnc
gateway vsi-interface 1
vxlan 30
evpn encapsulation vxlan
route-distinguisher auto
vpn-target auto export-extcommunity
vpn-target auto import-extcommunity
#
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
#
interface GigabitEthernet2/0
ip address 34.1.1.3 255.255.255.0
#
interface GigabitEthernet3/0
xconnect vsi vpnc
#
interface Vsi-interface1
ip binding vpn-instance vpnc
ip address 192.168.20.1 255.255.255.0
mac-address 0003-0003-0003
local-proxy-arp enable
distributed-gateway local
#
interface Vsi-interface3
l3-vni 1000
#
interface Vsi-interface4
l3-vni 2000
#
interface Vsi-interface5
ip binding vpn-instance vpnc
l3-vni 3000
#
bgp 1234
peer 4.4.4.4 as-number 1234
peer 4.4.4.4 connect-interface LoopBack0
#
address-family l2vpn evpn
peer 4.4.4.4 enable
配置VSR-RR作為RR路由反射器與其他路由器建立BGP連接, 配置發(fā)布EVPN路由,并關(guān)閉BGP EVPN路由的VPN-Target過濾功能。無需調(diào)整配置。
查看EVPN自動發(fā)現(xiàn)的鄰居信息,包含各VSI的IMET路由和MAC/IP路由。
display evpn auto-discovery imet
dis evpn auto-discovery macip-prefix
查看EVPN的ARP信息和MAC地址信息,
dis evpn route arp
dis evpn route mac
查看EVPN路由表信息,因為綁定了VPN實例,所以記得帶實例查看。
display evpn routing-table vpn-instance vpna
查看Tunnel接口信息,可以看到VXLAN模式的Tunnel接口處于UP狀態(tài)。
display interface tunnel
查看VSI虛接口信息,可以看到VSI虛接口處于UP狀態(tài)。
display interface vsi-interface
查看VSI的詳細信息,可以看到VSI內(nèi)創(chuàng)建的VXLAN、與VXLAN關(guān)聯(lián)的VXLAN隧道、與VSI關(guān)聯(lián)的VSI虛接口等信息。多了3個自動創(chuàng)建的VSI接口。
display l2vpn vsi verbose
查看VSI的MAC地址表項信息,可以看到已學(xué)習(xí)到的MAC地址信息。
查看BGP l2vpn對等體信息。
display bgp l2vpn evpn
VSR1設(shè)備上的VPN實例vpna和vpnb的路由信息如下:
查看FIB表項信息,可以看到已學(xué)習(xí)到了虛擬機的轉(zhuǎn)發(fā)表項信息,都要加VPN實例了。
對比組網(wǎng)拓撲,在VM1這臺主機(192.168.2.160)上ping測VM2(192.168.10.110)、VM3(192.168.20.200)和VM4(192.168.10.188),結(jié)果如下:
在VM2(192.168.10.110)這臺主機上ping測VM1(192.168.2.160)、VM3(192.168.20.200)和VM4(192.168.10.188),結(jié)果如下:
在VM3(192.168.20.200)這臺主機上ping測VM1(192.168.2.160)、VM2(192.168.10.110)和VM4(192.168.10.188),結(jié)果如下:
在VM4(192.168.10.188)這臺主機上ping測VM1(192.168.2.160)、VM2(192.168.10.110)和VM3(192.168.20.200),結(jié)果如下:
綜上,除VM3和VM4不能互訪之外,其余主機全部實現(xiàn)互訪。
設(shè)備在發(fā)布和接收BGP EVPN路由時,按照如下規(guī)則選擇RD和RT:
1、IMET路由和僅包含MAC地址信息的MAC/IP路由。
發(fā)布該類路由時,攜帶EVPN實例視圖下配置的RD和Export Target;
接收該類路由時,將路由中的Route Target屬性與本地EVPN實例視圖下配置的Import Target進行比較。
2、包含ARP/ND信息的MAC/IP路由。
發(fā)布該類路由時,攜帶EVPN實例視圖下配置的RD,并同時攜帶EVPN實例視圖下配置的Export Target和VPN實例/公網(wǎng)實例下為EVPN配置(VPN實例視圖、VPN實例EVPN視圖、公網(wǎng)實例視圖、公網(wǎng)實例EVPN視圖下配置)的Export Target;
接收該類路由時,將路由中的Route Target屬性與本地VPN實例/公網(wǎng)實例下為EVPN配置的Import Target進行比較。
3、IP前綴路由。
發(fā)布該類路由時,攜帶VPN實例/公網(wǎng)實例下為IPv4 VPN配置或IPv6 VPN配置的Export Target;
接收該類路由時,將路由中的Route Target屬性與本地VPN實例/公網(wǎng)實例下為IPv4 VPN或IPv6 VPN配置的Import Target進行比較。
本文通過一個案例簡單來了解一下Site-to-Site IPSec VPN 的工作原理及詳細配置。
USG6630防火墻兩臺,AR2220路由一臺,PC機兩臺
步驟1:FW1 和 FW2 配置接口 IP 地址和安全區(qū)域,完成網(wǎng)絡(luò)基本參數(shù)配置 。
1) 配置FW1接口IP地址,并且把GE1/0/1加入到untrust區(qū)域,GE1/0/6加入到trust
[FW1] interface GigabitEthernet 1/0/1
[FW1-GigabitEthernet1/0/1] ip address 202.1.1.1 255.255.255.0
[FW1-GigabitEthernet1/0/1] service-manage ping permit
[FW1] interface GigabitEthernet 1/0/6
[FW1-GigabitEthernet1/0/6] ip address 10.91.74.254 255.255.255.0
[FW1-GigabitEthernet1/0/6] service-manage ping permit
[FW1] firewall zone untrust
[FW1-zone-untrust] add interface GigabitEthernet 1/0/1
[FW1] firewall zone trust
[FW1-zone-trust] add interface GigabitEthernet 1/0/6
2) 配置 FW2 接口 IP 地址,并且 GE1/0/2 加入 Untrust 區(qū)域,GE1/0/6 加入Trust 區(qū)域
[FW2] interface GigabitEthernet 1/0/1
[FW2-GigabitEthernet1/0/1] ip address 202.1.1.1 255.255.255.0
[FW2-GigabitEthernet1/0/1] service-manage ping permit
[FW2] interface GigabitEthernet 1/0/6
[FW2-GigabitEthernet1/0/6] ip address 10.91.74.254 255.255.255.0
[FW2-GigabitEthernet1/0/6] service-manage ping permit
[FW2] firewall zone untrust
[FW2-zone-untrust] add interface GigabitEthernet 1/0/1
[FW2] firewall zone trust
[FW2-zone-trust] add interface GigabitEthernet 1/0/6
步驟2:FW1 和FW2 配置到達對端的路由。
[FW1] ip route-static 0.0.0.0 0.0.0.0 202.1.2.1
[FW2] ip route-static 0.0.0.0 0.0.0.0 202.1.1.1
步驟3:配置 FW1 的 IPSec 隧道。
定義需要保護的數(shù)據(jù)流
[FW1]acl number 3000
[FW1-acl-adv-3000] rule 5 permit ip source 10.91.74.0 0.0.0.255 destination 10.91.65.0 0.0.0.255
配置 IKE 安全提議
[FW1]ike proposal 1 #采用默認配置,
[FW1-ike-proposal-1] display this #查看默認的加密算法
配置 IKE 對等體
[FW1]ike peer FW1
[FW1-ike-peer-FW1]exchange-mode auto
[FW1-ike-peer-FW1]pre-shared-key huawei@123 #定義域共享密鑰,兩邊要一樣的
[FW1-ike-peer-FW1]ike-proposal 1 #關(guān)聯(lián)IKE安全提議
[FW1-ike-peer-FW1]remote-address 202.1.2.1 #配置對端全局地址
配置 IPSec 安全提議
[FW1]ipsec proposal 10 #采用默認值
配置 IPSec 策略
[FW1]ipsec policy FW1 1 isakmp
[FW1-ipsec-policy-isakmp-FW1-1]security acl 3000
[FW1-ipsec-policy-isakmp-FW1-1] proposal 10
[FW1-ipsec-policy-isakmp-FW1-1] ike-peer FW1
應(yīng)用 IPSec 安全策略到出接口
[FW1]interface GigabitEthernet 1/0/1
[FW1-GigabitEthernet1/0/1]ipsec policy FW1
防火墻FW2也是按照上面的步驟配置,中間只需要修改一下IKE 對等體的remote-address IP地址。
步驟4:FW1和FW2 配置安全策略,允許私網(wǎng)指定網(wǎng)段進行報文交互 。
配置從 Trust 到 Untrust 的域間策略
防火墻FW1
[FW1-policy-security]rule name trust_untrust
[FW1-policy-security-rule-trust_untrust]source-zone trust
[FW1-policy-security-rule-trust_untrust]destination-zone untrust
[FW1-policy-security-rule-trust_untrust]source-address 10.91.74.0 24
[FW1-policy-security-rule-trust_untrust]destination-address 10.91.65.0 24
[FW1-policy-security-rule-trust_untrust]action permit
防火墻FW2
[FW2-policy-security]rule name trust_untrust
[FW2-policy-security-rule-trust_untrust]source-zone trust
[FW2-policy-security-rule-trust_untrust]destination-zone untrust
[FW2-policy-security-rule-trust_untrust]source-address 10.91.65.0 24
[FW2-policy-security-rule-trust_untrust]destination-address 10.91.74.0 24
配置從 Untrust 到Trust 的域間策略
防火墻FW1
[FW1-policy-security]rule name untrust_trust
[FW1-policy-security-rule-untrust_trust]source-zone untrust
[FW1-policy-security-rule-untrust_trust]destination-zone trust
[FW1-policy-security-rule-untrust_trust]source-address 10.91.65.0 24
[FW1-policy-security-rule-untrust_trust]destination-address 10.91.74.0 24
[FW1-policy-security-rule-untrust_trust]action permit
防火墻FW2
[FW2-policy-security]rule name untrust_trust
[FW2-policy-security-rule-untrust_trust]source-zone untrust
[FW2-policy-security-rule-untrust_trust]destination-zone trust
[FW2-policy-security-rule-untrust_trust]source-address 10.91.74.0 24
[FW2-policy-security-rule-untrust_trust]destination-address 10.91.65.0 24
[FW2-policy-security-rule-untrust_trust]action permit
到此兩臺防火墻已經(jīng)放通了從Trust 到 Untrust和從Untrust到 trust的域間策略,現(xiàn)在從PC1發(fā)ping包看看吧。
從上圖看到PC1和PC2是不能連通的,這是為啥呢?首先,在FW1防護墻上看看會話表,如下圖
從上圖看到FW1防火墻上出現(xiàn)了會話表,但是,數(shù)據(jù)包只有出去方向的,回來的數(shù)據(jù)包卻沒有。我們再到FW2看看是否有會話表項。
從上圖可以看到FW2上沒有發(fā)現(xiàn)會話表項。說明數(shù)據(jù)包沒有到達FW2上。這是為什么呢?
因為我們只放通了業(yè)務(wù)上策略,而沒有放通ipsec VPN協(xié)商所需要的策略。
從上圖看到IPsec VPN沒有協(xié)商成功,導(dǎo)致數(shù)據(jù)包沒有發(fā)送到FW2上。
定義服務(wù)集
[FW1]ip service-set ike type object
[FW1-object-service-set-ike]service 0 protocol udp destination-port 500
[FW2]ip service-set ike type object
[FW2-object-service-set-ike]service 0 protocol udp destination-port 500
在防火墻上放通策略
[FW1-policy-security]rule name ike_out
[FW1-policy-security-rule-ike_out] source-zone local
[FW1-policy-security-rule-ike_out] destination-zone untrust
[FW1-policy-security-rule-ike_out] source-address 202.1.1.1 mask 255.255.255.255
[FW1-policy-security-rule-ike_out] destination-address 202.1.2.1 mask 255.255.255.255
[FW1-policy-security-rule-ike_out]service ike
[FW1-policy-security-rule-ike_out]service esp
[FW1-policy-security-rule-ike_out] action permit
[FW1-policy-security]rule name ike_in
[FW1-policy-security-rule-ike_in] source-zone untrust
[FW1-policy-security-rule-ike_in] destination-zone local
[FW1-policy-security-rule-ike_in] source-address 202.1.2.1 mask 255.255.255.255
[FW1-policy-security-rule-ike_in] destination-address 202.1.1.1 mask 255.255.255.255
[FW1-policy-security-rule-ike_out]service ike
[FW1-policy-security-rule-ike_out]service esp
[FW1-policy-security-rule-ike_in] action permit
[FW2-policy-security] rule name ike_out
[FW2-policy-security-rule-ike_out]source-zone local
[FW2-policy-security-rule-ike_out]source-zone untrust
[FW2-policy-security-rule-ike_out] destination-address 202.1.1.1 mask 255.255.255.255
[FW2-policy-security-rule-ike_out] source-address 202.1.2.1 mask 255.255.255.255
[FW2-policy-security-rule-ike_out]service ike
[FW2-policy-security-rule-ike_out]service esp
[FW2-policy-security-rule-ike_out] action permit
[FW2-policy-security]rule name ike_in
[FW2-policy-security-rule-ike_in] source-zone untrust
[FW2-policy-security-rule-ike_in] destination-zone local
[FW2-policy-security-rule-ike_in] source-address 202.1.1.1 mask 255.255.255.255
[FW2-policy-security-rule-ike_in] destination-address 202.1.2.1 mask 255.255.255.255
[FW2-policy-security-rule-ike_out]service ike
[FW2-policy-security-rule-ike_out]service esp
[FW2-policy-security-rule-ike_in] action permit
到此,所有需要的策略都放通了,接著來驗證一下吧,首先還是從PC1發(fā)起PING包,接著,在FW1查看會話表項,如下圖
從上圖可以看到,F(xiàn)W1上的會話表項數(shù)據(jù)包已經(jīng)出現(xiàn)有去有回的,再看看IKE協(xié)商情況吧,如下圖
從上圖可以看到,F(xiàn)W1上的IKE已經(jīng)協(xié)商成功了。再看看FW2防火墻上的會話表項吧,如下圖
從上圖可看到,F(xiàn)W2上的會話表項也出現(xiàn)了PING包,證明了PC1到PC2已經(jīng)連通了,如下圖
以上就是關(guān)于IPSec VPN的點對點配置案例,如果喜歡的小伙伴們,歡迎轉(zhuǎn)發(fā)吧,想要獲取此案例的詳細配置文件和拓撲,請私信回復(fù)'ipsec'。更多精彩內(nèi)容請關(guān)注我的頭條號。