یک هاب OpenVPN، سه LAN: نقشه نشانیها و فایلهای iroute
چهار پیشوند جدا، یک مسیر هسته بهازای هر شعبه، یک iroute بهازای هر مالک. ترتیب کاری برای هابی با سه سایت که وقتی نامی اشتباه است بیصدا شکست میخورد.
سه شبکه LAN خصوصی میتوانند در یک هاب به هم برسند بیآنکه هیچ سایتی از درون دیگری آگاه شود، و تمام طراحی بر چهار تصمیم کوتاه پیکربندی استوار است. آنچه آن را کار میاندازد یک ویژگی پروتکل غیرمعمول نیست، بلکه نقشه نشانیهایی است که لازم نیست کسی آن را حدس بزند، بههمراه مسیرهایی بهازای هر کلاینت که به هاب میگویند کدام شعبه مالک کدام پیشوند است. هر یک از این دو را اشتباه کنید و تونل باز هم بالا میآید، و همین است که خطا را گیجکننده میکند.
مراحل را به ترتیب انجام دهید. هر مرحله به نقشه مرحله پیش وابسته است و هیچکدام به مرجع صدور گواهی تازه نیاز ندارد.
با نقشهای شروع کنید که لازم نیست کسی حدس بزند
پیش از دست زدن به فایل پیکربندی چهار پیشوند ناهمپوشان بنویسید: LAN خود هاب، LAN هر شعبه و مخزنی که به کلاینتهای سیار داده میشود. ناهمپوشانی همان چیزی است که بقیه چیزها را ساده نگه میدارد، زیرا محدودههای همپوشان مسیریابی را به معمای بلندترین تطابق تبدیل میکنند که هیچ پیکربندی بهازای کلاینت آن را درست نمیکند. سپس تأیید کنید کدام ماشین دروازه پیشفرض هر LAN است، زیرا مسیریاب شعبهای که دروازه LAN خودش نیست باید مسیرهای دور را در جایی کاملاً دیگر نصب کند. در پایان نامهای احراز هویتشدهای را که هر شعبه را شناسایی میکنند تثبیت کنید، زیرا همان نامها کلیدهایی هستند که فایلهای بهازای کلاینت با آنها جستوجو میشوند.
یک نقشه نمونه مخزن را از سه LAN دور نگه میدارد. نقشه شما متفاوت خواهد بود و تنها قاعده سخت این است که دو محدوده همپوشانی نداشته باشند.
Hub LAN 172.20.0.0/24
Branch A LAN 172.21.0.0/24
Branch B LAN 172.22.0.0/24
VPN pool 10.77.0.0/24
identity branch-a owns 172.21.0.0/24
identity branch-b owns 172.22.0.0/24به هسته هاب بگویید شعبهها کجا هستند
هاب برای هر شعبه به دو اطلاعات نیاز دارد: مسیری در هسته که پیشوند را به دستگاه تونل میفرستد، و iroute ورودی که به OpenVPN فرایند میگوید کدام کلاینت مالک آن است. مسیر هسته بهتنهایی بستهها را به تونل میرساند و همانجا میایستد، زیرا دیمن هنوز باید تصمیم بگیرد کدام همتا باید آنها را دریافت کند. iroute ورودی بهتنهایی آن بستهها را در هسته بدون مسیری برای دنبال کردن رها میکند. هر دو خط به پیکربندی تعلق دارند که دیمن واقعاً بار میکند، و ارزش دارد پیش از اشکالزدایی هر چیز دیگری آن را بررسی کنید.
dev tun
topology subnet
server 10.77.0.0 255.255.255.0
disable-dco
route 172.21.0.0 255.255.255.0
push "route 172.20.0.0 255.255.255.0"
client-config-dir /etc/openvpn/ccd
route 172.22.0.0 255.255.255.0وقتی هسته باید نقطه اجرا باشد، کلاینت-به-کلاینت را خاموش کنید. آن گزینه ترافیک همتاها را درون دیمن بازپخش میکند، که راحت است و همچنین یعنی قواعد ارسال شما هرگز جریان را نمیبینند. همه چیز در ادامه فرض میکند هسته هر بسته بین شعبهها را میبیند.
به هر شعبه مسیرهایی را که لازم دارد بدهید
هر شعبه به مسیرهایی برای شعبههای دیگر و برای LAN هاب نیاز دارد، و به مسیری برای LAN متصل خودش نیاز ندارد. پیشوندهای دور را از هاب بفرستید بهجای چسباندن آنها در هر مسیریاب، تا یک سایت چهارم بعداً بهجای چهار ویرایش یعنی یک فایل تازه بهازای هر کلاینت. فایل بهازای هر کلاینت خط iroute را نیز دارد، که مالکیت و اعلام را در یک جا نگه میدارد. پوشه و فایلهایش را تحت مدل اختیارات سرور خواندنی کنید، وگرنه جستوجو بدون پیام شکست میخورد.
# /etc/openvpn/ccd/branch-a
iroute 172.21.0.0 255.255.255.0
push "route 172.22.0.0 255.255.255.0"سایت چهارم همان الگو را دنبال میکند: یک نام احراز هویتشده جداگانه، یک پیشوند تحت مالکیت، یک مسیر هسته هاب، iroute ورودی، و اعلامها فقط به سایتهایی که اجازه رسیدن به آن را دارند.
پیش از تمامشده دانستن در هر دو جهت آزمایش کنید
ارسال IPv4 را روی هر سه مسیریاب فعال کنید، سپس تأیید کنید که دیوار آتش جریانهای مورد نظر را در هر دو جهت اجازه میدهد، زیرا آزمایش یکطرفه با مسیر بازگشت خراب بیشتر از آنچه کسی انتظار دارد موفق میشود. بین سایتها به ترجمه مبدأ نیازی نیست، و حفظ مبدأ اصلی همان چیزی است که به هر شعبه اجازه میدهد سیاست خودش را بر یک درخواست اعمال کند.
از یک میزبان در LAN یک شعبه به سرویسی در شعبه دیگر آزمایش کنید، سپس جهت را برعکس کنید و سپس از یک شعبه به LAN هاب آزمایش کنید. این سه نتیجه شواهد متفاوتی هستند و هیچکدام دیگری را ایجاب نمیکند. اگر مسیریاب شعبه دروازه پیشفرض LAN خودش نیست، پیشوندهای دور را روی دروازه واقعی نصب کنید و مخزن را هم بگنجانید وقتی کلاینتهای تونل باید اتصالهایی به آن LAN آغاز کنند.
نقشه، فایلهای بهازای هر کلاینت و قواعد دیوار آتش را بهعنوان یک سند ثبت کنید، زیرا افزودن سایت بعدی در برابر آنها سنجیده خواهد شد.
طراحی یکپارچه میماند زیرا هر لایه یک کار دارد: نقشه پیشوندها را یکتا نگه میدارد، مسیر هسته بستهها را جابهجا میکند، iroute مالک را نام میبرد، و دیوار آتش تصمیم میگیرد چه چیزی مجاز است. وقتی چیزی میشکند، همان فهرست ترتیب بررسی آن هم هست.