Kehadiran Target Rute dalam Pengumuman BGP antara PE dan CE



Artikel ini mengasumsikan bahwa pembaca sudah memiliki pemahaman tentang dasar-dasar MPLS L3VPN .

Hai Misalkan Anda seorang ISP . Dan seperti halnya ISP yang cukup besar, inti dari jaringan Anda didasarkan pada IP / MPLS. Jika Anda menyederhanakannya sepenuhnya, maka jaringan Anda dapat diwakili oleh sirkuit yang ditunjukkan di atas. Mari kita juga berasumsi bahwa Anda, sebagai ISP, menjual pelanggan Anda layanan L3VPN, yang diterapkan pada jaringan Anda sesuai dengan RFC 4364 (BGP / MPLS IP VPNs). Dan jika klien L3VPN di situs tertentu tidak memiliki cukup jaringan yang terhubung langsung dan ingin mengumumkan rute tambahan ke situs lain, maka Anda akan menaikkan sesi BGP antara peralatan Anda (PE) dan peralatan klien (CE), di mana klien dapat mengumumkan yang diinginkan rute. Dengan semua ini, Anda tidak menerapkan filter / kebijakan apa pun pada sesi ini, dipandu oleh fakta bahwa itu seharusnya menjadi klien VPN, dan bebas untuk "mengarahkan" apa pun yang diinginkan di dalamnya (misalnya, dalam batas jumlah awalan, misalnya). Dan sekarang perhatian, pertanyaannya adalah: apa yang terjadi jika, dalam kerangka sesi BGP ini, klien mengumumkan rute untuk Anda (penyedia), menambahkan Komunitas Target Rute ke mereka? Ini mungkin, misalnya, hasil dari kesalahan, atau keinginan untuk bereksperimen.

Untuk berjaga-jaga, kami ingat bahwa Target Rute adalah salah satu komunitas BGP diperpanjang khusus yang digunakan dalam MPLS L3VPN untuk memilih VRF, dalam tabel routing yang diperlukan untuk mengatur rute yang datang melalui MP-BGP. Dan karena RT adalah sebuah komunitas, maka secara teori, tidak ada yang menghalangi kita untuk menambahkannya ke rute IPv4 biasa.

Mari kita kembali ke pertanyaan tentang apa yang bisa terjadi jika CE mengumumkan rute yang ditandai dengan RT pada PE (tidak ada kebijakan BGP pada PE). Setelah sedikit berpikir, kita dapat mengasumsikan bahwa ada 3 hasil yang berbeda:

  1. PE akan membatalkan pengumuman tersebut.
  2. PE akan menghapus RT dari pengumuman, menambahkan VRF RT yang sesuai dengannya, dan mengirimkan pengumuman tersebut ke PE lain.
  3. PE akan menerima pengumuman tidak berubah, menambahkan VRF RT yang sesuai dengannya (mis., Dua RT sudah akan terkandung dalam pengumuman) dan mengirimkan pengumuman ke PE lain.

Yang paling menarik dan sekaligus berbahaya bagi penyedia layanan, tentu saja, adalah opsi terakhir. Dalam hal ini, klien dapat berpotensi mengganggu routing di VRF lain, baik klien maupun internal, teknologi.

Tapi tebak cantik, mari kita periksa. Untuk minat yang lebih besar, kami akan segera memeriksa beberapa OS Jaringan. Di Eve-NG, skema berikut dibangun:



Daftar peserta tes:

  • CHR - Mikrotik CHR , RouterOS 6.40.8
  • VSR - Nokia VSR, TiMOS 15.0.R6
  • vMX - Juniper vMX, JUNI 14.1R1.10
  • XRv - Cisco XRv, IOS-XR 6.1.1
  • 3725 - Cisco 3725 (Dynamips), iOS 12.4

Router bantu:

  • Remote-PE - Cisco 3725 (Dynamips), iOS 12.4
  • CE - Mikrotik CHR, RouterOS 6.40.8

