PPP و HDLC چیست؟ تفاوت‌ها و آموزش تنظیم PPP در میکروتیک

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

پروتکل PPP یا Point-to-Point Protocol یکی از شناخته‌شده‌ترین پروتکل‌های لایه پیوند داده برای انتقال بسته‌های چندپروتکلی روی لینک‌های نقطه‌به‌نقطه است. در مقابل، HDLC بیشتر یک روش فریم‌بندی و کنترل ارتباط روی لینک‌های سریال هم‌زمان محسوب می‌شود و پایه فنی بسیاری از پروتکل‌های دیگر را تشکیل داده است.

در MikroTik RouterOS، خانواده PPP کاربرد گسترده‌ای دارد. اتصال PPPoE به سرویس‌دهنده اینترنت، ایجاد کاربران PPP، تعریف پروفایل، تخصیص IP، محدودسازی سرعت، احراز هویت محلی و استفاده از RADIUS همگی بر پایه زیرساخت PPP انجام می‌شوند.

در این مقاله ابتدا ساختار PPP و HDLC را بررسی می‌کنیم، سپس تفاوت آن‌ها را توضیح می‌دهیم و در ادامه با تنظیم PPPoE Client، راه‌اندازی PPPoE Server و مدیریت کاربران PPP در میکروتیک آشنا می‌شویم.

نکته مهم: PPP، HDLC و PPPoE به‌خودی‌خود به معنای رمزگذاری ترافیک نیستند. احراز هویت کاربر با رمزگذاری محتوای ارتباط تفاوت دارد. برای حفاظت از داده‌ها باید از پروتکل‌های امن مانند IPsec، WireGuard، TLS یا سایر روش‌های رمزگذاری مناسب استفاده شود.

ارتباط نقطه‌به‌نقطه چیست؟

در یک لینک نقطه‌به‌نقطه یا Point-to-Point، ارتباط منطقی یا فیزیکی میان دو گره مشخص برقرار می‌شود. برخلاف شبکه‌های اشتراکی مانند Ethernet که چند دستگاه می‌توانند در یک Broadcast Domain حضور داشته باشند، در لینک نقطه‌به‌نقطه تنها دو انتهای اصلی برای ارتباط وجود دارد.

نمونه‌های رایج ارتباط نقطه‌به‌نقطه عبارت‌اند از:

  • اتصال یک روتر مشترک به سرویس‌دهنده اینترنت
  • ارتباط میان دو روتر روی یک لینک WAN
  • اتصال سریال میان دو تجهیز شبکه
  • تونل میان یک کاربر و سرور VPN
  • ارتباط PPP روی مودم‌های سلولی یا سریال
  • جلسه PPPoE میان مشترک و Access Concentrator

پروتکل مورد استفاده روی چنین لینکی باید بتواند آغاز و پایان فریم‌ها را مشخص کند، نوع داده حمل‌شده را تشخیص دهد، خطاهای انتقال را شناسایی کند و در صورت نیاز پارامترهای ارتباط را میان دو سمت هماهنگ سازد.

پروتکل PPP چیست؟

PPP مخفف Point-to-Point Protocol و یک استاندارد برای انتقال دیتاگرام‌های مختلف روی لینک‌های نقطه‌به‌نقطه است. این پروتکل در لایه دوم مدل OSI فعالیت می‌کند و می‌تواند بسته‌های پروتکل‌های لایه سوم مانند IPv4 و IPv6 را کپسوله کند.

PPP برای جایگزینی روش‌های ساده‌تر و محدودتری مانند SLIP توسعه یافت. مهم‌ترین مزیت آن، برخورداری از ساختاری قابل مذاکره برای ایجاد لینک، احراز هویت، تنظیم پارامترها و راه‌اندازی پروتکل‌های لایه شبکه است.

PPP فقط یک قالب فریم نیست؛ بلکه مجموعه‌ای از سازوکارهای مرتبط را در بر می‌گیرد که چرخه کامل ایجاد، نگهداری و خاتمه ارتباط را مدیریت می‌کنند.

اجزای اصلی PPP

معماری PPP از سه جزء اصلی تشکیل شده است:

۱. روش کپسوله‌سازی دیتاگرام‌ها

PPP قالبی برای قرار دادن بسته‌های پروتکل‌های مختلف درون فریم‌های نقطه‌به‌نقطه ارائه می‌کند. وجود فیلد Protocol در فریم PPP مشخص می‌کند که Payload متعلق به چه پروتکلی است.

برای مثال، Payload می‌تواند شامل موارد زیر باشد:

  • بسته IPv4
  • بسته IPv6
  • پیام LCP
  • پیام IPCP
  • پیام IPv6CP
  • اطلاعات مربوط به احراز هویت

۲. پروتکل LCP

LCP مخفف Link Control Protocol است و مسئول ایجاد، تنظیم، آزمایش، نگهداری و خاتمه لینک PPP محسوب می‌شود.

دو سمت ارتباط با استفاده از LCP می‌توانند درباره پارامترهایی مانند موارد زیر مذاکره کنند:

  • حداکثر اندازه فریم قابل دریافت یا MRU
  • روش احراز هویت
  • فشرده‌سازی برخی فیلدهای فریم
  • تشخیص Loop
  • کیفیت و وضعیت لینک
  • قابلیت Multilink PPP

LCP برای مذاکره از پیام‌هایی مانند Configure-Request، Configure-Ack، Configure-Nak و Configure-Reject استفاده می‌کند. برای خاتمه لینک نیز پیام‌های Terminate-Request و Terminate-Ack وجود دارند.

۳. خانواده پروتکل‌های NCP

