بایگانی برچسب: s

سیسکو BGP AS Prepend

آموزش پیاده سازی BGP AS Prepend روتر سیسکو

آموزش کانفیگ BGP AS Prepend روتر سیسکو

پیاده سازی Cisco BGP AS Prepend جهت BGP Multihoming در روتر سیسکو

BGP AS Prepend یکی از تکنیک های مدیریت مسیریابی BGP و افزایش پایداری ( Fail over ) در شبکه های روتینگی مبتنی بر BGP است ، بدین ترتیب که با توجه به الگوریتم انتخاب مسیر BGP که یکی از مولفه های آن Shortest AS Path است ، میتوان نحوه تصمیم گیری BGP برای انتخاب بهترین مسیر را تحت تاثیر قرار داد .

BGP AS Prepend با استفاده از این معیار که BGP برای انتخاب بهترین مسیر به تعداد AS های موجود در مسیر توجه میکند ، عمل می نماید ، در واقع یکی از عوامل تاثر گذار در تصمیم گیری BGP برای انتخاب Best Route ، کوتاهترین مسیر از لحاظ تعداد AS های مسیر است و BGP AS Prepend روشی است که در آن ما یک AS را برای Adv کردن Prefix های خود به سمت یک BGP Peer چندین بار تکرار میکنیم ، بنابراین روتر سیسکو همسایه ، گمان میکند طول این مسیر از لحاظ AS Path به همان میزان تکرار شدن AS ، طولانی تر از حالت عادی است ، برای مثال به این Route توجه کنید :

