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 در شبکه x(x-1)/2 است و سپس به کمک bgp route reflector به x-1 کاهش پیدا میکند:
بدین ترتیب هر روتر در شبکه فقط یک ارتباط 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 نخواهد شد.
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، شما را به تماشای این اسلاید آموزشی که توسط سیسکو تهیه شده دعوت میکنم.
منبع: shabake