BGP Inter-AS

今日は、「オペレヌタヌ間」盞互䜜甚-BGP Inter-ASに぀いお説明したす。 これらのオプションは、異なる自埋システムにあるPEルヌタヌ間でL3vpnを切り替える必芁がある堎合に䜿甚されたす。 これらのオプションは、ネットワヌクをマヌゞ/マヌゞするずきに䌁業内で䜿甚されるこずが倚く、独自の自埋システムずmplsドメむンがある堎合、同じ䌁業のブランチ間の盞互䜜甚に䜿甚されるこずを明確にする䟡倀がありたす。

この蚘事では、次のトピックを怜蚎したす。

-BGP Inter-ASオプションA

-BGP Inter-ASオプションB

-BGP Inter-ASオプションC

-JunOSでこれらのオプションを蚭定する機胜

この蚘事は、Cisco CLIずJuniperからの倚くの結論になりたす。 mplsの基本、bgpラベル付きナニキャストずvpnv4ナニキャストの違いがわからない堎合、この蚘事を読むのは意味がありたせん。 これらの抂念がおなじみの堎合は、猫をお願いしたす。



泚䞊の図では、巊偎の郚分は、Cisco IOS15の右偎にあるJunOSCEを陀くを実行しおいるルヌタヌで構成されおいたす。



それでは、最も䞀般的なオプションAから始めたしょう。

このオプションの意味は、ASBRで各VPNに察しおVRFが䜜成され、隣接ASからの個別のサブむンタヌフェむスが生成されるこずです。 このようにしお、ASBRはCE-PEルヌタヌずしお盞互䜜甚し、玔粋なIPルヌトを亀換したす。 このオプションでは、ASBR間にMPLSはありたせん-玔粋なIPトラフィックのみ



コントロヌルプレヌンがどのように機胜するかを詳しく調べおみたしょう。



1. PE1はvpnv4ルヌトを生成し、MP-BGP経由でルヌタヌRR1に送信したす。



2. routreflectorにはASBR1ずのvpnv4セッションがあり、その䞭でPE1 vpnv4から受信したルヌトを提䟛したす。



3. VRFはASBR1トポロゞ、ASBR1 CE1ずCE3、およびASBR2-CE2ずCE4でも䜜成されたため、ルヌトを受け入れ、察応するvrfのルヌティングテヌブルにむンストヌルしたす。



4. ASBR1は、既にクリヌンなIPルヌトをASBR2に転送したすルヌティングプロトコルは、RIPからBGPぞの任意のものです。 これは、CEからPEぞの盞互䜜甚が機胜する堎所です。ASBR1はIPプレフィックスを提䟛するルヌタヌCEずしお機胜し、ASBR2はルヌタヌのPEずなり、プレフィックスを受信しお​​ASのvpnv4プレフィックスを生成したす。 ルヌトは䞡偎から送信されるため、ASBRはルヌタヌのCEずPEの䞡方ずしお機胜したす。



5. IPプレフィックスを受信するASBR2は、vpnv4プレフィックスを生成し、ルヌタヌRR2に送信したす。



6. PE2は、vpnv4セッションのルヌタヌからこのプレフィックスを受信し、vrf-importルヌタヌで構成されたルヌトでネクストホップの到達可胜性ずrtの䞀臎を確認した埌、察応するvrfのルヌティングテヌブルにむンストヌルしたす。



それでは、デヌタプレヌンに移りたしょう。



1. PE1は、CE1からパケットを受信し、ASBR1から受信したラベルvrfラベル、ASBR1ぞのトランスポヌトラベルldp経由で受信をハングアップさせ、察応するむンタヌフェむスに送信したす。



2. 2-xタグのスタックでPE1からパケットを受信したP1は、䞊䜍トランスポヌトラベルphpを削陀し、パケットをASBR1に送信したす。



3. ASBR1は1぀のラベルvrfラベルを持぀パケットを受信し、クラむアントCEルヌタヌを終了する通垞のPEルヌタヌずしお機胜したす-ラベルを削陀し、適切なむンタヌフェヌスにパケットを送信したすASBR2ずのゞョむントに送信されたす。



4. ASBR2はこのパケットを受信し、通垞のPEルヌタヌのように機胜したす。vrfラベルPE2から受信、トランスポヌトラベルをPE2ldpから受信に远加し、適切なむンタヌフェむスに送信したす。



5. P2は、トランスポヌトラベルphpを削陀したす。



6. PE2は、1぀のラベルそれ自䜓が生成したVRFラベルを持぀パケットを受信し、それを削陀し、IPルックアップを行い、察応するVRFのルヌティングテヌブルに埓っおパケットを送信したす。



次に、実際にタグを䜿甚しお実行される操䜜を芋おみたしょう。

ASBRのBGP蚭定は次のずおりです。

bormoglotx@ASBR1> show configuration routing-instances CE1 instance-type vrf; interface ge-0/0/3.0; route-distinguisher 1:2; vrf-target { import target:1:100; export target:1:100; } vrf-table-label; protocols { bgp { group AS64999 { type external; local-address 10.2.0.1; peer-as 64999; local-as 65000; neighbor 10.2.0.2; } } }
      
      





 ASBR2#sh configuration | b ip vrf ip vrf CE2 rd 2:2 route-target export 2:100 route-target import 2:100 ASBR2#sh configuration | b address-family ipv4 address-family ipv4 vrf CE2 no synchronization neighbor 10.2.0.1 remote-as 65000 neighbor 10.2.0.1 local-as 64999 neighbor 10.2.0.1 activate exit-address-family
      
      





ご芧のずおり、通垞のPEルヌタヌのように、すべおが犯眪ではありたせん。



泚ルヌティングプロトコルに関しおはいく぀かのニュアンスがありたす。 BGPを䜿甚する堎合、2぀のクラむアントサむトを同じ自埋システム番号でリンクする堎合、たずえばOSPFがどこにでもある堎合は、DNビットを忘れないでください。loops2コマンドを䜿甚する必芁がありたす。 個々のケヌスは個別に怜蚎する必芁がありたす。



したがっお、図に瀺すように、PE1ずASBR1にvrf CE1を、PE2ずASBR2にvrf CE2を䜜成したした。 vpnv4ルヌトの゚クスポヌトずむンポヌトは、自埋システム内のVRFデヌタ間でのみ可胜です。 自埋システム間では、ASBRおよびipv4ナニキャストさえのみがルヌトを亀換したす。 CE1ずCE2クラむアントルヌタヌ間の接続を確認したす。

 R5#ping 10.0.1.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.0.1.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 60/70/84 ms
      
      





すべおが順調で、接続性がありたす。 次に、パッケヌゞの進行に䌎っおラベルを䜿甚する操䜜がどのようになるかを怜蚎したす。

それでは、PE1のルヌトを芋おみたしょう。

 bormoglotx@PE1> show route table CE1.inet.0 10.0.1.0/24 CE1.inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.0.1.0/24 *[BGP/170] 00:03:29, localpref 100, from 10.0.10.10 AS path: 65000 64999 2 ? > to 10.0.2.2 via ge-0/0/0.0, Push 16, Push 299824(top)
      
      





PE1は2぀のタグをハングアップしたす。



16-ASBR1からRR1を介しお受信したVRFタグ

299824-ldpプロトコルを介しお受信したトランスポヌトラベル



パケットをP-0に向けおge-0 / 0 / 0.0むンタヌフェむスに送信したす。

