کاربرد علامت درصد % در IPv6 چیست ؟
علامت درصد در ipv6 چیست و چگونه درست میشود ؟
2 پاسخ
عدد بعد از علامت % نشان دهنده zone scopeیا zone index در آدرس Link-local است. اطلاعات رو در لینک زیر تکمیل کنید
برای درک بهتر این مورد، کلمه کلیدی IPv6 address scope رو سرچ کنید.
مفهوم IPv6 نسبت به IPv4 اندکی تغییر ماهوی داشته است. در IPv4، آدرسها به آداپتورها (لینک ها) اختصاص داده می شدند، و این مفهوم بعدها به همراه یکسری مشکلات دیگر، با چند آدرس همزمان در تضاد بود؛ هر چند تعدد آدرس به یک آداپتور عملا پیاده سازی شد. در IPv6 این مفهوم اصلاح شد و آدرسها به اینترفیس ها اختصاص داده می شوند. به همین ترتیب هر اینترفیس انتظار دارد برای مقاصد گوناگون دارای آدرس های متفاوت باشد. مقاصد گوناگون همان Scope ها هستند. اینترفیس یک مفهوم انتزاعی و نه لزوما فیزیکی دارد، یعنی هر چیزی که درخواست ارتباط داشته باشد. اینترفیس می تواند یک سنسور کوچک در قلب انسان باشد یا سنسوری در تایر ماشین. هر اینترفیس برای مقاصد و اهداف گوناگون، می تواند چندین آدرس IPv6 بگیرد.
چهار حوزه برای هر اینترفیس قابل تعریف است: Global, Site/Unique local, Link local ,Interface local. بحث پیرامون ویژگی ها و محدودیت ها و تنوع آدرس های هر حوزه، زیاد است و در حوصله این پاسخ نیست.
به غیر از حوزه Global، که اجبارا آدرس ها از سوی IANA ، منحصر به فرد تولید و فروش می شوند، آدرس های بقیه حوزه ها این قابلیت را دارند که که در بیرون از حوزه خود تکرار شوند.
فرض کنید کارت شبکه اترنت کامپیوتر A را به B، و B را به C کرده ایم. در اینجا دو حوزه و اسکوپ Link Local داریم، یکی لینک بین A,B و دیگری لینک بین B,C. هر حوزه مستقل از هم است. آدرس هایش همدیگر را نمی بینند و اساسا ارتباط و آدرس هر لینک فقط در حوزه خودش معتبر است و بیرون از حوزه خودش نمی رود. از طرفی آدرس IPv6 ی که درون هر حوزه لینک، به نودها می دهیم باید منحصر به فرد باشد، نتیجه اینکه دو اسکوپ از نوع Link local داریم. در هر لینک هم فعلا دو نود متصل داریم، به نحوی که فقط در هر لینک، ما مجبور هستیم آدرسهای منحصر به فرد به نود بدهیم.
برای لینک A متصل به B داریم:
FE80::1/64
برای لینک B متصل به A داریم:
FE80::2/64
برای لینک B متصل به C داریم:
FE80::2/64
برای لینک C متصل به B داریم:
FE80::1/64
در مثال فوق، منحصر به فرد بودن آدرس هر نود، فقط در حوزه لینک خودش رعایت شده است. همانطور که توضیح دادیم. یعنی با اینکه آدرس لینک A با C یکسان است، اما مشکلی در شبکه پیش نخواهد آمد.
حال بپردازیم به کامپیوتر B: در کامپیوتر B اگر چه قانون منحصر به فرد بودن آدرس در یک لینک، رعایت شده است اما هنوز یک مشکل داریم، اگر بسته ای به مقصد FE80::164 اارسال شود، کامپیوتر B باید از کجا بفهمد که بسته را از کدام لینک خارج کند؟ اصلا نوع دیگری می پرسیم: فرض کنید ادرس های Aو C فرق می کردند. بسته ای با ادرس مبداء FE80::264 تولید شده و می خواهد برود، کامپیوتر B از کجا بفهمد این بسته را باید از کدام لینک خارج کند؟ اولی یا دومی؟
به شکل زیر دقت کنید:
هاست پایینی، سه اینترفیس داردکه هر سه تایش یک آدرس یکسان از نوع Link local دارد. مشکلی هم نیست، چرا که هر اینترفیس در لینک مجزایی قرار گرفته است. اگر هاست پایینی بخواهد بسته ای با آدرس مبداء FE80::1 ارسال کند، از کجا بفهمد که بسته را از کدام اینترفیس خارج کند؟
این جا است که مفهومی به اسم IPv6 zone Identifier یعنی: شناسه حوزه IPv6، معرفی می شود. اطلاعات تکمیلی را می توانید در RFC4007 پی بگیرید.
و اما این شناسه چیست؟ RFC4007، تعریف می کند که zone ID یک شناسه برای حوزه ای است که یک آدرس به آن حوزه متعلق است.
zone ID باید بصورت خودکار و توسط نرم افزار راه انداز IPv6، تولید و اختصاص یابد، چرا که منطقی است که این شناسه اساسا نباید دستی یا انسانی تولید و اختصاص یابد. پس از این به بعد در نظر می گیریم که هر نودی بالاجبار و خودکار، به ازای هر site و link و Interface اش، یک شناسه منحصر بفرد تولید می کند و اختصاص می دهد.نباید تصور کنید که در کل توپولوژی ، هر site,link,interface دارای یک شناسه منحصر بفرد است! اینطور نیست! این شناسه ها محلی هستند و به ازای هر نود هستند. یعنی هر نودی برای خودش و درون دیتا بیس خودش، در ازای هر site,link,interface یک شناسه تولید می کند. جمع بندی اینکه: zone identifier، یک شناسه است که به انتهای هر آدرس غیر Global، چسبیده می شود. توسط نرم افزار و بصورت اجباری و خودکار تولید می شود. این شناسه توسط نود تولید می شود و فقط در درون خود همان نود معتبر است.
جهت تکمیل و اختتام توضیحاتم، به این دو شکل نیز توجه کنید:
نود A، دو حزه از نوع site دارد، که در سایت 1، اینترفیس 1 و در سایت2، اینترفیس های 2و 3 دارد.
با توجه به شکل پایینی، موقع اتصال سایت2 از نود A، به سایت 1 از نود B، سه اینترفیس با یکدیگر در گیرمی شوند. با توجه به شکل نتیجه می گیریم: هر اینترفیس در درون یک لینک ، هر لینک در درون یک سایت و هر سایت در درون یک نود، باید شناسه منحصر به فرد داشته باشد. و تمام این شناسه ها نیز منحصر به همان نود است. برای مثال در دو شکل فوق داریم:
For Node A, the address is FE80::2%3
For Node B, the address is FE80::2%1