مقالات

مسیریابی – بسته های پینگ IPv6 یکسان در روتر میانی لینوکس، بسته به منبع اصلی، پاسخ متفاوت است؟


من یک شبکه خانگی دارم که در آن لینوکس را روی دروازه منبع (OpenWRT Master-branch) اجرا می کنم. من سعی می کنم اتصال IPv6 را از طریق یک تونل موقعیتی به میزبان دیگری از خودم، یک سرور لینوکس محلی (CentOS) ارائه دهم.

Colo box را که من برای ارسال IPv6 به یک شبکه راه دور از طریق wireguard پیکربندی کرده‌ام (این رابطی است که در زیر بسته‌ها را با tcpdump می‌کشم)، و بنابراین این جعبه رنگی لینوکس یک “روتر میانی” در آن مسیر شبکه است. .

با این حال، من این وضعیت گیج کننده را دارم که در آن icmp-ping IPv6 را برمی گرداند پاسخ دهید بسته به این بسته میزبان میانی بسته به اینکه از کدام قسمت از شبکه خانگی من آمده است متفاوت رفتار می شود (که گیج کننده است زیرا واسطه باید به طور یکسان پوشانده شود). غیر قابل دسترس رد شد» پاسخ ارسال می شود برگشت برای میزبانی که پینگ می شود به نظر می رسد فقط به این بستگی دارد که آیا من روتر خانگی را پینگ کرده ام یا میزبانی پشت روتر خانگی.

در مثال زیر، fd8f:a363::1 آدرس IPv6 در سمت محلی تونل محافظ سیم من است (و در غیر این صورت تونل برای ترافیک IPv4 و برای ترافیک IPv6 خوب کار می کند تا زمانی که از این میزبان کولو یا روتر دروازه خانگی من باشد)، و 2001:db8:1328::3 مقصد راه دور ICMP در انتهای تونل است.

بنابراین درخواست به میزبان مقصد می رسد، اما وقتی میزبان پاسخ می دهد، ممکن است بسته به جایی که منبع بوده است، پاسخ آن مسدود شود. من نمی توانم بفهمم چه چیزی می تواند باعث این شود.

وقتی از روتر خانگی از طریق تونل sit1 پینگ می کنم، همه چیز عادی به نظر می رسد:

[root@ intermediate ipv6]# tcpdump -n -vv -i wg0 icmp6
tcpdump: listening on wg0, link-type RAW (Raw IP), capture size 262144 bytes
17:01:51.661837 IP6 (flowlabel 0x81990, hlim 63, next-header ICMPv6 (58) payload length: 64) fd8f:a363::1 > 2001:db8:1328::3: [icmp6 sum ok] ICMP6, echo request, seq 0
17:01:51.789607 IP6 (flowlabel 0x8878d, hlim 63, next-header ICMPv6 (58) payload length: 64) 2001:db8:1328::3 > fd8f:a363::1: [icmp6 sum ok] ICMP6, echo reply, seq 0
17:01:52.661629 IP6 (flowlabel 0x81990, hlim 63, next-header ICMPv6 (58) payload length: 64) fd8f:a363::1 > 2001:db8:1328::3: [icmp6 sum ok] ICMP6, echo request, seq 1
17:01:52.789111 IP6 (flowlabel 0x8878d, hlim 63, next-header ICMPv6 (58) payload length: 64) 2001:db8:1328::3 > fd8f:a363::1: [icmp6 sum ok] ICMP6, echo reply, seq 1

با این حال اگر از هر میزبانی پینگ کنم پشت سر دروازه خانه (مانند لپ تاپ در شبکه خانگی من که از دروازه خانه به عنوان روتر پیش فرض خود استفاده می کند):

[root@intermediate ipv6]# tcpdump -n -vv -i wg0 icmp6
tcpdump: listening on wg0, link-type RAW (Raw IP), capture size 262144 bytes
17:01:43.095796 IP6 (flowlabel 0x20000, hlim 62, next-header ICMPv6 (58) payload length: 16) fd8f:a363::1 > 2001:db8:1328::3: [icmp6 sum ok] ICMP6, echo request, seq 0
17:01:43.223639 IP6 (flowlabel 0x8878d, hlim 63, next-header ICMPv6 (58) payload length: 16) 2001:db8:1328::3 > fd8f:a363::1: [icmp6 sum ok] ICMP6, echo reply, seq 0
17:01:43.223713 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 64) fd8f:a363::1 > 2001:db8:1328::3: [icmp6 sum ok] ICMP6, destination unreachable,  unreachable prohibited fd8f:a363::1
17:01:44.100759 IP6 (flowlabel 0x20000, hlim 62, next-header ICMPv6 (58) payload length: 16) fd8f:a363::1 > 2001:db8:1328::3: [icmp6 sum ok] ICMP6, echo request, seq 1
17:01:44.228429 IP6 (flowlabel 0x8878d, hlim 63, next-header ICMPv6 (58) payload length: 16) 2001:db8:1328::3 > fd8f:a363::1: [icmp6 sum ok] ICMP6, echo reply, seq 1
17:01:44.228510 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 64) fd8f:a363::1 > 2001:db8:1328::3: [icmp6 sum ok] ICMP6, destination unreachable,  unreachable prohibited fd8f:a363::1

من گمان می‌کنم که چیزی در تنظیمات “واسطه” جعبه کولو پیکربندی اشتباهی داشته باشد، زیرا اگر ترافیک تونل را از شبکه خانگی استشمام کنم، چیزی جز درخواست‌ها نمی‌بینم، که نشان می‌دهد میزبان کولو به درستی “جریان‌ها” را برای بازگرداندن به مسیر ارسال نمی‌کند. شبکه خانگی

من ip6table های خود را دو و سه بار بررسی کرده ام و در حالی که دوست دارم فکر کنم درک خوبی از شبکه های لینوکس دارم، این صادقانه مرا به زمین انداخت هیچ ایده ای وجود دارد که چه چیزی می تواند باعث این شود؟

به روز رسانی: ممکن است ایده ای داشته باشم که چرا، به نظر می رسد روتر خانگی من آدرس IPv6 را هنگامی که به سمت جعبه رنگی تونل موقعیت می رسد پنهان نمی کند. و این با وجود قرار گرفتن در همان منطقه فایروال به عنوان یک تونل ipv4 در حال کار است (جایی که ماسکه کردن در آن صورت می گیرد). حدس می‌زنم ~باید از مردم OpenWRT بپرسم که چه خبر است~ آنها از این موضوع غافل شدند به طور جداگانه یک پارامتر “masq6” که من آن را روی منطقه FW تنظیم نکرده بودم. همه چیز در حال حاضر کار می کند.


Source link

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا