PPPoE Client

پروتکل PPPoE یک پروتکل شبکه است که به طور معمول برای برقراری اتصال مستقیم بین دستگاه مشتری و ارائه دهنده خدمات اینترنت (ISP) با استفاده از بستر Ethernet به عنوان رسانه‌ای پایه استفاده می‌شود. این امکان را به کاربران می‌دهد که از طریق یک مودم DSL به اینترنت متصل شوند و روشی امن و کارآمد برای انتقال داده‌ها در شبکه ISP فراهم می‌کند.

در یک تنظیم PPPoE، دستگاه مشتری با بسته‌بندی فریم های PPP داخل فریم های اترنت، یک نشست PPP را با شبکه ISP آغاز می‌کند. این بسته‌بندی اجازه می‌دهد تا ترافیک PPP بر روی زیرساخت شبکه مبتنی بر اترنت ISP منتقل شود و به طور موثر یک اتصال نقطه به نقطه ایجاد کند. فرآیند PPPoE دارای دو مؤلفه اصلی است:

کلاینت PPPoE: این در دستگاه کاربر، مانند رایانه یا روتر، قرار دارد و مسئول آغاز و مدیریت نشست PPP است. وقتی کاربر می‌خواهد به اینترنت متصل شود، کلاینت PPPoE یک بسته کشف PPPoE را برای یافتن و ارتباط با سرور PPPoE ISP ارسال می‌کند.

سرور PPPoE: این در شبکه ISP قرار دارد و اتصالات ورودی PPPoE را اداره می‌کند. سرور بسته کشف PPPoE را دریافت کرده، تأیید هویت مشتری را انجام می‌دهد و شناسه نشست یکتا (معروف به شناسه نشست یا SID) را تعیین می‌کند تا یک پیوند اختصاصی برای آن اتصال خاص برقرار شود.

فرآیند اتصال PPPoE معمولاً شامل سه مرحله است:

کشف: کلاینت PPPoE یک بسته کشف را برای یافتن سرور PPPoE ISP ارسال می‌کند. این بسته شامل فریم اترنت ویژه با پیام فعال‌سازی کشف PPPoE (PADI) است. سرور با پاسخ به پیام فعال‌سازی کشف PPPoE (PADO)، پارامترهای اتصال و گزینه‌های نشست را فراهم می‌کند.

آغاز نشست: پس از دریافت پیام PADO، کلاینت گزینه‌های مناسب نشست را انتخاب کرده و پیام درخواست فعال‌سازی کشف PPPoE (PADR) را به سرور ارسال می‌کند. پس از تأیید موفق کلاینت، سرور پیام تأیید نشست فعال‌سازی PPPoE (PADS) را ارسال کرده و نشست PPP برقرار می‌کند.

انتقال داده: پس از برقراری نشست PPP، داده‌ها می‌توانند به صورت دوطرفه بین مشتری و سرور منتقل شوند. این بسته‌بندی داده اطمینان می‌دهد که فریم های PPP در داخل فریم های اترنت بسته‌بندی می‌شوند و به آنها اجازه می‌دهد تا در شبکه اترنت ISP منتقل شوند.

در روزگار حاضر، PPPoE همچنان در برخی حالت‌ها به دلایل خاص استفاده می‌شود: احراز هویت و امنیت: PPPoE از طریق پروتکل‌های PAP، CHAP یا MS-CHAP یک مکانیزم احراز هویت قابل اعتماد فراهم می‌کند. این اطمینان را می‌دهد که تنها کاربران مجاز می‌توانند به خدمات اینترنت دسترسی پیدا کنند. چون امنیت یک نگرانی مهم در شبکه‌های مدرن است، قابلیت‌های احراز هویت PPPoE همچنان مورد توجه و ارزش است.

مدیریت منابع : PPPoE به ISP‌ها کمک می‌کند تا منابع شبکه خود را به صورت کارآمد مدیریت کنند. این به ISP‌ها اجازه می‌دهد تا پهنای باند را کنترل و تخصیص دهند، سیاست‌های کیفیت خدمات (QoS) را اجرا کنند و اتصالات کاربران فردی را نظارت کنند. این سطح کنترل به بهینه سازی عملکرد شبکه و اطمینان از استفاده منصفانه بین مشترکین کمک می‌کند.

سازگاری NAT (ترجمه آدرس شبکه): PPPoE با NAT سازگار است که به طور معمول برای حل محدودیت دسترسی محدود آدرس‌های IPv4 استفاده می‌شود. ISP‌ها اغلب PPPoE را به همراه NAT استفاده می‌کنند، که به چندین دستگاه در شبکه مشتری اجازه می‌دهد تا یک آدرس IP عمومی تک را به اشتراک بگذارند.

