ser2net(8) System Manager's Manual ser2net(8)

ser2net - پروکسی پورت سریال به شبکه

ser2net [-c configfile] [-C sysconfdir] [-Y configline] [-p admin-accepter] [-n] [-d] [-b] [-v] [-P pidfile]

دیمن ser2net امکان برقراری نشست‌های telnet و tcp را با پورت‌های سریال یک دستگاه یا با رابط Serial Over LAN (SOL) در IPMI فراهم می‌کند.

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

فایل پیکربندی را به فایلی غیر از فایل پیش‌فرض sysconfdir/ser2net/ser2net.yaml تنظیم می‌کند. اگر config-file برابر با - باشد، ورودی استاندارد به عنوان فایل پیکربندی خوانده می‌شود. برای اطلاعات در مورد sysconfdir گزینه -C را ببینید.
دایرکتوری محل ذخیره فایل پیکربندی و کلیدهای SSL را تعیین می‌کند. این مسیر در سیستم‌های یونیکسی عموماً /etc/ser2net است؛ در ویندوز به طور پیش‌فرض مسیر ../etc/ser2net نسبت به مکان فایل اجرایی است.
دایرکتوری پیش‌فرضی را که اطلاعات احراز هویت در آن ذخیره می‌شود تعیین می‌کند. این مسیر در سیستم‌های شبه‌یونیکس عموماً /usr/share/ser2net است؛ در ویندوز به طور پیش‌فرض مسیر ../share/ser2net نسبت به مکان فایل اجرایی است. این مقدار می‌تواند در فایل پیکربندی بازنویسی شود. برای اطلاعات بیشتر درباره عملکرد آن به ser2net.yaml(5) مراجعه کنید.
دایرکتوری پیش‌فرضی را که اطلاعات احراز هویت مدیر در آن ذخیره می‌شود تعیین می‌کند. این مسیر به طور پیش‌فرض sysconfdir/auth است. این مقدار می‌تواند در فایل پیکربندی بازنویسی شود. برای اطلاعات بیشتر درباره عملکرد آن به ser2net.yaml(5) مراجعه کنید.
یک رشته پیکربندی yaml را به انتهای رشته‌های در حال پردازش اضافه می‌کند. این گزینه می‌تواند چندین بار برای چندین رشته مشخص شود. این رشته‌ها به انتهای فایل پیکربندی yaml ضمیمه می‌شوند؛ با این حال، اگر این گزینه مشخص شود، فایل پیکربندی پیش‌فرض غیرفعال می‌شود و باید آن را با گزینه -c فعال کنید.

برای تسهیل کار، هر نویسه # در رشته پیکربندی که درون نقل‌قول نباشد (چیزی که معمولاً در yaml کامنت را شروع می‌کند) به یک خط جدید تبدیل می‌شود. علاوه بر این، پس از هر رشته پیکربندی مجزا، یک خط جدید اضافه می‌شود. بنابراین برای نمونه، موارد زیر:

-Y 'connection: &con01#  accepter: tcp,2013'
-Y '  connector: serialdev,/dev/ttyEcho0,9600n81,local'
-Y '  options:#    banner: "### A Banner ###\r\n"'

می‌توانند در خط فرمان ser2net قرار گیرند.

