VRRP

شما می‌تونید یک روتر پشتیبان برای خودتان تنظیم کنید.

 

 

  • خلاصه از مفهوم:

 

VRRP اجازه می‌دهد که چندین روتر به صورت مشترک یک IP مجازی رو به خود اختصاص دهند، که این امر می‌تواند باعث افزایش پایداری شبکه در صورت خرابی یک روتر شود.VRRP با ایجاد یک گروه از روترها که یک آدرس IP مجازی رو به اشتراک می‌گذارند، اطمینان می‌دهد که اگر روتر اصلی (Master) خراب شود، یکی از روترهای پشتیبان (Backup) به صورت خودکار جایگزین آن شود. این قابلیت باعث کاهش زمان قطع ارتباط می‌شود. همچنین از هر دو نسخه پروتکل اینترنت (IPv4 و IPv6) پشتیبانی می‌کند که باعث می‌شود در شبکه‌های مدرن و قدیمی قابل استفاده باشد.

فرض کنید در یک شبکه، دو روتر با نام‌های Router A و Router B داریم. هر دو روتر بخشی از یک گروه VRRP هستند و یک IP مجازی مشترک دارند. در حالت عادی، Router A به عنوان روتر اصلی (Master) عمل می‌کند و ترافیک شبکه را مدیریت می‌کند. اگر Router A خراب شود، VRRP به صورت خودکار Router B رو به عنوان روتر اصلی انتخاب می‌کند و ترافیک شبکه به سمت Router B هدایت می‌شود بدون اینکه نیازی به تغییر تنظیمات شبکه یا مداخله انسانی باشد. این عملکرد باعث می‌شود که شبکه بدون قطع ارتباط به کار خود ادامه دهد و کاربران نهایی متوجه خرابی روتر نشوند.

 


  • بررسی این پروتکل:

 

 

هدف VRRP برقراری ارتباط با تمام روترهای VRRP مرتبط با id روتر مجازی و پشتیبانی از افزونگی روتر از طریق یک فرآیند انتخابی اولویت‌دار در میان آنهاست. تمام پیام ها توسط بسته های چندپخشی IPv4 یا IPv6 با استفاده از پروتکل ۱۱۲ (VRRP) انجام می‌شود. destination address بسته IPv4 224.0.0.18 و برای IPv6 FF02:0:0:0:0:0:0:12 و source address بسته همیشه آدرس IP اولیه یک interface است که بسته از آن ارسال می‌شود. در شبکه های IPv6، آدرس source، آدرس link-local یک interface است.