NCP یا Network Control Protocol به مجموعه‌ای از پروتکل‌ها گفته می‌شود که پارامترهای مربوط به پروتکل‌های لایه شبکه را روی لینک PPP تنظیم می‌کنند.

دو نمونه مهم NCP عبارت‌اند از:

  • IPCP: برای پیکربندی IPv4 روی لینک PPP
  • IPv6CP: برای آماده‌سازی انتقال IPv6 روی لینک PPP

پس از برقراری لینک توسط LCP و انجام احراز هویت، NCP مربوط به پروتکل شبکه اجرا می‌شود. برای مثال در اتصال PPPoE، IPCP می‌تواند آدرس IPv4 موردنیاز کلاینت را از سمت سرور دریافت کند.

مراحل برقراری یک ارتباط PPP

چرخه یک اتصال PPP معمولاً شامل مراحل زیر است:

  1. برقراری ارتباط در لایه فیزیکی یا بستر حامل
  2. مذاکره LCP و تنظیم پارامترهای لینک
  3. احراز هویت در صورت درخواست یکی از طرفین
  4. اجرای NCP و تنظیم پروتکل لایه شبکه
  5. انتقال داده میان دو سمت
  6. نگهداری و بررسی وضعیت لینک
  7. خاتمه ارتباط با LCP

اگر مذاکره LCP یا احراز هویت با شکست مواجه شود، لینک وارد مرحله انتقال داده نخواهد شد.

روش‌های احراز هویت در PPP

PPP از روش‌های مختلفی برای احراز هویت کاربران پشتیبانی می‌کند. پشتیبانی عملی از هر روش به سیستم‌عامل، سرویس PPP و تنظیمات سرور و کلاینت بستگی دارد.

احراز هویت PAP

PAP مخفف Password Authentication Protocol است. در این روش، نام کاربری و رمز عبور از طریق نشست PPP برای سرور ارسال می‌شوند.

PAP ساختار ساده‌ای دارد، اما رمز عبور را به روش امن Challenge-Response محافظت نمی‌کند. بنابراین در محیط‌هایی که بستر انتقال قابل اعتماد نیست، استفاده از آن بدون لایه رمزگذاری‌شده توصیه نمی‌شود.

احراز هویت CHAP

CHAP مخفف Challenge Handshake Authentication Protocol است. سرور یک مقدار Challenge برای کلاینت ارسال می‌کند و کلاینت پاسخ را براساس Challenge و Secret مشترک محاسبه می‌کند.

در این روش، رمز عبور به‌صورت مستقیم مانند PAP روی لینک ارسال نمی‌شود. با این حال، CHAP کلاسیک نباید با پروتکل‌های رمزنگاری مدرن اشتباه گرفته شود.

MS-CHAP و MS-CHAPv2

این روش‌ها نسخه‌های توسعه‌یافته مایکروسافت از CHAP هستند و در برخی سرویس‌های PPP و VPN استفاده می‌شوند. MS-CHAPv2 از MS-CHAPv1 مناسب‌تر است، اما برای طراحی شبکه‌های جدید بهتر است امنیت کل پروتکل تونل و روش رمزگذاری نیز بررسی شود.

هشدار امنیتی: فعال‌کردن احراز هویت به معنای رمزگذاری ترافیک نیست. PPP می‌تواند هویت کاربر را بررسی کند، اما Payload همچنان ممکن است بدون رمزگذاری منتقل شود.

ساختار فریم PPP

در حالتی که PPP از فریم‌بندی HDLC-like استفاده می‌کند، یک فریم می‌تواند شامل بخش‌های زیر باشد:

فیلدکاربرد
Flagمشخص‌کردن مرز آغاز یا پایان فریم
Addressدر PPP معمولاً دارای مقدار ثابت است
Controlدر حالت استاندارد PPP مقدار ثابت دارد
Protocolمشخص‌کردن نوع Payload مانند IPv4، IPv6 یا LCP
Informationداده اصلی یا پیام کنترلی
Paddingداده تکمیلی اختیاری
FCSتشخیص خطا در فریم دریافت‌شده
Flagپایان فریم یا آغاز فریم بعدی

FCS برای تشخیص خراب‌شدن فریم در مسیر انتقال استفاده می‌شود. تشخیص خطا با بازیابی خودکار بسته یا تضمین تحویل متفاوت است؛ PPP به‌تنهایی مانند TCP مسئول ارسال مجدد تمام داده‌های از دست‌رفته نیست.

HDLC چیست؟

HDLC مخفف High-Level Data Link Control و یک پروتکل بیت‌محور در لایه پیوند داده است. HDLC برای انتقال فریم روی لینک‌های سریال هم‌زمان و ارتباط‌های نقطه‌به‌نقطه یا چندنقطه‌ای طراحی شده است.

HDLC روش‌هایی برای تعیین مرز فریم، کنترل ارتباط و تشخیص خطا ارائه می‌کند. قالب آن پایه طراحی چندین پروتکل دیگر در حوزه WAN و ارتباطات سریال بوده است.

یکی از مهم‌ترین ویژگی‌های HDLC استفاده از الگوی Flag برای مشخص‌کردن مرز فریم‌ها و استفاده از Frame Check Sequence برای تشخیص خطا است.

انواع ایستگاه در HDLC

در مدل HDLC، ایستگاه‌ها می‌توانند نقش‌های متفاوتی داشته باشند:

  • Primary Station: کنترل‌کننده اصلی ارتباط
  • Secondary Station: ایستگاهی که تحت کنترل Primary کار می‌کند
  • Combined Station: ایستگاهی که می‌تواند هر دو نقش را انجام دهد

