د VPN له لارې Docker Swarm: دندې ځي، د خدمت غوښتنې ناکامېږي
دندې په دواړو سایټونو کې ځي او د خدمتونو ترمنځ غوښتنې وخت تېروي. overlay ته د نوډ څخه نوډ ته لارې، نه ژباړل شوي پتې او د VXLAN لپاره 50 بایټ ځای ته اړتیا ده.
په دوو سایټونو کې درې مدیران او پنځه کارګر، په یوه تونل سره نښلول شوي، او docker service ls دواړو خواوو ته دندې ښیي، خو د خدمتونو ترمنځ غوښتنې وخت تېروي. په Swarm لاګونو کې هیڅ شی غلط نه ښکاري. دا ترکیب د معلوماتي طبقې د ستونزې نښه ده: کنټرول طبقه نوډونه وموندل، او پوښل شوي چوکاټونه هیڅکله سفر ونه کړ.
شبکه باید د overlay څخه مخکې موجوده وي
د Swarm overlay پوښل شوي چوکاټونه مستقیم د نوډ پتو ترمنځ ټېل وهي، چې مانا یې دا ده چې هر نوډ ته داسې پته ته اړتیا ده چې هر بل نوډ پرته له ژباړې ورته ورسېږي، په هغه انټرفیس چې تونل یې برابروي. هغه تونل چې یوازې پیریدونکي یوه خپره شوې پورټ ته رسوي کافي نه دی. لاندې طبقه باید په دواړو لورو کې له نوډ څخه نوډ ته لارښوونه وکړي.
دا د Swarm له لمس کولو مخکې وازموئ. له هر نوډ څخه، د ملګري د تونل پتې ته لاره وګورئ، ping وکړئ، او بیا د کنټرول پورټ ازموینه وکړئ. که ping کار وکړ او پورټ ونه کړي، تونل سم دی او په لاره کې یو فلټر دی.
ip -brief address
ip route get 10.20.0.12
ping -c3 10.20.0.12
nc -vz 10.20.0.12 2377
که لاره د tun0 یا wg0 پرځای فزیکي انټرفیس ته اشاره وکړي، overlay به داسې پتې ته پوښ ورکړي چې لرې سایټ ورته نه شي رسېدلی، او نښه به د پاکټ له لاسه ورکولو په څېر ښکاره شي.
وګورئ چې هر نوډ کومه پته اعلانوي
ډیمون یوه پته اعلانوي، او ملګري یې د معلوماتي طبقې لپاره کاروي. په څو شبکو لرونکي هوسټ کې اسانه ده چې د LAN یا عامه پته اعلان کړئ، پداسې حال کې چې تونل بل څه وړي. د انګېرنې پرځای یې وګورئ، او کله چې اصلي ارزښت غلط وي، د یوځای کېدو پر مهال یې د --advertise-addr سره ټینګ کړئ. هغه نوډ چې یوازې خپله ورته رسېدلی شي پته اعلانوي بیا هم swarm ته ورځي، او ناکامي وروسته د داسې خدمتونو په بڼه ښکاري چې د سایټونو ترمنځ خبرې نه شي کولی.
د اعلان شوې پتې وروسته بدلول د ترتیباتو سمون نه دی، ځکه نوډ باید ووځي او بیا ځای پرځای شي.
د هر نوډ اعلان شوې پته په خپلو یادښتونو کې ولیکئ، ځکه د ډېرو نامساوي ناکامیو توضیح کوي.
Masquerade معمولي مجرم دی
کله چې د نوډونو او تونل ترمنځ ګېټوې وي، عامه تېروتنه دا ده چې له فزیکي انټرفیس څخه وتونکي هر څه ته masquerade تطبیق کړو. دا د overlay داخلي پتې هم بیا لیکي، نو هر ملګری د ګېټوې څخه راغلی ښکاري او VXLAN ملګري یو بل پېژندل بندوي. پایله ورکه شوې یا یو لوري پوښل شوې ټرافیک ده، پداسې حال کې چې عادي ping لا هم کار کوي.
د overlay مختګ د ګېټوې له لارې ولارښوئ او نه ژباړل شوی یې پرېږدئ. که ژباړه واقعاً د بل مختګ لپاره اړینه وي، هلته یې محدوده کړئ او هېڅکله د هغه حد ته چې overlay یې کاروي مه رسوئ.
ip route add 172.16.0.0/22 via 10.20.0.1
iptables -t nat -I POSTROUTING -o tun0 -s 172.16.0.0/22 -j ACCEPT
د قواعدو ترتیب او متن دواړه وګورئ، ځکه په زنځیر کې مخکې پرتو پراخ MASQUERADE وروسته پرتې تنګې استثنا ته ماتې ورکوي.
VXLAN په پاکټ کې ځای ته اړتیا لري
VXLAN هغو چوکاټونو ته چې وړي 50 بایټ ورزیاتوي. 1500 بایټه لاندې طبقه چې 1500 بایټه داخلي چوکاټ وړي، داسې پوښل شوی پاکټ جوړوي چې هېڅ لاره به یې ونه رسوي، او ناکامي د اندازې ستونزې په څېر نه، بلکې د وخت په وخت د خدمت موندنې په څېر ښکاري. یا دواړو پایونو ته د تونل MTU کم کړئ یا د overlay MTU داسې وټاکئ چې ډرایور د ځایېدونکي بار اعلان وکړي.
docker network create --driver overlay --attachable --opt com.docker.network.driver.mtu=1400 swarm-overlay
ingress شبکه په اتوماتيک ډول جوړېږي، نو بدلول یې مانا دا ده چې په خپل ځای کې سمول نه، بلکې لرې کول او بیا جوړول.
که د تونل یوازې یوه خوا سمه کړئ، کوچنی MTU بیا هم هغه دی چې اهمیت لري.
لاګونه نه، معلوماتي طبقه وګورئ
په دواړو پایونو کې د VXLAN پورټ ونیسئ. هغه چوکاټونه چې له یوې خوا وځي او بلې خوا ته رسېږي مانا دا ده چې لاندې طبقه سمه ده او ستونزه د overlay دننه ده. هغه چوکاټونه چې وځي او هېڅکله نه رسېږي مانا لاره یا فلټر ده. هغه چوکاټونه چې هېڅ ونه وځي مانا د سرچینې پته غلطه ده.
د خدمت موندنې هغه ناکامۍ چې څو ثانیې وروسته ورکېږي معمولاً د پاکټ بودجې یا بې ثباته لارې ته اشاره کوي، نه د raft کورم ته.
د کار کوونکي کړکۍ نیول وساتئ، ځکه د خرابې کړکۍ سره یې پرتله کول د ترتیباتو بیا لوستلو څخه ګړندی دي.