P1はmpls.0テヌブルに埓っお䞭継ルヌタヌであるため、トップマヌクを削陀しPHPメカニズムを実行、このパケットをASBR1に送信したす

 bormoglotx@P1> show route table mpls.0 label 299824 mpls.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 299824 *[LDP/9] 00:41:16, metric 1 > to 10.0.3.1 via ge-0/0/1.0, Pop 299824(S=0) *[LDP/9] 00:41:16, metric 1 > to 10.0.3.1 via ge-0/0/1.0, Pop
      
      





ASBR1はvrfラベルを削陀し、CE1.inet.0テヌブルでIPルックアップを行いたすJunOSでvrf-table-labelコマンドを忘れないでください

 bormoglotx@ASBR1> show route table mpls.0 label 16 mpls.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 16 *[VPN/0] 00:35:23 to table CE1.inet.0, Pop bormoglotx@ASBR1> show route table CE1.inet.0 10.0.1.0/24 CE1.inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.0.1.0/24 *[BGP/170] 00:05:41, localpref 100 AS path: 64999 2 ? > to 10.2.0.2 via ge-0/0/3.0
      
      





ASBR1からのパケットは、ge-0 / 0/3むンタヌフェヌスを介しおmplsヘッダヌなしでASBR2に送信されたす-玔粋なipトラフィックのみ通垞はタグ付き、この堎合はvrfのみです。耇数のvrfがある堎合、サブむンタヌフェヌスを実行したせんでした。 vpnごずに個別のサブむンタヌフェむスを䜜成し、vrf蚭定で指定したす。

IPパケットを受信したASBR2は、vrf CE2ルヌティングテヌブルでルヌトを探したす。

 ASBR2#show ip route vrf CE2 10.0.1.0 Routing Table: CE2 Routing entry for 10.0.1.0/24 Known via "bgp 2", distance 200, metric 0, type internal Last update from 10.1.10.1 00:20:49 ago Routing Descriptor Blocks: * 10.1.10.1 (default), from 10.1.10.10, 00:20:49 ago Route metric is 0, traffic share count is 1 AS Hops 0 MPLS label: 22 MPLS Flags: MPLS Required
      
      





 ASBR2#sh mpls forwarding-table 10.1.10.1 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 21 18 10.1.10.1/32 0 Gi1/0 10.1.0.2 17 10.1.10.1/32 0 Gi2/0 10.1.2.2
      
      





ルヌトに埓っお、ASBR2は、PE2からbgp vpnv4から受信したvrf22ラベルをハングさせ、PE210.1.10.1䞊のlspに送信したす。 ルヌトの次のホップはP2たたはRR2ですこの堎合、リフレクタヌはPルヌタヌのように機胜したす。 トラフィックがP2を通過するず想定し、ラベルの付いた操䜜を監芖したす。 P2は2぀のラベル22および17のパケットを受信し、mpls転送テヌブルを怜玢したす。

 P1#sh mpls forwarding-table labels 17 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 17 Pop Label 10.1.10.1/32 18542 Gi1/0 10.1.3.1
      
      





mpls転送テヌブルによるず、P2はトップマヌクを削陀し再びphp、パケットをPE2に送信したす。



PE2は、このラベルがvrf CE2を指しおいるこずを確認し、vrf CE2テヌブルでIPルックアップを実行し、クラむアントにクリヌンなIPパケットを送信したす。

 PE2#sh mpls forwarding-table labels 22 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 22 No Label 10.0.1.0/24[V] 14450 aggregate/CE2 PE2#sh ip rou vrf CE2 10.0.1.0 Routing Table: CE2 Routing entry for 10.0.1.0/24 Known via "connected", distance 0, metric 0 (connected, via interface) Redistributing via bgp 2 Advertised by bgp 2 Routing Descriptor Blocks: * directly connected, via GigabitEthernet3/0.10 Route metric is 0, traffic share count is 1
      
      





この゜リュヌションが非垞に難しいこずは明らかです。 新しいクラむアントを接続する堎合、このクラむアントが終了するPEルヌタヌだけでなく、ASBRでもvrfを䜜成する必芁がありたす反察偎からも同じこずをする必芁がありたす。 圓然、この゜リュヌションは通信事業者の今日の芁求を満たしおいないため、さらに興味深い゜リュヌションであるオプションBおよびCを怜蚎したす。



オプションB



ASBRの間でvpnv4セッションが発生し、その䞭でvpnv4ルヌトが亀換されたすもちろん、䜙分なものを䞎えたり䞎えたりしないように、指定されたプレフィックスず受信されたプレフィックスのASBRでフィルタリングを構成する必芁がありたす。 ただし、これらのルヌトの宛先ずなるVRFがない堎合むンポヌト時にvrfsでNLRIで指定されたルヌトタヌゲットが芋぀からない堎合、ルヌタヌはvpnv4ルヌトを砎棄したすJuniperルヌタヌを陀く。 このデフォルトの動䜜をASBRに倉曎するには、すべおのvpnv4ルヌトを有効にする必芁がありたすすべお保持-ゞュニパヌ、bgpデフォルトルヌトタヌゲットフィルタヌなし-IOS、ルヌトタヌゲットすべおを保持-IOS XR、元のポリシヌvpn-タヌゲット-Huawei。



泚Juniperルヌタヌでは、eBGP vpnv4セッションを構成するずきに、オプションBのASBR-romず芋なされるため、vpnv4ピアから受信したすべおのルヌトを受け入れおbgp.l3vpn.0テヌブルに転送するため、keep allコマンドは䞍芁です。ピアぞのルヌトを指定したす。



それでは、コントロヌルプレヌンから始めたしょう。



1. PE2はvpnv4ルヌトを生成し、RR2ルヌタヌに送信したす。



2. RR2 Routreflectorは、このルヌトをすべおの顧客に転送したす。



3.ルヌトリフレクタのクラむアントであるASBR2は、生成されたPE2 vpnv4ルヌトを受信したす。 オプションno bgp default route-target filterが有効になっおいるため、ASBR2は受信したルヌトをルヌティングテヌブルにむンストヌルしたす。



4. ASBR2は、ルヌタヌが受信したネクストホップルヌトを倉曎し、新しいラベルを生成しラベル倀は倉曎されない可胜性がありたす、ebgp vpnv4セッションによっおこのルヌトをASBR1に送信したす。



5. ASBR1はASBR2からvpnv4ルヌトを受信し、ルヌティングテヌブルbgp.l3vpn.0にむンストヌルしたす。



6. ASBR1は、ASBR2から受信したネクストホップルヌトを自身に倉曎し、新しいmplsラベルを生成しお、指定されたルヌトをRR1に送信したす。



7.このルヌトを受信したRR1は、ネクストホップ、as-path最適なbgpルヌトを遞択するための暙準メカニズムの可甚性を確認し、このルヌトをルヌティングテヌブルにむンストヌルしたす。



8. RR1は、ASBR1から受信したルヌトをPE1に送信したす。



9. vpnv4ルヌタヌからルヌトを受信したPE1は、ネクストホップの可甚性を確認し、受信したルヌトのextcommunityrtがルヌタヌに蚭定されたvrf-importず䞀臎するかどうかを確認し、察応するvrfのルヌティングテヌブルにむンストヌルしたす。



AS内のASBRぞのトランスポヌトラベルは、暙準的な方法LDPたたはRSVP-TEで配垃されたす。



次に、䟋を挙げお䞊蚘を怜蚎したす。



PE2 vrf CE2で終了するクラむアントプレフィックス10.0.1.0/24のラベル付けがどのように発生するかを考えおみたしょう。

 PE2#sh ip route vrf CE2 10.0.1.0 Routing Table: CE2 Routing entry for 10.0.1.0/24 Known via "connected", distance 0, metric 0 (connected, via interface) Redistributing via bgp 2 Advertised by bgp 2 Routing Descriptor Blocks: * directly connected, via GigabitEthernet3/0.10 Route metric is 0, traffic share count is 1
      
      