در بسیاری از کاربردهای امروزی شبکه، جزئیات کامل حالت‌های HDLC کمتر از گذشته دیده می‌شود؛ زیرا Ethernet، MPLS، PPPoE و تونل‌های مبتنی بر IP جایگزین بخش زیادی از لینک‌های سریال سنتی شده‌اند.

انواع فریم HDLC

HDLC به‌طور کلی سه دسته فریم تعریف می‌کند:

Information Frame

فریم‌های Information یا I-Frame برای انتقال داده کاربر و اطلاعات کنترلی مربوط به ترتیب و تأیید فریم‌ها به کار می‌روند.

Supervisory Frame

فریم‌های Supervisory یا S-Frame برای کنترل جریان، اعلام وضعیت و مدیریت خطا استفاده می‌شوند.

Unnumbered Frame

فریم‌های Unnumbered یا U-Frame برای برخی وظایف مدیریتی و کنترلی لینک به کار می‌روند.

منظور از HDLC-like Framing در PPP چیست؟

یکی از نکات مهم در بررسی PPP و HDLC این است که این دو را نباید کاملاً یکسان در نظر گرفت. PPP می‌تواند برای انتقال روی لینک‌های سریال از قالبی شبیه HDLC استفاده کند که در استانداردها با عنوان HDLC-like Framing شناخته می‌شود.

این عبارت به این معنا نیست که PPP تمام قابلیت‌ها، حالت‌های عملیاتی و انواع فریم HDLC را پیاده‌سازی می‌کند. PPP فقط از برخی اصول و ساختارهای فریم‌بندی مشابه HDLC مانند Flag، Address، Control و FCS بهره می‌برد.

در فریم PPP معمولاً فیلد Address مقدار ثابت 0xFF و فیلد Control مقدار ثابت 0x03 دارد. این فیلدها در صورت توافق دو سمت از طریق LCP می‌توانند فشرده یا حذف شوند.

تفاوت PPP و HDLC چیست؟

ویژگیPPPHDLC
نام کاملPoint-to-Point ProtocolHigh-Level Data Link Control
کاربرد اصلیانتقال پروتکل‌های مختلف روی لینک نقطه‌به‌نقطهفریم‌بندی و کنترل ارتباط در لایه پیوند داده
مذاکره لینکاز طریق LCPبراساس حالت و پیاده‌سازی HDLC
تنظیم پروتکل لایه شبکهاز طریق NCPجزء اصلی HDLC استاندارد نیست
احراز هویتپشتیبانی از روش‌هایی مانند PAP و CHAPاحراز هویت کاربر جزء اصلی استاندارد آن نیست
پشتیبانی از چند پروتکلدارای فیلد Protocol و ساختار قابل توسعهبه پیاده‌سازی و Encapsulation وابسته است
تشخیص خطابا استفاده از FCS در فریم‌بندی مربوطبا استفاده از FCS
کاربرد در MikroTikپشتیبانی گسترده در PPPoE، L2TP، SSTP و سایر سرویس‌هارابط مستقل عمومی برای Cisco HDLC در RouterOS وجود ندارد
قابلیت همکاریاستاندارد و مناسب برای تجهیزات چندسازندهبرخی نسخه‌های اختصاصی ممکن است ناسازگار باشند

تفاوت Cisco HDLC با HDLC استاندارد

برخی تولیدکنندگان تجهیزات شبکه، نسخه‌های اختصاصی خود را براساس HDLC توسعه داده‌اند. Cisco HDLC یا cHDLC نمونه شناخته‌شده‌ای از این موضوع است.

Cisco HDLC فیلدی برای مشخص‌کردن نوع پروتکل لایه بالاتر به قالب فریم اضافه می‌کند. به دلیل اختصاصی‌بودن این پیاده‌سازی، اتصال مستقیم یک رابط دارای Cisco HDLC به تجهیزی که همان قالب اختصاصی را پشتیبانی نمی‌کند، ممکن است برقرار نشود.

برای لینک‌های بین تجهیزات سازندگان مختلف، PPP معمولاً انتخاب استانداردتر و سازگارتری نسبت به نسخه‌های اختصاصی HDLC بوده است.

آیا میکروتیک از HDLC پشتیبانی می‌کند؟

در نسخه‌های رایج RouterOS، رابط مستقلی با عنوان عمومی HDLC Interface یا Cisco HDLC Interface برای پیکربندی لینک‌های WAN سریال در منوهای معمول RouterOS وجود ندارد.

RouterOS در عوض از خانواده PPP و سرویس‌هایی مانند موارد زیر پشتیبانی می‌کند:

  • PPP Client روی رابط سریال یا مودم سازگار
  • PPPoE Client و PPPoE Server
  • L2TP
  • SSTP
  • OpenVPN مبتنی بر زیرساخت PPP در RouterOS
  • مدیریت کاربران از طریق PPP Profile و PPP Secret
  • احراز هویت و Accounting از طریق RADIUS

ممکن است PPP روی برخی بسترهای سریال از فریم‌بندی HDLC-like استفاده کند، اما این موضوع با ارائه یک رابط عمومی برای Cisco HDLC یکسان نیست.

کاربرد PPP در MikroTik RouterOS

PPP در RouterOS فقط به یک نوع رابط محدود نیست. زیرساخت PPP برای مدیریت تنظیمات مشترک بسیاری از سرویس‌ها استفاده می‌شود.