این بسته ها همیشه با TTL=255 ارسال می شوند و توسط روتر ارسال نمی شوند. اگر به هر دلیلی روتر بسته ای با TTL کمتر دریافت کند، یک بسته دور انداخته می شود. هر VR node یک  MAC Address اختصاص داده شده دارد. این آدرس مک به عنوان منبعی برای تمام پیام های دوره ای ارسال شده توسط master استفاده می شود. روتر مجازی توسط VRID تعریف شده و مجموعه ای از آدرس های IPv4 یا IPv6 نقشه برداری شده است. به روتر master مالک یا owner هم می‌گوییم. هیچ محدودیتی برای استفاده از VRID یکسان برای IPv4 و IPv6 وجود ندارد، با این حال، این دو روتر مجازی متفاوت خواهند بود. فقط روتر Master می‌تواند Advertisement messages دوره‌ای ارسال کند تا ترافیک رو به حداقل برساند. یک backup version فقط در صورتی سعی می‌کند که Master رو از اولویت بالاتری برخوردار کند و preemption  ممنوع نباشد.

 

 

 

  1. Virtual Router (VR):یک روتر مجازی (VR) شامل یک روتر owner و یک یا چند روتر backup متعلق به یک شبکه است. VR شامل:
    +VRID روی هر روتر VRRP کانفیگ میشود.
    +IP مجازی در هر روتر.+owner و backup بر روی هر روتر کانفیگ می‌شود
    در یک VR معین فقط یک owner می‌تواند وجود داشته باشد.

    Virtual MAC address:

    VRRP به طور خودکار آدرس MAC رو به VRRP interface بر اساس پیشوند استاندارد MAC برای بسته های VRRP و شماره VRID اختصاص می‌دهد. پنج اکتت اول ۰۰:۰۰:۵E:00:01 هستند و آخرین اکتت VRID کانفیگ می‌شود. برای مثال، اگر Virtual Routers VRID 49 باشد، آدرس MAC مجازی ۰۰:۰۰:۵E:00:01:31 خواهد بود.

  2. Owner:روتر owner برای یک VR، روتر master پیش‌فرض است و به عنوان owner برای همه زیرشبکه‌های موجود در VR عمل می‌کند. اولویت در روتر owner باید بالاترین مقدار (۲۵۵) باشد و IP مجازی همان IP واقعی (مالک آدرس IP مجازی) است.
  3. Master:یک روتر master در یک VR به عنوان دروازه فیزیکی برای شبکه ای که برای آن کانفیگ کردیم عمل می کند. انتخاب Master توسط مقدار اولویت کنترل می شود. حالت Master رفتار روتر Master را توصیف می کند. برای مثال شبکه، R1 روتر Master است. وقتی R1 دیگر در دسترس نیست، R2 به عنوان master انتخاب می شود.
  4. Backup:

    VR باید حداقل یک روتر backup داشته باشد. یک روتر backup باید با همان IP مجازی Master برای آن VR کانفیگ شود. اولویت پیش‌فرض برای روترهای پشتیبان ۱۰۰ است. وقتی روتر master فعلی دیگر در دسترس نباشد، روتر پشتیبان با بالاترین اولویت تبدیل به یک master فعلی می‌شود. هر بار که روتر با اولویت بالاتر در دسترس قرار می گیرد، به Master تبدیل می شود. گاهی اوقات این رفتار ضروری نیست. برای لغو آن، حالت preemption باید disable شود.

  5. Virtual Address:
    IP مجازی مرتبط با VR باید یکسان باشد و روی تمام node های VR تنظیم شود. تمام آدرس های مجازی و واقعی باید از یک شبکه باشند.اگر Master VR با چندین آدرس IP مرتبط باشد، روترهای backup متعلق به همان VR نیز باید با همان مجموعه آدرس‌های IP مجازی مرتبط شوند. اگر آدرس مجازی روی Master نیز روی Backup نباشد، کانفیگ نادرستی وجود دارد و  VRRP advertisement packets کنار گذاشته می‌شوند.همه اعضای روتر مجازی رو می توان طوری کانفیگ کرد که IP مجازی با IP فیزیکی یکسان نباشد. چنین آدرس مجازی رو می توان آدرس IP مجازی شناور (floating virtual IP address) یا ( pure virtual IP address ) نامید.مزیت این تنظیمات انعطاف پذیری هست که به admin داده شده. از آنجایی که آدرس IP مجازی آدرس واقعی هیچ یک از روترهای شرکت کننده نیست، admin می تواند این روترهای فیزیکی یا آدرس آنها را بدون نیاز به کانفیگ مجدد خود روتر مجازی تغییر دهد.در شبکه های IPv6، اولین آدرس همیشه یک link-local address مرتبط با VR می‌باشد. اگر چندین آدرس IPv6 کانفیگ شده باشند، پس از link-local address به advertisement packet اضافه می شوند. 

    IPv4 ARP:

    Master برای یک VR معین به درخواست های ARP با آدرس MAC اختصاص داده شده VR پاسخ می دهد. MAC Address مجازی نیز به عنوان Source MAC Address برای Advertisement packets ارسال شده توسط master استفاده می شود. به درخواست های ARP برای IP غیر مجازی، روتر آدرس ها با MAC Address سیستم پاسخ می دهد. روترهای backup به درخواست های ARP برای IP های مجازی پاسخ نمی دهند.

    IPv6 ND:

    در شبکه های IPv6 به جای ARP از پروتکل Neighbor Discovery استفاده می شود. هنگامی که یک روتر به عنوان Master تبدیل می شود، یک تبلیغ ناخواسته ND Neighbor با flag روتر برای هر آدرس IPv6 مرتبط با روتر مجازی ارسال می شود.

      

  • VRRP state machine:

 