از چندشاخه شدن (fork) و جدا شدن دیمن از ترمینال کنترلی جلوگیری می‌کند. این گزینه برای اجرا از طریق init کاربردی است.
مشابه -n، اما لاگ‌های سیستم را نیز به خروجی استاندارد می‌فرستد. این گزینه برای اهداف اشکال‌زدایی بسیار کاربردی است.
در صورت تعیین، شناسه فرایند (PID) مربوط به ser2net را در pidfile قرار می‌دهد و هر آنچه قبلاً در آن فایل بوده را جایگزین می‌کند. به طور پیش‌فرض pidfile ایجاد نمی‌شود و برای ساخت آن باید این گزینه را تعیین کنید. همچنین توجه داشته باشید که نام این فایل باید با مسیر کامل مشخص شود، زیرا ser2net هنگام تبدیل شدن به دیمن، دایرکتوری را به "/" تغییر می‌دهد.
در صورت فعال بودن قفل‌گذاری UUCP، استفاده از قفل‌های UUCP را غیرفعال می‌کند.
سیستم‌عامل Cisco IOS برای تعیین نرخ باود (baud rate) از سازوکاری متفاوت با سازوکار شرح داده شده در RFC2217 استفاده می‌کند. این گزینه نسخه IOS برای تنظیم نرخ باود را تعیین می‌کند. حالت پیش‌فرض مربوط به RFC2217 است. توجه داشته باشید که این قابلیت اکنون به صورت خودکار مدیریت می‌شود و این گزینه نادیده گرفته می‌شود.
نسخه برنامه را چاپ کرده و خارج می‌شود.
گذرواژه‌های هش‌نشده را مجاز می‌داند. در حالت عادی تنها گذرواژه‌های هش‌شده مجاز هستند؛ این گزینه برای سازگاری با نسخه‌های پیشین است.
تعداد نخ‌های (threads) داده‌شده را برای استفاده ser2net ایجاد می‌کند. مقدار پیش‌فرض ۱ است. تنها در صورتی معتبر است که pthreads در زمان ساخت فعال شده باشد.
رابط مدیریتی را روی مشخصات پذیرنده (accepter) داده‌شده فعال می‌کند. برای جزئیات بیشتر درباره نحوه پیکربندی این مورد، بخش "ADMIN CONNECTION" در ser2net.yaml(5) و برای جزئیات نحوه استفاده از آن، بخش «رابط مدیریتی (ADMIN INTERFACE)» در ادامه را ببینید.
امضای پیش‌فرض RFC2217 را مشخص می‌کند.

رابط مدیریتی یک رابط کاربری ساده برای کنترل پورت‌ها و مشاهده وضعیت آن‌ها فراهم می‌کند. برای انجام این کار، دستورات زیر را در بر دارد:

اطلاعات مربوط به یک پورت را نمایش می‌دهد. اگر پورتی مشخص نشود، تمام پورت‌ها نمایش داده می‌شوند.
اطلاعات مربوط به یک پورت را نمایش می‌دهد، هر پورت در یک خط. اگر پورتی مشخص نشود، تمام پورت‌ها نمایش داده می‌شوند. این دستور می‌تواند خروجی بسیار عریضی تولید کند.
فهرست کوتاه و خلاصه‌ای از دستورات را نمایش می‌دهد.
اتصال از پورت کنترلی را قطع می‌کند.
به حالت خروجی yaml می‌رود. بخش «حالت‌های YAML (YAML MODES)» در ادامه را ببینید.
نسخه این برنامه را نمایش می‌دهد.
تمام ورودی‌های مربوط به یک پورت مشخص را روی پورت کنترلی فراخواننده نمایش می‌دهد. در هر زمان تنها یک جهت را می‌توان نظارت کرد. فیلد type می‌تواند tcp یا term باشد و مشخص می‌کند که آیا داده‌ها از پورت شبکه نظارت شوند یا از پورت سریال. توجه داشته باشید که نظارت داده‌ها با بیشترین تلاش ممکن (best effort) انجام می‌شود؛ اگر پورت کنترل‌کننده نتواند همگام بماند، داده‌ها بدون هشدار دور ریخته می‌شوند. یک کنترل‌کننده تنها می‌تواند یک مورد را نظارت کند و یک پورت نیز تنها توسط یک کنترل‌کننده قابل نظارت است.
نظارت جاری را متوقف می‌کند.
اتصال tcp روی پورت را قطع می‌کند.
مدت زمان بر حسب ثانیه را تعیین می‌کند که در صورت عدم مشاهده هرگونه فعالیت روی پورت، اتصال پورت پس از آن بسته خواهد شد.
کنترل‌های پویای پورت را تغییر می‌دهد. این مقادیر میان اتصالات باقی نمی‌مانند. کنترل‌ها عبارتند از:

DTRHI, DTRLO خط DTR را روشن و خاموش می‌کند.

RTSHI, RTSLO خط RTS را روشن و خاموش می‌کند.

