最近由於工作原因,按照客戶的需求需要將防火牆旁掛,並將部門流量引流到防火牆上。本文章將講述基本術語、原理、實驗(可下載)
基礎介紹:
PE和CE
BGP/MPLS IP VPN的基本模型由三部分組成:CE、PE和P。
- CE(Customer Edge):用戶網絡邊緣設備,有接口直接與服務提供商網絡相連。CE可以是路由器或交換機,也可以是一台主機。通常情況下,CE“感知”不到VPN的存在,也不需要支持MPLS。
- PE(Provider Edge):是服務提供商網絡的邊緣設備,與CE直接相連。在MPLS網絡中,對VPN的所有處理都發生在PE上,對PE性能要求較高。
- P(Provider):服務提供商網絡中的骨干設備,不與CE直接相連。P設備只需要具備基本MPLS轉發能力,不維護VPN信息。
RD和VPN-IPv4地址
傳統BGP無法正確處理地址空間重疊的VPN的路由。假設VPN1和VPN2都使用了10.110.10.0/24網段的地址,並各自發布了一條去往此網段的路由。雖然本端PE通過不同的VPN實例可以區分地址空間重疊的VPN的路由,但是這些路由發往對端PE后,由於不同VPN的路由之間不進行負載分擔,因此對端PE將根據BGP選路規則只選擇其中一條VPN路由,從而導致去往另一個VPN的路由丟失。
PE之間使用MP-BGP(Multiprotocol Extensions for BGP-4,BGP-4的多協議擴展)來發布VPN路由,並使用VPN-IPv4地址來解決上述問題。
VPN-IPv4地址共有12個字節,包括8字節的路由標識符RD(Route Distinguisher)和4字節的IPv4地址前綴,如圖4所示。
RD用於區分使用相同地址空間的IPv4前綴,增加了RD的IPv4地址稱為VPN-IPv4地址(即VPNv4地址)。PE從CE接收到IPv4路由后,轉換為全局唯一的VPN-IPv4路由,並在公網上發布。
RD的結構使得每個服務供應商可以獨立地分配RD,但為了在CE雙歸屬的情況下保證路由正常,必須保證PE上的RD全局唯一。
說白了:就是區分路由條目使用的
VPN Target
BGP/MPLS IP VPN使用BGP擴展團體屬性-VPN Target(也稱為Route Target)來控制VPN路由信息的發布。
每個VPN實例關聯一個或多個VPN Target屬性。有兩類VPN Target屬性:
- Export Target:本地PE從直接相連Site學到IPv4路由后,轉換為VPN-IPv4路由,並為這些路由設置Export Target屬性。Export Target屬性作為BGP的擴展團體屬性隨路由發布。
- Import Target:PE收到其它PE發布的VPN-IPv4路由時,檢查其Export Target屬性。當此屬性與PE上某個VPN實例的Import Target匹配時,PE就把路由加入到該VPN實例中。
說白了:就是PE設備控制路由的收發
原理說明:
引流前:
我們先來說說沒有做引流的時候,數據的流向。如下圖所示,
- 路由器訪問服務器走的是紅色線標
- 服務器訪問路由器走的是藍色線標
由於現在需要添加防火牆,又不想直接對網絡拓撲進行變更,此時選擇旁掛防火牆,將來回的數據流都引到防火牆,然后防火牆使用自身的策略進行訪問控制。
引流后:
- 路由器訪問服務器走的是紅色線標
- 服務器訪問路由器走的是藍色線標
原理
將核心交換機(HX-SW)虛擬化成2台小的核心交換機,姑且成為vrf1和vrf2.
vrf2說明:在核心交換機上將vlan4/vlan2都加入vpn-instance vrf2.當收到路由器方向來的流量后,會進入vrf2的vpn-instance,然后我們在vpn-instance vrf2中配置路由,下一跳指向防火牆vlan2,防火牆再寫下一跳指向HX-SW的vlan3.
vrf1說明:在核心交換機上將vlan100、vlan200、vlan2加入vpn-instance vrf1中。當內部服務器需要訪問路由器時,在核心交換機的vpn-instance vrf1中寫路由下一跳指向fw的vlan3.在fw中寫路由下一跳指向核心交換機vlan2。在核心交換機的vpn-instance vrf2中寫一條默認路由去往路由器。
實驗說明:
1.拓撲圖
2.配置
AR1
[V200R003C00]
#
sysname AR1
#
snmp-agent local-engineid 800007DB03000000000000
snmp-agent
#
clock timezone China-Standard-Time minus 08:00:00
#
portal local-server load portalpage.zip
#
drop illegal-mac alarm
#
set cpu-usage threshold 80 restore 75
#
aaa
authentication-scheme default
authorization-scheme default
accounting-scheme default
domain default
domain default_admin
local-user admin password cipher %$%$K8m.Nt84DZ}e#<0`8bmE3Uw}%$%$
local-user admin service-type http
#
firewall zone Local
priority 15
#
interface Ethernet0/0/0
#
interface Ethernet0/0/1
#
interface Ethernet0/0/2
#
interface Ethernet0/0/3
#
interface Ethernet0/0/4
#
interface Ethernet0/0/5
#
interface Ethernet0/0/6
#
interface Ethernet0/0/7
#
interface GigabitEthernet0/0/0
ip address 10.10.4.5 255.255.255.0
#
interface GigabitEthernet0/0/1
#
interface NULL0
#
ip route-static 10.10.100.0 255.255.255.0 10.10.4.254
ip route-static 10.10.200.0 255.255.255.0 10.10.4.254
#
user-interface con 0
authentication-mode password
user-interface vty 0 4
user-interface vty 16 20
#
wlan ac
#
return
FW
# sysname FW # vlan batch 2 to 3 # cluster enable ntdp enable ndp enable # drop illegal-mac alarm # diffserv domain default # drop-profile default # aaa authentication-scheme default authorization-scheme default accounting-scheme default domain default domain default_admin local-user admin password simple admin local-user admin service-type http # interface Vlanif1 # interface Vlanif2 ip address 10.10.2.5 255.255.255.0 # interface Vlanif3 ip address 10.10.3.5 255.255.255.0 # interface MEth0/0/1 # interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 2 to 4094 # interface GigabitEthernet0/0/2 # interface GigabitEthernet0/0/3 # interface GigabitEthernet0/0/4 # interface GigabitEthernet0/0/5 # interface GigabitEthernet0/0/6 # interface GigabitEthernet0/0/7 # interface GigabitEthernet0/0/8 # interface GigabitEthernet0/0/9 # interface GigabitEthernet0/0/10 # interface GigabitEthernet0/0/11 # interface GigabitEthernet0/0/12 # interface GigabitEthernet0/0/13 # interface GigabitEthernet0/0/14 # interface GigabitEthernet0/0/15 # interface GigabitEthernet0/0/16 # interface GigabitEthernet0/0/17 # interface GigabitEthernet0/0/18 # interface GigabitEthernet0/0/19 # interface GigabitEthernet0/0/20 # interface GigabitEthernet0/0/21 # interface GigabitEthernet0/0/22 # interface GigabitEthernet0/0/23 # interface GigabitEthernet0/0/24 # interface NULL0 # ip route-static 0.0.0.0 0.0.0.0 10.10.2.254 ip route-static 10.10.100.0 255.255.255.0 10.10.3.254 ip route-static 10.10.200.0 255.255.255.0 10.10.3.254 # user-interface con 0 user-interface vty 0 4 # return
HX-SW
#
sysname HX-SW
#
vlan batch 2 to 4 100 200
#
cluster enable
ntdp enable
ndp enable
#
drop illegal-mac alarm
#
diffserv domain default
#
ip vpn-instance vrf1
ipv4-family
route-distinguisher 222:2
vpn-target 12:12 export-extcommunity
vpn-target 12:12 import-extcommunity
#
ip vpn-instance vrf2
ipv4-family
route-distinguisher 444:4
vpn-target 400:4 export-extcommunity
vpn-target 400:4 import-extcommunity
#
drop-profile default
#
aaa
authentication-scheme default
authorization-scheme default
accounting-scheme default
domain default
domain default_admin
local-user admin password simple admin
local-user admin service-type http
#
interface Vlanif1
#
interface Vlanif2
ip binding vpn-instance vrf2
ip address 10.10.2.254 255.255.255.0
#
interface Vlanif3
ip binding vpn-instance vrf1
ip address 10.10.3.254 255.255.255.0
#
interface Vlanif4
ip binding vpn-instance vrf2
ip address 10.10.4.254 255.255.255.0
#
interface Vlanif100
ip binding vpn-instance vrf1
ip address 10.10.100.254 255.255.255.0
#
interface Vlanif200
ip binding vpn-instance vrf1
ip address 10.10.200.254 255.255.255.0
#
interface MEth0/0/1
#
interface GigabitEthernet0/0/1
port link-type access
port default vlan 4
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
#
interface GigabitEthernet0/0/3
port link-type trunk
port trunk allow-pass vlan 2 to 4094
#
interface GigabitEthernet0/0/4
#
interface GigabitEthernet0/0/5
#
interface GigabitEthernet0/0/6
#
interface GigabitEthernet0/0/7
#
interface GigabitEthernet0/0/8
#
interface GigabitEthernet0/0/9
#
interface GigabitEthernet0/0/10
#
interface GigabitEthernet0/0/11
#
interface GigabitEthernet0/0/12
#
interface GigabitEthernet0/0/13
#
interface GigabitEthernet0/0/14
#
interface GigabitEthernet0/0/15
#
interface GigabitEthernet0/0/16
#
interface GigabitEthernet0/0/17
#
interface GigabitEthernet0/0/18
#
interface GigabitEthernet0/0/19
#
interface GigabitEthernet0/0/20
#
interface GigabitEthernet0/0/21
#
interface GigabitEthernet0/0/22
#
interface GigabitEthernet0/0/23
#
interface GigabitEthernet0/0/24
#
interface NULL0
#
ip route-static vpn-instance vrf1 0.0.0.0 0.0.0.0 10.10.3.5
ip route-static vpn-instance vrf2 0.0.0.0 0.0.0.0 10.10.4.5
ip route-static vpn-instance vrf2 10.10.100.0 255.255.255.0 10.10.2.5
ip route-static vpn-instance vrf2 10.10.200.0 255.255.255.0 10.10.2.5
#
user-interface con 0
user-interface vty 0 4
#
return
JR-SW
#
sysname JR-SW
#
vlan batch 100 200
#
cluster enable
ntdp enable
ndp enable
#
drop illegal-mac alarm
#
diffserv domain default
#
drop-profile default
#
aaa
authentication-scheme default
authorization-scheme default
accounting-scheme default
domain default
domain default_admin
local-user admin password simple admin
local-user admin service-type http
#
interface Vlanif1
#
interface MEth0/0/1
#
interface GigabitEthernet0/0/1
port link-type access
port default vlan 100
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 200
#
interface GigabitEthernet0/0/4
#
interface GigabitEthernet0/0/5
#
interface GigabitEthernet0/0/6
#
interface GigabitEthernet0/0/7
#
interface GigabitEthernet0/0/8
#
interface GigabitEthernet0/0/9
#
interface GigabitEthernet0/0/10
#
interface GigabitEthernet0/0/11
#
interface GigabitEthernet0/0/12
#
interface GigabitEthernet0/0/13
#
interface GigabitEthernet0/0/14
#
interface GigabitEthernet0/0/15
#
interface GigabitEthernet0/0/16
#
interface GigabitEthernet0/0/17
#
interface GigabitEthernet0/0/18
#
interface GigabitEthernet0/0/19
#
interface GigabitEthernet0/0/20
#
interface GigabitEthernet0/0/21
#
interface GigabitEthernet0/0/22
#
interface GigabitEthernet0/0/23
#
interface GigabitEthernet0/0/24
#
interface NULL0
#
user-interface con 0
user-interface vty 0 4
#
return
注:附實驗的拓撲資料,需要使用華為模擬器ensp打開
鏈接:https://pan.baidu.com/s/18_MegvDRlZiZpUW2H4ADEQ 提取碼:ox19