هر گره VRRP می تواند در یکی از سه حالت باشد:

 

 

 

  1. Init state:هدف از این حالت انتظار برای یک وضعیت Startup است. پس از دریافت این وضعیت، اقدامات زیر انجام می شود:
    ” -اگر priority ما ۲۵۵ بود.
    – برای advertisement packet ،IPv4 ارسال کنید و درخواست های ARP را پخش کنید.
    – برای IPv6 یک تبلیغ ناخواسته ND Neighbor برای هر IPv6 address مرتبط با روتر مجازی ارسال کنید و destination address رو  local-link address مرتبط با VR تنظیم کنید.
    – انتقال به حالت MASTER.”در غیر این صورت به حالت BACKUP انتقال پیدا می‌کند.
  2. backup state:- در شبکه‌های IPv4، یک node به درخواست‌های ARP پاسخ نمی‌دهد و ترافیک را برای IP مرتبط با VR ارسال نمی‌کند.
    – در شبکه‌های IPv6، یک node به پیام‌های درخواست ND Neighbor پاسخ نمی‌دهد و Advertisement messages روتر ND را برای آدرس‌های IPv6 مرتبط با VR ارسال نمی‌کند.
    وظیفه اصلی روترها اینه که دریافت advertisement packet و بررسی اینکه آیا node مستر موجود است یا خیر.روتر backup در دو حالت خود را به حالت master منتقل می کند:– اگر advertisement packet برابر با ۰ باشد.
    -وقتی Preemption_Mode روی yes تنظیم باشد و priority در Advertisement کمتر از local priority  باشد.
    بعد از انتقال به Master state node:-در IPv4 شروع میکند به پخش کردن request ARP رایگان.
    -در IPv6 یک unsolicited ND Neighbor Advertisement برای هر آدرس IPv6 مرتبط ارسال می کند.در سایر موارد، advertisement packet دور ریخته می شود. هنگامی که وضعیت shutdown دریافت شد، به حالت Init منتقل می‌شود.
  3. Master State:هنگامی که حالت MASTER تنظیم شده باشد، node به عنوان یک روتر ارسال برای آدرس های IPv4/IPv6 مرتبط با VR عمل می کند.در شبکه های node Master ،IPv4 به request ARP برای آدرس IPv4 مرتبط با VR پاسخ می دهد. در شبکه های Master Node ،IPv6:
    – به پیام ND Neighbor Solicitation برای آدرس IPv6 مرتبط پاسخ می دهد.
    -ND router Advertisment رو برای آدرس های IPv6 مرتبط ارسال می کند.اگر advertisement packet توسط master node دریافت شود:-اگر priority 0 است، بلافاصله advertisement رو ارسال کنید.
    -اگر priority در advertisement packet از priority node ها بیشتر است، به حالت backup انتقال دهید.
    -اگر priority در advertisement packet برابر با priority node ها باشد و آدرس IP اولیه فرستنده بیشتر از آدرس IP اولیه لوکال باشد، به حالت backup انتقال دهید.
    -در موارد دیگر advertisement رو لحاظ نکنید.هنگامی که وضعیت shutdown دریافت شد، advertisement packet  رو با priority=0 ارسال کنید و به حالت Init انتقال دهید.

    Connection tracking synchronization:

    VRRP Connection Tracking Synchronization مستلزم آن است که RouterOS connection tracking در حال اجرا باشد. به طور پیش فرض، connection tracking در حالت auto کار می کند. اگر دستگاه های VRRP حاوی firewall rules نیستند، باید connection tracking رو به صورت دستی فعال کنید:

    /ip/firewall/connection/tracking/set   enabled=yes

    برای ورودی‌های Connection Tracking Synchronization، دستگاه را به صورت زیر کانفیگ کنید:

 

/interface/vrrp/set vrrp1     sync-connection-tracking=yes

کانفیگ رو در logging section بررسی کنید:

 

۱۶:۱۴:۰۶   vrrp,info   vrrp1   now MASTER, master down timer
۱۶:۱۴:۰۶   vrrp,info   vrrp1   stop CONNTRACK
۱۶:۱۴:۰۶   vrrp,info   vrrp1   starting CONNTRACK MASTER