مهم‌ترین اجزای بخش PPP در میکروتیک عبارت‌اند از:

  • Interfaces: مشاهده و ایجاد رابط‌های PPP و تونل‌ها
  • Profiles: تعریف تنظیمات عمومی کاربران
  • Secrets: ایجاد نام کاربری و رمز عبور
  • Active Connections: مشاهده نشست‌های فعال
  • AAA: تنظیم احراز هویت و Accounting از طریق RADIUS

PPPoE چیست؟

PPPoE مخفف Point-to-Point Protocol over Ethernet است. در PPPoE، فریم‌های PPP داخل فریم‌های Ethernet کپسوله می‌شوند.

این فناوری به سرویس‌دهنده اینترنت امکان می‌دهد کاربران را با نام کاربری و رمز عبور شناسایی کند، برای هر کاربر یک نشست مجزا بسازد، آدرس IP تخصیص دهد و مصرف کاربر را ثبت یا محدود کند.

PPPoE دو مرحله اصلی دارد:

  1. Discovery Phase: پیدا کردن Access Concentrator و ایجاد Session ID
  2. Session Phase: اجرای PPP شامل LCP، احراز هویت و IPCP

مراحل Discovery در PPPoE

مرحله Discovery شامل چهار پیام اصلی است:

پیامنام کاملکاربرد
PADIPPPoE Active Discovery Initiationجست‌وجوی سرور PPPoE توسط کلاینت
PADOPPPoE Active Discovery Offerپیشنهاد سرویس از سمت Access Concentrator
PADRPPPoE Active Discovery Requestدرخواست ایجاد نشست توسط کلاینت
PADSPPPoE Active Discovery Session-confirmationتأیید نشست و تخصیص Session ID

برای خاتمه یک نشست نیز پیام PADT یا PPPoE Active Discovery Terminate قابل استفاده است.

آموزش تنظیم PPPoE Client در میکروتیک

یکی از رایج‌ترین کاربردهای PPP در میکروتیک، اتصال روتر به سرویس‌دهنده اینترنت از طریق PPPoE است.

پیش‌نیازهای راه‌اندازی

  • نام کاربری PPPoE ارائه‌شده توسط ISP
  • رمز عبور PPPoE
  • رابط فیزیکی متصل به مودم، ONT یا شبکه ISP
  • Service Name در صورت اعلام سرویس‌دهنده
  • VLAN ID در صورت استفاده اپراتور از VLAN

تنظیم PPPoE Client از طریق WinBox

  1. وارد WinBox شوید.
  2. از منوی سمت چپ وارد بخش PPP شوید.
  3. در تب Interface روی علامت + کلیک کنید.
  4. گزینه PPPoE Client را انتخاب کنید.
  5. در قسمت Name یک نام مانند pppoe-out1 وارد کنید.
  6. در بخش Interface، پورت متصل به ISP را انتخاب کنید.
  7. وارد تب Dial Out شوید.
  8. نام کاربری را در بخش User وارد کنید.
  9. رمز عبور را در قسمت Password وارد کنید.
  10. در صورت نیاز گزینه Add Default Route را فعال کنید.
  11. در صورت نیاز Use Peer DNS را فعال یا غیرفعال کنید.
  12. تنظیمات را ذخیره و وضعیت اتصال را بررسی کنید.

تنظیم PPPoE Client از طریق ترمینال

/interface pppoe-client
add name=pppoe-out1 \
 interface=ether1 \
 user="ISP-USERNAME" \
 password="ISP-PASSWORD" \
 add-default-route=yes \
 default-route-distance=1 \
 use-peer-dns=no \
 disabled=no

در این مثال:

  • ether1 رابط متصل به سرویس‌دهنده است.
  • add-default-route=yes مسیر پیش‌فرض اینترنت را اضافه می‌کند.
  • default-route-distance=1 فاصله مسیر ایجادشده را تعیین می‌کند.
  • use-peer-dns=no مانع جایگزینی DNS روتر با DNS دریافتی از ISP می‌شود.

تنظیم روش‌های احراز هویت مجاز

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

/interface pppoe-client
set pppoe-out1 allow=chap,mschap2

فعال‌کردن تمام روش‌ها ممکن است برای سازگاری مفید باشد، اما اصل امنیتی مناسب این است که فقط گزینه‌های موردنیاز فعال باقی بمانند.

تنظیم NAT برای اینترنت PPPoE

اگر شبکه داخلی از آدرس‌های Private استفاده می‌کند، معمولاً باید Source NAT یا Masquerade برای خروج کاربران از رابط PPPoE تعریف شود:

/ip firewall nat
add chain=srcnat \
 out-interface=pppoe-out1 \
 action=masquerade \
 comment="NAT for PPPoE Internet"

در روترهایی که از Interface List استفاده می‌کنند، می‌توان رابط PPPoE را عضو فهرست WAN کرد و قانون NAT را براساس Interface List نوشت:

/interface list member
add list=WAN interface=pppoe-out1
/ip firewall nat
add chain=srcnat \
 out-interface-list=WAN \
 action=masquerade \
 comment="NAT for WAN interfaces"

بررسی وضعیت PPPoE Client

برای مشاهده وضعیت اتصال از دستور زیر استفاده کنید:

/interface pppoe-client monitor pppoe-out1

اطلاعاتی مانند موارد زیر نمایش داده می‌شوند:

  • وضعیت اتصال
  • زمان فعال‌بودن نشست
  • آدرس محلی دریافت‌شده
  • آدرس سمت سرور
  • MTU و MRU مؤثر
  • نام Access Concentrator
  • Service Name

برای مشاهده رابط‌های فعال نیز می‌توان از دستور زیر استفاده کرد:

/interface pppoe-client print detail

اسکن سرورهای PPPoE

