مسیر در OpenVPN کجا قرار میگیرد: در سمت کلاینت یا سرور؟
یک مسیر خام در پیکربندی سرور، سرور را تغییر میدهد نه کلاینت را. فایل کلاینت، یک push سراسری یا یک push برای یک کلاینت را انتخاب کنید و بررسی کنید چه چیزی رسیده است.
شما route 10.60.0.0 255.255.255.0 را به پیکربندی سرور اضافه میکنید، راهاندازی مجدد میکنید، لپتاپ را دوباره متصل میکنید و زیرشبکه هنوز از آن لپتاپ در دسترس نیست. خط پذیرفته شد، سرویس پاک راهاندازی شد و هیچ چیز در گزارش اشتباه به نظر نمیرسد. آنچه رخ داد این بود که مسیر روی همان ماشینی نصب شد که ویرایش کردید: دروازه اکنون باور دارد که میتواند به آن پیشوند برسد، در حالی که به کلاینت هیچ چیز گفته نشد. جایگذاری تمام ماجراست و چهار جایی وجود دارد که همان خط میتواند در آن زندگی کند.
چهار جایگاه و اینکه هر یک به چه کسی میرسد
یک مسیر میتواند با پیکربندی خود کلاینت اضافه شود، از طریق یک push سراسری به همه کلاینتها پیشنهاد شود، از طریق فایلی مخصوص یک کلاینت به یک کلاینت پیشنهاد شود، یا در بافت مسیریابی خود سرور نوشته شود.
این چهار حالت از نحوی تقریباً یکسان استفاده میکنند و نتایج کاملاً متفاوتی میدهند. سه حالت نخست بر آنچه کلاینت به تونل میفرستد اثر میگذارند؛ حالت چهارم بر اینکه سرور چگونه به یک شبکه میرسد، که وقتی خود سرور به مسیر نیاز دارد سودمند است و وقتی با توزیع اشتباه گرفته شود زیانآور.
پیش از نوشتن خط تصمیم بگیرید کدام یک از چهار مورد را میخواهید، سپس گیرنده را تأیید کنید.
| Placement | Effect | Receiver |
|---|---|---|
| Client profile route | Installed by the client at connect | That client only |
Global push "route ..." | Sent to every client that accepts pushed options | All pulling clients |
| Client-specific push | Sent to the matching client context | One identity |
| Server config route, no push | Added to the server's own table | The gateway itself |
چرا مسیر خام سرور مردم را غافلگیر میکند
پیکربندی سرور جایی است که مدیران نخست به آن نگاه میکنند، و یک دستور مسیر در آنجا مثل بیانیهای درباره شبکه VPN خوانده میشود. اینطور نیست. OpenVPN آن را به عنوان نصب مسیر محلی روی ماشینی که دیمن روی آن اجرا میشود در نظر میگیرد، یعنی همان نوع تغییری که با ip route انجام میدادید و بعد فراموشش میکردید.
توزیع نیازمند آن است که مسیر با push فرستاده شود، و push نیازمند آن است که کلاینت آن را بکشد. کلاینتی که با گزینههای کشیدهشده غیرفعال شروع شود، پیشنهاد را کاملاً نادیده میگیرد. پیش از بازنویسی فایل سرور، هر دو سر این دستدادن را بررسی کنید، چون گزارش سرور شکایت نخواهد کرد: از سمت آن، پیشنهاد فرستاده شد. مسیر پذیرفتهشده نیز تنها در اتصال بعدی اعمال میشود، هرگز در نشستی که هماکنون در آن هستید.
وقتی این دو را جداگانه ببینید، شکست دیگر مرموز نیست: سرور به پیشوند میرسد، کلاینت نمیرسد، و هر دو گزاره همزمان درستاند.
فایلهای مخصوص هر کلاینت و هویتی که با آن تطبیق دارند
فایل مخصوص یک کلاینت به نام هویتی نامگذاری میشود که سرور احراز کرده است، که به طور پیشفرض نام مشترک گواهی است. نام اتصال دوستانه در کلاینت رومیزی آن مقدار نیست، و عدم تطابق فایلی میسازد که هرگز خوانده نمیشود.
دایرکتوریای را که سرور واقعاً استفاده میکند بررسی کنید، سپس تأیید کنید که نام فایل دقیقاً با هویت احرازشده مطابقت دارد، با حروف بزرگ و کوچک.
grep -n 'client-config-dir' /etc/openvpn/server/server.conf
ls -l /etc/openvpn/ccd/درون آن فایل هنوز باید مسیر با push فرستاده شود، چون بافت مخصوص هر کلاینت مجموعهای از گزینههاست که بر نشست آن کلاینت اعمال میشود، نه یک جدول مسیریابی محلی. مسیر خام در آنجا همان مشکل مسیر خام در فایل سراسری را دارد.
فایل خود کلاینت و ابزاری که مالک آن است
مسیری که در پیکربندی کلاینت گذاشته میشود، هنگام اتصال آن کلاینت نصب و هنگام قطع اتصال حذف میشود، که چرخه عمر درست برای یک مقصد ثابت است.
اگر مدیر شبکه مالک پروفایل باشد، ممکن است آن گزینهها را یک بار وارد کند و سپس نسخه خود را نگه دارد. ویرایش فایل دانلودشده بعداً هیچ چیز را تغییر نمیدهد، و این علت رایج عبارت "مسیر هست اما اعمال نمیشود" است.
پروفایل فعال را بررسی کنید نه فایلی که دانلود کردهاید، و تنظیمات واردشده را که مدیر نمایش میدهد بررسی کنید. سپس متصل شوید و از سیستم بپرسید یک نشانی مشخص از کدام مسیر استفاده میکند، به جای اینکه فرض کنید تونل برنده شده چون مسیر در یک فایل متنی وجود داشت.
در کلاینت بررسی کنید، سپس مسیر بازگشت را بررسی کنید
از جدول مسیریابی خود کلاینت درباره مقصد بپرسید، نه از جدول سرور. جستجوی یک میزبان واحد درون پیشوند برای نشان دادن رابط و گام بعدی کافی است.
ip route get 10.60.0.10اگر جستجو به تونل اشاره کند، توزیع کار کرده و مشکل باقیمانده جای دیگری است. اگر به دروازه پیشفرض اشاره کند، مسیر نصب نشده، با گزینهای در سمت کلاینت فیلتر شده، یا متعلق به پروفایلی است که کلاینت استفاده نمیکند.
فرض کنید توزیع کار کرده و هنوز هیچ چیز پاسخ نمیدهد: آنگاه ارسال به جلو روی دروازه، مسیر بازگشت طرف مقابل و هر دیوار آتشی را بین آنها بررسی کنید. مسیر یک راه را انتخاب میکند، دسترسی نمیدهد.