PPPOE-SERVER(8) System Manager's Manual PPPOE-SERVER(8)

pppoe-server - سرور PPPoE در فضای کاربری

pppoe-server [گزینه‌ها]

دستور pppoe-server یک سرور در فضای کاربری برای پروتکل نقطه به نقطه روی اترنت (PPPoE یا Point-to-Point Protocol over Ethernet) برای لینوکس و سایر سیستم‌های یونیکس است. pppoe-server در هماهنگی با کلاینت pppoe برای پاسخ‌گویی به بسته‌های اکتشافی PPPoE و برپایی نشست‌های PPPoE عمل می‌کند.

گزینه -F باعث می‌شود pppoe-server انشعاب (fork) پیدا نکند و به یک دیمن تبدیل نشود. رفتار پیش‌فرض این است که منشعب شده و به دیمن تبدیل گردد.
گزینه -I رابط اترنت مورد استفاده را مشخص می‌کند. در لینوکس معمولاً به صورت eth0 یا eth1 است. این رابط باید پیش از راه‌اندازی pppoe-server فعال (up) باشد، اما نیازی به داشتن آدرس IP ندارد. اگر می‌خواهید سرور روی بیش از یک رابط پاسخ دهد، می‌توانید چندین گزینه -I را مشخص کنید.
این گزینه باعث می‌شود pppoe-server شناسه فرایند خود (PID) را در pidfile بنویسد. علاوه بر این، فایل را قفل نگه می‌دارد تا برای یک pidfile مشخص، تنها یک فرایند بتواند اجرا شود.
مسیر کامل برنامه pppd را مشخص می‌کند. مقدار پیش‌فرض در زمان کامپایل تعیین می‌شود. یکی از کاربردهای این گزینه، ارائه یک برنامه پوششی (wrapper) است که آرگومان‌های ارسالی به pppd را تغییر می‌دهد. این کار به شما امکان می‌دهد مواردی را که مستقیماً توسط سرور پشتیبانی نمی‌شوند پیاده‌سازی کنید (برای نمونه، تعیین آدرس‌های IPv6).
مسیر کامل برنامه pppoe را مشخص می‌کند. مقدار پیش‌فرض در زمان کامپایل تعیین می‌شود. این گزینه فقط در صورتی کاربرد دارد که از PPPoE در حالت هسته (kernel-mode) استفاده نمی‌کنید.
این گزینه مستقیماً به pppoe ارسال می‌شود؛ برای جزئیات به pppoe(8) مراجعه کنید. اگر از PPPoE در حالت هسته استفاده می‌کنید، این گزینه هیچ تأثیری ندارد.
مشخص می‌کند چه نامی به عنوان نام متمرکزکننده دسترسی (Access Concentrator) گزارش شود. در صورت مشخص نشدن، از نام میزبان (hostname) استفاده می‌شود.
سرویسی با نام name را ارائه می‌دهد. می‌توان چندین گزینه -S تعیین کرد؛ هر کدام باعث می‌شود سرویس مشخص‌شده در برچسب Service-Name در فریم PADO اعلان شود. اولین گزینه -S سرویس پیش‌فرض را تعیین می‌کند و در صورتی که کلاینت PPPoE برچسب Service-Name با طول صفر درخواست کند، استفاده خواهد شد.
این گزینه مستقیماً به pppoe ارسال می‌شود؛ برای جزئیات به pppoe(8) مراجعه کنید. اگر از PPPoE در حالت هسته استفاده می‌کنید، این گزینه هیچ تأثیری ندارد.
تعداد نشست‌ها به ازای هر آدرس MAC همتا را به n محدود می‌کند. اگر یک آدرس MAC مشخص تلاش کند بیش از n نشست ایجاد کند، بسته‌های PADI و PADR آن نادیده گرفته می‌شوند. اگر n را برابر با 0 (مقدار پیش‌فرض) تنظیم کنید، هیچ محدودیتی بر تعداد نشست‌ها به ازای هر آدرس MAC همتا اعمال نمی‌شود.
این گزینه مستقیماً به pppoe ارسال می‌شود؛ برای جزئیات به pppoe(8) مراجعه کنید. علاوه بر این، باعث می‌شود pppd همراه با گزینه sync فراخوانی شود.
آدرس IP محلی را تعیین می‌کند. این مقدار به فرایندهای ایجاد شده pppd منتقل می‌شود. در صورت عدم تعیین، مقدار پیش‌فرض 10.0.0.1 است. اگر به صورت 0.0.0.0 تعیین شود، انتخاب آدرس IP محلی به pppd واگذار می‌گردد.
آدرس IP دوردست (remote) آغازین را تنظیم می‌کند. هم‌زمان با برقراری نشست‌ها، آدرس‌های IP با شروع از ip اختصاص می‌یابند. pppoe-server به طور خودکار مخزن آدرس‌ها را ردیابی کرده و یک آدرس IP دوردست معتبر به pppd ارسال می‌کند. در صورت عدم تعیین، آدرس اولیه 10.67.15.1 استفاده خواهد شد. اگر به صورت 0.0.0.0 تعیین شود، تخصیص IP دوردست به pppd واگذار می‌شود.
حداکثر به num نشست هم‌زمان PPPoE اجازه فعالیت می‌دهد. در صورت عدم تعیین، مقدار پیش‌فرض 64 است.
رشته string را بلافاصله پس از ارسال بسته PADS به کلاینت، درون برچسب MOTM در یک بسته PADM ارسال می‌کند.
نشانی url را بلافاصله پس از ارسال بسته PADS به کلاینت، درون برچسب HURL در یک بسته PADM ارسال می‌کند. توجه داشته باشید که url باید با http:// یا https:// شروع شود.
این گزینه باعث می‌شود pppoe-server به pppd اعلام کند به جای فایل پیش‌فرض /etc/ppp/pppoe-server-options از فایل گزینه‌های fname استفاده کند.
فایل مشخص‌شده fname را که یک فایل متنی شامل یک آدرس IP در هر سطر است می‌خواند. این آدرس‌های IP به کلاینت‌ها اختصاص خواهند یافت. تعداد نشست‌های مجاز برابر با تعداد آدرس‌های موجود در فایل خواهد بود. گزینه -p هر دو گزینه -R و -N را بازنویسی (override) می‌کند.

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