اگر نمی‌دانید روی یک Broadcast Domain سرور PPPoE فعال است یا خیر، می‌توانید رابط موردنظر را اسکن کنید:

/interface pppoe-client scan ether1

در خروجی، نام Access Concentrator، Service Name و آدرس MAC سرورهای شناسایی‌شده نمایش داده می‌شود.

مشکل MTU در PPPoE

در Ethernet معمولی MTU اغلب ۱۵۰۰ بایت است، اما PPPoE سربار اضافی به فریم اضافه می‌کند. در سناریوی استاندارد بدون پشتیبانی از فریم‌های بزرگ‌تر، MTU مؤثر IP در PPPoE معمولاً از Ethernet عادی کمتر است.

تنظیم نادرست MTU ممکن است مشکلاتی مانند موارد زیر ایجاد کند:

  • بازنشدن برخی وب‌سایت‌ها
  • اختلال در TLS و HTTPS
  • قطع یا کندی VPN
  • ارسال‌نشدن فایل‌های بزرگ
  • Fragmentation غیرضروری
  • اختلال در Path MTU Discovery

در بسیاری از شبکه‌ها RouterOS مقدار مناسب را به‌صورت خودکار مذاکره می‌کند. نباید بدون بررسی زیرساخت ISP، MTU را به مقدار دلخواه افزایش داد.

اصلاح TCP MSS

اگر Path MTU Discovery به دلیل مسدودشدن پیام‌های ضروری ICMP درست کار نکند، می‌توان TCP MSS را براساس PMTU اصلاح کرد:

/ip firewall mangle
add chain=forward \
 protocol=tcp \
 tcp-flags=syn \
 out-interface=pppoe-out1 \
 action=change-mss \
 new-mss=clamp-to-pmtu \
 comment="Clamp TCP MSS for PPPoE"

این قانون باید تنها در صورت وجود مشکل واقعی و پس از بررسی MTU اجرا شود. افزودن بی‌دلیل Ruleهای Mangle می‌تواند عیب‌یابی شبکه را پیچیده‌تر کند.

راه‌اندازی PPPoE Server در میکروتیک

RouterOS می‌تواند به‌عنوان PPPoE Access Concentrator عمل کند و کاربران متعددی را با نام کاربری و رمز عبور احراز هویت کند.

این قابلیت در سناریوهای زیر کاربرد دارد:

  • سرویس‌دهندگان اینترنت کوچک
  • مجتمع‌های مسکونی و تجاری
  • شبکه‌های خوابگاهی
  • شبکه‌های آزمایشگاهی
  • مدیریت مشترکان روی بستر Ethernet یا VLAN
  • تخصیص IP و سرعت به کاربران مجزا

نکته طراحی: بهتر است روی رابطی که درخواست‌های PPPoE کاربران را دریافت می‌کند، DHCP Server یا IP Address معمول شبکه کاربران فعال نباشد؛ مگر اینکه طراحی شبکه به‌صورت آگاهانه و با جداسازی مناسب انجام شده باشد.

سناریوی نمونه PPPoE Server

در این مثال، فرض می‌کنیم:

  • رابط کاربران: ether5
  • آدرس سمت سرور PPP: 10.20.0.1
  • بازه IP کاربران: 10.20.0.10-10.20.0.200
  • DNS کاربران: 1.1.1.1 و 9.9.9.9
  • نام سرویس: Bistoon-PPPoE

مرحله اول: ایجاد IP Pool

/ip pool
add name=pppoe-pool ranges=10.20.0.10-10.20.0.200

مرحله دوم: ایجاد PPP Profile

/ppp profile
add name=pppoe-profile \
 local-address=10.20.0.1 \
 remote-address=pppoe-pool \
 dns-server=1.1.1.1,9.9.9.9 \
 only-one=yes \
 change-tcp-mss=yes

در این پروفایل:

  • local-address آدرس سمت روتر در نشست PPP است.
  • remote-address از Pool برای کاربران IP انتخاب می‌کند.
  • dns-server آدرس DNS را به کلاینت اعلام می‌کند.
  • only-one=yes تعداد نشست هم‌زمان هر کاربر را محدود می‌کند.
  • change-tcp-mss=yes به مدیریت MSS در نشست کمک می‌کند.

مرحله سوم: ایجاد کاربر PPP

/ppp secret
add name=customer01 \
 password="USE-A-STRONG-PASSWORD" \
 service=pppoe \
 profile=pppoe-profile

تعیین مقدار service=pppoe باعث می‌شود این حساب فقط برای سرویس PPPoE قابل استفاده باشد.

مرحله چهارم: فعال‌کردن PPPoE Server

/interface pppoe-server server
add interface=ether5 \
 service-name=Bistoon-PPPoE \
 default-profile=pppoe-profile \
 authentication=chap,mschap2 \
 one-session-per-host=yes \
 disabled=no

پس از فعال‌شدن سرور، کلاینت‌های موجود در همان دامنه لایه دوم می‌توانند Access Concentrator را پیدا کرده و برای ایجاد نشست درخواست ارسال کنند.

مرحله پنجم: ایجاد NAT برای کاربران PPPoE

/ip firewall nat
add chain=srcnat \
 src-address=10.20.0.0/24 \
 out-interface-list=WAN \
 action=masquerade \
 comment="Internet access for PPPoE clients"

تنظیم محدودیت سرعت کاربران PPP

در PPP Profile می‌توان با پارامتر rate-limit برای کاربران محدودیت سرعت تعریف کرد.

برای نمونه، محدودیت ۲۰ مگابیت دانلود و ۱۰ مگابیت آپلود:

/ppp profile
set pppoe-profile rate-limit=10M/20M