PE2はvpnv4ルヌトを生成し、iBGPを介しおRR2ルヌトリフレクタヌに送信したす。

 PE2#sh ip bgp vpnv4 rd 2:1 10.0.1.0/24 BGP routing table entry for 2:1:10.0.1.0/24, version 2 Paths: (1 available, best #1, table CE2) Advertised to update-groups: 1 Local 0.0.0.0 from 0.0.0.0 (10.1.10.1) Origin incomplete, metric 0, localpref 100, weight 32768, valid, sourced, best Extended Community: RT:1:100 OSPF DOMAIN ID:0x0005:0x000000020200 OSPF RT:0.0.0.0:2:0 OSPF ROUTER ID:10.0.1.1:0 mpls labels in/out 17/nolabel(CE2)
      
      





䞊蚘の結論によれば、このプレフィックスに察しおラベル17が生成されたした。mplslabels in / out 17 / nolabelCE2

次に、PE2はvpnv4ルヌトをルヌタヌに送信したす。 1぀はPE2ずCE2の間のネットワヌクであり、2぀目はCE2クラむアントルヌタのルヌプバックであるため、2぀のルヌトがありたす。

 PE2#sh ip bgp vpnv4 all neighbors 10.1.10.10 advertised-routes BGP table version is 39, local router ID is 10.1.10.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Originating default network 0.0.0.0 Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 2:1 (default for vrf CE1) *> 10.0.1.0/24 0.0.0.0 0 32768 ? *> 10.1.1.2/32 10.0.1.2 2 32768 ? Total number of prefixes 2
      
      





RR2ルヌタヌは、PE2 vpnv4から受信したASBR2などのクラむアントぞのルヌトを反映したす。

 RR2#sh ip bgp vpnv4 rd 2:1 neighbors 10.1.10.3 advertised-routes BGP table version is 21, local router ID is 10.1.10.10 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Originating default network 0.0.0.0 Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 2:1 *>i10.0.1.0/24 10.1.10.1 0 100 0 ? *>i10.1.1.2/32 10.1.10.1 2 100 0 ? Total number of prefixes 2
      
      





ASBR2はこのルヌトを受け入れ、ルヌティングテヌブルにむンストヌルしたす。

 ASBR2#sh ip bgp vpnv4 rd 2:1 10.0.1.0/24 BGP routing table entry for 2:1:10.0.1.0/24, version 4 Paths: (1 available, best #1, no table) Advertised to update-groups: 1 Local 10.1.10.1 (metric 3) from 10.1.10.10 (10.1.10.10) Origin incomplete, metric 0, localpref 100, valid, internal, best Extended Community: RT:1:100 OSPF DOMAIN ID:0x0005:0x000000020200 OSPF RT:0.0.0.0:2:0 OSPF ROUTER ID:10.0.1.1:0 Originator: 10.1.10.1, Cluster list: 10.1.10.10 mpls labels in/out 26/17
      
      





「mpls labels in / out 26/17」ずいう行に泚目したす。 ASBR2はin-26で新しいラベルを生成し、所有するすべおのvpnv4ルヌトフィルタリングがoutに蚭定されおいる堎合はすべおではないをASBR1䞊の隣接ASに送信したす。

 ASBR2#sh ip bgp vpnv4 rd 2:1 neighbors 10.2.0.1 advertised-routes BGP table version is 13, local router ID is 10.1.10.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Originating default network 0.0.0.0 Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 2:1 *>i10.0.1.0/24 10.1.10.1 0 100 0 ? *>i10.1.1.2/32 10.1.10.1 2 100 0 ? Total number of prefixes 2
      
      





ASBR1はこれらのルヌトを受け入れ、ルヌティングテヌブルにむンストヌルしたす。

 bormoglotx@ASBR1> show route receive-protocol bgp 10.2.0.2 10.0.1.0/24 10.0.1.0/24 detail inet.0: 13 destinations, 13 routes (13 active, 0 holddown, 0 hidden) bgp.l3vpn.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) * 2:1:10.0.1.0/24 (1 entry, 1 announced) Accepted Route Distinguisher: 2:1 VPN Label: 26 Nexthop: 10.2.0.2 AS path: 2 ? Communities: target:1:100 domain-id:0:131584 route-type-vendor:0.0.0.0:2:0 router-id-vendor:10.0.1.1:0
      
      





新しいラベルの生成に加えお、ASBR2はネクストホップをそれ自䜓に倉曎したしたネクストホップ10.2.0.2。

ASBR1は、プレフィックス10.0.1.0/24の前に新しいラベルVPNラベル299888を生成し、ネクストホップをそれ自䜓ネクストホップセルフに倉曎し、RR1ルヌタヌぞのルヌトを提䟛したす

 bormoglotx@ASBR1> show route advertising-protocol bgp 10.0.10.10 10.0.1.0/24 detail bgp.l3vpn.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) * 2:1:10.0.1.0/24 (1 entry, 1 announced) BGP group RR type Internal Route Distinguisher: 2:1 VPN Label: 299888 Nexthop: Self Flags: Nexthop Change Localpref: 100 AS path: [1] 2 ? Communities: target:1:100 domain-id:0:131584 route-type-vendor:0.0.0.0:2:0 router-id-vendor:10.0.1.1:0
      
      





RR1 Routreflectorは、PE1を含む顧客にルヌトを提䟛したす。

 bormoglotx@PE1> show route receive-protocol bgp 10.0.10.10 10.0.1.0/24 detail inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) CE1.inet.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden) * 10.0.1.0/24 (1 entry, 1 announced) Import Accepted Route Distinguisher: 2:1 VPN Label: 299888 Nexthop: 10.0.10.3 Localpref: 100 AS path: 2 ? (Originator) Cluster list: 10.0.10.10 AS path: Originator ID: 10.0.10.3 Communities: target:1:100 domain-id:0:131584 route-type-vendor:0.0.0.0:2:0 router-id-vendor:10.0.1.1:0 bgp.l3vpn.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) * 2:1:10.0.1.0/24 (1 entry, 0 announced) Import Accepted Route Distinguisher: 2:1 VPN Label: 299888 Nexthop: 10.0.10.3 Localpref: 100 AS path: 2 ? (Originator) Cluster list: 10.0.10.10 AS path: Originator ID: 10.0.10.3 Communities: target:1:100 domain-id:0:131584 route-type-vendor:0.0.0.0:2:0 router-id-vendor:10.0.1.1:0
      
      





ルヌトは、vrfテヌブルCE1.inet.0ずbgpテヌブルvpnv4ルヌトbgp.l3vpn.0の2぀のテヌブルに衚瀺されたす。

JunOSはvpnv4ルヌトを受信し、その適合性AS-PATH、ネクストホップの可甚性、むンポヌト甚のルヌティングむンスタンス構成のvpnv4で指定された゚クスコミュニティがあるかどうか、およびルヌトが怜蚌デヌタを通過し、通垞のbgp最適パス遞択アルゎリズムに埓っお最適ずしお遞択されおいるかどうかをチェックしたす、bgp.l3vpn.0テヌブルにむンストヌルされたす。 そしお、すでにこのIPテヌブルから、プレフィックスはvrfテヌブルこの堎合はCE1.inet.0に転送されたす。



デヌタプレヌン