a.b.c.d-e

که شامل تمام آدرس‌های IP از a.b.c.d تا a.b.c.e می‌شود. برای مثال، سطر:

1.2.3.4-7

معادل با سطرهای زیر است:

1.2.3.4
1.2.3.5
1.2.3.6
1.2.3.7
به سرور PPPoE دستور می‌دهد تا شماره نشست‌ها را به صورت تصادفی جابه‌جا (permute) کند. به جای واگذاری ترتیبی نشست‌ها، شماره نشست‌ها با ترتیبی غیرقابل پیش‌بینی تخصیص می‌یابند.
به سرور اعلام می‌کند که pppd را همراه با گزینه unit فراخوانی کند. توجه داشته باشید که این گزینه فقط برای نسخه 2.4.0 یا جدیدتر pppd کار می‌کند.
به جای شماره‌گذاری نشست‌های PPPoE از شماره 1، شماره‌گذاری آن‌ها از offset+1 آغاز می‌شود. این کار به شما امکان می‌دهد چندین سرور را روی یک ماشین مشخص اجرا کنید؛ تنها باید مطمئن شوید که شماره نشست‌های آن‌ها هم‌پوشانی ندارند.
گزینه -f انواع فریم‌های اترنت را برای اکتشاف و نشست‌های PPPoE تنظیم می‌کند. این انواع به صورت اعداد شانزده‌شانزدهی (hexadecimal) با دونقطه جدا می‌شوند. پروتکل استاندارد PPPoE از انواع فریم 8863:8864 استفاده می‌کند. نباید از این گزینه استفاده کنید مگر اینکه کاملاً مطمئن باشید همتای مورد نظر از انواع فریم غیراستاندارد استفاده می‌کند.
گزینه -k به سرور اعلام می‌کند در لینوکس از PPPoE در حالت هسته (kernel-mode) استفاده کند. این گزینه فقط در هسته‌های لینوکس 2.4.0 و جدیدتر در دسترس است، و تنها در صورتی که سرور با پشتیبانی از حالت هسته ساخته شده باشد.
گزینه -g مسیر کامل افزونه pppoe.so یا rp-pppoe.so را برای استفاده به همراه PPPoE حالت هسته به سرور اعلام می‌کند. در صورت عدم ذکر، مقدار پیش‌فرض کامپایل‌شده استفاده می‌شود؛ این مقدار پیش‌فرض را می‌توان با استفاده از گزینه -h مشاهده کرد.
گزینه -i به سرور می‌گوید در صورتی که هیچ جایگاه نشست آزادی وجود نداشته باشد، فریم‌های PADI را به طور کامل نادیده بگیرد.
گزینه -h پیام راهنمای کوتاهی از نحوه استفاده را چاپ کرده و خارج می‌شود.
گزینه -U یک سوکت یونیکس ایجاد می‌کند که می‌توان برای مدیریت pppoe-server در زمان اجرا به آن متصل شد. لطفاً برای دستورالعمل‌های دقیق‌تر به بخش سوکت کنترلی (CONTROL-SOCKET) در زیر مراجعه کنید.