در RouterOS ترتیب مقادیر Rate Limit باید با جهت ترافیک از دید روتر و مستندات نسخه مورد استفاده بررسی شود. پیش از اجرای انبوه، پروفایل را روی یک کاربر آزمایشی بررسی کنید.

همچنین می‌توان برای گروه‌های مختلف کاربران پروفایل‌های جداگانه ایجاد کرد:

  • پروفایل ۱۰ مگابیت
  • پروفایل ۲۰ مگابیت
  • پروفایل ۵۰ مگابیت
  • پروفایل کاربران سازمانی
  • پروفایل کاربران بدون محدودیت

تفاوت PPP Profile و PPP Secret

یکی از مفاهیم مهم در مدیریت PPP میکروتیک، تفاوت میان Profile و Secret است.

بخشکاربرد
PPP Profileتعریف تنظیمات عمومی مانند IP، DNS، سرعت، فیلتر و تعداد Session
PPP Secretتعریف حساب کاربر، رمز عبور، سرویس و پروفایل مربوط
PPP Activeنمایش نشست‌هایی که اکنون متصل هستند
PPP AAAتنظیم استفاده از RADIUS و Accounting

تنظیمات اختصاصی موجود در PPP Secret می‌توانند بسیاری از مقادیر Profile را برای همان کاربر Override کنند. برای مدیریت ساده‌تر، بهتر است تنظیمات مشترک در Profile و استثناهای واقعی در Secret قرار گیرند.

اختصاص IP ثابت به یک کاربر PPPoE

برای تعیین IP مشخص برای یک کاربر، می‌توان مقدار Remote Address را در PPP Secret وارد کرد:

/ppp secret
set customer01 \
 local-address=10.20.0.1 \
 remote-address=10.20.0.50

آدرس ثابت نباید با Pool یا آدرس کاربران دیگر تداخل داشته باشد. بهتر است IPهای ثابت خارج از محدوده Pool پویا انتخاب شوند.

مشاهده کاربران فعال PPP

برای مشاهده نشست‌های فعال:

/ppp active print detail

در این بخش اطلاعاتی مانند موارد زیر قابل مشاهده است:

  • نام کاربر
  • نوع سرویس
  • آدرس اختصاص‌یافته
  • Caller ID یا MAC در سرویس‌های سازگار
  • مدت اتصال
  • حجم و تعداد بسته‌های انتقال‌یافته
  • روش رمزگذاری یا Encoding در سرویس‌های مربوط

برای قطع‌کردن نشست یک کاربر:

/ppp active remove [find name="customer01"]

استفاده از Address List برای کاربران PPP

می‌توان آدرس کاربران یک پروفایل را هنگام اتصال به‌صورت خودکار وارد Firewall Address List کرد:

/ppp profile
set pppoe-profile address-list=PPPOE-USERS

سپس می‌توان قوانین Firewall، NAT، Mangle یا Routing را براساس این Address List ایجاد کرد:

/ip firewall filter
add chain=forward \
 src-address-list=PPPOE-USERS \
 action=accept \
 comment="Allow approved PPPoE users"

قانون نمونه باید با سیاست امنیتی و ترتیب Ruleهای موجود هماهنگ شود.

استفاده از RADIUS برای کاربران PPP

در شبکه‌های بزرگ، مدیریت صدها یا هزاران کاربر در PPP Secret محلی دشوار است. RouterOS می‌تواند برای احراز هویت، Authorization و Accounting کاربران PPP از RADIUS استفاده کند.

مزایای استفاده از RADIUS عبارت‌اند از:

  • مدیریت متمرکز کاربران
  • ثبت زمان ورود و خروج
  • ثبت حجم مصرف
  • اعمال پروفایل و محدودیت سرعت
  • استفاده مشترک میان چند روتر
  • غیرفعال‌کردن متمرکز حساب‌ها
  • اتصال به سامانه Billing

تعریف RADIUS Server در میکروتیک

/radius
add service=ppp \
 address=192.0.2.10 \
 secret="RADIUS-SHARED-SECRET" \
 authentication-port=1812 \
 accounting-port=1813

فعال‌کردن RADIUS برای PPP

/ppp aaa
set use-radius=yes accounting=yes interim-update=5m

RouterOS ابتدا پایگاه کاربران محلی را بررسی می‌کند. اگر نام کاربری در PPP Secret محلی وجود نداشته باشد، درخواست می‌تواند برای RADIUS ارسال شود.

هشدار امنیتی: Shared Secret مربوط به RADIUS باید طولانی و منحصربه‌فرد باشد. ارتباط RADIUS سنتی میان NAS و سرور نیز باید در یک شبکه مدیریتی امن، تونل VPN یا بستر محافظت‌شده قرار گیرد.

PPP Client روی مودم سریال یا LTE

RouterOS می‌تواند در تجهیزات و مودم‌های سازگار، از PPP Client روی یک پورت سریال یا USB استفاده کند. این قابلیت بیشتر در مودم‌های سلولی قدیمی‌تر یا تجهیزاتی کاربرد دارد که رابط شبکه مستقیم ارائه نمی‌کنند.

نمونه کلی:

/interface ppp-client
add name=ppp-cellular \
 port=usb2 \
 apn=your-apn \
 dial-on-demand=no \
 add-default-route=yes \
 disabled=no

نام پورت، APN، Dial String و سایر پارامترها به مدل مودم و اپراتور بستگی دارند. در مودم‌های LTE جدیدتر معمولاً رابط LTE مستقیم عملکرد و امکانات بهتری نسبت به PPP سریال ارائه می‌دهد.

آیا PPTP یک گزینه مناسب برای PPP Server است؟