Deskripsi sirkuit:

  1. Peserta Tes - PE Router. VRF-100 (RT 65001: 100) dibuat untuk masing-masingnya, dalam kerangka kerja VRF-100 ini, sesi BGP dengan CE diselenggarakan tanpa filter / kebijakan.
  2. Setiap PE yang diuji memiliki sesi MP-BGP dengan router Remote_PE, yang melaluinya melewati rute VRF.
  3. Router CE memiliki 5 subinterfaces (1 untuk setiap PE), di setiap subinterface, sesi BGP dinaikkan ke CE yang sesuai. Setiap PE diumumkan awalan sendiri dari formulir 1.1.1. N / 32, di mana N adalah nomor urut PE dari kiri ke kanan. Dengan kebijakan ekspor CE, komunitas RT: 65001: 200 ditambahkan ke masing-masing awalan ini.
  4. Dua VRF dibuat pada Remote_PE: VRF-100 (RT 65001: 100) dan VRF-200 (RT 65001: 200)
  5. Transportasi MPLS, router-P, RR dan kesenangan lain yang biasanya ada dalam jaringan nyata dihilangkan di sini, karena tidak masalah bagi kami di sini.

Bagi mereka yang tidak puas dengan deskripsi "hanya dalam kata-kata", saya akan membawa konfigurasi dari semua perangkat yang terlibat.

CE
/interface vlan add interface=ether1 name=ether1.10 vlan-id=10 add interface=ether1 name=ether1.20 vlan-id=20 add interface=ether1 name=ether1.30 vlan-id=30 add interface=ether1 name=ether1.40 vlan-id=40 add interface=ether1 name=ether1.50 vlan-id=50 /interface wireless security-profiles set [ find default=yes ] supplicant-identity=MikroTik /routing bgp instance set default as=65002 /ip address add address=192.168.30.2/24 interface=ether1.30 network=192.168.30.0 add address=192.168.10.2/24 interface=ether1.10 network=192.168.10.0 add address=192.168.20.2/24 interface=ether1.20 network=192.168.20.0 add address=192.168.40.2/24 interface=ether1.40 network=192.168.40.0 add address=192.168.50.2/24 interface=ether1.50 network=192.168.50.0 /ip dhcp-client add disabled=no interface=ether3 add disabled=no interface=ether1.30 /ip route add distance=1 dst-address=1.1.1.1/32 type=blackhole add distance=1 dst-address=1.1.1.2/32 type=blackhole add distance=1 dst-address=1.1.1.3/32 type=blackhole add distance=1 dst-address=1.1.1.4/32 type=blackhole add distance=1 dst-address=1.1.1.5/32 type=blackhole /routing bgp network add network=1.1.1.3/32 add network=1.1.1.1/32 add network=1.1.1.2/32 add network=1.1.1.4/32 add network=1.1.1.5/32 /routing bgp peer add comment=VMX name=VMX out-filter=TO-VMX remote-address=192.168.30.1 \ remote-as=65001 add comment=CHR name=CHR out-filter=TO-CHR remote-address=192.168.10.1 \ remote-as=65001 add comment=VSR name=VSR out-filter=TO-VSR remote-address=192.168.20.1 \ remote-as=65001 add comment=XRV name=XRV out-filter=TO-XRV remote-address=192.168.40.1 \ remote-as=65001 add comment=3725 name=3725 out-filter=TO-3725 remote-address=192.168.50.1 \ remote-as=65001 /routing filter add action=accept chain=TO-VMX prefix=1.1.1.3 set-route-targets=65001:200 add action=accept chain=TO-CHR prefix=1.1.1.1 set-route-targets=65001:200 add action=accept chain=TO-VSR prefix=1.1.1.2 set-route-targets=65001:200 add action=accept chain=TO-XRV prefix=1.1.1.4 set-route-targets=65001:200 add action=accept chain=TO-3725 prefix=1.1.1.5 set-route-targets=65001:200 add action=discard chain=TO-VMX add action=discard chain=TO-CHR add action=discard chain=TO-VSR add action=discard chain=TO-XRV add action=discard chain=TO-3725 /system identity set name=CE 