pppoe-server به بسته‌های اکتشافی ورودی PPPoE گوش می‌دهد. هنگامی که یک نشست برقرار می‌شود، یک فرایند pppd ایجاد می‌کند. گزینه‌های زیر به pppd ارسال می‌شوند:

nodetach noaccomp nobsdcom nodeflate nopcomp novj novjccomp
default-asyncmap

علاوه بر این، آدرس‌های IP محلی و دوردست بر اساس گزینه‌های -L و -R تنظیم می‌شوند. گزینه pty به همراه یک دستور pppoe برای آغاز نشست PPPoE ارائه می‌شود. در نهایت، گزینه‌های اضافی pppd را می‌توان در فایل /etc/ppp/pppoe-server-options قرار داد (که باید وجود داشته باشد، حتی اگر کاملاً خالی باشد!).

توجه داشته باشید که pppoe-server عمدتاً برای آزمایش کلاینت‌های PPPoE در نظر گرفته شده است. این سرور برای استفاده‌های عملیاتی با کارایی بالا (production) طراحی نشده است.

سوکت کنترلی به عنوان مکانیزمی ثانویه برای بهبود کنترل pppoe-server در زمان اجرا پیاده‌سازی شده است. برای استفاده از آن باید pppoe-server را با گزینه -U که در بالا توضیح داده شد اجرا کنید. سپس می‌توانید (در حال حاضر به دلیل نبود کلاینت کنترلی اختصاصی) از netcat برای اتصال به سوکت کنترلی استفاده کنید، برای مثال:

nc -U /run/pppoe-server.control

با فرض اینکه -U /run/pppoe-server.control به pppoe-server ارسال شده باشد.

دستورهای زیر پیاده‌سازی شده‌اند:

مشخص می‌کند که آیا pppoe-server به بسته‌های PADI پاسخ دهد یا خیر. هنگامی که روی off تنظیم شود، pppoe-server پاسخ خواهد داد؛ در غیر این صورت بسته‌های PADI نادیده گرفته می‌شوند. این قابلیت امکان تخلیه (drain) کلاینت‌ها از pppoe-server را فراهم می‌کند. علاوه بر این، در صورت تنظیم روی quit، پس از اتمام کار تمام کلاینت‌های pppoe، به اجرای pppoe-server خاتمه می‌دهد.

این ویژگی ارتقای سیستم را (تقریباً) بدون وقفه ممکن می‌سازد؛ به این صورت که می‌توان قبل از راه‌اندازی نسخه جدید روی همان رابط‌ها، دستور "set drain quit" را برای نمونه جاری صادر کرد؛ در نتیجه ضمن حفظ وضعیت مناسب کلاینت‌های موجود، امکان برقراری اتصالات جدید فراهم می‌شود.

اطلاعات وضعیت پایه‌ای سرور pppoe-server متصل‌شده را نمایش می‌دهد.

برنامه pppoe-server توسط Dianne Skoll <dianne@skoll.ca> نوشته شده است.

صفحه خانگی pppoe در نشانی https://dianne.skoll.ca/projects/rp-pppoe قرار دارد.

pppd(8), pppoe(8), pppoe-sniff(8), pppoe-relay(8)

21 June 2008 4th Berkeley Distribution