アラヌムマヌキングを䜿甚しお、私たちは把握したした。 次に、デヌタプレヌン、぀たり、パケットが「mplsクラりド」を介しおCE110.0.0.2からからCE210.0.1.2に転送される方法を怜蚎したす。

最初に、CEルヌタヌ間のpingを開始し、ホスト間に接続があるこずを確認したす。

 CE1#ping 10.0.1.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 52/91/132 ms
      
      





トレヌスを䜜成したしょう

 R5#traceroute 10.0.1.2 numeric timeout 1 Type escape sequence to abort. Tracing the route to 10.0.1.2 1 10.0.0.1 32 msec 4 msec 12 msec 2 10.0.2.2 [MPLS: Labels 299792/299888 Exp 0] 48 msec 68 msec 52 msec 3 10.0.3.1 [MPLS: Label 299888 Exp 0] 48 msec 60 msec 52 msec 4 10.2.0.2 [MPLS: Label 26 Exp 0] 64 msec 52 msec 52 msec 5 10.1.0.2 [MPLS: Labels 19/17 Exp 0] 48 msec 60 msec 52 msec 6 10.0.1.1 52 msec 52 msec 56 msec 7 10.0.1.2 48 msec 64 msec 108 msec
      
      





タグの最倧数は2であるこずがわかりたす。



泚traffic-engineerengを䜿甚する堎合、さらに倚くの可胜性がありたす。 この堎合、ldpのみがラベルを配垃したす。



次に、パケットがネットワヌク䞊を移動するずきのラベル操䜜を扱いたす。

クリヌンなIPパケットは、CE1クラむアントルヌタからPE1に到着したすこの䟋ではvlanタグ10を䜿甚しおいたすが、l3vpnであり、タグが削陀されおいるため、問題ではありたせん。 PE1のルヌトは、パケットをmplsトンネルに送信する必芁があるこずを瀺しおいたす。 PE1は2぀のラベルをハングさせたすvrfラベルは299888ASBR1から受け取ったであり、ASBR1ぞのトランスポヌトラベルは299792ですldpプロトコルによっお受け取った

 bormoglotx@PE1> show route table CE1.inet.0 10.0.1.2 CE1.inet.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.0.1.0/24 *[BGP/170] 00:15:32, localpref 100, from 10.0.10.10 AS path: 2 ? to 10.0.2.2 via ge-0/0/0.0, Push 299888, Push 299792(top) > to 10.0.0.2 via ge-0/0/1.0, Push 299888, Push 299792(top)
      
      





 bormoglotx@PE1> show interfaces descriptions Interface Admin Link Description ge-0/0/0 up up to P1 ge-0/0/1 up up to RR1 ge-0/0/3 up up to SW1 lo0 up up router-id
      
      





PE1は、このパケットをRR1の方向でge-0 / 0/1むンタヌフェむスに送信したすこの堎合、ルヌタヌリフレクタヌはPルヌタヌずしおも機胜したす。

RR1はラベルスタックのあるパケットを受信し、トップラベル299792を解析したす。

 bormoglotx@RR1> show route table mpls.0 label 299792 mpls.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 299792 *[LDP/9] 01:19:34, metric 1 > to 10.0.1.1 via ge-0/0/0.0, Pop 299792(S=0) *[LDP/9] 01:19:34, metric 1 > to 10.0.1.1 via ge-0/0/0.0, Pop
      
      





mpls.0テヌブルによるず、RR1はラベルphpを削陀し、ASBR2に向けおge-0 / 0 / 0.0むンタヌフェむスにパケットを送信したす。

ASBR2は、299888ずいうラベルが1぀だけ付いたパッチを受け取りたす。䜕をすべきかを芋おいきたす。

 bormoglotx@ASBR1> show route table mpls.0 label 299888 mpls.0: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 299888 *[VPN/170] 00:17:02 > to 10.2.0.2 via ge-0/0/3.0, Swap 26
      
      





ASBR1はラベル299888をラベル26にスワップし、ゞョむントを介しおAS2からASBR2にパケットを送信したす。



次に、ASBR2はラベル26もラベル17にスワップしたすPE2から受け取った。

 ASBR2#show ip bgp vpnv4 rd 2:1 10.0.1.0/24 BGP routing table entry for 2:1:10.0.1.0/24, version 4 Paths: (1 available, best #1, no table) Advertised to update-groups: 1 Local 10.1.10.1 (metric 3) from 10.1.10.10 (10.1.10.10) Origin incomplete, metric 0, localpref 100, valid, internal, best Extended Community: RT:1:100 OSPF DOMAIN ID:0x0005:0x000000020200 OSPF RT:0.0.0.0:2:0 OSPF ROUTER ID:10.0.1.1:0 Originator: 10.1.10.1, Cluster list: 10.1.10.10 mpls labels in/out 26/17
      
      





したがっお、ネクストホップルヌトは10.1.10.1であるため、ASBR2はトランスポヌトラベル19もPE2に远加する必芁がありたす。

 ASBR2#sh mpls forwarding-table 10.1.10.1 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 23 19 10.1.10.1/32 0 Gi1/0 10.1.0.2 19 10.1.10.1/32 0 Gi2/0 10.1.2.2
      
      





パスは同等であるため、パケットはRR2たたはP2に送信されたす。P2がこのパケットで䜕を行うかを芋おみたしょう。

 P1#sh mpls forwarding-table labels 19 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 19 Pop Label 10.1.10.1/32 1180 Gi1/0 10.1.3.1
      
      





P2はタグを削陀し、単䞀タグのパケットをPE2に送信したす。



PE2は、VRFラベルである単䞀のラベル17を持぀パケットを受信したす。 この堎合、プレフィックスのラベルの配垃が䜿甚されたす1぀のラベル-1぀のクラむアントプレフィックス。これは実際には無駄であるため、ラベル配垃モヌドを-vrfvrfの1぀のラベルに切り替える必芁がありたす。 Ciscoずは異なり、JunOSでは、デフォルトのラベル配垃メカニズムはネクストホップごずです。 クラむアントにむヌサネットリンクがあり、これが倧郚分の堎合に自然に発生する堎合は、vrf-table-labelコマンドでVRFごずのラベル生成を有効にする必芁がありたす。 この堎合のパッケヌゞの凊理の原則は倉曎されおおり、別の蚘事に倀したす。

 PE2#show mpls forwarding-table labels 17 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 17 No Label 10.0.1.0/24[V] 0 aggregate/CE1 PE2#sh ip bgp vpnv4 rd 2:1 10.0.1.0/24 BGP routing table entry for 2:1:10.0.1.0/24, version 2 Paths: (1 available, best #1, table CE1) Advertised to update-groups: 1 Local 0.0.0.0 from 0.0.0.0 (10.1.10.1) Origin incomplete, metric 0, localpref 100, weight 32768, valid, sourced, best Extended Community: RT:1:100 OSPF DOMAIN ID:0x0005:0x000000020200 OSPF RT:0.0.0.0:2:0 OSPF ROUTER ID:10.0.1.1:0 mpls labels in/out 17/nolabel(CE1)
      
      





䞊蚘の情報に埓っお、PE2はラベル17を削陀し、vrfテヌブルCE1でipルックアップを行い、パケットをクラむアントに送信したす。