PPTP یکی از تونل‌هایی است که از زیرساخت PPP برای احراز هویت و Accounting استفاده می‌کند، اما دارای مشکلات امنیتی شناخته‌شده است و برای طراحی شبکه‌های جدید توصیه نمی‌شود.

به‌جای PPTP بهتر است براساس نیاز شبکه گزینه‌هایی مانند موارد زیر بررسی شوند:

  • WireGuard
  • IPsec
  • L2TP همراه با IPsec
  • SSTP با گواهی معتبر
  • OpenVPN با تنظیمات رمزنگاری مناسب

WireGuard از زیرساخت PPP Secret استفاده نمی‌کند، اما معماری ساده و رمزنگاری مدرنی دارد. انتخاب پروتکل VPN باید براساس سازگاری کلاینت‌ها، سیاست امنیتی، عملکرد و نوع شبکه انجام شود.

نکات امنیتی در راه‌اندازی PPPoE Server

  • برای کاربران رمزهای عبور طولانی و منحصربه‌فرد تعریف کنید.
  • روش‌های احراز هویت ضعیف و غیرضروری را غیرفعال کنید.
  • برای هر کاربر Service مناسب مانند PPPoE را مشخص کنید.
  • تعداد نشست‌های هم‌زمان هر کاربر را محدود کنید.
  • شبکه PPPoE کاربران را از شبکه مدیریت جدا نگه دارید.
  • دسترسی کاربران به WinBox، SSH و WebFig را مسدود کنید.
  • برای هر گروه کاربری پروفایل و Address List مناسب بسازید.
  • لاگ ورود، خروج و خطاهای احراز هویت را بررسی کنید.
  • در شبکه‌های بزرگ از RADIUS و Accounting متمرکز استفاده کنید.
  • قوانین Firewall را برای رابط‌های PPP پویا در نظر بگیرید.
  • RouterOS و RouterBOOT را به‌روز نگه دارید.
  • از تنظیمات روتر Backup و Export تهیه کنید.

مشکلات رایج PPPoE Client در میکروتیک

وضعیت Searching یا Dialing باقی می‌ماند

این حالت معمولاً نشان می‌دهد کلاینت پاسخ مناسبی از Access Concentrator دریافت نمی‌کند.

موارد زیر را بررسی کنید:

  • انتخاب رابط فیزیکی صحیح
  • برقرار بودن Link پورت Ethernet
  • Bridge بودن صحیح مودم یا ONT
  • VLAN موردنیاز اپراتور
  • Service Name
  • وجود سرور PPPoE در همان Broadcast Domain
  • مسدود نشدن فریم‌های PPPoE توسط سوئیچ یا Bridge

خطای Authentication Failed

نام کاربری، رمز عبور، دامنه احتمالی موجود در نام کاربری و روش احراز هویت مجاز را بررسی کنید.

برای مشاهده لاگ‌های مرتبط:

/log print where topics~"ppp"

اتصال برقرار است اما اینترنت وجود ندارد

موارد زیر را بررسی کنید:

  • ایجادشدن Default Route
  • عضویت رابط PPPoE در Interface List مربوط به WAN
  • وجود قانون NAT
  • تنظیم DNS
  • قوانین Firewall
  • وجود Routeهای Policy-Based
  • دریافت IP معتبر از ISP

بررسی مسیر پیش‌فرض:

/ip route print where dst-address="0.0.0.0/0"

برخی سایت‌ها باز نمی‌شوند

این مشکل معمولاً می‌تواند به MTU، MSS، Path MTU Discovery یا مسدودشدن ICMP مربوط باشد.

برای آزمایش Ping بدون Fragmentation می‌توان اندازه بسته را به‌تدریج تغییر داد:

/ping 1.1.1.1 size=1472 do-not-fragment

مقدار مناسب به MTU لینک و سربار پروتکل بستگی دارد. نتیجه این تست نباید بدون محاسبه و بررسی به‌عنوان MTU نهایی رابط استفاده شود.

مشکلات رایج PPPoE Server

کاربر متصل می‌شود اما IP دریافت نمی‌کند

وجود و ظرفیت IP Pool، مقدار Remote Address در Profile و تداخل آدرس‌ها را بررسی کنید.

/ip pool print detail
/ppp profile print detail
/ppp active print detail

کاربر رمز صحیح دارد اما احراز هویت نمی‌شود

مقادیر زیر را بررسی کنید:

  • Service در PPP Secret
  • Profile اختصاص‌یافته
  • روش‌های Authentication در PPPoE Server
  • فعال یا غیرفعال بودن Secret
  • وجود کاربر همنام در RADIUS
  • محدودیت Caller ID
  • فعال بودن نشست قبلی در حالت Only One

کاربران اینترنت دارند اما به شبکه مدیریت نیز دسترسی پیدا می‌کنند

این مشکل با تنظیم PPP حل نمی‌شود و باید در Firewall ارتباط کاربران PPPoE با شبکه مدیریت و خود روتر محدود شود.

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

/ip firewall filter
add chain=forward \
 src-address-list=PPPOE-USERS \
 dst-address=192.168.100.0/24 \
 action=drop \
 comment="Block PPPoE users from management network"

همچنین در زنجیره Input باید دسترسی کاربران به سرویس‌های مدیریتی خود روتر کنترل شود.

PPP بهتر است یا HDLC؟

انتخاب میان PPP و HDLC به تجهیزات، بستر فیزیکی و نیازهای پروژه بستگی دارد. با این حال، برای ارتباط میان تجهیزات چندسازنده و سناریوهایی که به مذاکره لینک، احراز هویت و حمل چند پروتکل نیاز دارند، PPP انعطاف‌پذیری بیشتری ارائه می‌کند.