CHR
 /interface bridge add name=lo0 protocol-mode=none /interface vlan add interface=ether1 name=ether1.10 vlan-id=10 add interface=ether2 name=ether2.10 vlan-id=10 /interface wireless security-profiles set [ find default=yes ] supplicant-identity=MikroTik /routing bgp instance set default as=65001 add as=65001 name=vrf-100 redistribute-other-bgp=yes router-id=192.168.10.1 \ routing-table=VRF-100 /ip address add address=192.168.10.1/24 interface=ether1.10 network=192.168.10.0 add address=10.0.1.1/24 interface=ether2.10 network=10.0.1.0 add address=10.1.1.1 interface=lo0 network=10.1.1.1 /ip dhcp-client add disabled=no interface=ether1 /ip route vrf add export-route-targets=65001:100 import-route-targets=65001:100 interfaces=\ ether1.10 route-distinguisher=65001:100 routing-mark=VRF-100 /routing bgp instance vrf add redistribute-other-bgp=yes routing-mark=VRF-100 /routing bgp peer add address-families=vpnv4 comment=remote_PE name=remote_PE remote-address=\ 10.10.10.10 remote-as=65001 update-source=lo0 add comment=CE instance=vrf-100 name=CE remote-address=192.168.10.2 \ remote-as=65002 /routing ospf network add area=backbone network=10.0.0.0/8 /system identity set name=CHR 


Vsr
 # TiMOS-B-15.0.R6 both/x86_64 Nokia 7750 SR Copyright (c) 2000-2017 Nokia. # All rights reserved. All use subject to applicable license agreements. # Built on Mon Nov 20 12:58:19 PST 2017 by builder in /builds/150B/R6/panos/main # Generated MON JAN 01 00:32:55 2018 UTC exit all configure #-------------------------------------------------- echo "System Configuration" #-------------------------------------------------- system snmp shutdown exit time sntp shutdown exit zone UTC exit exit #-------------------------------------------------- echo "System Security Configuration" #-------------------------------------------------- system security dist-cpu-protection policy "_default-access-policy" create exit policy "_default-network-policy" create exit exit exit exit #-------------------------------------------------- echo "Log Configuration" #-------------------------------------------------- log exit #-------------------------------------------------- echo "Card Configuration" #-------------------------------------------------- card 1 card-type iom-v mda 1 mda-type m20-v no shutdown exit no shutdown exit #-------------------------------------------------- echo "Port Configuration" #-------------------------------------------------- port 1/1/1 description "CE" ethernet mode hybrid encap-type qinq exit no shutdown exit port 1/1/2 description "remote_PE" ethernet mode hybrid encap-type qinq exit no shutdown exit port 1/1/3 shutdown ethernet exit exit port 1/1/4 shutdown ethernet exit exit #-------------------------------------------------- echo "Management Router Configuration" #-------------------------------------------------- router management exit #-------------------------------------------------- echo "Router (Network Side) Configuration" #-------------------------------------------------- router Base interface "remote_PE" address 10.0.2.1/24 port 1/1/2:20.* no shutdown exit interface "system" address 10.2.2.2/32 no shutdown exit autonomous-system 65001 #-------------------------------------------------- echo "OSPFv2 Configuration" #-------------------------------------------------- ospf 0 area 0.0.0.0 interface "system" no shutdown exit interface "remote_PE" mtu 1500 no shutdown exit exit no shutdown exit exit #-------------------------------------------------- echo "Service Configuration" #-------------------------------------------------- service customer 1 create description "Default customer" exit vprn 100 customer 1 create autonomous-system 65001 route-distinguisher 65001:100 vrf-target target:65001:100 interface "CE" create address 192.168.20.1/24 sap 1/1/1:20.0 create exit exit bgp group "CE" type external export "TO-CE" peer-as 65002 neighbor 192.168.20.2 exit exit no shutdown exit service-name "VRF-100" no shutdown exit exit #-------------------------------------------------- echo "Router (Service Side) Configuration" #-------------------------------------------------- router Base #-------------------------------------------------- echo "OSPFv2 Configuration" #-------------------------------------------------- ospf 0 no shutdown exit #-------------------------------------------------- echo "Policy Configuration" #-------------------------------------------------- policy-options begin policy-statement "TO-CE" entry 10 action accept exit exit exit commit exit #-------------------------------------------------- echo "BGP Configuration" #-------------------------------------------------- bgp group "remote_PE" family vpn-ipv4 type internal local-address system neighbor 10.0.2.2 exit exit no shutdown exit exit exit all 