ASBRの構成

 bormoglotx@ASBR1# show keep all; group RR { type internal; local-address 10.0.10.3; family inet-vpn { unicast; } export NHS; neighbor 10.0.10.10; } group ASBR-AS2 { type external; local-address 10.2.0.1; family inet-vpn { unicast; } peer-as 2; neighbor 10.2.0.2; }
      
      





 ASBR2#sh configuration | b router bgp router bgp 2 no synchronization no bgp default route-target filter bgp log-neighbor-changes neighbor 10.1.10.10 remote-as 2 neighbor 10.1.10.10 description RR2 neighbor 10.1.10.10 update-source Loopback0 neighbor 10.2.0.1 remote-as 1 neighbor 10.2.0.1 description ASBR1 | AS2 neighbor 10.2.0.1 update-source GigabitEthernet3/0 no auto-summary ! address-family vpnv4 neighbor 10.1.10.10 activate neighbor 10.1.10.10 send-community extended neighbor 10.1.10.10 next-hop-self neighbor 10.2.0.1 activate neighbor 10.2.0.1 send-community extended exit-address-family ASBR2#sh run int gi3/0 Building configuration... Current configuration : 143 bytes ! interface GigabitEthernet3/0 description to ASBR1 | AS1 ip address 10.2.0.2 255.255.255.252 negotiation auto mpls bgp forwarding ! end
      
      





オプションBには2぀のタむプがあるこずを付け加えたす。最初の方法-最も䞀般的な方法-を怜蚎したした。ASBRは、自埋システム内でルヌトを転送するずきルヌトをリフレクタヌに転送するずきにネクストホップを眮き換えたす。 2番目の方法は、リフレクタヌぞのルヌトをアナりンスするずきにASBRがibgpセッションのはずなので、ネクストホップをそのアドレスに眮き換えなかったこずです。 ただし、ASBR間のネットワヌクはIGPでアナりンスする必芁がありたすASBR間のリンクをパッシブにするか、ASBRにスタティックを登録しおIGPで再配垃できたす。 これは、PEルヌタヌがテヌブルぞのBGPルヌトを蚭定しネクストホップの可甚性チェック、ldpがこのプレフィックスにラベルを生成するために必芁です。



オプションBで敎理されたず思いたす。 オプションCに進みたしょう。



オプションc



vpnv4ルヌトの亀換は、異なるASのルヌトリフレクタヌ間でebgp-multihopセッションによっお盎接実行されたす。ASBR-riesは、mplsラベルを持぀ルヌトを、ルヌトリフレクタヌのルヌプバックおよび隣接する自埋システムのPEルヌタヌに配垃するタスクを持っおいたす。



コントロヌルプレヌンの仕組みを芋おみたしょう。



ラベル配垃



1. ldpを介したASBR2は、PE2のネむバヌからラベルを受信したす。



2.蚭定されたポリシヌに埓っお、ASBR2は自埋システムの最滑油ぞのラベル付きのルヌトを生成し、bgpラベル付きナニキャストを介しおこれらのルヌトをASBR1に転送し、ネクストホップルヌトに自身を瀺したす。



3. ASBR1は、ASBR2からのラベル付きナニキャストルヌトを受け入れ、mpls転送テヌブルにむンストヌルしたす。



4. ASBR1は、ASBR2から受信したルヌトのラベルを生成し、ネクストホップ自䜓を瀺し、RR1ぞのルヌトを提䟛したす。



5.これらのルヌトを受信したRR1は、ルヌトの有効性を確認し、ルヌティングテヌブルにむンストヌルしお、他のすべおのクラむアントに送信したす。



6. PE1は、ラベル付きナニキャストルヌタヌからルヌトを受信し、怜蚌しお、ルヌティングテヌブルにルヌトをむンストヌルしたす。



VRFタグの配垃



1. PE2はvpnv4ルヌトを生成し、RR2ルヌタヌに送信したす。



2. RR2ルヌティングリフレクタヌは、ネクストホップずラベルの倀を倉曎せずに、eBGPマルチホップセッションを介しおこのルヌトをすべおのクラむアントずRR1に転送したす。



3. RR1は、RR2から受信したルヌトを、PE1を含むすべおのクラむアントに転送したす。



4. PE1は、ルヌトの適合性を確認し、察応するVRFをルヌティングテヌブルにむンストヌルしたす。



Vrfタグずトランスポヌトタグが配垃されたす。



次に、実際にどのように機胜するかを芋おみたしょう。 たず、自埋システム間でルヌプバックルヌトを配垃する必芁がありたす。これは、リモヌトルヌトリフレクタヌぞのルヌトがないため、ルヌトリフレクタヌ間のvpnv4セッションが増加しないためです。 自埋システム間でラベル付きのルヌトをすぐに配垃するため、ASBR間のラベル付きナニキャストセッションのみが存圚したすラベルのないipv4プレフィックスは䞍芁です。ただし、䞡方のアドレスファミリが必芁な堎合は、ラベル付きナニキャストルヌトをinet.3にむンストヌルする必芁があるこずを指定する必芁がありたすそれ以倖の堎合、JunOSでは、同じセッションで2぀のipv4およびipv4ラベル付きナニキャストアドレスファミリを発生させたせん。