HDLC در لینک‌های سریال سنتی و برخی زیرساخت‌های اختصاصی کاربرد دارد، اما در شبکه‌های مبتنی بر MikroTik معمولاً خانواده PPP، Ethernet، PPPoE، VLAN و تونل‌های IP کاربرد عملی بیشتری دارند.

اگر یک سمت لینک از Cisco HDLC استفاده می‌کند، جایگزین‌کردن آن با PPP در هر دو سمت معمولاً سازگاری بیشتری ایجاد می‌کند؛ مشروط بر اینکه سخت‌افزار و رابط‌های مورد استفاده از PPP پشتیبانی کنند.

سؤالات متداول درباره PPP و HDLC

PPP چیست؟

PPP یک پروتکل لایه دوم برای انتقال دیتاگرام‌های چندپروتکلی روی لینک‌های نقطه‌به‌نقطه است. این پروتکل از LCP برای مدیریت لینک و از NCP برای تنظیم پروتکل‌های لایه شبکه استفاده می‌کند.

HDLC چیست؟

HDLC یک پروتکل بیت‌محور در لایه پیوند داده است که برای فریم‌بندی، کنترل لینک و تشخیص خطا روی ارتباط‌های سریال طراحی شده است.

آیا PPP همان HDLC است؟

خیر. PPP یک پروتکل مستقل است، اما در برخی بسترهای سریال از فریم‌بندی HDLC-like استفاده می‌کند. PPP تمام قابلیت‌ها و حالت‌های استاندارد HDLC را پیاده‌سازی نمی‌کند.

تفاوت اصلی PPP و HDLC چیست؟

PPP دارای LCP، NCP، مذاکره پارامترها و روش‌های احراز هویت است. HDLC بیشتر بر فریم‌بندی و کنترل ارتباط لایه دوم تمرکز دارد.

آیا میکروتیک Cisco HDLC را پشتیبانی می‌کند؟

در RouterOS رایج، رابط عمومی و مستقلی برای پیکربندی Cisco HDLC وجود ندارد. برای ارتباط استاندارد میان تجهیزات معمولاً از PPP یا سایر روش‌های پشتیبانی‌شده استفاده می‌شود.

PPPoE چیست؟

PPPoE روشی برای کپسوله‌کردن PPP داخل فریم Ethernet است. این فناوری برای ایجاد نشست جداگانه، احراز هویت و تخصیص IP به کاربران کاربرد دارد.

PPP Profile در میکروتیک چه کاربردی دارد؟

PPP Profile تنظیمات مشترک کاربران مانند آدرس محلی، IP Pool، DNS، محدودیت سرعت، Address List و تعداد نشست هم‌زمان را مشخص می‌کند.

PPP Secret چیست؟

PPP Secret پایگاه کاربران محلی PPP در RouterOS است و شامل نام کاربری، رمز عبور، نوع سرویس، پروفایل و تنظیمات اختصاصی کاربر می‌شود.

آیا PPP ترافیک را رمزگذاری می‌کند؟

PPP پایه به‌خودی‌خود رمزگذاری کامل ترافیک ارائه نمی‌دهد. برخی پروتکل‌هایی که از PPP استفاده می‌کنند ممکن است لایه رمزگذاری جداگانه داشته باشند.

چرا MTU در PPPoE اهمیت دارد؟

زیرا کپسوله‌سازی PPPoE به فریم Ethernet سربار اضافه می‌کند. تنظیم نامناسب MTU یا MSS ممکن است باعث Fragmentation یا بازنشدن برخی سرویس‌ها شود.

آیا برای PPPoE Server می‌توان از RADIUS استفاده کرد؟

بله. RouterOS می‌تواند احراز هویت، Authorization و Accounting کاربران PPPoE را از طریق RADIUS انجام دهد.

آیا PPTP برای راه‌اندازی VPN مناسب است؟

PPTP دارای مشکلات امنیتی شناخته‌شده است و برای شبکه‌های جدید توصیه نمی‌شود. بهتر است از پروتکل‌های امن‌تر استفاده شود.

جمع‌بندی

PPP یک پروتکل استاندارد و انعطاف‌پذیر برای انتقال داده روی ارتباط‌های نقطه‌به‌نقطه است. این پروتکل با استفاده از LCP لینک را ایجاد و مدیریت می‌کند و با کمک NCP پارامترهای پروتکل‌های لایه شبکه را تنظیم می‌کند.

HDLC نیز یکی از پروتکل‌های مهم لایه پیوند داده برای فریم‌بندی و کنترل ارتباط‌های سریال است. با این حال، فریم‌بندی HDLC-like مورد استفاده در PPP نباید با تمام قابلیت‌های HDLC یا نسخه اختصاصی Cisco HDLC یکسان در نظر گرفته شود.

در MikroTik RouterOS، کاربرد عملی PPP بیشتر در PPPoE Client، PPPoE Server، سرویس‌های تونلی، مدیریت کاربران، تخصیص IP، محدودسازی سرعت و اتصال به RADIUS دیده می‌شود. مدیر شبکه می‌تواند با استفاده از PPP Profile و PPP Secret سیاست‌های مشترک و اختصاصی کاربران را تعریف کند.

برای پیاده‌سازی پایدار و امن، علاوه بر تنظیم صحیح PPP باید موضوعاتی مانند MTU، NAT، Firewall، جداسازی شبکه مدیریت، روش احراز هویت، محدودیت نشست‌ها و ثبت Accounting نیز در نظر گرفته شوند.