ورودی های connection tracking فقط از Master به دیوایس Backup همگام می شوند.

 

هنگامی که sync-connection-tracking و حالت preemption فعال می‌شوند و روتر با Priority VRRP بالاتر آنلاین می‌شود، ابتدا Connection همگام‌سازی (synchronize) می‌شوند و تنها پس از آن روتر با اولویت بالاتر تبدیل به Master VRRP می‌شود.


  • Configuring VRRP:

 

IPv4:

 

راه اندازی Virtual Router بسیار آسان است، فقط دو عمل مورد نیاز است – ایجاد VRRP Inteface و تنظیم  Virtual Routers IP Address.

به عنوان مثال، VRRP را به ether1 اضافه کنید و آدرس VRs را به ۱۹۲٫۱۶۸٫۱٫۱ تنظیم کنید.

/interface vrrp  add    name=vrrp1   interface=ether1
/ip address   add address=192.168.1.2/24   interface=ether1
/ip address   add address=192.168.1.1/32   interface=vrrp1

 

توجه داشته باشید که هنگام افزودن VRRP فقط پارامتر ‘interface’ مشخص شده است. این تنها پارامتری است که باید به صورت دستی تنظیم شود، سایر پارامترها در صورتی که مشخص نشده باشند روی پیش فرض خود تنظیم می شوند:

priority=100 and authentication=none.

 

قبل از اینکه VRRP بتواند به درستی عمل کند، آدرس IP صحیحی در ether1 مورد نیاز است. در این مثال ۱۹۲٫۱۶۸٫۱٫۲/۲۴ است.

 

 

IPV6:

 برای اینکه VRRP در شبکه های IPv6 کار کند، چندین گزینه اضافی باید فعال شود پشتیبانی v3- مورد نیاز است و نوع پروتکل باید روی IPv6 تنظیم شود:

 

/interface vrrp add name=vrrp1 interface=ether1 version=3 v3-protocol=ipv6

اکنون وقتی VRRP Interface  تنظیم است، می‌توانیم یک آدرس جهانی اضافه و تبلیغات ND را فعال کنیم:

 

/ipv6 address   add address=FEC0:0:0:FFFF::1/64    advertise=yes   interface=vrrp1

همانطور که در مورد IPv4 وجود دارد، نیازی به پیکربندی آدرس اضافی نیست. IPv6 از آدرس های پیوند محلی برای برقراری ارتباط بین گره ها استفاده می کند.


 

  • پارامترها:

 

 

 

توضیحاتویژگی‌ها
arp resolution protocol modearp (disabled | enabled | proxy-arp | reply-only; Default: enabled)
arp-timeout (integer; Default: auto)
متدهای مختلف فرآیند authentication برای Advertisement packet در VRRP:

اگر بر روی none باشد – باید فقط در شبکه های با امنیت پایین (به عنوان مثال، دو node از VRRP در LAN) استفاده شود.

ah مخفف IP Authentication Header. این الگوریتم محافظت قوی در برابر ارورهای کانفیگ، replay attackها و خرابی/تغییر بسته ها ارائه میکند. زمانی که کنترل محدودی بر مدیریت node ها در یک شبکه LAN وجود دارد، توصیه می شود. HMAC-MD5 استفاده می شود.

simple – از یک clear-text password استفاده می‌کنه. این نوع احراز هویت تنها شامل یک رشته متنی ساده (plaintext) به عنوان رمز عبور است. امنیت این نوع احراز هویت بسیار پایین است چونکه رمز عبور به صورت متن ساده ارسال می‌شود.

authentication (ah | none | simple; Default: none)
به ما اجازه می‌دهد تا چندیدن VRRP interface رو برای حفظ یک وضعیت VRRP یکسان در گروه ترکیب کنیم. برای مثال: نمونه های VRRP در شبکه های LAN و WAN با NAT اجرا می شوند. اگر یک نمونه VRRP Master و دیگری Backup در همان دستگاه باشد، کل شبکه به دلیل خرابی NAT دچار مشکل می شود. گروه بندی interface های VRRP LAN و WAN تضمین می کند که هر دو VRRP Master یا Backup هستند.