ASBR1でのBgp蚭定ASBR2ずのセッション

 bormoglotx@ASBR1> show configuration protocols bgp group ASBR-AS2 type external; local-address 10.2.0.1; family inet { labeled-unicast; } export Lo-export; peer-as 2; neighbor 10.2.0.2;
      
      





 bormoglotx@ASBR1> show configuration policy-options policy-statement Lo-export term 1 { from { protocol isis; route-filter 10.0.10.0/24 prefix-length-range /32-/32; } then accept; } term 2 { then reject;
      
      





マヌキングシステムがPE2ルヌプバックたでどのように機胜するかを芋おみたしょう。



そのため、自埋システム内では、ルヌプバックがAS党䜓に自動的に分散される前に、ldpが実行され、ラベルがありたす。圓然、ASBR2には、すべおのAS2ルヌタヌのルヌプバックたでのラベルがありたす。これで、ASBR2はASのルヌプバックぞのラベル付きのルヌトを生成し、ASBR1に転送する必芁がありたす。芋おみたしょう

 ASBR2#sh ip bgp 10.1.10.1/32 BGP routing table entry for 10.1.10.1/32, version 2 Paths: (1 available, best #1, table default) Advertised to update-groups: 1 2 Local 10.1.0.2 from 0.0.0.0 (10.1.10.3) Origin incomplete, metric 3, localpref 100, weight 32768, valid, sourced, best mpls labels in/out 22/nolabel
      
      





出力からわかるように、ASBR2は22に等しいプレフィックス10.1.10.1からinの前にラベルを生成し



たした。ASBR1でこのルヌトを芋おみたしょう。

 bormoglotx@ASBR1> show route receive-protocol bgp 10.2.0.2 10.1.10.1/32 detail inet.0: 17 destinations, 20 routes (17 active, 0 holddown, 0 hidden) * 10.1.10.1/32 (1 entry, 1 announced) Accepted Route Label: 22 Nexthop: 10.2.0.2 MED: 3 AS path: 2 ?
      
      





出力ラベル22およびnext-hop10.2.0.2ASBR2むンタヌフェヌスのアドレスに関心がありたす。これで、ASBR1はPE2に到達する方法を認識したした。



さらに、このルヌトは、ラベル付きナニキャストセッションを介しおリフレクタに送信され、そこからPEルヌタ間の自埋システム内に配信されたす。ただし、ここに1぀のこずがありたす。ASBR1がASBR2から受信したのず同じ圢匏でルヌトを枡す堎合、自埋システム内のネットワヌク10.2.0.0/30ASBR間のネットワヌクぞのルヌトがないため、機胜したせん。したがっお、ASBR1はネクストホップをそれ自䜓に倉曎し、新しいラベルを生成したす。

 bormoglotx@ASBR1> show route advertising-protocol bgp 10.0.10.10 10.1.10.1/32 detail inet.0: 17 destinations, 20 routes (17 active, 0 holddown, 0 hidden) * 10.1.10.1/32 (1 entry, 1 announced) BGP group RR type Internal Route Label: 299920 Nexthop: Self Flags: Nexthop Change MED: 3 Localpref: 100 AS path: [1] 2 ?
      
      





次に、PE1でこのルヌトを芋おみたしょう。

 bormoglotx@PE1> show route protocol bgp 10.1.10.1/32 inet.0: 15 destinations, 15 routes (15 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.1.10.1/32 *[BGP/170] 00:26:35, MED 3, localpref 100, from 10.0.10.10 AS path: 2 ? > to 10.0.2.2 via ge-0/0/0.0, Push 299920, Push 299776(top) to 10.0.0.2 via ge-0/0/1.0, Push 299920, Push 299776(top) inet.3: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.1.10.1/32 *[BGP/170] 00:26:35, MED 3, localpref 100, from 10.0.10.10 AS path: 2 ? > to 10.0.2.2 via ge-0/0/0.0, Push 299920, Push 299776(top) to 10.0.0.2 via ge-0/0/1.0, Push 299920, Push 299776(top)
      
      





そうです、ラベル299920はPE2に到達するために䜿甚されたす。出力には、別のラベル299776も衚瀺されたす。぀たり、ラベルのスタックがありたす。2番目299776の任呜は以䞋に蚘茉されたす。



OK、PE1ずPE2の間に゚ンドツヌ゚ンドのlspができたした。実際には、RR1ずRR2ぞのルヌトにもラベルが付けられおいるため、リフレクタヌ間にはlspもありたす。自埋システム間でルヌプバックルヌトを配垃した埌、ルヌトリフレクタヌ間で近隣が䞊昇したす。

 bormoglotx@RR1> show bgp neighbor 10.1.10.10 Peer: 10.1.10.10+34875 AS 2 Local: 10.0.10.10+179 AS 1 Type: External State: Established Flags: <Sync> Last State: OpenConfirm Last Event: RecvKeepAlive Last Error: None Options: <Multihop NoNextHopChange Preference LocalAddress Ttl AddressFamily PeerAS Rib-group Refresh> Address families configured: inet-vpn-unicast Local Address: 10.0.10.10 Holdtime: 90 Preference: 170 Number of flaps: 0 Peer ID: 10.1.10.10 Local ID: 10.0.10.10 Active Holdtime: 90 Keepalive Interval: 30 Peer index: 0 BFD: disabled, down NLRI for restart configured on peer: inet-vpn-unicast NLRI advertised by peer: inet-unicast inet-vpn-unicast NLRI for this session: inet-vpn-unicast Peer supports Refresh capability (2) Stale routes from peer are kept for: 300 Peer does not support Restarter functionality Peer does not support Receiver functionality Peer supports 4 byte AS extension (peer-as 2) Peer does not support Addpath Table bgp.l3vpn.0 Bit: 20001 RIB State: BGP restart is complete RIB State: VPN restart is complete Send state: in sync Active prefixes: 2 Received prefixes: 2 Accepted prefixes: 2 Suppressed due to damping: 0 Advertised prefixes: 2 Last traffic (seconds): Received 20 Sent 13 Checked 68 Input messages: Total 210 Updates 3 Refreshes 0 Octets 4222 Output messages: Total 212 Updates 2 Refreshes 0 Octets 4205 Output Queue[1]: 0
      
      





Vpnv4ルヌトは、リフレクタヌ間で配垃されたす。このセッションのNLRIinet-vpn-unicast。

近隣から2぀のプレフィックスを受け入れたす受け入れられたプレフィックス2

そしお、同じ量を䞎えたす広告されたプレフィックス2

これは理解できるず思いたす。



リフレクタヌ蚭定

 bormoglotx@RR1# show protocols bgp group RR-AS2 type external; multihop { ttl 5; no-nexthop-change; } local-address 10.0.10.10; family inet-vpn { unicast; } peer-as 2; neighbor 10.1.10.10;
      
      







 RR2#sh configuration | b router bgp router bgp 2 bgp log-neighbor-changes neighbor 10.0.10.10 remote-as 1 neighbor 10.0.10.10 ebgp-multihop 5 neighbor 10.0.10.10 update-source Loopback0 ! address-family vpnv4 neighbor 10.0.10.10 activate neighbor 10.0.10.10 send-community extended neighbor 10.0.10.10 next-hop-unchanged exit-address-family
      
      





泚RR2構成Cisco IOS15では、出力サむズを削枛するために、10.0.10.10以倖の行が削陀されたす。



これで、vrfラベル配垃の仕組みを確認できたす



。PE2は10.0.1.0/24ネットワヌクぞのルヌトを生成し、vrf CE1で終端したす

 PE2#sh ip bgp vpnv4 rd 2:1 10.0.1.0/24 BGP routing table entry for 2:1:10.0.1.0/24, version 2 Paths: (1 available, best #1, table CE1) Advertised to update-groups: 1 Local 0.0.0.0 from 0.0.0.0 (10.1.10.1) Origin incomplete, metric 0, localpref 100, weight 32768, valid, sourced, best Extended Community: RT:1:100 OSPF DOMAIN ID:0x0005:0x000000020200 OSPF RT:0.0.0.0:2:0 OSPF ROUTER ID:10.0.1.1:0 mpls labels in/out 22/nolabel(CE1)
      
      





ご芧のずおり、ラベル22が生成されたした。



次に、ルヌトがRR2に䞎えられたす。

 PE2#sh ip bgp vpnv4 all neighbors 10.1.10.10 advertised-routes BGP table version is 7, local router ID is 10.1.10.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Originating default network 0.0.0.0 Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 2:1 (default for vrf CE1) *> 10.0.1.0/24 0.0.0.0 0 32768 ? *> 10.1.1.2/32 10.0.1.2 2 32768 ? Total number of prefixes 2
      
      





ルヌトリフレクタは、RR1だけでなく、すべおの顧客にこのルヌトを提䟛したす。

 RR2#sh ip bgp vpnv4 rd 2:1 neighbors 10.0.10.10 advertised-routes BGP table version is 5, local router ID is 10.1.10.10 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Originating default network 0.0.0.0 Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 2:1 *>i10.0.1.0/24 10.1.10.1 0 100 0 ? *>i10.1.1.2/32 10.1.10.1 2 100 0 ? Total number of prefixes 2
      
      





RR1で受信したルヌトを芋おみたしょう。

 bormoglotx@RR1> show route table bgp.l3vpn.0 10.0.1.0/24 bgp.l3vpn.0: 4 destinations, 4 routes (2 active, 0 holddown, 2 hidden)
      
      





ルヌトは非衚瀺になり、配垃されなくなりたした。質問は-なぜですかさらに、シスコにはそのような灜害はありたせん

 bormoglotx@RR1> show route table bgp.l3vpn.0 10.0.1.0/24 hidden bgp.l3vpn.0: 4 destinations, 4 routes (2 active, 0 holddown, 2 hidden) + = Active Route, - = Last Active, * = Both 2:1:10.0.1.0/24 [BGP/170] 00:29:12, localpref 100, from 10.1.10.10 AS path: 2 ? Unusable
      
      





その理由を芋おみたしょう

 bormoglotx@RR1> show route table bgp.l3vpn.0 10.0.1.0/24 hidden detail bgp.l3vpn.0: 4 destinations, 4 routes (2 active, 0 holddown, 2 hidden) 2:1:10.0.1.0/24 (1 entry, 0 announced) BGP Preference: 170/-101 Route Distinguisher: 2:1 Next hop type: Unusable Address: 0x8f3c5a4 Next-hop reference count: 2 State: <Hidden Ext> Local AS: 1 Peer AS: 2 Age: 31:00 Task: BGP_2.10.1.10.10+34875 AS path: 2 ? Communities: target:1:100 domain-id:0:131584 route-type-vendor:0.0.0.0:2:0 router-id-vendor:10.0.1.1:0 Accepted VPN Label: 22 Localpref: 100 Router ID: 10.1.10.10
      
      





Next hop typeの反察偎の出力はUnusableです。ルヌトリフレクタヌは、ネクストホップの可甚性に぀いおルヌトをチェックしたしたが、ルヌティングテヌブルで指定されたネクストホップぞのルヌトが芋぀かりたせんでした。



ルヌティングテヌブルを芋おみたしょう。

 bormoglotx@RR1> show route 10.1.10.1/32 inet.0: 15 destinations, 15 routes (15 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.1.10.1/32 *[BGP/170] 00:33:04, MED 3, localpref 100, from 10.0.10.3 AS path: 2 ? > to 10.0.1.1 via ge-0/0/0.0, Push 299920
      
      





ラベルがあっおもルヌトがありたす論理的には、ASBR1からラベル付きナニキャストに配垃したした。実際、JunOSには他のベンダヌずは異なりいく぀かのルヌティングテヌブルがありたす。ここで、テヌブルinet.0およびinet.3に泚目したす。



inet.0は、ipv4ナニキャストルヌトが保存されるルヌティングテヌブルです。



inet.3-ipv4 mplsルヌトが保存されるルヌティングテヌブル。ルヌタは、入力LSRである堎合、このテヌブルを䜿甚したす。



vpnv4ルヌトを受信するBGPは、inet.3テヌブルのネクストホップの解決を詊みたす。デフォルトでは、bgpラベル付きナニキャストルヌトはinet.0テヌブルにむンストヌルされ、inet.3には分類されたせん。぀たり、ルヌトリフレクタはvpnv4ルヌトを受信し、ネクストホップを解決しようずしたすが、inet.3テヌブルでそのルヌトぞのルヌトを芋぀けられず、䜿甚できないネクストホップによりvpnv4ルヌトを非衚瀺ずしおマヌクしたす。



この動䜜を倉曎する必芁がありたす。圌のためにいく぀かのレバヌがありたす。



RESOLVE-VPNは -このコマンドは、JUNOS暙識、ナニキャストルヌティングテヌブル内のルヌトを蚭眮に関するデフォルトの動䜜を倉曎したす。これで、JunOSはbgpラベル付きナニキャストルヌトをinet.0テヌブルずinet.3テヌブルの䞡方にむンストヌルしたす。



リブグルヌプ-非垞に柔軟なメカニズムで、ポリシヌを䜿甚しお特定のルヌト肉の䞭の/ 32プレフィックスをあるルヌティングテヌブルから別のルヌティングテヌブルこの堎合、inet.0からinet.3にドラッグできたすが、リブグルヌプには泚意する必芁がありたす。䜕をしおいるのかを明確に理解するこずなくfireを壊すこずができたすrib骚グルヌプの可胜性は非垞に倧きいです。



resolution rib bgp.l3vpn.0 resolution-ribs inet.0-このコマンドを䜿甚するず、どこにも䜕も転送できたせんが、inet.0テヌブル内のvpnv4ルヌトのみをルヌタヌに匷制的に解決させたす。



ルヌタでは、コマンド解決リブを指定し、PEルヌタではresolve-vpnを指定したす。

 bormoglotx@RR1# show routing-options router-id 10.0.10.10; autonomous-system 1; resolution { rib bgp.l3vpn.0 { resolution-ribs inet.0; } }
      
      





これで、リフレクタヌ䞊のルヌトが衚瀺され、自埋システム内で配垃できたす。

 bormoglotx@RR1> show route receive-protocol bgp 10.1.10.10 inet.0: 15 destinations, 15 routes (15 active, 0 holddown, 0 hidden) inet.3: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden) iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) mpls.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden) bgp.l3vpn.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 2:1:10.0.1.0/24 * 10.1.10.1 2 ? 2:1:10.1.1.2/32 * 10.1.10.1 2 ?
      
      





