شما route 10.60.0.0 255.255.255.0 را به پیکربندی سرور اضافه می‌کنید، راه‌اندازی مجدد می‌کنید، لپ‌تاپ را دوباره متصل می‌کنید و زیرشبکه هنوز از آن لپ‌تاپ در دسترس نیست. خط پذیرفته شد، سرویس پاک راه‌اندازی شد و هیچ چیز در گزارش اشتباه به نظر نمی‌رسد. آنچه رخ داد این بود که مسیر روی همان ماشینی نصب شد که ویرایش کردید: دروازه اکنون باور دارد که می‌تواند به آن پیشوند برسد، در حالی که به کلاینت هیچ چیز گفته نشد. جای‌گذاری تمام ماجراست و چهار جایی وجود دارد که همان خط می‌تواند در آن زندگی کند.

چهار جایگاه و اینکه هر یک به چه کسی می‌رسد

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

این چهار حالت از نحوی تقریباً یکسان استفاده می‌کنند و نتایج کاملاً متفاوتی می‌دهند. سه حالت نخست بر آنچه کلاینت به تونل می‌فرستد اثر می‌گذارند؛ حالت چهارم بر اینکه سرور چگونه به یک شبکه می‌رسد، که وقتی خود سرور به مسیر نیاز دارد سودمند است و وقتی با توزیع اشتباه گرفته شود زیان‌آور.

پیش از نوشتن خط تصمیم بگیرید کدام یک از چهار مورد را می‌خواهید، سپس گیرنده را تأیید کنید.

PlacementEffectReceiver
Client profile routeInstalled by the client at connectThat client only
Global push "route ..."Sent to every client that accepts pushed optionsAll pulling clients
Client-specific pushSent to the matching client contextOne identity
Server config route, no pushAdded to the server's own tableThe 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

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

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

مقالات مرتبط