講述VPN配置實例中用用BGP分發路由信息
講述VPN配置實例中用用BGP分發路由信息,使用無線路由器時,經常出現VPN配置實例等問題,還有VPN配置實例設置問題以及上網經常掉線,這里將介紹VPN配置實例所涉及到的很多問題的解決方法。
有時,一個站點可能被用戶用VLAN分成幾個虛擬站點。每個虛擬站點可能是不同VPN配置實例的成員。PE要為每個虛擬站點維護一個獨立的轉發表。例,如果一個CE支持VLAN,并希望每個VLAN對應于一個獨立的VPN配置實例,PE與CE間發送的包可封裝在該站點的VLAN中。
PE可以利用這一點,以及接收包的接口,把該包指定到某一虛擬站點。也可以把接口分成多個“子接口”(尤其是如果接口是FrameRelay或ATM),并根據包到達的子接口把包指定到一個VPN配置實例。或者簡單些,每個虛擬站點使用不同的接口。無論何種情況,即使有多個虛擬站點,每個站點都只需一個CE路由器。
當然,如果愿意,每個虛擬站點也可以使用不同的CE路由器。注意,無論哪種情況,控制業務流屬于何VPN配置實例的機制和策略都由用戶掌握。如果希望一個主機在多個虛擬站點上,那么主機必須確定,每個包對應于哪一個虛擬站點。例如,它可以在不同的VLAN的不同虛擬站點上通過不同的網絡接口發送包。這些并不要求CE支持MPLS。對于支持MPLS的CE如何支持多個虛擬站點,在第八節中有一個簡短的討論。
用BGP分發VPN路由信息
PE路由器使用BGP相互分發VPN配置實例路由信息(更確切地說,是引起路由信息的分發)。一個BGP傳播者只能安裝和分發一個路由到指定的地址前綴。我們允許每個VPN有各自的地址空間,也就是說,相同的地址可被若干VPN配置實例使用,而在每個VPN配置實例中這個地址代表不同的系統。
因此,我們應該允許BGP為某個IP地址前綴安裝和分發多個路由。甚至于,如果BGP為某一IP地址前綴安裝了多個路由,我們必須確保在任何一個站點轉發表中只出現其中的一個。我們使用下面描述的新的地址族來實現上述目標。
VPN-IPv4地址族
BGP多協議擴展[3]允許BGP攜帶來自多個“地址族”的路由。我們先介紹VPN-IPv4地址族的概念。一個VPN-IPv4地址長12字節,以8字節的“路由標記”RD開頭,后接一個4字節的IPv4地址。如果兩個VPN配置實例使用相同的地址前綴,PE可以把它們翻譯成不同的VPN-IPv4地址前綴。
這樣,如果在兩個VPN配置實例中使用了相同的地址,也可以分別為每個VPN配置實例安裝與該地址對應的不同的路由。RD本身并沒什么特別的語義,它并不包含路由來源或向哪些VPN配置實例分發路由的信息。RD的目的僅在于可以對一普通的IPv4前綴產生一個與眾不同的路由,RD還可以用于決定路由的重新分發。
RD還可以用于產生到同一系統的多個不同的路由。在第3節中,我們曾給出一個例子:從內聯網到某一服務器的路由必須與從外聯網的業務流路由不同。這可以通過產生兩個IPv4地址部分相同,但RD不同的VPN-IPv4路由來實現。
這樣,BGP就可以安裝到同一系統的多個路由,還可以使用一定的策略(見第4.2.3節)來決定包的路由選擇。RD的結構使得每個SP可以管理各自的“編號空間”(如,可以自主地指定RD),而不與其它SP的RD沖突。
一個RD包括兩字節的類別域,一個管理者域,和一個指定號碼域。類別域的值決定了其它兩個域的長度和管理者域的語義。管理者域表明一個指定的授權號,指定號碼域包括由已鑒定的授權方出于某種目的指定的一個數字。
如,一個RD的管理者域包含一個自治系統編號(ASN),IANA將這個ASN分配給一SP,4字節的號碼域包括的編號就是由該SP指定的。RD采用這種結構是為了確??梢蕴峁¬PN主干網的SP總可以在需要的時候產生一個唯一的RD。
不過,這種結構并沒有其它語義。如果BGP比較這樣的兩個地址前綴時,它并不理會這種結構。如果VPN-IPv4地址的管理者域和指定編號域都是全0,則可以視作是與IPv4含義相同。尤其對BGP而言,這個VPN-IPv4地址與相應的IPv4地址被認為是類似的。而其它情況下,BGP不會認為兩者類似。
一個站點轉發表中對任何一個IPv4地址前綴只有一個VPN-IPv4路由。當包的目標地址與一個VPN-IPv4路由匹配時,只需IPv4部分匹配即可。一個PE需要為通向某一CE的路由配置相應的RD。可以為PE中通向同一CE的所有路由配置同一個RD,也可以為通向同一CE的不同路由配置不同的RD。