vMX
 ## Last commit: 2018-05-25 12:37:27 UTC by root version 14.1R1.10; system { host-name vmx01; root-authentication { encrypted-password "$1$zA/8snt5$g3mYVmz7MzTZZOhtjRX6g1"; ## SECRET-DATA } } interfaces { ge-0/0/0 { vlan-tagging; encapsulation flexible-ethernet-services; unit 30 { vlan-id 30; family inet { address 192.168.30.1/24; } } } ge-0/0/1 { vlan-tagging; encapsulation flexible-ethernet-services; unit 30 { vlan-id 30; family inet { address 10.0.3.1/24; } } } lo0 { unit 0 { family inet { address 10.3.3.3/32; } } } } routing-options { autonomous-system 65001; } protocols { bgp { group remote_PE { type internal; local-address 10.3.3.3; family inet-vpn { unicast; } neighbor 10.10.10.10; } } ospf { area 0.0.0.0 { interface lo0.0; interface ge-0/0/1.30; } } } routing-instances { VRF-100 { instance-type vrf; interface ge-0/0/0.30; route-distinguisher 65001:100; vrf-target target:65001:100; protocols { bgp { group CE { type external; peer-as 65002; neighbor 192.168.30.2; } } } } } 


Xrv
 !! IOS XR Configuration 6.1.1 !! Last configuration change at Fri May 25 15:24:01 2018 by Cisco ! hostname XRv vrf VRF-100 address-family ipv4 unicast import route-target 65001:100 ! export route-target 65001:100 ! ! ! interface Loopback0 no shutdown ipv4 address 10.4.4.4 255.255.255.255 ! interface MgmtEth0/0/CPU0/0 no shutdown shutdown ! interface GigabitEthernet0/0/0/0.40 no shutdown vrf VRF-100 ipv4 address 192.168.40.1 255.255.255.0 encapsulation dot1q 40 ! interface GigabitEthernet0/0/0/1.40 no shutdown ipv4 address 10.0.4.1 255.255.255.0 encapsulation dot1q 40 ! interface GigabitEthernet0/0/0/2 no shutdown shutdown ! route-policy TO-CE pass end-policy ! route-policy FROM-CE pass end-policy ! router ospf main area 0 interface Loopback0 ! interface GigabitEthernet0/0/0/1.40 ! ! ! router bgp 65001 address-family ipv4 unicast ! address-family vpnv4 unicast ! neighbor 10.10.10.10 remote-as 65001 update-source Loopback0 address-family vpnv4 unicast ! ! vrf VRF-100 rd 65001:100 bgp router-id 192.168.40.1 address-family ipv4 unicast ! neighbor 192.168.40.2 remote-as 65002 address-family ipv4 unicast route-policy FROM-CE in route-policy TO-CE out ! ! ! ! end 


3725
 ! version 12.4 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption ! hostname 3725 ! boot-start-marker boot-end-marker ! ! no aaa new-model memory-size iomem 5 ip cef ! ! ! ! ip vrf VRF-100 rd 65001:100 route-target export 65001:100 route-target import 65001:100 ! no ip domain lookup ! multilink bundle-name authenticated ! ! ! archive log config hidekeys ! ! ! interface Loopback0 ip address 10.5.5.5 255.255.255.255 ! interface FastEthernet0/0 no ip address duplex auto speed auto ! interface FastEthernet0/0.50 encapsulation dot1Q 50 ip vrf forwarding VRF-100 ip address 192.168.50.1 255.255.255.0 ! interface FastEthernet0/1 no ip address duplex auto speed auto ! interface FastEthernet0/1.50 encapsulation dot1Q 50 ip address 10.0.5.1 255.255.255.0 ! router ospf 123 log-adjacency-changes network 10.0.0.0 0.255.255.255 area 0 ! router bgp 65001 no bgp default ipv4-unicast no bgp default route-target filter bgp log-neighbor-changes neighbor 10.10.10.10 remote-as 65001 neighbor 10.10.10.10 update-source Loopback0 ! address-family vpnv4 neighbor 10.10.10.10 activate neighbor 10.10.10.10 send-community extended exit-address-family ! address-family ipv4 vrf VRF-200 no synchronization exit-address-family ! address-family ipv4 vrf VRF-100 neighbor 192.168.50.2 remote-as 65002 neighbor 192.168.50.2 activate neighbor 192.168.50.2 soft-reconfiguration inbound no synchronization exit-address-family ! ip forward-protocol nd ! ! ip http server no ip http secure-server ! ! ! control-plane ! ! ! line con 0 line aux 0 line vty 0 4 ! ! end 