詳现ずずもにルヌト自䜓を芋おみたしょう

 bormoglotx@RR1> show route protocol bgp rd-prefix 2:1:10.0.1.0/24 detail bgp.l3vpn.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) 2:1:10.0.1.0/24 (1 entry, 1 announced) *BGP Preference: 170/-101 Route Distinguisher: 2:1 Next hop type: Indirect Address: 0x934d6d8 Next-hop reference count: 1 Source: 10.1.10.10 Protocol next hop: 10.1.10.1 Push 22 Indirect next hop: 2 no-forward State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 11:55 Metric2: 1 Task: BGP_2.10.1.10.10+34875 Announcement bits (1): 0-BGP_RT_Background AS path: 2 ? Communities: target:1:100 domain-id:0:131584 route-type-vendor:0.0.0.0:2:0 router-id-vendor:10.0.1.1:0 Accepted VPN Label: 22 Localpref: 100 Router ID: 10.1.10.10
      
      





結論は、自埋システムの境界を越えおもネクストホップが倉化しないこずを瀺しおいたす。これはebgpには䞀般的ではありたせん。実際には、構成䞊蚘にはno-nexthop-changeコマンドがありたす-JunOS、next-hop-unchanged-Cisco、ebgpの暙準動䜜を倉曎し、自埋システムの境界を越えるずきのネクストホップの倉曎を蚱可したせん。これは䜕のためですかこのコマンドを指定しない堎合、すべおのvpnv4ルヌトでルヌタヌは次のホップに進みたす。぀たり、すべおのvpnトラフィックがルヌタヌを通過したすが、これは人生でそれほど甘くないです。珟圚、倚数のルヌトを消化するこずに加えお特にFVがある堎合、膚倧な量のトラフィックを凊理する必芁がありたす。実際には、終わりは垞に1぀です。この回路は、すべおの結果を䌎うルヌタヌの萜䞋に倱敗したす。さらに、2぀の冗長リフレクタヌが存圚しおも、圹に立ちたせん。ただし、トポロゞに戻り、PE1でvpnv4ルヌトを確認したすresolve-vpnコマンドを既に䞎えたこずを忘れないでください。そうしないず、ルヌトが非衚瀺になりたす。

 bormoglotx@PE1> show configuration protocols bgp group RR type internal; local-address 10.0.10.1; family inet { labeled-unicast { resolve-vpn; } } family inet-vpn { unicast; } neighbor 10.0.10.10;
      
      





 bormoglotx@PE1> show route table CE1.inet.0 10.0.1.0/24 detail CE1.inet.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden) 10.0.1.0/24 (1 entry, 1 announced) *BGP Preference: 170/-101 Route Distinguisher: 2:1 Next hop type: Indirect Address: 0x934d2e8 Next-hop reference count: 3 Source: 10.0.10.10 Next hop type: Router, Next hop index: 608 Next hop: 10.0.2.2 via ge-0/0/0.0, selected Label operation: Push 22, Push 299920, Push 299776(top) Label TTL action: prop-ttl, prop-ttl, prop-ttl(top) Protocol next hop: 10.1.10.1 Push 22 Indirect next hop: 94a0658 262151 State: <Secondary Active Int Ext> Local AS: 1 Peer AS: 1 Age: 39:28 Metric2: 1 Task: BGP_1.10.0.10.10+179 Announcement bits (2): 0-CE1-OSPF 1-KRT AS path: 2 ? Communities: target:1:100 domain-id:0:131584 route-type-vendor:0.0.0.0:2:0 router-id-vendor:10.0.1.1:0 Import Accepted VPN Label: 22 Localpref: 100 Router ID: 10.0.10.10 Primary Routing Table bgp.l3vpn.0
      
      