توجه

در حال حاضر سودار فقط از PPPoE-client پشتیبانی می کند.

ابتدا یک اینترفیس dialer می سازیم . این اینترفیس ها معمولا برای ارتباطات point-to-point(PPP) و PPP over Ehternet (PPPoE) استفاده می شوند . یک شماره بین ۱ تا ۲۵۵ به آن اختصاص می یابد . به عبارت دیگر شما می توانید ۲۵۵ اینترفیس dialer در روتر سودار اضافه کنید .

n1(config)# interface dialer1
n1(config-if)# encapsulation ppp
n1(config-if)# dialer pool 1
n1(config-if)# ppp chap hostname test
n1(config-if)# ppp chap password 123
n1(config-if)# ppp pap sent-username test password 123
n1(config)# interface ge0
n1(config-if)# no ip address
n1(config-if)# pppoe-client dial-pool-number 1
n1(config-if)# no shutdown

encapsulation ppp : این دستور برای پیکربندی پروتکل PPP (Point-to-Point Protocol) روی یک اینترفیس dialer استفاده می‌شود. دستور “encapsulation ppp” امکان ارسال فریم‌های PPP را از طریق اینترفیس dialer مشخص شده فراهم می‌کند، اجازه می‌دهد تا فریم‌های PPP را از طریق لینک ارسال کند.

dialer pool 1: این دستور برای ارتباط دادن یک اینترفیس dialer با یک dialer pool استفاده می‌شود.dialer pool ها در پیکربندی‌های پروتکل نقطه به نقطه (PPP) برای مدیریت چندین اینترفیس فیزیکی مانند اینترفیس های اترنت استفاده می‌شوند که به شبکه‌های از راه دور یا ارائه‌دهنده‌های خدمات اینترنت (ISP) متصل می‌شوند. دستور “dialer pool” به اینترفیس dialer اجازه می‌دهد تا از یکی از اینترفیس های فیزیکی موجود در pool برای برقراری اتصال PPP استفاده کند.

توجه

در حال حاضر فقط یک اینترفیس فیزیکی می تواند در یک dialer pool استفاده شود .

پیکربندی PPPoE

برای ایجاد یک اتصال PPPoE، ابتدا باید یک اینترفیس dialer ایجاد کنیم. اینترفیس dialer یک اینترفیس مجازی است که پیکربندی‌های PPPoE را ذخیره می‌کند.

interface dialer (1-255)

این دستور برای پیکربندی یک اینترفیس dialer بر روی یک دستگاه استفاده می‌شود. اینترفیس dialer معمولاً در پروتکل Point-to-Point (PPP) و PPP over Ethernet (PPPoE) استفاده می‌شوند.

  • (1-255): شماره نمونه اینترفیس dialer را مشخص می‌کند. مقادیر معتبر اعداد صحیح از 1 تا 255 هستند.

encapsulation ppp

این دستور برای پیکربندی کپسوله‌سازی Point-to-Point Protocol (PPP) بر روی یک اینترفیس dialer استفاده می‌شود. دستور “encapsulation ppp” کپسوله‌سازی PPP را بر روی اینترفیس dialer مشخص شده پشتیبانی می‌کند، که اجازه می‌دهد تا فریم‌های PPP را بر روی اتصال انتقال دهد.

توجه

این کپسوله‌سازی پیش‌فرض برای اینترفیس های dialer است.

dialer pool (1-255)

این دستور برای ارتباط دادن یک اینترفیس dialer مجازی با یک dialer pool استفاده می‌شود. dialer pool ها در پروتکل Point-to-Point (PPP) برای مدیریت چندین interface فیزیکی، مانند interface‌های اترنت که به شبکه‌های از راه دور یا ارائه دهنده‌های خدمات اینترنت (ISPs) متصل می‌شوند، استفاده می‌شوند. دستور “dialer pool” به اینترفیس dialer مجازی اجازه می‌دهد تا یکی از interface‌های فیزیکی موجود در pool را برای برقراری اتصال PPP استفاده کند.

  • (1-255): شماره dialer pool را برای ارتباط با اینترفیس dialer مشخص می‌کند. مقادیر معتبر اعداد صحیح از 1 تا 255 هستند.

توجه

در حال حاضر، تنها یک interface فیزیکی ممکن است در یک dialer pool باشد.

pppoe-client dial-pool-number (1-255)