Remote_PE
 ! version 12.4 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption ! hostname remote_PE ! boot-start-marker boot-end-marker ! ! no aaa new-model memory-size iomem 5 ip cef ! ! ! ! ip vrf VRF-100 rd 65001:100 route-target export 65001:100 route-target import 65001:100 ! ip vrf VRF-200 rd 65001:200 route-target export 65001:200 route-target import 65001:200 ! ! multilink bundle-name authenticated ! ! ! ! archive log config hidekeys ! ! ! ! interface Loopback0 ip address 10.10.10.10 255.255.255.255 ! interface FastEthernet0/0 no ip address duplex auto speed auto ! interface FastEthernet0/0.10 description CHR encapsulation dot1Q 10 ip address 10.0.1.2 255.255.255.0 ! interface FastEthernet0/0.20 encapsulation dot1Q 20 ip address 10.0.2.2 255.255.255.0 ! interface FastEthernet0/0.30 encapsulation dot1Q 30 ip address 10.0.3.2 255.255.255.0 ! interface FastEthernet0/0.40 encapsulation dot1Q 40 ip address 10.0.4.2 255.255.255.0 ! interface FastEthernet0/0.50 encapsulation dot1Q 50 ip address 10.0.5.2 255.255.255.0 ! interface FastEthernet0/1 no ip address shutdown duplex auto speed auto ! router ospf 123 log-adjacency-changes network 10.0.0.0 0.255.255.255 area 0 ! router bgp 65001 no bgp default ipv4-unicast no bgp default route-target filter bgp log-neighbor-changes neighbor 10.1.1.1 remote-as 65001 neighbor 10.2.2.2 remote-as 65001 neighbor 10.3.3.3 remote-as 65001 neighbor 10.4.4.4 remote-as 65001 neighbor 10.5.5.5 remote-as 65001 ! address-family vpnv4 neighbor 10.1.1.1 activate neighbor 10.1.1.1 send-community extended neighbor 10.2.2.2 activate neighbor 10.2.2.2 send-community extended neighbor 10.3.3.3 activate neighbor 10.3.3.3 send-community extended neighbor 10.4.4.4 activate neighbor 10.4.4.4 send-community extended neighbor 10.5.5.5 activate neighbor 10.5.5.5 send-community extended exit-address-family ! address-family ipv4 vrf VRF-200 no synchronization exit-address-family ! address-family ipv4 vrf VRF-100 redistribute connected no synchronization exit-address-family ! ip forward-protocol nd ! ! ip http server no ip http secure-server ! ! control-plane ! ! ! line con 0 line aux 0 line vty 0 4 login ! ! end 


Pengumuman CE-> PE


Jadi, percobaannya sederhana: dengan CE kita akan mengumumkan rute bertanda RT: 65001: 200, pada Remote-PE kita melihat apakah rute ini muncul di tabel routing VRF-200.

Pertama, periksa tabel routing VRF-100:

 remote_PE#show ip route vrf VRF-100 1.1.1.0 255.255.255.0 longer-prefixes Routing Table: VRF-100 Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 5 subnets B 1.1.1.1 [200/0] via 10.1.1.1, 00:01:02 B 1.1.1.3 [200/0] via 10.3.3.3, 05:19:08 B 1.1.1.2 [200/0] via 10.2.2.2, 00:02:47 B 1.1.1.5 [200/0] via 10.5.5.5, 01:36:05 B 1.1.1.4 [200/0] via 10.4.4.4, 02:32:21 remote_PE# 

