BGP: الـ Regular Expressions و AS Path Filter
الفلترة بالـ AS path أذكى من الـ prefix list: تقول مثلاً أعلن بس اللي بدأ عندي، أو ارفض أي مسار يمر على AS معيّنة. نتعلم رموز الـ regex في BGP، ونجرّبها بـ show ip bgp regexp قبل ما نطبّق، وبعدها ip as-path access-list و neighbor filter-list.
ضمن مسار ENARSI 300-410 — التوجيه المتقدم وخدمات الشبكات
شرح الدرس مكتوبًا
نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.
enable
configure terminal
hostname R1
no ip domain-lookup
interface g0/0/0
ip address 10.0.12.1 255.255.255.0
no shutdown
interface g0/0/1
ip address 10.0.14.1 255.255.255.0
no shutdown
interface lo0
ip address 1.1.1.1 255.255.255.255
interface lo1
ip address 172.16.1.1 255.255.255.0
ip ospf network point-to-point
end
enable
configure terminal
router ospf 1
router-id 1.1.1.1
network 10.0.12.0 0.0.0.255 area 0
network 1.1.1.1 0.0.0.0 area 0
end
enable
configure terminal
router bgp 65001
bgp router-id 1.1.1.1
neighbor 10.0.14.4 remote-as 65003
neighbor 2.2.2.2 remote-as 65001
neighbor 2.2.2.2 update-source lo0
neighbor 2.2.2.2 next-hop-self
network 172.16.1.0 mask 255.255.255.0
endenable
configure terminal
hostname R2
no ip domain-lookup
interface g0/0/0
ip address 10.0.12.2 255.255.255.0
no shutdown
interface g0/0/1
ip address 10.0.23.2 255.255.255.0
no shutdown
interface lo0
ip address 2.2.2.2 255.255.255.255
interface lo1
ip address 172.16.2.1 255.255.255.0
ip ospf network point-to-point
end
enable
configure terminal
router ospf 1
router-id 2.2.2.2
network 10.0.12.0 0.0.0.255 area 0
network 2.2.2.2 0.0.0.0 area 0
end
enable
configure terminal
router bgp 65001
bgp router-id 2.2.2.2
neighbor 10.0.23.3 remote-as 65002
neighbor 1.1.1.1 remote-as 65001
neighbor 1.1.1.1 update-source lo0
neighbor 1.1.1.1 next-hop-self
network 172.16.2.0 mask 255.255.255.0
endenable
configure terminal
hostname R3
no ip domain-lookup
interface g0/0/0
ip address 10.0.23.3 255.255.255.0
no shutdown
interface g0/0/1
ip address 10.0.34.3 255.255.255.0
no shutdown
interface lo0
ip address 3.3.3.3 255.255.255.255
interface lo1
ip address 203.0.113.1 255.255.255.0
end
enable
configure terminal
router bgp 65002
bgp router-id 3.3.3.3
neighbor 10.0.23.2 remote-as 65001
neighbor 10.0.34.4 remote-as 65003
network 203.0.113.0 mask 255.255.255.0
endenable
configure terminal
hostname R4
no ip domain-lookup
interface g0/0/0
ip address 10.0.34.4 255.255.255.0
no shutdown
interface g0/0/1
ip address 10.0.14.4 255.255.255.0
no shutdown
interface lo0
ip address 4.4.4.4 255.255.255.255
interface lo1
ip address 198.51.100.1 255.255.255.0
end
enable
configure terminal
router bgp 65003
bgp router-id 4.4.4.4
neighbor 10.0.14.1 remote-as 65001
neighbor 10.0.34.3 remote-as 65002
network 198.51.100.0 mask 255.255.255.0
endحيّاك الله. الدرس اللي فات منعنا الـ transit بـ prefix list فيها شبكاتنا. والمشكلة: كل شبكة جديدة لازم تضيفها للقائمة، ولو نسيت، ما تنعلن. الحل الأذكى: نفلتر حسب الـ AS path. المسار اللي بدأ عندنا، الـ AS path حقه فاضي داخل شركتنا. فنقول: أعلن بس المسارات اللي الـ AS path حقها فاضي.
والـ AS path نكتبه بـ regular expression. والرموز المهمة: caret: بداية الـ path. dollar: نهايته. underscore: أي فاصل، مسافة أو بداية أو نهاية. dot: أي حرف واحد. star: صفر أو أكثر من اللي قبله. والأقواس المربعة: حرف من مجموعة. قبل ما تطبّق أي regex، جرّبه. الأمر show ip bgp regexp يعرض المسارات اللي تطابقه. نجرّب على R1: المسارات اللي بدأت في AS six five zero zero two.
show ip bgp regexp _65002$طلعت two oh three dot zero dot one thirteen dot zero بطريقيها: من R4 بـ six five zero zero three ثم six five zero zero two، ومن R2 بـ six five zero zero two. والاثنين ينتهون بـ six five zero zero two. والحين الـ AS path الفاضي، يعني شبكاتنا.
show ip bgp regexp ^$شبكاتنا الاثنتين بس. نطبّق على R1: ip as-path access-list رقم واحد، permit caret dollar. وبعدها على الجار R4: filter-list واحد out. وانتبه: الـ as-path access-list في آخرها deny مخفي، زي كل القوائم.
configure terminal
ip as-path access-list 1 permit ^$
router bgp 65001
neighbor 10.0.14.4 filter-list 1 out
end
clear ip bgp 10.0.14.4 soft out
show ip bgp neighbors 10.0.14.4 advertised-routesR1 يعلن شبكاتنا بس، بدون prefix list. ولو أضفنا شبكة جديدة بكرة، بتنعلن تلقائياً، لأن الـ AS path حقها فاضي. وفي الاختبار، فخ مشهور: الـ regex caret dollar يشتغل بس باتجاه out. لو حطيته in من جار eBGP، يرفض كل شي، لأن أي مسار جاي من جار eBGP فيه رقم الجار على الأقل. الحين دورك. R1 ما يبغى يستقبل من ISP-B أي مسار يمر على AS six five zero zero two، لأن ISP-A متصل فيه أصلاً عن طريق R2. سوّ as-path access-list رقم اثنين ترفض underscore six five zero zero two underscore وتقبل الباقي، وطبّقها in على R4. وقّف الفيديو، وجرّب.
تمرين: على R1: ip as-path access-list 2 deny _65002_، و ip as-path access-list 2 permit .*، و neighbor 10.0.14.4 filter-list 2 in، و clear ip bgp 10.0.14.4 soft in. بعدها show ip bgp 203.0.113.0.
الحل.
configure terminal
ip as-path access-list 2 deny _65002_
ip as-path access-list 2 permit .*
router bgp 65001
neighbor 10.0.14.4 filter-list 2 in
end
clear ip bgp 10.0.14.4 soft in
show ip bgp 203.0.113.0two oh three dot zero dot one thirteen dot zero بقى لها طريق واحد، من R2. والطريق عن طريق R4 اللي يمر على six five zero zero two انرفض. ولاحظ سطر permit dot star: بدونه، الـ deny المخفي كان بيرفض كل شي من R4، حتى one ninety eight dot fifty one dot one hundred dot zero. الخلاصة: الـ regex يوصف الـ AS path، وجرّبه بـ show ip bgp regexp، وطبّقه بـ as-path access-list و filter-list. والدرس الجاي: الـ communities.
دروس المسار (74)
- حيّاكم الله: من ENCOR إلى ENARSI
- كيف يختار الراوتر المسار: Longest Match و Administrative Distance
- الـ Prefix List: فلترة بالشبكة وبطول الـ prefix
- الـ Route Map: لغة السياسات في التوجيه
- الـ Distribute List: الفلترة في EIGRP وفي OSPF
- الـ Redistribution: ربط EIGRP مع OSPF
- مشاكل الـ Redistribution في أكثر من نقطة: Tags تمنع الـ Loop
- الـ Summarization: مسار واحد بدل أربعة، و Null0
- منع الـ Loops: Split Horizon و Route Poisoning
- الـ Policy Based Routing: توجيه حسب المصدر
- الـ VRF-Lite: أكثر من Routing Table في راوتر واحد
- الـ BFD: اكتشاف العطل في جزء من الثانية
- تشخيص أعطال التوجيه: طريقة منظمة على شبكة خربانة
- EIGRP: شروط الجيرة وتشخيص الجار اللي ما يطلع
- EIGRP: الـ Metric بالأرقام، وكيف تتحكم في المسار
- EIGRP: الـ DUAL و الـ Feasible Successor
- EIGRP Named Mode: كل الإعدادات في مكان واحد
- EIGRP: الـ Variance و Unequal-Cost Load Balancing
- EIGRP Stub: حماية الشبكة من الـ Queries
- EIGRP: الـ Leak-Map والـ Offset-List
- EIGRP: الـ Authentication بـ MD5 و SHA-256
- EIGRP for IPv6: الـ Classic والـ Named
- تشخيص EIGRP: ثلاث مشاكل في طريق واحد
- OSPF: حالات الجيرة، و Hello، و MTU
- OSPF: أنواع الشبكات و الـ DR و الـ BDR
- OSPF: أنواع الـ LSAs وقراءة الـ Database
- OSPF: ترتيب تفضيل المسارات وقاعدة الـ Backbone
- OSPF: الـ Stub و Totally Stubby Areas
- OSPF: الـ NSSA و LSA النوع سبعة
- OSPF: التلخيص في الـ ABR والـ ASBR
- OSPF: الفلترة الصحيحة بين الـ Areas
- OSPF: الـ Virtual Link لـ Area مفصولة
- OSPF: الـ Cost والـ Reference Bandwidth
- OSPF: الـ Authentication بـ MD5 و SHA
- OSPFv3: الـ OSPF حق IPv6
- تشخيص OSPF: جيران ما يطلعون
- BGP: الجلسات وحالاتها
- BGP: الـ iBGP بين الـ Loopbacks
- BGP: الـ Next Hop في الـ iBGP و next-hop-self
- BGP: الـ Route Reflector بدل الـ Full Mesh
- BGP: خوارزمية اختيار أفضل مسار
- BGP: التحكم في الترافيك الطالع بالـ Weight والـ Local Preference
- BGP: التحكم في الترافيك الداخل بالـ AS Path Prepend والـ MED
- BGP: الفلترة بالـ Prefix List وخطر الـ Transit
- BGP: الـ Regular Expressions و AS Path Filter
- BGP: الـ Communities و no-export
- BGP: حماية الجلسات بالـ Password و TTL Security
- MP-BGP: BGP لـ IPv6 بالـ Address Families
- تشخيص BGP: جلسات واقعة ومسار مو valid
- MPLS و LDP: Core بدون BGP
- MPLS Layer 3 VPN: الـ VRF و RD و RT و VPNv4
- تشخيص MPLS VPN: من الـ Core لفوق
- DMVPN: الـ mGRE و NHRP
- DMVPN: التوجيه فوق النفق و Phase 2
- DMVPN: الـ Phase 3 والحماية بـ IPsec
- AAA: TACACS+ و RADIUS وتشخيص الدخول
- الـ ACLs: الترتيب، والـ Sequence Numbers، والمكان الصح
- الـ Time-Based ACL: صلاحيات حسب الوقت
- الـ ACLs في IPv6 وفخ الـ Neighbor Discovery
- الـ uRPF: الحماية من العناوين المزوّرة
- الـ CoPP: حماية الـ Control Plane
- حماية الـ Management Plane: SSH و Access-Class
- IPv6 First-Hop Security: RA Guard و DHCPv6 Guard و Source Guard
- الدخول على الأجهزة والـ Backup بـ TFTP
- SNMP: من v2c المكشوف إلى SNMPv3
- الـ Syslog: مستويات الخطورة ووين تروح الرسائل
- الـ Debug بشرط: بدون ما تغرق الراوتر
- DHCP و الـ Relay: تشخيص أجهزة ما تاخذ عنوان
- DHCPv6: Stateful و Stateless والـ Relay
- الـ IP SLA و Object Tracking: Failover ذكي بين مزوّدين
- الـ Flexible NetFlow: مين يتكلم مع مين
- Catalyst Center Assurance: التشخيص من لوحة وحدة
- مشروع التشخيص الكامل: الشركة طاحت من الإنترنت
- الخاتمة: الاستعداد لاختبار ENARSI و وش بعده