این دستور برای پیکربندی یک نشست PPPoE client بر روی یک اینترفیس و ارتباط آن با یک شماره dialer pool خاص استفاده می‌شود. دستور “pppoe-client dial-pool-number” قابلیت PPPoE client را فعال می‌کند و آن را به یک dialer pool خاص متصل می‌کند که شامل اینترفیس های فیزیکی برای نشست‌های PPPoE است.- (1-255): شماره dialer pool را برای ارتباط با PPPoE client مشخص می‌کند. مقادیر معتبر اعداد صحیح از 1 تا 255 هستند.

در زیر مثالی از پیکربندی PPPoE client بر روی یک interface اترنت و ارتباط آن با یک dialer pool آمده است:

n1 (config)# interface ge0
n1 (config-if)# pppoe-client dial-pool-number 1
n1 (config)# interface dialer 1
n1 (config-if)# dialer pool 1

در این مثال، ge0 اینترفیس اترنت است که در آن PPPoE client پیکربندی شده است. دستور pppoe-client dial-pool-number 1 این PPPoE client را با شماره dialer pool 1 ارتباط می‌دهد. این dialer pool توسط اینترفیس dialer مجازی dialer1 برای برقراری نشست‌های PPP استفاده می‌شود. بسته‌های PPP به interface ge0 منتقل می‌شوند و در آنجا، آن‌ها بر روی اترنت (PPPoE) انتقال داده می‌شوند.

ppp pap sent-username USER password PASS

این دستور برای پیکربندی اعتبار PAP (Password Authentication Protocol) برای احراز هویت در پروتکل Point-to-Point (PPP) استفاده می‌شود. PAP یک روش احراز هویت ساده است که برای تأیید هویت PPP client هنگام برقراری اتصال PPP استفاده می‌شود. این دستور نام کاربری و رمز عبور را که روتر محلی (به عنوان یک PPP client) آن‌ها را به روتر راه دور هنگام فرآیند احراز هویت ارسال می‌کند، مشخص می‌کند.

  • USER: نام کاربری را که هنگام احراز هویت PAP ارسال شود، مشخص می‌کند.

  • PASS: رمز عبور را که هنگام احراز هویت PAP ارسال شود، مشخص می‌کند.

ppp chap hostname HOSTNAME

این دستور برای پیکربندی hostname ارسال شده در فرآیند چالش دستورالعمل احراز هویت (CHAP) در پروتکل Point-to-Point (PPP) استفاده می‌شود. CHAP یک روش احراز هویت امن‌تر نسبت به Password Authentication Protocol (PAP) است و به طور معمول برای تأیید هویت PPP client هنگام برقراری اتصال PPP استفاده می‌شود. دستور “ppp chap hostname” hostname استفاده شده توسط روتر محلی (به عنوان یک PPP client) هنگام پاسخ به چالش‌های CHAP از روتر از راه دور را مشخص می‌کند.

  • HOSTNAME: نام hostname را که هنگام احراز هویت CHAP استفاده شود، مشخص می‌کند.

ppp chap password PASSWORD

این دستور برای پیکربندی رمز عبور client برای چالش دستورالعمل احراز هویت (CHAP) در پروتکل Point-to-Point (PPP) استفاده می‌شود. هم روتر محلی (به عنوان یک PPP client) و هم روتر از راه دور (به عنوان سرور احراز هویت) دارای همان رمز عبور هستند. دستور “ppp chap password” رمز عبوری را که توسط روتر محلی در فرآیند احراز هویت CHAP استفاده شود، مشخص می‌کند.

  • PASSWORD: رمز عبور مشترکی را که هنگام احراز هویت CHAP استفاده شود، مشخص می‌کند.

ppp timeout idle (30-15552000)

این دستور برای پیکربندی مقدار زمان خاموشی برای نشست‌های Point-to-Point (PPP) بر روی یک interface شبکه استفاده می‌شود. زمان خاموشی حداکثر مدت زمان غیرفعال بودن در اتصال PPP قبل از قطع خودکار آن است. وقتی هیچ داده‌ای از طریق اتصال PPP منتقل یا دریافت نشود، روتر جلسه PPP را به منظور صرفه‌جویی در منابع شبکه متوقف می‌کند.

  • (30-15552000) : مدت زمان timeout بیکاری به ثانیه مشخص شده است. مقادیر معتبر در بازه 30 تا 15،552،000 ثانیه است (تقریباً 6 ماه).

توجه

توجه مقدار timeout به صورت مضربی از 10 گرد می‌شود.

توجه