در یک گروه VRRP، ترافیک کنترل VRRP فقط توسط group authority ارسال می شود. به همین دلیل است که در یک راه اندازی معمولی WAN+LAN، توصیه می شود از شبکه LAN به عنوان عضو اصلی گروه برای حفظ ترافیک کنترل VRRP در شبکه داخلی استفاده کنید.
group-authority (interface; Default: none)
به ما نام interface و جایی که VRRP بر روی آن در حالت Running هست رو به ما نشون میده.interface (string; Default: )
فاصله به روز رسانی VRRP در ثانیه. تعیین می کند که master چند بار advertisement packet ها رو ارسال کند.interval (time [10ms..4m15s]; Default: 1s)
به سایز mtu در لایه ۳ اشاره دارد.از RouterOS ورژن ۷٫۷،  VRRP interface همیشه از slave interface MTU استفاده می کند.mtu (integer; Default: 1500)
از این قسمت می‌تونید نام VRRP interface رو تعیین کنید.name (string; Default: )
اسکریپت برای اجرا زمانی که node به حالت backup تغییر چیدا می‌کند می شود.on-backup (string; Default: )
اسکریپت برای اجرا زمانی که node به حالت master تغییر می کند.on-master (string; Default: )
اسکریپتی برای اجرا در صورت جواب ندادن node.on-fail (string; Default: )
Password برای Authentication لازم است. در صورت عدم استفاده از Authentication، میتونید این بخش رو نادیده بگیریدpassword (string; Default: )
اینکه آیا node که در وضعیت master همیشه اولویت دارد یا خیر. هنگامی که روی “no” تنظیم شود، node که در وضعیت backup به عنوان master انتخاب نمی شود تا زمانی که master فعلی از کار بیفتد، حتی اگر node backup اولویت بالاتری نسبت به master فعلی داشته باشد. اگر روتر owner در دسترس باشد، این تنظیم نادیده میگیریم.preemption-mode (yes | no; Default: yes)
اولویت node VRRP مورد استفاده در الگوریتم انتخاب master. عدد بالاتر به معنای اولویت بیشتر است. ‘۲۵۵’ برای روتری که دارای IP VR است و ‘۰’ برای روتر Master محفوظ است تا نشان دهد که مسئولیت خود رو رها می کند.priority (integer: 1..254; Default: 100)
remote address روتر VRRP دیگر رو برای سینک connection tracking مشخص می کند. اگر تنظیم نشود، سیستم remote address رو از طریق VRRP به طور auto شناسایی می کند. remote address فقط در صورتی استفاده می شود که sync-connection-tracking=yes باشد. تنظیم یک remote address از خواص زیر برخوردار است:

  • connection syncing سریع‌تر شروع می‌شود زیرا نیازی به منتظر ماندن برای تبادل پیام اولیه VRRP برای شناسایی remote address نیست.
  •  مراحل انتخاب master VRRP سریعتر پیش خواهد رفت.
  • به ارسال داده های connection tracking از طریق یک interface شبکه متفاوت (به عنوان مثال، یک خط امن اختصاصی بین دو روتر) اجازه میدیم.

syncing connection tracking از پورت UDP 8275 استفاده می کند.

remote-address (IPv4; Default: )
پروتکلی که توسط VRRPv3 استفاده خواهد شد. در نظر داشته باشید که فقط در صورتی معتبر است که ورژن ۳ باشد.v3-protocol (ipv4 | ipv6; Default: ipv4)
ورژن VRRP که دارید از آن استفاده میکنید رو به شما نشون میده.version (integer [2, 3]; Default: 3)
شناسه روتر مجازی. هر روتر مجازی باید یک id number منحصر به فرد داشته باشد.vrid (integer: 1..255; Default: 1)
ورودی های Synchronize connection tracking رو از master با backup میتونید سینک کنید. VRRP connection tracking synchronization مستلزم آن است که  RouterOS connection tracking در حال اجرا باشد.sync-connection-tracking (string; Default: no)

 

 

 

برای مشاهده ترجمه ها و مطالب بیشتر روی اینجا کلیک کنید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *