ব্লগ পুনর্গঠন এবং স্টারলিঙ্ক থেকে কনোহা ভিপিএস-এ শুধুমাত্র টিসিপি যোগাযোগে পৌঁছাতে না পারার সমস্যার সমাধান
নমস্কার, আমি মুন্নো।
অনেকদিন পর আপডেট করা হলো। আসলে, 2025 সালের দ্বিতীয়ার্ধের কিছু পোস্ট উড়ে গিয়েছিল এবং এখন পর্যন্ত তা রয়ে গেছে।
কোডেক্স
সম্প্রতি Codex ব্যবহার করা শুরু করেছি এবং ডেভেলপমেন্ট অভিজ্ঞতা এতটাই ভালো যে আমি পুরোপুরি এর জালে ফেঁসে গেছি।
তাই, আমি আমার ব্লগকে Lume CMS থেকে Codex ব্যবহার করে পুনর্গঠন করেছি, যা নিয়ে আমি এতদিন অসন্তুষ্ট ছিলাম।
এসএসজি-তে Markdown দিয়ে লিখতে পারাটা ভালো, কিন্তু যেহেতু আমি বেশিরভাগ সময় ব্রাউজার থেকে আপডেট করতাম, তাই আমার মনে হলো যে আমার নিয়মিত ব্যবহৃত এডিটর, vim দিয়ে লেখার কোনো বিশেষ অর্থ নেই।
বিশেষ করে ছবি সংক্রান্ত সমস্যা ছিল, যার কারণে সহজে ব্লগ আপডেট করার আগ্রহ পাচ্ছিলাম না...
কোড এখানে প্রকাশ করা হয়েছে, তবে বর্তমানে এটিতে প্রচুর বাগ রয়েছে।
GitHub - haturatu/alleycat: cms
এছাড়াও, ViMusic এর রক্ষণাবেক্ষণ আবার শুরু হতে পারে বলে মনে হচ্ছে, তাই আমি আবার এটি রক্ষণাবেক্ষণ শুরু করেছি। এমনকি Reddit-এ একজন ব্যক্তি যিনি একটি ফর্ক খুঁজছিলেন, তাকে উত্তর দেওয়ার পর দেখা গেল তিনি আমার রিপোজিটরিতে একটি issue তৈরি করেছিলেন।
পৃথিবীটা সত্যিই ছোট!
কনোহা ভিপিএস-এ নেটওয়ার্ক অ্যাক্সেস করতে না পারা
এবং তারপর, হঠাৎ একটি সমস্যা দেখা দিল।
মনে হচ্ছে একটি Path MTU Black hole ঘটেছিল। এটি সত্যিই অদ্ভুত ছিল যে WireGuard এর মতো UDP যোগাযোগ এবং ডিএনএস সার্ভারের মতো জিনিসগুলি অ্যাক্সেস করা যাচ্ছিল, কিন্তু TCP এর প্রয়োজন হয় এমন SSH এবং HTTP এর মতো সমস্ত যোগাযোগ ব্যর্থ হচ্ছিল।
যেহেতু কনোহা ভিপিএস নিজেই ফ্রিবিএসডি-তে হোস্ট করা হয়েছে, তাই আমি যখন এটি নিয়ে গবেষণা করছিলাম, তখন আমি এমন তথ্য পেলাম যে প্যাকেট ফিল্টার (pf) এর scrub ফাংশন ব্যবহার করে প্যাকেট স্বাভাবিক করার মাধ্যমে সমস্যাটি সমাধান করা যেতে পারে। তাই আমি নিম্নলিখিতভাবে কনফিগার করেছি:
set skip on lo
set block-policy drop
exsrv1 = dummy
insrv1 = dummy
insrv2 = dummy
wireguard_clients="{ dummy, dummy, dummy }"
wanint="vtnet0"
wg_ports="{51820}"
scrub in on $wanint all random-id max-mss 1360
scrub out on $wanint all random-id max-mss 1360
~~~এর মাধ্যমে আপস্ট্রিম এবং ডাউনস্ট্রিম উভয়ই স্বাভাবিক করা হয়েছে এবং প্যাকেটের সেগমেন্ট সাইজ 1360 হবে।
আশ্চর্যজনক বিষয়
এই ঘটনার কারণ হিসেবে একটি অনুমান ছিল যে Starlink এর সিজিএনএটি (CGNAT) হয়তো ঠিকঠাক কাজ করছে না।
$ mtr -T -P 443 -n -r -c 2 163.44.113.145
Start: 2026-02-24T00:13:53+0900
HOST: thepassenger Loss% Snt Last Avg Best Wrst StDev
1.|-- 192.168.1.1 0.0% 2 1.4 1.5 1.4 1.6 0.1
2.|-- 100.64.0.1 0.0% 2 19.3 19.4 19.3 19.4 0.1
3.|-- 172.16.251.26 0.0% 2 20.1 23.4 20.1 26.8 4.8
4.|-- ??? 100.0 2 0.0 0.0 0.0 0.0 0.0
5.|-- 206.224.70.186 0.0% 2 25.9 22.3 18.8 25.9 5.0
206.224.70.182
6.|-- 210.171.225.229 0.0% 2 23.0 22.7 22.4 23.0 0.4
7.|-- ??? 100.0 2 0.0 0.0 0.0 0.0 0.0
8.|-- 172.71.208.15 0.0% 2 24.9 23.1 21.3 24.9 2.5
162.159.109.42
9.|-- 172.71.4.38 0.0% 2 21.9 23.3 21.9 24.8 2.1
172.64.212.62
10.|-- 172.71.4.35 0.0% 2 63.3 43.8 24.2 63.3 27.7
172.70.221.227
11.|-- ??? 100.0 2 0.0 0.0 0.0 0.0 0.0
12.|-- 172.70.165.3 0.0% 2 44.7 39.8 35.0 44.7 6.9
13.|-- 150.95.7.204 0.0% 2 33.4 34.0 33.4 34.6 0.8
14.|-- 150.95.7.139 0.0% 2 39.2 50.3 39.2 61.4 15.7
15.|-- 150.95.7.147 0.0% 2 36.6 37.2 36.6 37.9 0.9
16.|-- 163.44.113.145 0.0% 2 34.2 35.8 34.2 37.5 2.3$ tracepath -n -m 30 163.44.113.145
1?: [LOCALHOST] pmtu 1500
1: 192.168.1.1 1.347ミリ秒
1: 192.168.1.1 1.293ミリ秒
2: 100.64.0.1 53.580ミリ秒 asymm 3
3: 172.16.251.26 37.025ミリ秒
4: 206.224.70.208 34.552ミリ秒 (不完全なルーターが破損したデータを返しました) asymm 7
5: 206.224.70.184 37.307ミリ秒
6: 210.171.225.229 34.518ミリ秒
7: 応答なし
8: 172.71.4.43 34.303ミリ秒
9: 162.159.109.87 39.922ミリ秒
10: 162.159.109.55 33.535ミリ秒
11: 応答なし
12: 172.70.165.3 56.395ミリ秒 asymm 11
13: 150.95.7.204 46.647ミリ秒 asymm 10
14: 150.95.7.139 66.797ミリ秒 asymm 11
15: 150.95.7.147 46.542ミリ秒 asymm 12
16: 応答なし
17: 応答なし
18: 応答なしআসলে, আমার ধারণা ছিল যে স্টারলিঙ্ক এবং আমার নেটওয়ার্ক পরিবেশের ডিফল্ট প্যাকেট সাইজ 1500 হওয়া সত্ত্বেও TCP যোগাযোগ ঠিকঠাক কাজ করবে, কিন্তু কেন এই সমস্যাটি হঠাৎ করে এই মাসে কনোহা ভিপিএস <-> স্টারলিঙ্ক এর মধ্যে ঘটল তা আমি বুঝতে পারিনি।
যদি স্টারলিঙ্কের মূল সিজিএনএটি (CGNAT) ত্রুটিপূর্ণ হতো, তাহলে সমস্যাটি আরও আগে দেখা যেতে পারত, কিন্তু এটি এতই অদ্ভুত একটি ঘটনা যে আমি এখনও দ্বিধায় আছি।