توجه استفاده از # در نام کاربری و رمز عبور PAP یا CHAP ممنوع است.

show pppoe session

دستور برای نمایش اطلاعات درباره جلسات فعال پروتکل PPPoE (Point-to-Point Protocol over Ethernet) در روتر استفاده می‌شود. دستور “show pppoe session” خلاصه‌ای از جلسات فعال PPPoE را ارائه می‌دهد که شامل شناسه جلسه، آدرس MAC محلی و از راه دور و وضعیت فعلی جلسه است.

مثال

فرض کنید سناریوی شبیه شکل زیر داریم که یک PPPoE-server داریم و یک روتر سودار که برای دسترسی به اینترنت‌ (شبکه پشتی pppoe-server) باید یک اتصال pppoe برقرار کنیم و همچنین با استفاده از NAT ارتباط شبکه local و اینترنت را جدا کنیم :

PPPoE-client برای برقراری یک نشست PPPoE از طریق interface ge0 با استفاده از اینترفیس Dialer به نام dialer1 و با هر دو اعتبارسنجی PAP و CHAP و با نام کاربری “test” و رمز عبور “123” تنظیمات به شکل زیر خواهدبود:

n1 (config)# interface dialer1
n1 (config-if)# encapsulation ppp
n1 (config-if)# dialer pool 1
n1 (config-if)# ppp chap hostname test
n1 (config-if)# ppp chap password 123
n1 (config-if)# ppp pap sent-username test password 123
n1 (config)# interface ge0
n1 (config-if)# no ip address
n1 (config-if)# pppoe-client dial-pool-number 1
n1 (config-if)# no shutdown
  1. این dialer1 یک dialer interface مجازی است که با interface فیزیکی از طریق Dialer pool مرتبط خواهد شد. ما کپسوله‌سازی PPP را پیکربندی و Dialer1 را با استفاده از dialer pool 1 مرتبط می‌کنیم.

  2. ما اعتبارسنجی CHAP را بر روی dialer1 پیکربندی کرده‌ایم، با تعیین (“test”) hostname و رمز عبور (“123”) استفاده شده برای اعتبارسنجی CHAP با روتر از راه دور.

  3. همچنین ما اعتبارسنجی PAP را بر روی dialer1 پیکربندی کرده‌ایم، با تعیین نام کاربری (“test”) و رمز عبور (“123”) که روتر محلی در طول فرآیند اعتبارسنجی PAP ارسال خواهد کرد.

  4. ما آدرس های ip روی ge0 حذف نموده و آن را به dialer pool 1 برای نشست‌های PPPoE اختصاص می‌دهیم.

با این پیکربندی، روتر اکنون آماده برقراری یک نشست PPPoE از طریق ge0 با استفاده از dialer1 به عنوان اینترفیس مجازی است. نشست PPPoE از هر دو روش اعتبارسنجی PAP و CHAP با استفاده از نام کاربری “test” و رمز عبور “123” در طول فرآیند اعتبارسنجی استفاده خواهد کرد.

n1# show pppoe session
 |------------------------------------------------------------------------|
 | SID | Remote MAC        | Local MAC         | Interface | Port | State |
 |-----+-------------------+-------------------+-----------+------+-------|
 | 3   | 08:19:21:ff:00:00 | 02:fe:53:5e:11:4a | dialer1   | ge0  | Up    |
 |------------------------------------------------------------------------|

حال اگر بخواهیم ترافیک خروجی از اینترفیس dialer1 را NAT کنیم باید ابتدا یک ACL تعریف کرده و ترافیک مد نظر برای NAT شدن را توسط ACL انتخاب کنیم و همچنین اینترفیس dialer1 به عنوان nat outside و اینترفیس ge1 که شبکه داخلی ماست را به عنوان nat inside مشخص کنیم . تنظیمات به شکل زیر خواهد بود:

n1(config)# ip access-list nat-acl
n1(config-nacl)# permit 1.1.1.0/24 any 
n1(config-nacl)# q
n1(config)# ip nat inside source list nat-acl interface dialer1 
n1(config)# int dialer1
n1(config-if)# ip nat outside 
n1(config-if)# q
n1(config)# int ge1
n1(config-if)# ip nat inside 

توجه

در تعریف NAT در اینجا هییچ pool ی اضافه نکردیم و اینترفیس dialer1 را به عنوان pool به NAT اختصاص دادیم و هر ip که به اینترفیس dialer1 توسط PPPoE-server داده شود به عنوان pool استفاده شده و مبدا بسته های خروجی از روتر سودار همان IP خواهد بود.