سیسکو LISP چیست
جدا کردن هویت از مکان، از دیتاسنتر تا SD-Access
اگر روی روتر مرزی هنوز برای هر جابهجایی ماشین مجازی یک /32 در کل شبکه پخش میکنید، یا ترافیک ورودی سایت دوم از دیتاسنتر قدیمی برمیگردد و از روی لینک DCI hairpin میشود، همان جایی است که باید سیسکو LISP را جدی بگیرید. LISP مخفف Locator/ID Separation Protocol است: هویت میزبان (EID) را از مکان اتصال (RLOC) جدا میکند و بستهها را با یک سیستم نگاشت، شبیه DNS، به جای فعلی مقصد میرساند.
مقدمه
اینترنت و شبکههای سازمانی بر پایهی یک فرض قدیمی ساخته شدهاند: آدرس IP هم میگوید «تو کی هستی» و هم میگوید «کجا هستی». تا وقتی سرورها ثابت بودند و هر سازمان فقط یک اتصال اینترنت داشت، این فرض مشکلی ایجاد نمیکرد. اما امروز ماشینهای مجازی بین دیتاسنترها جابهجا میشوند، سازمانها چند اتصال به چند ISP دارند، کاربران با لپتاپ و گوشی بین طبقات و ساختمانها حرکت میکنند و سایتهای پشتیبان (DR) باید در چند دقیقه جای سایت اصلی را بگیرند.
در همهی این سناریوها، گره خوردن هویت و مکان در یک آدرس دردسرساز است: اگر دستگاه جابهجا شود، یا باید آدرسش عوض شود (و ارتباطها قطع شوند)، یا باید مسیرهای اختصاصی /32 در کل شبکه پخش شود (و جدولهای مسیریابی منفجر شوند). LISP برای حل دقیقاً همین مسئله ساخته شده است.
اینجا LISP را از پایه و با همان جزئیاتی که موقع پیادهسازی لازم میشود میخوانیم: مفاهیم EID و RLOC، اجزای شبکهی LISP، نحوهی کار Control Plane و Data Plane، ساختار دقیق بسته، کاربرد LISP در جابهجایی ماشینهای مجازی بین دیتاسنترها، نقش آن در Cisco SD-Access، ملاحظات امنیتی و در نهایت پیکربندی نمونهی قابلپیادهسازی روی روترها و سوئیچهای سیسکو.
LISP چیست؟
LISP مخفف Locator/ID Separation Protocol یا «پروتکل جداسازی مکان از هویت» است. به تعریف سیسکو، LISP یک معماری و پروتکل شبکه است که بهجای یک آدرس IP واحد، از دو فضای نام استفاده میکند: EID برای میزبانها و RLOC برای دستگاههایی (عمدتاً روترها) که سیستم مسیریابی را میسازند (Cisco – LISP Overview).
LISP یک پروتکل Overlay است: هیچ تغییری در سیستمعامل میزبانها و هیچ تغییری در روترهای هستهی شبکه لازم ندارد. فقط روترهای مرزی هر سایت (xTRها) باید LISP را بفهمند. این روترها بستهی اصلی را داخل یک هدر جدید کپسوله میکنند و آن را به مکان فعلی مقصد میفرستند؛ مکانی که از یک سیستم نگاشت (Mapping System) شبیه DNS پرسیده میشود.
LISP در یک نگاه
| ویژگی | مقدار |
|---|---|
| نام کامل | Locator/ID Separation Protocol |
| استانداردهای فعلی | RFC 9300 (Data Plane) و RFC 9301 (Control Plane)، اکتبر ۲۰۲۲، Standards Track؛ جایگزین RFC 6830 و 6833 |
| معماری | RFC 9299 |
| فضاهای نام | EID (هویت میزبان) و RLOC (مکان اتصال) |
| پورت داده | UDP 4341 |
| پورت کنترل | UDP 4342 |
| مدل یادگیری | Pull (درخواست در لحظهی نیاز)، شبیه DNS |
| سربار کپسولهسازی | ۳۶ بایت در IPv4 (۲۰ IP + ۸ UDP + ۸ LISP)، ۵۶ بایت در IPv6 |
| شناسهی مجازیسازی | Instance ID، ۲۴ بیت |
| Data Plane جایگزین در سیسکو | VXLAN (در SD-Access و LISP VXLAN Fabric) |
تاریخچه
ایدهی LISP از کارگاه «Routing and Addressing» هیئت معماری اینترنت (IAB) در آمستردام، اکتبر ۲۰۰۶، شروع شد؛ جایی که رشد بیرویهی جدول مسیریابی جهانی اینترنت (DFZ) یک تهدید جدی شناخته شد (RFC 4984). پیشنهاد اولیهی LISP را مهندسانی از سیسکو از جمله Dino Farinacci، Vince Fuller، Dave Meyer و Darrel Lewis نوشتند. نسخههای اول در سال ۲۰۱۳ بهصورت Experimental (RFC 6830 تا 6836) منتشر شدند و در اکتبر ۲۰۲۲ با RFC 9300 و RFC 9301 به استاندارد رسمی IETF تبدیل شدند (RFC 9300).
LISP برای کوچک کردن جدول مسیریابی اینترنت جهانی طراحی شد، ولی جایی که واقعاً جا افتاد جای دیگری بود: جابهجایی ماشینهای مجازی بین دیتاسنترها، شبکههای WAN چندسایته، IPv6 روی شبکهی IPv4 و مهمتر از همه، Cisco SD-Access که LISP را به Control Plane هزاران شبکهی پردیس تبدیل کرده است.
مشکل اصلی: یک آدرس، دو نقش
سیسکو مسئله را اینطور خلاصه میکند: از همان سالهای اول تحقیق روی شبکه مشخص بود که یک آدرس IP واحد که هم هویت و هم مکان را در خود دارد، به مقیاسپذیری ضعیف مسیریابی منجر میشود و Multihoming و جابهجایی دستگاهها را دشوار میکند (Cisco). بیایید سه پیامد آن را ببینیم:
- انفجار جدول مسیریابی: هر سازمانی که میخواهد به دو ISP وصل شود (Multihoming) یا آدرس مستقل از ISP (PI) داشته باشد، پیشوند خودش را در BGP جهانی اعلام میکند. نتیجه، جدول مسیریابی بزرگتر در همهی روترهای اینترنت است.
- جابهجایی سخت: وقتی ماشین مجازی از دیتاسنتر تهران به سایت DR در اصفهان منتقل میشود، یا باید آدرسش عوض شود، یا باید Subnet آن با فناوریهایی مثل OTV کش داده شود، یا باید یک Host Route /32 در کل شبکه پخش شود. هر سه راه هزینه دارند.
- مهندسی ترافیک ورودی ضعیف: در BGP، کنترل اینکه ترافیک ورودی از کدام ISP بیاید با ابزارهای غیرمستقیمی مثل AS-Path Prepending انجام میشود که دقیق و قابلپیشبینی نیستند.
راهحل LISP: آدرس میزبان (EID) را از سیستم مسیریابی خارج کنید، و فقط آدرس روترهای مرزی (RLOC) را مسیریابی کنید. ارتباط میان این دو را یک پایگاه دادهی نگاشت نگه میدارد.
دو فضای نام: EID و RLOC
EID (Endpoint Identifier)
EID یک مقدار ۳۲ بیتی (IPv4) یا ۱۲۸ بیتی (IPv6) است که یک میزبان را شناسایی میکند. از دید خود میزبان، EID همان آدرس IP معمولی است؛ میزبان آن را از DHCP یا تنظیم دستی میگیرد و آدرس مقصد را هم از DNS به دست میآورد، دقیقاً مثل قبل (RFC 9300). تفاوت این است که پیشوندهای EID در هستهی شبکه اعلام نمیشوند.
RLOC (Routing Locator)
RLOC آدرس IPv4 یا IPv6 یک روتر مرزی (ETR) است و محل اتصال یک سایت به شبکه را نشان میدهد. RLOCها معمولاً از بلوک آدرس ISP یا Underlay هستند و توسط مسیریابی معمولی (IGP یا BGP) قابلدسترسیاند. هر EID میتواند به صفر، یک یا چند RLOC نگاشت شود؛ مثلاً سایتی که به دو ISP وصل است، دو RLOC دارد.
نگاشت (Mapping)
هر رکورد نگاشت میگوید: «پیشوند EID فلان، پشت این RLOCها قرار دارد». هر RLOC در این رکورد یک Priority و یک Weight دارد که در بخش مهندسی ترافیک توضیح میدهیم. مجموعهی RLOCهای یک پیشوند را Locator-Set مینامند.
| معیار | EID | RLOC |
|---|---|---|
| نقش | هویت (Who) | مکان (Where) |
| متعلق به | میزبان، سرور، VM | روتر مرزی (xTR) |
| در هسته مسیریابی میشود؟ | خیر | بله |
| هنگام جابهجایی | ثابت میماند | تغییر میکند |
| محل در بسته | هدر داخلی | هدر بیرونی |
اجزای شبکهی LISP
سیسکو در معماری LISP هفت جزء منطقی تعریف میکند که یک دستگاه فیزیکی میتواند چندتای آنها را همزمان اجرا کند (Cisco – LISP Network Element Functions). تصویر زیر از مستندات سیسکو، محیط کامل یک استقرار LISP را نشان میدهد:
| جزء | نام کامل | وظیفه |
|---|---|---|
| ITR | Ingress Tunnel Router | بستهی خروجی سایت را میگیرد، RLOC مقصد را از Map-Cache یا Mapping System پیدا میکند و بسته را کپسوله میکند. |
| ETR | Egress Tunnel Router | EIDهای سایت را در Map-Server ثبت میکند، به Map-Request پاسخ میدهد و بستههای ورودی را دیکپسوله و تحویل میدهد. |
| xTR | ITR + ETR | روتر مرزی سایت که هر دو نقش را دارد؛ رایجترین حالت. |
| MS | Map-Server | ثبتنام ETRها را با کلید احراز هویت میپذیرد و پایگاه دادهی نگاشت را نگه میدارد. |
| MR | Map-Resolver | Map-Requestهای ITR را میپذیرد و به Map-Server یا ETR مسئول میرساند؛ برای آدرسهای غیر LISP، Negative Map-Reply میدهد. |
| PITR | Proxy ITR | از طرف سایتهای غیر LISP، ترافیک را به سایتهای LISP کپسوله میکند. |
| PETR | Proxy ETR | ترافیک سایتهای LISP به مقصدهای غیر LISP را دیکپسوله و بهصورت عادی ارسال میکند. |
| ALT | Alternative Logical Topology | شبکهی Overlay مبتنی بر GRE و BGP برای پخش تجمیعی پیشوندهای EID بین MS و MRها در استقرارهای بزرگ (امروزه عمدتاً DDT جای آن را گرفته است). |
نکتهی عملیاتی: MS و MR فقط ترافیک Control Plane را پردازش میکنند و به سوئیچینگ پرسرعت نیاز ندارند؛ به همین دلیل معمولاً روی یک دستگاه با نام MR/MS اجرا میشوند. در مقابل، PITR و PETR ترافیک داده را جابهجا میکنند و باید روی پلتفرمهای پرسرعت باشند؛ دستگاهی که هر دو نقش را دارد PxTR نام دارد.
Control Plane: چطور مکان هر EID پیدا میشود؟
Control Plane در LISP شبیه DNS کار میکند، با این تفاوت که بهجای پرسیدن «آدرس این نام چیست؟» میپرسد «این EID پشت کدام RLOC است؟». پیامهای کنترلی روی UDP 4342 رد و بدل میشوند و در RFC 9301 تعریف شدهاند.
پیامهای اصلی Control Plane
| Type | پیام | از ← به | کاربرد |
|---|---|---|---|
| 3 | Map-Register | ETR ← MS | ثبت پیشوندهای EID سایت و RLOCهای آن، با HMAC و کلید مشترک؛ بهصورت دورهای (معمولاً هر ۶۰ ثانیه) تکرار میشود. |
| 4 | Map-Notify | MS ← ETR | تأیید ثبتنام (در صورت درخواست) و اطلاعرسانی تغییرات، مثلاً هنگام جابهجایی میزبان. |
| 1 | Map-Request | ITR ← MR ← MS ← ETR | پرسیدن RLOCهای یک EID؛ داخل یک Encapsulated Control Message (Type 8) به MR فرستاده میشود. |
| 2 | Map-Reply | ETR (یا MS بهصورت Proxy) ← ITR | پاسخ شامل پیشوند EID، Locator-Set، Priority، Weight و TTL. |
| 1 (SMR bit) | Solicit-Map-Request | xTR ← ITR | درخواست از ITR برای اینکه نگاشت قدیمی را دوباره بپرسد؛ پایهی بهروزرسانی هنگام جابهجایی. |
| 8 | Encapsulated Control Message | ITR ← MR | بستهبندی Map-Request برای عبور از شبکه تا MR. |
جریان کامل ثبتنام و پیدا کردن مقصد
- ثبتنام: ETR سایت B پیشوند 10.2.0.0/16 را با RLOC خودش در Map-Server ثبت میکند. Map-Server فقط ثبتنامی را میپذیرد که پیشوند آن در پیکربندی
siteمجاز شده باشد و کلید احراز هویت آن درست باشد. - ارسال عادی: H1 مقصد را از DNS میگیرد و یک بستهی معمولی IP به 10.2.2.20 میفرستد؛ اصلاً از LISP خبر ندارد.
- Cache Miss: ITR در Map-Cache خود نگاشتی برای 10.2.2.20 ندارد؛ یک Map-Request به Map-Resolver میفرستد. MR درخواست را به Map-Server مسئول و MS آن را به ETR مجاز میرساند. سیسکو تصریح میکند که ITR در این حالت معمولاً بستهی اول را دور میاندازد و بستههای بعدی (مثلاً ارسال مجدد TCP) با نگاشت جدید ارسال میشوند.
- پاسخ: ETR یک Map-Reply مستقیم به ITR میفرستد. اگر ETR در ثبتنام «Proxy Reply» خواسته باشد، خود Map-Server پاسخ میدهد؛ این حالت در SD-Access رایج است.
- داده: ITR نگاشت را در Map-Cache ذخیره میکند، بسته را با هدر LISP کپسوله میکند و مستقیم به RLOC مقصد میفرستد. Mapping System دیگر در مسیر داده نیست.
اگر MR بفهمد مقصد اصلاً EID نیست (مثلاً یک سایت اینترنتی عادی)، یک Negative Map-Reply میفرستد؛ ITR هم یک ورودی منفی در Cache میسازد و بستهها را بهصورت عادی یا از طریق PETR ارسال میکند.
Data Plane و ساختار بستهی LISP
کپسولهسازی LISP ساده است: یک هدر IP بیرونی با آدرسهای RLOC، یک هدر UDP با پورت مقصد 4341 و یک هدر ۸ بایتی LISP، جلوی بستهی اصلی قرار میگیرد. برخلاف VXLAN، LISP در حالت استاندارد بستهی IP (لایه ۳) را حمل میکند، نه فریم اترنت. چهار ترکیب IPv4 در IPv4، IPv6 در IPv6، IPv4 در IPv6 و IPv6 در IPv4 باید پشتیبانی شوند (RFC 9300).
فیلدهای هدر LISP
| فیلد | توضیح |
|---|---|
| N (Nonce present) | اگر ۱ باشد، ۲۴ بیت بعدی یک Nonce تصادفی است؛ برای مکانیزم Echo-Nonce. |
| L (LSB enabled) | نشان میدهد فیلد Locator-Status-Bits معتبر است؛ ITR با آن وضعیت Up/Down روترهای سایت خودش را اعلام میکند. |
| E (Echo-Nonce request) | از طرف مقابل میخواهد Nonce را برگرداند تا دوطرفه بودن مسیر تأیید شود. |
| V (Map-Version) | بهجای Nonce، شمارهی نسخهی نگاشت مبدأ و مقصد حمل میشود (RFC 9302). |
| I (Instance ID) | اگر ۱ باشد، ۲۴ بیت بالای کلمهی دوم شناسهی Instance است و فقط ۸ بیت برای LSB میماند. پایهی مجازیسازی و چندمستأجری. |
| KK | شناسهی کلید برای رمزنگاری Data Plane (RFC 8061)؛ ۰۰ یعنی رمزنشده. |
طبق RFC 9300، در اینترنت عمومی بیتهای N، L، E و V باید صفر باشند و مکانیزمهای LSB، Echo-Nonce، Gleaning و Map-Versioning فقط در محیطهای بسته و مورد اعتماد استفاده شوند؛ در اینترنت باید فقط به Control Plane تکیه کرد.
MTU و Fragmentation
کپسولهسازی LISP در Underlay از نوع IPv4، ۳۶ بایت به بسته اضافه میکند. RFC 9300 توصیه میکند ITR بسته را Fragment نکند؛ بلکه بستهی بزرگ را دور بیندازد و پیام ICMP «Fragmentation Needed» به مبدأ بفرستد. دو راهحل پیشنهادی وجود دارد: روش Stateless که در آن L (حداکثر اندازهی قابلارسال) معمولاً ۱۵۰۰ فرض میشود و ITR بستههای DF=0 را به دو قطعه تقسیم میکند، و روش Stateful که در آن ITR برای هر RLOC، MTU مؤثر را در Map-Cache نگه میدارد. توصیهی عملی: در Underlay سازمانی MTU را حداقل ۱۵۳۶ (و در SD-Access معمولاً ۹۱۰۰) تنظیم کنید یا TCP MSS را روی xTR محدود کنید.
توزیع بار در هسته
پورت مبدأ UDP از هش ۵ تایی بستهی داخلی ساخته میشود. به همین دلیل روترهای هسته که بر اساس ۵ تایی بیرونی بار را روی ECMP و LAG پخش میکنند، جریانهای مختلف را روی لینکهای مختلف میفرستند؛ دقیقاً همان دلیلی که LISP از UDP استفاده میکند.
Map-Cache: حافظهی کوتاهمدت ITR
Map-Cache جدولی کوچک و پویا روی هر ITR است که فقط نگاشت مقصدهایی را نگه میدارد که واقعاً با آنها ترافیک وجود دارد. این همان مدل Pull است و تفاوت بنیادین LISP با پروتکلهای مسیریابی مثل BGP که همهی مسیرها را به همه Push میکنند.
- Longest-Prefix Match: جستوجو در Map-Cache مثل جدول مسیریابی، بر اساس طولانیترین پیشوند منطبق است.
- TTL: هر ورودی یک زمان اعتبار دارد (پیشفرض رایج: ۲۴ ساعت) و پس از آن منقضی میشود.
- ورودی منفی: برای مقصدهای غیر LISP، یک ورودی منفی ساخته میشود تا ITR مدام سؤال تکراری نپرسد.
- بهروزرسانی: وقتی نگاشت یک EID عوض میشود (مثلاً VM جابهجا شده)، xTR قبلی با SMR از ITRها میخواهد نگاشت را دوباره بپرسند.
Multihoming و مهندسی ترافیک ورودی
هر RLOC در Locator-Set دو مقدار دارد. Priority: کمتر یعنی بهتر؛ RLOC با کمترین Priority انتخاب میشود و Priority برابر ۲۵۵ یعنی «هرگز استفاده نکن». Weight: بین RLOCهای همPriority، سهم نسبی ترافیک را تعیین میکند (RFC 9300).
| Locator-Set سایت مقصد | نتیجه |
|---|---|
| ISP1: P=1, W=50 · ISP2: P=1, W=50 | Active/Active؛ ترافیک ورودی ۵۰/۵۰ تقسیم میشود. |
| ISP1: P=1, W=70 · ISP2: P=1, W=30 | Active/Active نامتقارن؛ ۷۰ درصد از ISP1. |
| ISP1: P=1, W=100 · ISP2: P=2, W=100 | Active/Standby؛ ISP2 فقط هنگام قطعی ISP1. |
| ISP2: P=255 | ISP2 هرگز برای ترافیک ورودی استفاده نمیشود. |
نکتهی کلیدی: این تصمیم را سایت مقصد میگیرد و در Map-Reply به همهی ITRها اعلام میکند. یعنی مهندسی ترافیک ورودی، که در BGP همیشه سخت و غیرقطعی بوده، در LISP دقیق و مستقیم است. برای تشخیص سالم بودن RLOCها هم از RLOC-Probing (ارسال Map-Request با بیت Probe به RLOC) استفاده میشود.
ارتباط با سایتهای غیر LISP: PITR و PETR
LISP بهصورت تدریجی پیاده میشود و سایتهای LISP باید با بقیهی دنیا هم حرف بزنند (RFC 6832):
- از غیر LISP به LISP (PITR): PITR پیشوندهای EID را بهصورت تجمیعشده در شبکهی غیر LISP اعلام میکند، ترافیک را جذب و به سمت ETR مناسب کپسوله میکند.
- از LISP به غیر LISP (PETR): ITR ترافیک مقصدهای غیر LISP را به PETR کپسوله میکند و PETR آن را بهصورت معمولی ارسال میکند. این کار وقتی لازم است که ISP بستههایی با آدرس مبدأ EID را (به دلیل uRPF) نپذیرد.
- مهاجرت IPv6: یک PxTR دوپشته به سایتی با اتصال فقط IPv4 اجازه میدهد EIDهای IPv6 داشته باشد و با اینترنت IPv6 حرف بزند؛ یکی از کاربردهای عملی و محبوب LISP.
سیستم نگاشت مقیاسپذیر: از MR/MS تا DDT و Pub/Sub
- MR/MS مستقل و افزونه: رایجترین مدل سازمانی. سیسکو توصیه میکند دو MR/MS مستقل داشته باشید، همهی xTRها در هر دو Map-Server ثبتنام کنند و برای Map-Resolver از یک آدرس Anycast استفاده شود تا نزدیکترین MR پاسخ دهد (Cisco – LISP Host Mobility).
- LISP-ALT: شبکهی Overlay از تونلهای GRE و BGP بین MS و MRها برای استقرارهای خیلی بزرگ؛ امروز تاریخی است.
- LISP-DDT (RFC 8111): پایگاه دادهی سلسلهمراتبی شبیه DNS با گرههای DDT و پیام Map-Referral؛ مناسب برای فضای EID خیلی بزرگ و چندسازمانی.
- Publish/Subscribe: در نسخههای جدید (RFC 9437 و پیادهسازی SD-Access)، xTRها بهجای Pull صرف، در Map-Server مشترک میشوند و تغییرات بهصورت Push دریافت میکنند؛ مثلاً Border Node در SD-Access با Pub/Sub بلافاصله از مکان جدید هر میزبان باخبر میشود.
مجازیسازی و چندمستأجری با Instance ID
Instance ID یک شناسهی ۲۴ بیتی است که در هدر LISP حمل میشود و ETR با آن تشخیص میدهد Lookup مقصد را در کدام جدول انجام دهد (RFC 9300). در عمل، هر VRF یک Instance ID دارد؛ پس دو مستأجر میتوانند آدرسهای تکراری داشته باشند و ترافیکشان کاملاً جدا بماند. سیسکو دو مدل مجازیسازی دارد:
- Shared Model: چند VRF مشتری روی یک Underlay مشترک (جدول RLOC مشترک)، هر VRF با Instance ID خودش.
- Parallel Model: هر VRF، هم فضای EID و هم فضای RLOC جداگانه دارد؛ ایزولاسیون کامل حتی در Underlay.
Instance ID محافظتشده نیست؛ مهاجمی که در مسیر باشد میتواند آن را تغییر دهد. ایزوله بودن Underlay و رمزنگاری در مسیرهای غیرقابلاعتماد ضروری است.
LISP در دیتاسنتر: LISP Host Mobility
یکی از قویترین کاربردهای LISP، جابهجایی ماشینهای مجازی بین دیتاسنترها بدون تغییر آدرس IP است. سیسکو این راهکار را LISP Host Mobility مینامد. ایدهی اصلی: وقتی جابهجایی تشخیص داده میشود، xTR جدید نگاشت EID به RLOC را بهروز میکند و ترافیک بدون تزریق Host Route و بدون هیچ آشفتگی در مسیریابی زیرین، به محل جدید هدایت میشود (Cisco – LISP Host Mobility Solution).
دو مدل استقرار
۱. LISP Host Mobility با Subnet کشیدهشده (Extended Subnet): Subnet با یک فناوری LAN Extension مثل OTV یا VPLS بین دو دیتاسنتر کشیده شده است. خود جابهجایی لایه ۲ را LAN Extension انجام میدهد و LISP مسئلهی همیشگی این طراحی را حل میکند: بهینهسازی مسیر ورودی (Ingress Path Optimization). بدون LISP، ترافیک کاربران ممکن است به دیتاسنتر قدیمی برسد و از روی لینک DCI به دیتاسنتر جدید برود (Hair-pinning). این مدل برای Geo-Cluster و vMotion زنده مناسب است.
۲. LISP Host Mobility بین Subnetها (Across Subnets): هیچ LAN Extensionی به سایت مقصد (مثلاً سایت DR یا دیتاسنتر یک ارائهدهندهی ابر) وجود ندارد و دو سایت Subnetهای متفاوت دارند. ماشین با همان آدرس IP به یک Subnet کاملاً دیگر منتقل میشود و LISP هم جابهجایی IP و هم بهینهسازی مسیر ورودی را فراهم میکند. این مدل برای مهاجرت سرد (Cold Migration) مناسب است.
| Use Case از دید سیسکو | نیاز | مدل مناسب |
|---|---|---|
| Geo-Clusters | مسیریابی بهینه به Subnetهای کشیدهشده با OTV یا VPLS | Extended Subnet |
| راهاندازی سریع سایت DR | جابهجایی سرورها بین Subnetهای مختلف | Across Subnets |
| Cloud Bursting | جابهجایی سرورها بین سازمانها | Across Subnets |
| تجمیع و مهاجرت دیتاسنتر | انتقال Workload از سایت قدیمی به جدید | Across Subnets |
تشخیص جابهجایی (Dynamic-EID Detection)
xTR در دیتاسنتر معمولاً روی لایهی Aggregation و همزمان در نقش Default Gateway قرار میگیرد. پیشوندهایی که اجازهی جابهجایی دارند بهصورت Dynamic-EID تعریف میشوند. xTR ورود یک میزبان جدید را در دو حالت تشخیص میدهد:
- Data Plane Discovery: دریافت بستهی IP از مبدأیی که منطبق بر Dynamic-EID است ولی از دید مسیریابی از آن اینترفیس قابلدسترسی نیست.
- Control Plane Discovery: دریافت ARP یا Gratuitous ARP که آدرس EID را در خود دارد؛ مثلاً هنگام بوت شدن سرور. این روش فقط در حالت Across Subnets فعال است.
پس از تشخیص، xTR جدید بلافاصله EID را در Mapping System ثبت میکند (و سپس هر ۶۰ ثانیه تکرار میکند)؛ xTR قدیمی با Map-Notify باخبر میشود و به ITRهایی که هنوز به محل قدیمی ترافیک میفرستند SMR میفرستد تا نگاشت جدید را بپرسند.
LISP کنار VXLAN EVPN در دیتاسنتر مدرن
در Fabricهای جدید مبتنی بر VXLAN BGP EVPN، تشخیص میزبان را خود Fabric انجام میدهد و LISP روی Border (سوئیچهای Nexus 7000/7700 با لاینکارتهای F3 یا M3 در راهنمای سیسکو) برای اتصال بین دیتاسنترها و حل مسئلهی بهینهسازی مسیر ورودی به کار میرود. وقتی Leaf جابهجایی میزبان را تشخیص میدهد، Host Route را با شمارهی توالی جدید در MP-BGP EVPN تزریق میکند و Border آن را در LISP ثبت میکند (Cisco – External Connectivity LISP).
طراحی MS/MR در دیتاسنتر
توصیههای سیسکو: دو MS/MR مستقل، ثبتنام همهی xTRها در هر دو، آدرس Anycast برای MR، و قرار دادن xTR تا حد امکان نزدیک به میزبانها (اولین Hop لایه ۳). نقش MS/MR را میتوان روی خود xTRها هم اجرا کرد تا تعداد دستگاههای مدیریتی کم شود.
LISP در Cisco SD-Access و LISP VXLAN Fabric
امروز بیشترین استقرار LISP در دنیا در شبکههای پردیس Cisco SD-Access است. در این معماری، LISP نقش Control Plane را دارد و Data Plane مبتنی بر VXLAN (با افزونهی Group Policy Option برای حمل SGT) است (Cisco SD-Access Deployment Guide).
| نقش در SD-Access | معادل LISP | وظیفه |
|---|---|---|
| Fabric Edge Node | xTR | سوئیچ دسترسی؛ میزبانها را تشخیص و در Control Plane ثبت میکند؛ Anycast Gateway |
| Control Plane Node | MS/MR | پایگاه دادهی Host Tracking (نگاشت EID به RLOC همهی میزبانهای سایت) |
| Border Node | PxTR | ورود و خروج ترافیک Fabric به شبکههای بیرونی |
| Virtual Network (VN) | Instance ID + VRF | سگمنتبندی کلان (Macro-Segmentation) |
| IP Pool | فضای EID | Subnet کاربران، متصل به یک VN |
| RLOC | Loopback0 هر سوئیچ | آدرس مسیریابیشده در Underlay (معمولاً IS-IS) |
در SD-Access، Control Plane Node از قابلیت Proxy Reply استفاده میکند و Border Node با Publish/Subscribe از تغییرات مطلع میشود. به همین دلیل وقتی کاربر بیسیم بین طبقات Roam میکند، فقط یک ثبتنام جدید در Control Plane لازم است و آدرس IP و سیاست امنیتی او ثابت میماند. سیسکو همچنین «LISP VXLAN Fabric» را بدون Catalyst Center (و با پیکربندی CLI) روی Catalyst 9300، 9400، 9500 و 9600 مستند کرده است.
مقایسهی LISP با فناوریهای مشابه
| معیار | LISP | BGP EVPN (با VXLAN) | DMVPN / NHRP | BGP سنتی |
|---|---|---|---|---|
| مدل Control Plane | Pull (درخواست در لحظهی نیاز) + Pub/Sub | Push (همه به همه) | Pull از NHS | Push |
| حالت در لبه | فقط مقصدهای فعال در Map-Cache | همهی میزبانهای VNIهای محلی | فقط Spokeهای فعال | کل جدول |
| Encapsulation | LISP (L3) یا VXLAN (L2/L3) | VXLAN | mGRE + IPsec | ندارد |
| جابهجایی میزبان | ذاتی، با SMR و Map-Notify | با MAC Mobility Sequence | محدود | با Host Route |
| مهندسی ترافیک ورودی | دقیق با Priority/Weight | محدود | محدود | غیرمستقیم |
| کاربرد شاخص سیسکو | SD-Access، DC Mobility، WAN چندسایته | Fabric دیتاسنتر Nexus | WAN شعب | اینترنت و WAN |
جمعبندی: LISP و BGP EVPN رقیب مطلق نیستند. EVPN در دیتاسنتر پرتراکم که هر Leaf باید سریع همهچیز را بداند میدرخشد؛ LISP جایی برتری دارد که تعداد میزبانها زیاد ولی ارتباط هر لبه با بخش کوچکی از آنها باشد (پردیس، WAN، سایتهای پراکنده) و جابهجایی مداوم است.
امنیت در LISP
LISP مثل هر Overlay دیگری سطح حملهی خاص خودش را دارد. RFC 9300 و 9301 تهدیدها و راهکارها را مشخص کردهاند:
| تهدید | شرح | راهکار |
|---|---|---|
| ثبتنام جعلی | دستگاه مهاجم EIDهای دیگران را به نام خود ثبت کند | کلید احراز هویت برای هر سایت در Map-Server (HMAC، SHA-2 در IOS XE)، محدود کردن پیشوندهای مجاز با eid-prefix |
| جعل Gleaning | جعل EID یا RLOC مبدأ برای منحرف کردن ترافیک یا DoS | خاموش بودن Gleaning خارج از محیط بسته؛ uRPF (BCP 84) |
| دستکاری LSB و Echo-Nonce | اعلام وضعیت نادرست RLOCها | عدم استفاده در اینترنت؛ اتکا به RLOC-Probing و Control Plane |
| تزریق بسته به ETR | ارسال بستهی جعلی به UDP 4341 | Decapsulation Filter (در IOS XE: پذیرش فقط از RLOCهای شناختهشده)، ACL روی UDP 4341/4342 در لبه |
| شنود و دستکاری Instance ID | LISP بهطور پیشفرض رمزنگاری ندارد | LISP Data Plane Confidentiality (RFC 8061) یا IPsec/MACsec روی مسیرهای غیرقابلاعتماد |
| DoS با Fragment | پر کردن صف Reassembly در ETR | محدودیت تعداد و نرخ Fragmentها |
در محیطهای سازمانی، ترکیب «Underlay ایزوله + کلید قوی در Map-Server + Decapsulation Filter + ACL روی پورتهای LISP در لبه» پایهی امنیتی معقولی است. در SD-Access، امنیت در سطح کاربر با 802.1X و Cisco ISE و سیاستهای SGT اعمال میشود.
پیکربندی نمونه (Basic تا Advanced)
در این بخش یک شبکهی دوسایتهی LISP را از صفر میسازیم. سیسکو برای سادهترین حالت، یک MR/MS خصوصی و xTR در هر سایت را پیشنهاد میکند. نمونهها بر پایهی راهنمای پیکربندی LISP در IOS XE هستند. LISP در روترهای IOS XE به لایسنس مناسب (در راهنمای قدیمیتر: datak9) نیاز دارد. این پیکربندیها برای آزمایشگاه و آموزشاند؛ پیش از استفادهی عملیاتی نسخهی نرمافزار و لایسنس را بررسی کنید.
توپولوژی
Host 10.1.1.10 (EID 10.1.0.0/16)
|
xTR-1 RLOC 192.0.2.1
|
IP Core / WAN ---- MR/MS 192.0.2.100
|
xTR-2 RLOC 198.51.100.1
|
Host 10.2.2.20 (EID 10.2.0.0/16)
| دستگاه | نقش | RLOC | EID |
|---|---|---|---|
| MRMS | Map-Resolver و Map-Server | 192.0.2.100 | – |
| xTR-1 | ITR و ETR سایت ۱ | 192.0.2.1 | 10.1.0.0/16 |
| xTR-2 | ITR و ETR سایت ۲ | 198.51.100.1 | 10.2.0.0/16 |
گام ۱: Map-Server و Map-Resolver
hostname MRMS
!
interface GigabitEthernet0/0/0
description Link to Core (RLOC)
ip address 192.0.2.100 255.255.255.0
!
router lisp
site SITE-1
description Branch-1
authentication-key 0 Str0ng-Key-1
eid-prefix 10.1.0.0/16
exit-site
!
site SITE-2
description Branch-2
authentication-key 0 Str0ng-Key-2
eid-prefix 10.2.0.0/16
exit-site
!
ipv4 map-server
ipv4 map-resolver
exit-router-lisp
!
ip route 0.0.0.0 0.0.0.0 192.0.2.254
هر site فقط پیشوندهای تعریفشده در eid-prefix را با کلید درست میپذیرد. اگر سایتی پیشوندهای ریزتر ثبت میکند (مثلاً در Host Mobility)، از گزینهی accept-more-specifics استفاده کنید.
گام ۲: xTR-1 (سایت ۱)
hostname xTR-1
!
interface GigabitEthernet0/0/0
description Link to WAN (RLOC)
ip address 192.0.2.1 255.255.255.0
!
interface GigabitEthernet0/0/1
description Link to Site LAN (EID)
ip address 10.1.0.1 255.255.0.0
!
router lisp
database-mapping 10.1.0.0/16 192.0.2.1 priority 1 weight 100
ipv4 itr map-resolver 192.0.2.100
ipv4 itr
ipv4 etr map-server 192.0.2.100 key 0 Str0ng-Key-1
ipv4 etr
exit-router-lisp
!
ip route 0.0.0.0 0.0.0.0 192.0.2.254
گام ۳: xTR-2 (سایت ۲)
hostname xTR-2
!
interface GigabitEthernet0/0/0
description Link to WAN (RLOC)
ip address 198.51.100.1 255.255.255.0
!
interface GigabitEthernet0/0/1
description Link to Site LAN (EID)
ip address 10.2.0.1 255.255.0.0
!
router lisp
database-mapping 10.2.0.0/16 198.51.100.1 priority 1 weight 100
ipv4 itr map-resolver 192.0.2.100
ipv4 itr
ipv4 etr map-server 192.0.2.100 key 0 Str0ng-Key-2
ipv4 etr
exit-router-lisp
!
ip route 0.0.0.0 0.0.0.0 198.51.100.254
| دستور | کاربرد |
|---|---|
database-mapping EID RLOC priority P weight W |
اعلام اینکه این پیشوند EID پشت این RLOC است؛ همان چیزی که در Map-Server ثبت میشود. |
ipv4 itr map-resolver |
آدرس MR برای ارسال Map-Request |
ipv4 itr / ipv4 etr |
فعال کردن نقش ITR و ETR (هر دو = xTR) |
ipv4 etr map-server ... key |
آدرس MS و کلید ثبتنام؛ باید با کلید سایت در MS یکسان باشد. |
ipv4 map-server / ipv4 map-resolver |
فعال کردن نقش MS و MR روی دستگاه مرکزی |
توجه کنید: روترهای WAN و ISP هیچ مسیری به 10.1.0.0/16 و 10.2.0.0/16 ندارند و نیازی هم ندارند. تنها چیزی که Underlay باید مسیریابی کند RLOCها (192.0.2.1، 198.51.100.1 و 192.0.2.100) است.
گام ۴ (پیشرفته): سایت Multihome با دو ISP
router lisp
! Active/Active 70/30 across two ISPs
database-mapping 10.1.0.0/16 192.0.2.1 priority 1 weight 70
database-mapping 10.1.0.0/16 203.0.113.1 priority 1 weight 30
! Active/Standby instead: give ISP2 priority 2
! database-mapping 10.1.0.0/16 203.0.113.1 priority 2 weight 100
ipv4 itr map-resolver 192.0.2.100
ipv4 itr
ipv4 etr map-server 192.0.2.100 key 0 Str0ng-Key-1
ipv4 etr
گام ۵ (پیشرفته): دسترسی به اینترنت غیر LISP با PxTR
! On the PxTR
router lisp
ipv4 proxy-etr
ipv4 proxy-itr 192.0.2.50
ipv4 itr map-resolver 192.0.2.100
ipv4 map-cache 10.0.0.0/8 map-request
!
! On each xTR: send non-LISP traffic to the PETR
router lisp
ipv4 use-petr 192.0.2.50
گام ۶ (پیشرفته): مجازیسازی با Instance ID در نحو جدید IOS XE
در نسخههای جدید IOS XE (و روی Catalyst 9000)، پیکربندی سلسلهمراتبی router lisp > instance-id > service > eid-table است (Cisco LISP VXLAN Fabric Configuration Guide):
vrf definition TENANT-A
address-family ipv4
!
router lisp
locator-table default
locator-set RLOC-SET
IPv4-interface Loopback0 priority 10 weight 10
exit-locator-set
!
service ipv4
itr map-resolver 192.0.2.100
etr map-server 192.0.2.100 key 0 Str0ng-Key-1
etr map-server 192.0.2.100 proxy-reply
itr
etr
exit-service-ipv4
!
instance-id 4097
service ipv4
eid-table vrf TENANT-A
database-mapping 10.10.0.0/16 locator-set RLOC-SET
exit-service-ipv4
exit-instance-id
!
ipv4 source-locator Loopback0
exit-router-lisp
اگر Data Plane را VXLAN بخواهید (مثل SD-Access)، زیر router lisp دستور encapsulation vxlan را اضافه کنید؛ در آن صورت پورت داده UDP 4789 خواهد بود.
گام ۷ (دیتاسنتر): Host Mobility روی Nexus 7000
نمونهی زیر از مستندات سیسکو برای LISP Mobility روی Nexus الگو گرفته است:
feature lisp
ip lisp itr-etr
ip lisp itr map-resolver 10.10.10.100
ip lisp etr map-server 10.10.10.100 key 3 <key>
!
lisp dynamic-eid VM-MOBILE
database-mapping 172.16.54.0/24 10.1.1.1 priority 10 weight 50
database-mapping 172.16.54.0/24 10.2.2.2 priority 10 weight 50
map-notify-group 239.1.1.1
!
interface Vlan54
ip address 172.16.54.1/24
lisp mobility VM-MOBILE
lisp extended-subnet-mode
ip proxy-arp
hsrp 54
mac-address 0000.0c9f.f036
ip 172.16.54.254
lisp dynamic-eid: محدودهای که اجازهی جابهجایی دارد. برای هر Subnet متحرک یک Dynamic-EID جدا تعریف کنید.lisp extended-subnet-mode: فقط در مدل Extended Subnet؛ بدون آن، LISP جابهجایی را Across Subnets فرض میکند.map-notify-group: گروه Multicast برای اطلاعرسانی به xTRهای دیگر همان سایت.- MAC مجازی HSRP باید در همهی سایتها یکسان باشد و در حالت Extended Subnet، Helloهای HSRP بین سایتها فیلتر شود تا هر سایت Gateway محلی داشته باشد.
دستورات بررسی و عیبیابی
| دستور (IOS XE) | روی | انتظار |
|---|---|---|
show lisp site |
MS | هر سایت با وضعیت Registered: yes و RLOC صحیح |
show lisp site detail |
MS | زمان آخرین ثبتنام، Locatorها، Priority و Weight |
show ip lisp |
xTR | نقشهای فعال (ITR، ETR)، آدرس MR و MS |
show ip lisp database |
xTR | پیشوندهای EID محلی و Locator-Set |
show ip lisp map-cache |
xTR | نگاشتهای یادگرفتهشده، TTL و وضعیت RLOC |
show lisp instance-id 4097 ipv4 map-cache |
xTR (نحو جدید) | Map-Cache هر Instance |
lig 10.2.2.20 |
xTR | «LISP Internet Groper»: ارسال Map-Request دستی و نمایش Map-Reply (RFC 6835) |
show lisp dynamic-eid detail |
Nexus | میزبانهای متحرک تشخیص دادهشده |
debug lisp control-plane all |
هر دستگاه | پیامهای Register، Request و Reply (با احتیاط در محیط عملیاتی) |
مشکلات رایج
| علامت | علت محتمل | راهحل |
|---|---|---|
سایت در show lisp site ثبت نشده |
کلید ناهمسان، پیشوند خارج از eid-prefix یا عدم دسترسی به RLOC MS |
کلید و پیشوند را دو طرف مقایسه کنید؛ ping از RLOC به MS |
| Map-Cache پر نمیشود | MR در دسترس نیست یا UDP 4342 در فایروال بسته است | ACL و فایروال مسیر را بررسی کنید؛ با lig تست کنید |
| Map-Cache درست است ولی ترافیک نمیرسد | UDP 4341 (یا 4789 در VXLAN) بسته است، یا uRPF بسته را دور میاندازد | باز کردن پورت داده؛ بررسی Decapsulation Filter |
| بستهی اول هر جریان گم میشود | رفتار طبیعی ITR در Cache Miss | نگران نباشید؛ TCP ارسال مجدد میکند. در صورت نیاز از Map-Cache ثابت یا Pub/Sub استفاده کنید |
| پینگ کوچک موفق، انتقال فایل ناموفق | MTU؛ ۳۶ بایت سربار | افزایش MTU در Underlay یا ip tcp adjust-mss روی اینترفیس EID |
| پس از جابهجایی VM، ترافیک به محل قدیم میرود | SMR ارسال نشده یا Map-Cache قدیمی | بررسی Dynamic-EID و accept-more-specifics در MS؛ clear ip lisp map-cache |
پرسشهای متداول دربارهی LISP
LISP چیست و به زبان ساده چه کاری انجام میدهد؟
LISP آدرس IP را به دو بخش «هویت» (EID) و «مکان» (RLOC) تقسیم میکند. دستگاهها با همان آدرس همیشگی کار میکنند و روترهای مرزی با پرسیدن از یک سیستم نگاشت، بستهها را به مکان فعلی مقصد میرسانند.
تفاوت EID و RLOC چیست؟
EID آدرس میزبان است و هنگام جابهجایی ثابت میماند؛ RLOC آدرس روتر مرزی است و مکان اتصال را نشان میدهد. فقط RLOCها در هستهی شبکه مسیریابی میشوند.
LISP از چه پورتهایی استفاده میکند؟
UDP 4341 برای داده و UDP 4342 برای پیامهای کنترلی. در LISP VXLAN Fabric و SD-Access، داده روی UDP 4789 (VXLAN) منتقل میشود.
آیا LISP جایگزین BGP یا OSPF است؟
خیر. LISP یک Overlay است؛ Underlay همچنان با OSPF، IS-IS یا BGP آدرسهای RLOC را مسیریابی میکند.
تفاوت LISP با VXLAN چیست؟
VXLAN یک روش کپسولهسازی (Data Plane) است؛ LISP هم Control Plane و هم Data Plane دارد. در SD-Access این دو با هم کار میکنند: LISP برای پیدا کردن مکان میزبان، VXLAN برای حمل ترافیک.
چه تجهیزات سیسکویی از LISP پشتیبانی میکنند؟
روترهای IOS XE (ISR 4000، ASR 1000، Catalyst 8000)، سوئیچهای Catalyst 9000 (در SD-Access و LISP VXLAN Fabric)، Nexus 7000/7700 (LISP Host Mobility) و روترهای IOS XR. پشتیبانی دقیق هر قابلیت را در Cisco Feature Navigator بررسی کنید.
جمعبندی
LISP با یک ایدهی ساده اما عمیق، یعنی جدا کردن «تو کی هستی» از «کجا هستی»، چند مشکل قدیمی شبکه را یکجا حل میکند: کوچک ماندن جدول مسیریابی هسته، Multihoming و مهندسی ترافیک ورودی دقیق، جابهجایی ماشینها و کاربران بدون تغییر آدرس، مهاجرت به IPv6 و چندمستأجری با Instance ID. مدل Pull آن باعث میشود هر لبه فقط آنچه را واقعاً لازم دارد بداند، و همین آن را برای شبکههای بزرگ و پراکنده بسیار مقیاسپذیر میکند.
چه زمانی سراغ LISP برویم؟
- دیتاسنتر دوم یا سایت DR دارید و میخواهید سرورها با همان IP جابهجا شوند و ترافیک ورودی بهینه بماند.
- شبکهی پردیس بزرگ دارید و به سگمنتبندی و Mobility یکپارچه فکر میکنید (SD-Access).
- شعب و سایتهای متعدد با چند ISP دارید و کنترل دقیق ترافیک ورودی میخواهید.
- میخواهید IPv6 را روی زیرساخت IPv4 موجود (یا برعکس) راه بیندازید.
سه توصیه برای شروع
- از کوچک شروع کنید: یک MR/MS و دو xTR در آزمایشگاه؛ با
ligوshow ip lisp map-cacheرفتار سیستم را ببینید. - Mapping System را افزونه طراحی کنید: دو MS/MR، Anycast برای MR و کلیدهای قوی برای هر سایت.
- Underlay را جدی بگیرید: MTU مناسب، ایزوله بودن، باز بودن پورتهای 4341 و 4342 فقط بین RLOCهای مجاز.
منابع
منابع زیر در تهیهی این مقاله مطالعه و به آنها ارجاع داده شده است (تاریخ مراجعه: مهر ۱۴۰۵ / اکتبر ۲۰۲۶).
استانداردها
- RFC 9300 – The Locator/ID Separation Protocol (LISP)
- RFC 9301 – LISP Control Plane
- RFC 9299 – An Architectural Introduction to LISP
- RFC 6832 – Interworking between LISP and Non-LISP Sites
- RFC 9437 – Publish/Subscribe Functionality for LISP
مستندات رسمی سیسکو
- IP Routing: LISP Configuration Guide – LISP Overview
- IP Routing: LISP Configuration Guide – Configuring LISP
- Cisco Data Center – LISP Host Mobility Solution
- Cisco Nexus 7000 Series NX-OS LISP Configuration Guide 8.x
- Configure LISP Multihop Mobility on Nexus
- LISP VXLAN Fabric Configuration Guide, Cisco IOS XE 17.9 (Catalyst 9000)
- Software-Defined Access Macro Segmentation Deployment Guide
مقالهی مرتبط: آشنایی با سیسکو VXLAN
مشاوره و پیادهسازی با آکانت
آکانت (Akanet) با بیش از بیست سال سابقه در شبکههای مبتنی بر سیسکو، کنار سازمانهایی ایستاده که از اتصال دیتاسنتر و سایت پشتیبان تا پردیس SD-Access را طراحی و پیادهسازی میکنند. طراحی LISP Host Mobility، انتخاب بین Extended Subnet و Across Subnets، افزونگی Map-Server، و فابریک LISP VXLAN روی Catalyst 9000 بخشی از همان کار میدانی است؛ نه ورق زدن کاتالوگ. اگر سایت DR، نوسازی دیتاسنتر یا بازطراحی پردیس روی میزتان است، از طراحی تا بهرهبرداری کنار شما هستیم.
وفقک الله