Kami menerima rute dari semua 5 PE. Sekarang periksa untuk melihat apakah ada dari rute ini di VRF-200:

 remote_PE#show ip route vrf VRF-200 Routing Table: VRF-200 Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 3 subnets B 1.1.1.1 [200/0] via 10.1.1.1, 00:01:24 B 1.1.1.3 [200/0] via 10.3.3.3, 05:19:29 B 1.1.1.2 [200/0] via 10.2.2.2, 00:03:08 remote_PE# 

Rute dari CHR, vMX, dan VSR berakhir di VRF-200. Ini berarti bahwa komunitas RT: 65001: 200 yang ditambahkan ke CE diselamatkan oleh PE ini.

Pada saat yang sama, rute dari XRv dan 3725 hanya tersedia di VRF-100. Ini berarti bahwa router cisco menghapus komunitas RT: 65001: 200 dari pengumuman.

Pengumuman PE-> CE


Kami tidak akan berhenti di situ dan memeriksa bagaimana pengumuman berperilaku berlawanan arah, mis. dari PE ke CE. Kami akan sedikit mengubah konfigurasi yang ada.

Pada Remote_PE, buat loopback yang alamatnya 100.100.100.100/32 akan diumumkan oleh PE lain:

 interface Loopback100 ip vrf forwarding VRF-100 ip address 100.100.100.100 255.255.255.255 ! router bgp 65001 address-family ipv4 vrf VRF-100 redistribute connected exit-address-family ! 

Pada vMX, ingatlah bahwa kami tidak mengonfigurasi transport MPLS, yang berarti tabel inet.3 kosong, dan rute dari Remote_PE akan disembunyikan. Salin rute OSPF ke inet. 3.

 set routing-options rib-groups RG-INET3 import-rib [ inet.0 inet.3 ] set protocols ospf rib-group RG-INET3 

Di seluruh router, pengaturan saat ini harus cukup.

Kami melihat rute di CE:

 [admin@CE] > ip route print detail where dst-address=100.100.100.100/32 Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit 0 ADb dst-address=100.100.100.100/32 gateway=192.168.20.1 gateway-status=192.168.20.1 reachable via ether1.20 distance=20 scope=40 target-scope=10 bgp-as-path="65001" bgp-origin=incomplete bgp-ext-communities="RT:65001:100" received-from=VSR 1 Db dst-address=100.100.100.100/32 gateway=192.168.50.1 gateway-status=192.168.50.1 reachable via ether1.50 distance=20 scope=40 target-scope=10 bgp-as-path="65001" bgp-origin=incomplete received-from=3725 2 Db dst-address=100.100.100.100/32 gateway=192.168.10.1 gateway-status=192.168.10.1 reachable via ether1.10 distance=20 scope=40 target-scope=10 bgp-as-path="65001" bgp-origin=incomplete bgp-ext-communities="RT:65001:100" received-from=CHR 3 Db dst-address=100.100.100.100/32 gateway=192.168.30.1 gateway-status=192.168.30.1 reachable via ether1.30 distance=20 scope=40 target-scope=10 bgp-as-path="65001" bgp-origin=incomplete bgp-ext-communities="RT:65001:100" received-from=VMX 4 Db dst-address=100.100.100.100/32 gateway=192.168.40.1 gateway-status=192.168.40.1 reachable via ether1.40 distance=20 scope=40 target-scope=10 bgp-as-path="65001" bgp-origin=incomplete received-from=XRV 

Semua router kecuali Cisco meninggalkan Rute Target dalam pengumuman rute. Cisco tidak melakukan ini hanya karena komunitas apa pun dikirim kepada mereka secara default. Perbaiki
3725: *

 router bgp 65001 address-family ipv4 vrf VRF-100 neighbor 192.168.50.2 send-community extended 

XRv: *

 router bgp 65001 vrf VRF-100 neighbor 192.168.40.2 address-family ipv4 unicast send-extended-community-ebgp 