route-views>sh ip bg 10.10.10.0
BGP routing table entry for 10.10.10.0/24, version 51853444
Paths: (35 available, best #35, table default)
 Not advertised to any peer
 Refresh Epoch 1
 7018 1299 12880 49689 44066
 12.0.1.63 from 12.0.1.63 (12.0.1.63)
 Origin IGP, localpref 100, valid, external
 Community: 7018:5000 7018:37232
 rx pathid: 0, tx pathid: 0
 Refresh Epoch 1
 6079 2914 9498 8529 8529 8529 12880 12880 12880 12880 12880 12880 12880 12880 12880 12880 12880 49689 44066
 207.172.6.1 from 207.172.6.1 (207.172.6.1)
 Origin IGP, metric 0, localpref 100, valid, external
 rx pathid: 0, tx pathid: 0
 Refresh Epoch 1
 1239 1299 12880 49689 44066
 144.228.241.130 from 144.228.241.130 (144.228.241.130)
 Origin IGP, localpref 100, valid, external
 rx pathid: 0, tx pathid: 0
 Refresh Epoch 1
 4826 2828 1299 12880 49689 44066
 114.31.199.1 from 114.31.199.1 (114.31.199.1)
 Origin IGP, localpref 100, valid, external
 Community: 4826:5901 4826:6150 4826:59011
 rx pathid: 0, tx pathid: 0
 Refresh Epoch 1
 6539 577 174 8529 12880 12880 12880 12880 12880 12880 12880 12880 12880 12880 12880 49689 44066
 66.59.190.221 from 66.59.190.221 (66.59.190.221)
 Origin IGP, localpref 100, valid, external
 rx pathid: 0, tx pathid: 0
 Refresh Epoch 1
 3303 3320 1299 12880 49689 44066
 217.192.89.50 from 217.192.89.50 (138.187.128.158)
 Origin IGP, localpref 100, valid, external
 Community: 3303:3006 3303:3067 3303:8199 3320:1250 3320:2010 3320:9020
 rx pathid: 0, tx pathid: 0
 Refresh Epoch 1
 7660 2516 6453 8529 12880 12880 12880 12880 12880 12880 12880 12880 12880 12880 12880 49689 44066
 203.181.248.168 from 203.181.248.168 (203.181.248.168)
 Origin IGP, localpref 100, valid, external
 Community: 2516:1050
 rx pathid: 0, tx pathid: 0
 Refresh Epoch 1
 852 174 8529 12880 12880 12880 12880 12880 12880 12880 12880 12880 12880 12880 49689 44066
 154.11.98.225 from 154.11.98.225 (154.11.98.225)
 Origin IGP, metric 0, localpref 100, valid, external

همانطور که در خروجی ملاحظه میفرمایید ، ISP ها در سطوح مختلف اقدام به استفاده از BGP AS Prepend جهت مدیریت بر UpLink ها به لحاظ میزان Congested بودن هر کدام و همچنین تحمل قطعی ارتباط و تحمل خرابی و بنا به سیاست های داخلی خود ، بر روی روتر های سیسکو مرزی BGP Edge خود نموده اند .

BGP AS Prepend به سادگی به کمک یک Route-Map بر روی روتر سیسکو و ارتباطات BGP قابل پیاده سازی است ، برای مثال در صورتی که یک سازمان ارتباط خود با اینترنت را از طریق چند ISP فراهم نموده باشد ، میتواند با استفاده از BGP AS Prepend ، موازینی تعیین کرده و Prefix های خود را به همه BGP Peer های خود ارسال کند ، و بنا بر اولویت در هنگام تبلیغ Adv ، به آن AS Prepend بزند .


برای روشن تر شدن مسئله از یک مثال استفاده میکنیم ،

آموزش کانفیگ BGP AS Prepend

آموزش کانفیگ BGP AS Prepend

مطابق دیاگرام فوق ، سازمان مربوطه ، ارتباط به اینترنت خود را از طریق دو ISP که با آنها ارتباط BGP دارد تامین میکند . سازمان مورد نظر ما ، دارای 2 کلاس Valid IP است که توسط AS#300 آنها را تبلیغ Advertise مینماید . همانطور که ملاحظه میفرمایید ، پهنای باند اینترنتی از طریق ISP1 به میزان 10 مگابیت و از طریق ISP2 به میزان 20Mb/s است و همچنین اولویت استفاده از سروریس ISP 2 است و ارتباط ISP 1 به عنوان BackUp در نظر گرفته شده است .
بنابراین مدیر شبکه سازمان مربوطه تصمیم میگیرید که هر دو Prefix خود را به سمت هر دو ISP تبلیغ کند به طوری که ترافیک به شکل پیشفرض از سمت ISP2 سرازیر شود و در صورت بروز مشکل در ISP2 ، ارتباط از طریق ISP1 برقرار بماند .

در اینجاست که مزیت بزرگ BGP AS Prepend خودنمایی میکند ،، لذا برای پیاده سازی این استراکچر ، لازم است Prefix ها را به سمت دو ISP ارسال و در مورد ISP1 ، کافی است AS Number را دوبار تکرار Prepend کنیم :

router bgp 300
 network 1.1.1.0 mask 255.255.255.0
 network 2.2.2.0 mask 255.255.255.0
 neighbor 192.168.1.1 remote-as 100
 neighbor 192.168.1.1 description ISP2
 neighbor 192.168.1.1 route-map prepend out
 neighbor 192.168.2.1 remote-as 200
 neighbor 192.168.2.1 description ISP1

!
route-map prepend permit 10
 set as-path prepend 300 300

بدین ترتیب هر دو Prefix به هر دو ISP بالادست Advertise میشود ، فقط در AS Path برای ISP1 ، مشاهده خواهد شد که AS300 دو مربته بیشتر تکرار شده است .
باید توجه داشت که ممکن است در عین حالی که ما به میزان 2 AS طول مسیر را برای ISP1 طولانی تر کرده ایم ، اما اگر این ISP روت های بهتری در دنیا داشته باشد ، ممکن است باز ترافیک از سمت آن سرریز شود ، لذا اغلب برای اطمینان از این مسئله تعداد دفعات BGP AS Prepend را بیش از 5 بار تنظیم میکنند .
ذکر این نکته نیز خالی از لطف نیست، چندین سال پیش ، ادمین یک ISP در آسیای شرقی ، با prepend زدن نادرست و به تعداد بسیار بالا ، مشکل عظیمی در اینترنت به وجود آورد و باعث فلج شدن شبکه گردید!

جهت بررسی عملکرد BGP AS Prepend ، به سادگی میتوانید ، با استفاده از یکی از Route Server های Public و یا BGP Looking Glass های موجود ، به بررسی صحت عملکرد BGP و نحوه مشاهده شبکه شما از بیرون بپردازید .

حتما توجه داشته باشید که این تکنیک بر روی نحوه advertise شدن Prefix های شبکه تاثیر دارد ، در واقعا این عملیات Down Stream شبکه شما را کنترل میکند ، لذا میبایست جهت FailOver در حط send نیز از تکنیکی نظیر Floating Static Route به همراه IP SLA که قبلا به آن پرداخته ایم ، استفاده کنید .

وفقک الله

سیسکو bgp route reflector

سیسکو BGP Route Reflector چیست ؟

سیسکو Route Reflector

سیسکو Route Reflector

سیسکو BGP Route Reflector چیست ؟

کانفیگ و پیاده سازی bgp route reflector  توسط روتر سیسکو

BGP route reflector یکی از راه حل های سیسکو برای کاهش پیچیدگی و تعدد ارتباطات iBGP در شبکه های Full Mesh BGP است .

BGP route reflector در واقع یک نوع roll به یک یا چند روتر سیسکو در شبکه Full mesh iBGP واگذار میکند به نحوی که تمامی روتر های همسایه در یک AS به جای اینکه با یکدیگر ارتباط iBGP Peering داشته باشند ، فقط با BGP Route Reflector ارتباط iBGP Peering خواهند داشت ، لذا تعداد peering ها از x(x-1)/2  که در آن x تعداد روتر های آن AS است به x-1 کانکشن به ازای هر bgp route reflector کاهش پیدا خواهد کرد :

iBGP full mesh without route reflector

iBGP full mesh without route reflector

در تصویر بالا تعداد همسایگی های iBGP در شبکه :  x(x-1)/2 است و سپس به کمک bgp route reflector به x-1 کاهش پیدا میکند :

full mesh iBGP with bgp route reflector

full mesh iBGP with bgp route reflector

بدین ترتیب هر روتر در شبکه فقط یک ارتباط iBGP با bgp Route Reflector یا همان RR خواهد داشت و مادامی که یکی از روتر ها اقدام به ارسال Update جدیدی به RR نماید ، RR آن Route Update جدید را به تمامی روتر های دیگر ( بنا به شرایطی ) Reflect خواهد کرد .

روتر و یا روتر هایی که به عنوان RR انتخاب میشود میتواند 3 نوع ارتباط BGP Peering داشته باشد :

  • EBGP
  • iBGP Client
  • iBGP non Client

یک RR در شبکه با روتر های دیگر یا ارتباط iBGP Client دارد و یا iBGP non Client ، که تنها فرقی که وجود دارد این است که وقتی یک route از یک non Client neighbor دریافت میشود ، RR میتواند آنرا به تمامی همسایه ها الا non Client ها Reflect دهد ، درواقع هیچ گاه Update دریافت شده از یک non Client به بقیه non Client ها Reflect نخواهد شد .

 مثال :

مطابق دیاگرام زیر R2 به عنوان RR انتخاب میشود ، مادامی که با R1 و R3 به شکل client neighbor کانفیگ شده باشند ، update های دریافتی از هرکدام به دیگری Reflect خواهد شد ، حتی اگر یکی هم non Client باشد ، باز هم Update ها Reflect میشود ، ولی اگر هر دو non client باشند ، آنگاه ، route update دریافتی از یکی به دیگری reflect نخواهد شد .

مثال پیاده سازی bgp route reflector

مثال پیاده سازی bgp route reflector

R1(config)#router bgp 123
R1(config-router)#neighbor 192.168.12.2 remote-as 123
R1(config-router)#network 1.1.1.1 mask 255.255.255.255

R3(config)#router bgp 123
R3(config-router)#neighbor 192.168.23.2 remote-as 123

R2(config)#router bgp 123
R2(config-router)#neighbor 192.168.12.1 remote-as 123
R2(config-router)#neighbor 192.168.12.1 route-reflector-client
R2(config-router)#neighbor 192.168.23.3 remote-as 123
R2(config-router)#neighbor 192.168.23.3 route-reflector-client

همانطور که ملاحظه میکنید ، روتر R1 ، شبکه 1.1.1.1 را advertise میکند ، R2 این Route Update را به R3 نیز Reflect خواهد داد ، لیکن اگر R1 و R3 به عنوان route-reflector-client معرفی نمیشدند ، این اتفاق نمی افتاد .

به شکل پیشفرض Reflection بین Client ها اتفاق میوفتد ، در صورتی که به هر دلیل نخواهیم Reflection به سمت Client ها انجام شود ، میتوان از این دستور استفاده کرد :

Router(config-router)# no bgp client-to-client reflection

برای درک بهتر و بیشتر bgp route reflection ، شما را به تماشای این اسلاید آموزشی که توسط سیسکو تهیه شده دعوت میکنم .

introducing-route-reflectors – Cisco

وفقک الله

BOGON و راه حل رهائی از بوگون ها چیست ؟

bogon چیست ؟

 

BOGON و راه حل رهائی از بوگون ها چیست ؟

Bogon ها ، اساسا IP آدرس های بی نام و نشانی هستند که در دیتابیس هیچ یک از پروایدر های IP جهانی مثل RIPE هنوز Allocate نشده اند و فعلا در انحصار کسی نیستند ، پس اصولا کسی نباید آنها را Advertise کند .

ابتدا گریزی بزنیم به اساس کار سازمان های ثبت IP ،

بر اساس فتاوای سازمان های ثبت IP مثل Ripe ncc ، هیچ شخص یا سازمانی صاحب آدرس های IP نیست ، و این آدرس ها مثل اکسیژن به همه مردم تعلق دارند ، یعنی مثلا در زمانی شخصی نیاز به IP دارد و این IP در اختیار آن شخص تا زمان رفع نیاز قرار میگیرد و کسی نمیتواند حتی یک تک IP را بخرد و تا ابد در اختیار خود نگه دارد و در واقع فقط IP را اجاره میکند .

LIR ها همان نمایندگان سازمان های ثبت IP در هر کشور هستند و هر کشور میتواند چند ده و حتی چند صد LIR داشته باشد و مردم بنا به نیاز مثل ISP ها سازمان ها ، ادارات ، شرکت ها ، به این شرکت ها مراجعه و یک یا چند IP یا بلاک IP را اجاره میکنند ولی هیچ گاه برای همیشه این آدرس ها به آنها تعلق نمیگیرد .

روال کار به این شکل است که وقتی مثلا یک ISP یک prefix /24 از آدرس IP را از یک LIR اجاره میکند ، آن LIR آن پریفیکس را به نام آن ISP ثبت کرده و یک Route Object برای آن شخص در دیتابیس RIPE ایجاد میکند که بر اساس آن به مسریاب های اصلی Backbon های اینترنت میگوید که این پریفیکس از مثلا AS12880 ادورتایز میشود ، حال این AS میتواند AS خود آن ISP یا AS پروایدر دست بالایی آن ISP باشد .

بنا بر توضیحات فوق ، همه موضف اند فقط پریفیکس هائی را به peer های BGP خود ادورتایز کنند که متعلق با آنهاست و در دیتابیس جهانی دارای Route object است ، اما …

همیشه مثلا انسان هایی هستند که احساس زرنگی میکنند و فکر میکنند که چون مثلا یک پریفیکس /24 از IP وجود دارد که هیچ صاحبی ندارد ، پس صاحبش آنها هستند :دی ! اما زهی خیال باطل ، چون اخیرا قوانین انقدر سختگیرانه شده که ، تا Route object برای یک کلاس وجود نداشته باشد ، اولین Router اصلی ، این IP را Route نمیکند و drop میشود !

به هر حال ، چون همه router های مسیر تابع RIB نیستند ، همیشه IP های بی صاحبی هستند که دارای route هستند ، متاسفانه !

چاره چیست ؟! حفره سیاه یا همان Black Hole !

بدین معنی که جمعیت های خیری هستند که برای منافع من و شما اقدام به راه اندازی Route Server هائی جهت فیلتر کردن BOGON ها مینمایند ، بدین ترتیب که شما میتوانید با آنها یک BGP Peering برقرار کرده و آنها لیست Bogon ها را برای شما Advertise میکنند و شما میتوانید همیشه یک لیست Update از این آدرس ها داشته و چون در Routing Table شما مسیر به آنها که همانا Null Routing است ، وجود دارد ، با خیال راحت زندگی کنید ! به همین راحتی !

البته روش های دیگری نیز مثل DNS و HTTP نیز برای رهایی از بوگون ها وجود دارد ، ولی برای پروایدر ها و ISP هایی که در حدی هستند که معضل Bogon را احساس کنند ، BGP راه حل بهتریست !

برای نمونه تعدادی از BOGON های دریافتی که البته تعداد فعلی آنها به 4898 پریفیکس میرسد :

*> 0.0.0.0/8 38.229.66.20 0 65332 i
*> 5.45.32.0/20 38.229.66.20 0 65332 i
*> 5.133.64.0/18 38.229.66.20 0 65332 i
*> 5.200.128.0/17 38.229.66.20 0 65332 i
*> 5.252.0.0/15 38.229.66.20 0 65332 i
*> 10.0.0.0 38.229.66.20 0 65332 i
*> 14.1.24.0/21 38.229.66.20 0 65332 i
*> 14.1.96.0/19 38.229.66.20 0 65332 i
*> 14.102.160.0/19 38.229.66.20 0 65332 i
*> 14.192.0.0/19 38.229.66.20 0 65332 i
*> 23.90.0.0/15 38.229.66.20 0 65332 i
*> 23.92.0.0/14 38.229.66.20 0 65332 i
*> 23.104.0.0/13 38.229.66.20 0 65332 i
*> 23.112.0.0/12 38.229.66.20 0 65332 i
*> 23.128.0.0/10 38.229.66.20 0 65332 i
*> 23.128.0.0/9 38.229.66.20 0 65332 i
*> 23.212.0.0/14 38.229.66.20 0 65332 i
*> 23.216.0.0/13 38.229.66.20 0 65332 i
*> 23.224.0.0/11 38.229.66.20 0 65332 i
*> 24.30.224.0/19 38.229.66.20 0 65332 i
*> 24.41.96.0/19 38.229.66.20 0 65332 i
*> 24.50.32.0/19 38.229.66.20 0 65332 i
*> 24.50.160.0/19 38.229.66.20 0 65332 i
*> 24.51.0.0/19 38.229.66.20 0 65332 i
*> 24.51.224.0/19 38.229.66.20 0 65332 i
*> 24.53.96.0/19 38.229.66.20 0 65332 i
*> 24.53.192.0/19 38.229.66.20 0 65332 i
*> 24.54.64.0/19 38.229.66.20 0 65332 i
*> 24.102.64.0/18 38.229.66.20 0 65332 i
*> 24.104.160.0/19 38.229.66.20 0 65332 i
*> 24.104.192.0/18 38.229.66.20 0 65332 i
*> 24.105.64.0/18 38.229.66.20 0 65332 i
*> 24.129.192.0/19 38.229.66.20 0 65332 i
*> 24.140.224.0/19 38.229.66.20 0 65332 i
*> 24.143.128.0/18 38.229.66.20 0 65332 i
*> 24.146.32.0/19 38.229.66.20 0 65332 i
*> 24.146.64.0/18 38.229.66.20 0 65332 i
*> 24.152.0.0/17 38.229.66.20 0 65332 i
*> 24.156.160.0/19 38.229.66.20 0 65332 i
*> 27.0.128.0/17 38.229.66.20 0 65332 i
*> 27.54.144.0/21 38.229.66.20 0 65332 i
*> 27.96.88.0/21 38.229.66.20 0 65332 i
*> 27.100.4.0/22 38.229.66.20 0 65332 i
*> 27.100.36.0/22 38.229.66.20 0 65332 i
*> 27.109.124.0/22 38.229.66.20 0 65332 i
*> 27.111.72.0/22 38.229.66.20 0 65332 i
*> 27.112.112.0/21 38.229.66.20 0 65332 i
*> 27.112.120.0/22 38.229.66.20 0 65332 i
*> 27.116.40.0/22 38.229.66.20 0 65332 i
*> 27.122.60.0/22 38.229.66.20 0 65332 i
*> 31.13.184.0/21 38.229.66.20 0 65332 i
*> 31.22.8.0/21 38.229.66.20 0 65332 i
*> 31.132.8.0/21 38.229.66.20 0 65332 i
*> 31.132.32.0/19 38.229.66.20 0 65332 i
*> 31.133.96.0/21 38.229.66.20 0 65332 i

   وفقک الله

Aka Networks