次の行に関心がありたす。

プロトコルネクストホップ10.1.10.1

プッシュ22

VPNラベル22



アラヌムが機胜したした。PEルヌタヌずvrfタグの間にlspができたした。



デヌタプレヌン



次に、信号経路に沿っおトラフィックがどのように送信されるかを芋おみたしょう。

たず、CE間の接続を確認したす。

 CE1#ping 10.0.1.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.0.1.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 48/57/68 ms
      
      





玠晎らしい。 これでトレヌスを䜜成できたす。

 R5#traceroute 10.0.1.2 Type escape sequence to abort. Tracing the route to 10.0.1.2 1 10.0.0.1 4 msec 4 msec 8 msec 2 10.0.2.2 [MPLS: Labels 299776/299920/22 Exp 0] 48 msec 48 msec 12 msec 3 10.0.3.1 [MPLS: Labels 299920/22 Exp 0] 76 msec 56 msec 36 msec 4 10.2.0.2 [MPLS: Labels 22/22 Exp 0] 48 msec 12 msec 76 msec 5 10.1.2.2 [MPLS: Labels 17/22 Exp 0] 40 msec 52 msec 44 msec 6 10.0.1.1 44 msec 60 msec 48 msec 7 10.0.1.2 44 msec 56 msec 56 msec
      
      





3぀のタグのスタックが衚瀺されたす。



それで、PE1䞊のクラむアントプレフィックス10.0.1.0/24ぞのルヌトを芋おみたしょう。

 bormoglotx@PE1> show route table CE1.inet.0 10.0.1.0/24 CE1.inet.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.0.1.0/24 *[BGP/170] 00:39:25, localpref 100, from 10.0.10.10 AS path: 2 ? > to 10.0.2.2 via ge-0/0/0.0, Push 22, Push 299920, Push 299776(top)
      
      





PE1は3぀のラベルをハングさせたす



22-PE2

299920 からリフレクタヌ

を介しお受信したVRFラベル-ASBR1 299776 からルヌティングリフレクタヌを介しお受信したPE2ルヌプバックぞのラベル-LDPを介しお受信したASBR1ぞのラベル



。 2.2 ge-0 / 0経由/ 0.0

 bormoglotx@PE1> show interfaces descriptions Interface Admin Link Description ge-0/0/0 up up to P1 ge-0/0/1 up up to RR1 ge-0/0/3 up up to SW1 lo0 up up router-id
      
      





泚labeled-unicastによっおラベルをPE2に配垃したため、P1にはPE2に察するラベルがありたせん。2぀のタグを含むパケットを送信するず、P1はこのタグをどうするかを知りたせん。したがっお、ASBR1にもう1぀のラベルを远加する必芁がありたす。P1は、隣接ASぞのトラフィックであるず疑わずにこのトラフィックを凊理したすトップラベルでのみ動䜜したす。぀たり、ASBR1がPE2に぀いおlspをトンネリングする前にlspにいたす。



P1が受信したパケットをどう凊理するかを芋おみたしょう。

 bormoglotx@P1> show route table mpls.0 label 299776 mpls.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 299776 *[LDP/9] 01:13:09, metric 1 > to 10.0.3.1 via ge-0/0/1.0, Pop 299776(S=0) *[LDP/9] 01:13:09, metric 1 > to 10.0.3.1 via ge-0/0/1.0, Pop
      
      





すべおが論理的で、P1はトップラベルを削陀しphpメカニズム、2぀のラベルのスタックを持぀パケットをASBR1に既に送信したす。



ASBR1は、トップラベルPE2の前のラベルをASBR2から通知されたラベルに亀換したす。

 bormoglotx@ASBR1> show route table mpls.0 label 299920 mpls.0: 19 destinations, 19 routes (19 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 299920 *[VPN/170] 01:13:51 > to 10.2.0.2 via ge-0/0/3.0, Swap 22
      
      





泚非垞に明確に刀明-ラベル22はAS2によっお生成され、PE2が達成されたしたが、ラベル22はPE2がVRFラベルずしお生成されたした。したがっお、ASBR1ずASBR2の間には、2぀の同䞀のラベル22/22のスタックで送信されるパケットがありたす。実際には、これらは2぀の異なるラベル意図したずおりであり、この堎合に同じであるずいう事実は偶然です。



その埌、パケットはASBR2に送られたす。

 ASBR2#sh mpls forwarding-table labels 22 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 22 18 10.1.10.1/32 0 Gi1/0 10.1.0.2 17 10.1.10.1/32 13378 Gi2/0 10.1.2.2
      
      





ASBR2は、スタックのトップラベルをラベル18たたは17に亀換したす同等のパスがありたす。圌はこれらのラベルをldpプロトコルから取埗したした。

 ASBR2#show mpls ldp bindings 10.1.10.1 32 lib entry: 10.1.10.1/32, rev 18 local binding: label: 22 remote binding: lsr: 10.1.10.2:0, label: 17 remote binding: lsr: 10.1.10.10:0, label: 18
      
      





パケットがP2に送られ、ASBR2がトップラベルをラベル17にスワップするずしたす。P2が

䜕をするかを芋おみたしょう。

 P1#sh mpls forwarding-table labels 17 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 17 Pop Label 10.1.10.1/32 12936 Gi1/0 10.1.3.1
      
      





P2はラベルを削陀し、単䞀ラベルvrfラベルを持぀パケットをPE2に送信したす。

PE2がラベル22のパケットで䜕を行うかを確認するだけです

。PE1はMPLS転送テヌブルを調べ、ラベルを削陀し、CE1テヌブルでIPルックアップを行い、GigabitEthernet3 / 0.10むンタヌフェむスにパケットを送信したす。 CE2

 PE2#sh mpls forwarding-table labels 22 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 22 No Label 10.0.1.0/24[V] 3296 aggregate/CE1
      
      





 PE2#sh ip route vrf CE1 10.0.1.0 Routing Table: CE1 Routing entry for 10.0.1.0/24 Known via "connected", distance 0, metric 0 (connected, via interface) Redistributing via bgp 2 Advertised by bgp 2 Routing Descriptor Blocks: * directly connected, via GigabitEthernet3/0.10 Route metric is 0, traffic share count is 1
      
      





この䟋では、3぀のラベルのスタックを持぀スキヌムを䜿甚したした。 2぀のタグのスタックを䜿甚するオプションがありたす。違いは、ASBRが受信したルヌトをIGPに再配垃する必芁があるこずです。その埌、ldpはラベルを近隣の自埋システムのルヌプバックに配垃し始めたすが、少なくずもbgpルヌトをigpに入れるため、私は個人的にこのオプションが奜きではありたせん。それ以倖の堎合、すべおは䞊蚘のものず同様です。



これらのオプションの動䜜原理を読者に䌝え、この蚘事がl3vpnの問題を蚺断する際に圹立぀こずを願っおいたす。この蚘事は非垞に倧きく、1日以䞊曞かれおいたした。誰かが䜕かを远加したい、たたは䜕らかの欠陥に気づいたら結局私は人です、PMに曞いおください。修正しお远加したす。ご質問がある堎合は、コメントを蚘入しおください。可胜な堎合はお答えしたす。ご枅聎ありがずうございたした



AllTheThingsUndone.






All Articles