* Penggunaan perintah ini tidak mengubah hasil percobaan pertama dengan cara apa pun dengan pengumuman CE-> PE.

Sekarang lihat lagi rute di CE:

 [admin@CE] > ip route print detail where dst-address=100.100.100.100/32 Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit 0 ADb dst-address=100.100.100.100/32 gateway=192.168.20.1 gateway-status=192.168.20.1 reachable via ether1.20 distance=20 scope=40 target-scope=10 bgp-as-path="65001" bgp-origin=incomplete bgp-ext-communities="RT:65001:100" received-from=VSR 1 Db dst-address=100.100.100.100/32 gateway=192.168.50.1 gateway-status=192.168.50.1 reachable via ether1.50 distance=20 scope=40 target-scope=10 bgp-as-path="65001" bgp-origin=incomplete bgp-ext-communities="RT:65001:100" received-from=3725 2 Db dst-address=100.100.100.100/32 gateway=192.168.10.1 gateway-status=192.168.10.1 reachable via ether1.10 distance=20 scope=40 target-scope=10 bgp-as-path="65001" bgp-origin=incomplete bgp-ext-communities="RT:65001:100" received-from=CHR 3 Db dst-address=100.100.100.100/32 gateway=192.168.30.1 gateway-status=192.168.30.1 reachable via ether1.30 distance=20 scope=40 target-scope=10 bgp-as-path="65001" bgp-origin=incomplete bgp-ext-communities="RT:65001:100" received-from=VMX 4 Db dst-address=100.100.100.100/32 gateway=192.168.40.1 gateway-status=192.168.40.1 reachable via ether1.40 distance=20 scope=40 target-scope=10 bgp-as-path="65001" bgp-origin=incomplete bgp-ext-communities="RT:65001:100" received-from=XRV 

Sekarang benar-benar semua PE mengirim rute dengan indikasi RT menuju CE.

Hasil serupa dengan saya secara pribadi tampak agak aneh. Jika mempertahankan RT dalam pengumuman CE-> PE secara teoritis dapat dianggap sebagai aplikasi, maka dalam pengumuman PE-> CE RT tampak seperti informasi yang jelas tidak perlu.

Selain itu, keberadaan fenomena konservasi RT baik terhadap CE-> PE, dan menuju PE-> CE, berpotensi dapat berdampak negatif pada Opsi Inter-AS A.

Tajuk β€œApa yang Diceritakan RFC Kami”


RFC 4364 , yang disebutkan di awal artikel, secara khusus menyatakan ini:
Jika PE dan CE sendiri adalah rekan BGP, maka
SP dapat memungkinkan pelanggan, dalam batas, untuk menentukan caranya
rute harus didistribusikan. SP dan pelanggan harus melakukannya
setuju sebelumnya tentang set RT yang diizinkan untuk dilampirkan
rute VPN pelanggan. CE kemudian dapat melampirkan satu atau lebih
RT-RT tersebut untuk setiap rute IP yang dibagikan ke PE. Ini memberi
pelanggan kebebasan untuk menentukan secara real time, dalam waktu yang disepakati
batas, kebijakan distribusi rutenya. Jika CE diizinkan
melampirkan RT ke rute-nya, PE HARUS menyaring semua rute itu
berisi RT yang tidak diizinkan digunakan oleh pelanggan. Jika CE
tidak diizinkan untuk melampirkan RT ke rutenya, tetapi tetap melakukannya, PE
HARUS menghapus RT sebelum mengubah rute pelanggan ke VPN-
Rute IPv4.

Dengan demikian, pelestarian RT dalam pengumuman CE-> PE memiliki dasar yang sepenuhnya legal, meskipun penerapan praktis ini bagi saya agak meragukan.
Tentang RT dalam pengumuman PE-> CE, tidak ada yang dikatakan dalam RFC.

Hapus RT dari sesi dengan CE


Semuanya jelas dengan Cisco di muka. Dalam pengumuman CE-> PE, semua RT dihapus secara kategoris (saya tidak bisa menemukan perintah yang akan mengubah perilaku ini), dalam pengumuman PE-> CE RT tidak ada secara default, cukup untuk tidak memungkinkan pengiriman komunitas yang diperluas.

