مسیر پیشفرض XFRM بستههای IKE و ESP را بلعید: مسیر بیرونی را نگه دارید
سیاستی که همه چیز را محافظت میکند میتواند بستههایی را هم بگیرد که تونل را برپا نگه میدارند. IKE و ESP را علامت بزنید، یا مسیری برای همتا نگه دارید.
ترافیک محافظت میشود، تونل بالا است و سپس در بازکلید بعدی میمیرد. یک مسیر پیشفرض از طریق رابط XFRM ترافیکی را توصیف میکرد که میخواستید محافظت کنید. بستههایی را هم بلعید که برای ادامه حفاظت لازماند.
دو مقصد درگیر قابل تعویض نیستند. مسیریابی باید این را صریح بگوید.
جستجوی همتا در واقع کجا میرود
قواعد فعال، جدولی که مسیر XFRM را نگه میدارد و نشانی عمومی همتا را ثبت کنید. بعد مسیری را ببینید که اتصال بیرونی با منبع و علامت واقعی خود طی میکند. مقصد عمومی هیچ چیزی درباره آن مسیر کنترلی نمیگوید. تنها منبع و علامت واقعی پاسخ مفیدی میدهند.
اتصال اولیه موفق هم چیز زیادی اثبات نمیکند. خطا اغلب پس از آن ظاهر میشود که نصب یک مسیر پاسخ را تغییر میدهد. راهاندازی موفق میشود، سپس بازسازی اول نه.
ip rule show
ip route show table 220
ip -4 route get 198.51.100.44 from 10.40.0.2
ip xfrm policy list
اگر جستجوی همتا به رابط XFRM برسد، بستههای بیرونی به تونلی که خودشان میسازند مسیریابی میشوند. این همان حلقه است که با یک فرمان دیده میشود.
گزینههای استثنا در یک دروازه مدرن
مستندات strongSwan درباره VPN مبتنی بر مسیریابی دو پاسخ عملی ارائه میدهد. یکی IKE و ESP را علامت میزند تا قاعدهای که به جدول XFRM اشاره میکند با آنها مطابقت نکند. دیگری یک مسیر همتا یا استثنا باقی میگذارد که جستجو هنوز میتواند به آن برسد.
آن را انتخاب کنید که مجموعه قواعد شما بدون عوارض جانبی بیان میکند. علامت وقتی پاک است که بقیه پشته از قبل از علامتها استفاده میکند. وقتی همان ماسک در قاعده دیگری معنای دیگری دارد، خطر است. هر دو نوع بسته در هر حال به این درمان نیاز دارند.
علامت زدن فقط IKE بستههای داده را روی مسیر گرفتارشده رها میکند. این تونلی میسازد که دست میدهد و سپس چیزی حمل نمیکند.
علامت یک بیت در fwmark بسته است که هیچ چیز دیگری روی دروازه آن را ادعا نمیکند: 0x1 با ماسک 0x1 انتخاب معمول است و باید در دو جا تنظیم شود تا استثنا کار کند. Charon آن را روی سوکت IKE لازم دارد و تنظیمات علامت ورودی و خروجی اتصال فرزند به همان مقدار نیاز دارند تا بستههای کپسولهشده هم علامتدار خارج شوند. ماسک 0x1 به جای 0xffffffff بیتهای باقیمانده را آزاد میگذارد، که وقتی زیرسیستم دیگری از قبل بستهها را روی همان میزبان علامت میزند اهمیت دارد. با تنظیم هر دو، قاعده به صورت استثنا نوشته میشود، بنابراین بستههای علامتدار از جدولی که مسیر XFRM را نگه میدارد میگذرند و به جدول اصلی میافتند:
ip rule add not fwmark 0x1/0x1 lookup 220 pref 1000
ip -4 route get 198.51.100.44 from 10.40.0.2 mark 0x1
سپس پاسخ را با علامت اعمالشده بخوانید. بدون آن مسیری را بررسی میکنید که ترافیک محافظتشده طی میکند، که عکس پرسش این بخش است.
نصب خودکار درباره ساخت چه فرضی میکند
نصب خودکار مسیر برای رابط XFRM به نسخه strongSwan و پیکربندی آن بستگی دارد. شناسه رابط، سیاست نصبشده و انجمن باید همه به اشیای موردنظر اشاره کنند. ناسازگاری به صورت مسیری ظاهر میشود که بیصدا به جایی واقعی اشاره میکند.
کپی کردن شماره جدول یا ماسک علامت از دروازه دیگر همان آغاز برخوردهاست. اول بررسی کنید چه چیزی از قبل از آن استفاده میکند. برخورد بر ترافیکی بسیار فراتر از تونلی که میخواستید تغییر دهید اثر میگذارد و نشانه بهندرت به کپی اشاره میکند.
تغییرات نشانی همتا بخشی از طراحی است. یک مسیر میزبان برای نشانی دیروز برنامه بازیابی نقطه پایانی نیست، در حالی که علامت از آن تغییر جان سالم به در میبرد.
بازسازی اول را تماشا کنید
مسیر بیرونی را پس از نصب مسیرهای محافظتشده بررسی کنید، نه پیش از آن. بعد بازسازی بعدی و یک تبادل برنامه را تماشا کنید. خطا معمولاً در آن گذار ظاهر میشود نه در راهاندازی.
ip -4 route get 198.51.100.44
sudo swanctl --list-sas
sudo tcpdump -ni any 'udp port 500 or esp'
حذف موقت مسیر پیشفرض محافظتشده معمولاً اتصال را برمیگرداند. آن نتیجه تشخیصی است، نه نهایی.
هدف جدایی پایدار میان ترافیک درونی و بستههای بیرونی است که آن را حمل میکنند. سازوکار انتخابشده و جدول یا علامت آن را در یادداشتهای دروازه بنویسید. وگرنه شخص بعدی که قواعد را دست بزند حلقه را دوباره وارد میکند.