وضعیت عملکرد پورت را تنظیم می‌کند. وضعیت‌های معتبر عبارتند از: off برای خاموش کردن پورت شبکه، raw برای فعال‌سازی پورت شبکه جهت انتقال تمام ورودی/خروجی‌ها به همان صورت دست‌نخورده، rawlp برای فعال‌سازی ورودی پورت شبکه و خروجی دستگاه بدون تنظیمات termios، و telnet برای فعال‌سازی پورت شبکه و اجرای پروتکل مذاکره telnet روی پورت.
باعث بازخوانی پیکربندی توسط ser2net می‌شود. هرگونه خروجی خطا، علاوه بر ارسال به syslog، در خروجی نیز نمایش داده خواهد شد.

اگر دستور "yaml" صادر شود، پژواک (echo) خاموش شده و تمام خروجی‌ها منطبق بر YAML خواهند بود. قالب کلی اساساً همانند خروجی غیر YAML است، همراه با چند تغییر جزئی برای انطباق با YAML. علاوه بر این، تمام پاسخ‌ها به این صورت خواهند بود:

%YAML 1.1
---
response:
  <اطلاعات پاسخ در اینجا>
...

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

دستورات زیر در حالت خروجی yaml در دسترس هستند: exit، version، showport، disconnect، setporttimeout، setportenable، setportcontrol، reload.

اگر "%YAML" در ورودی مشاهده شود، حالت‌های ورودی و خروجی YAML فعال می‌شوند، پژواک غیرفعال شده و انتظار می‌رود تمام ورودی‌ها به این صورت باشند:

---
command:
  name: <نام دستور>
  id: <شناسه اختیاری>
  parms: [ parm1 [, parm2 [...]]]
...

شناسه (id) اختیاری است و صرفاً در پاسخ بازگردانده می‌شود. پارامترها (parms) نیز اختیاری هستند، مگر اینکه دستور به آن‌ها نیاز داشته باشد. پارامترهای اضافی همراه با کلیدهای ناشناخته در نگاشت اصلی نادیده گرفته می‌شوند.

توجه داشته باشید که باید با -> که هنگام برقراری اتصال صادر می‌شود، پیش از ورود به حالت YAML مقابله کنید؛ YAML آن را به خوبی مدیریت نمی‌کند.

در حالت خروجی YAML، گزارش‌های ناهمگام اتصالات و قطع اتصالات را به این صورت دریافت خواهید کرد:

%YAML 1.1
---
new connection:
  name: !!str 'con1'
  remaddr: !!str 'ipv6,::1,59072'
...
%YAML 1.1
---
disconnect:
  name: !!str 'con1'
  remaddr: !!str 'ipv6,::1,59072'
...

پیکربندی از طریق فایل /etc/ser2net/ser2net.yaml انجام می‌شود. فایلی با نام یا مسیر دیگر را می‌توان با استفاده از گزینه -c مشخص کرد.

فایل پیکربندی yaml در ser2net.yaml(5) شرح داده شده است.

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

برنامه ser2net از نام (نام مستعار اتصال) برای تشخیص جدید بودن، تغییر یافتن یا حذف شدن اتصال استفاده می‌کند. اگر فایل پیکربندی جدید اتصالی با همان نام داشته باشد، به عنوان تغییر در نظر گرفته می‌شود.

این مورد در اتصالاتی که بیش از یک ارتباط همزمان را مجاز می‌دانند، رفتارهای غیرمعمولی ایجاد می‌کند. عملکرد آن دقیقاً مشابه پورت‌های دیگر است، اما پذیرنده (accepter) غیرفعال می‌شود و اتصالات جدید تا زمانی که تمام اتصالات موجود بسته نشوند پذیرفته نخواهند شد.

تمام خروجی‌های خطا پس از راه‌اندازی، به syslog ارسال می‌شوند نه خروجی استاندارد، مگر اینکه از گزینه -d استفاده کنید.

/etc/ser2net/ser2net.yaml, /etc/ser2net/ser2net.key, /etc/ser2net/ser2net.crt, /usr/share/ser2net

telnet(1)، ser2net.yaml(5)، hosts_access(5)

هیچ موردی گزارش نشده است.

Corey Minyard <minyard@acm.org>

06/02/01 Serial to network proxy