Kami akan mencari cara untuk menyingkirkan RT pada peserta lain dalam pengujian kami.

Juniper


Yang perlu Anda lakukan untuk menghapus RT dari pengumuman (baik PE-> CE dan CE-> PE) adalah membuat kebijakan dan istilah pertama untuk menghapus semua komunitas dimulai dengan "target:", memberikan awalan untuk memproses dalam istilah berikut.

Misalnya, jika kami ingin menerima dan mengumumkan semua rute, cukup hapus RT dari mereka:

 edit policy-options set community RT-ALL members target:.+:.+ set policy-statement TO-CE term 10 then community delete RT-ALL set policy-statement TO-CE term 10 then next term set policy-statement TO-CE then accept copy policy-statement TO-CE to policy-statement FROM-CE 

Nokia


Untuk menonaktifkan pengiriman komunitas luas ke rekan BGP, Anda dapat menggunakan perintah:

 configure service vprn "VRF-100" bgp group "CE" disable-communities extended 

Untuk menghapus RT dari pengumuman CE, Anda perlu membuat kebijakan yang mirip dengan bagaimana hal itu dilakukan di Juniper, dan menerapkannya pada sesi dengan CE.

 configure router policy-options begin community "RT-ALL" members "target:.+&.+" policy-statement FROM-CE entry 10 action next-entry community remove "RT-ALL" exit exit default-action accept exit exit commit 

Mikrotik


Tetapi dengan Mikrotik, kekecewaan menunggu kita. Tidak ada mekanisme untuk menghapus RT dari pengumuman. Tampaknya dalam filter perutean ada parameter set-rute-target, dan akan melakukan sesuatu seperti

 /routing filter add chain=TO-CE set-route-targets="" action=passthrough add chain=TO-CE action=accept 

tetapi, sayangnya, set-rute-target = "" berarti bahwa parameter ini (set-rute-target) harus dihapus sepenuhnya dari aturan. Contoh:

 [admin@CE] /routing filter> add chain=TO-CE action=passthrough set-route-targets="" [admin@CE /routing filter> print where chain=TO-CE Flags: X - disabled 0 chain=TO-CE invert-match=no action=passthrough set-bgp-prepend-path="" 

Dalam hal ini, masih perlu diingat bahwa Mikrotik pada dasarnya adalah router SOHO yang canggih, dan mungkin tidak cukup tepat untuk meminta fungsionalitas yang sama dari yang ada di router kelas Carrier. Masih mengandalkan RouterOS 7.

Kesimpulan


Menambahkan RT yang diinginkan ke pengumuman Anda, klien Anda masih tidak dapat mengakses MGMT VRF Anda, misalnya, karena konektivitas akan satu arah. Namun demikian, sangat mungkin bagi klien untuk mengganggu routing di MGMT VRF (tentu saja, untuk ini Anda perlu menebak dengan RT dan dengan rute yang diumumkan).

Selain itu, ketika mengimplementasikan Opsi A-AS, ada kemungkinan rute dari penyedia A memasuki jaringan penyedia B, dengan mempertahankan RT-nya. Selain itu, jika dalam jaringan penyedia B RT ini sudah digunakan di bawah beberapa VRF lain, rute bocor ke VRF ini, yang, tentu saja, bukan perilaku yang diinginkan.

Dengan demikian, masalahnya tidak terlalu signifikan, karena agar dia β€œmenembak”, beberapa faktor harus bersamaan. Di sisi lain, mengoreksi perilaku yang tidak diinginkan ini jauh lebih mudah daripada mencari tahu mengapa itu tiba-tiba "tidak berhasil".

Jadi sekali lagi, sangat singkat:

1. Jika memungkinkan, potong RT dari pengumuman antara PE dan CE (kecuali, tentu saja, Anda membutuhkannya).
2. Dilihat dari hasil tes, pemilik cisco-PE dapat tidur nyenyak, RT mereka terputus pada mesin. Namun, untuk berjaga-jaga, saya akan mengecek. Mungkin di versi lain iOS perilakunya berbeda.

Source: https://habr.com/ru/post/id412615/


All Articles