ব্লগ পুনর্নির্মাণ এবং Starlink থেকে ConoHa VPS-এ শুধুমাত্র TCP যোগাযোগ পৌঁছাতে না পারার সমস্যার সমাধান

6 min

language: ja bn en es hi pt ru zh-cn zh-tw

হ্যালো, আমি মুনো।

অনেক দিন পর আপডেট করছি। আসলে ২০২৫ সালের শেষের দিকের কিছু নিবন্ধ হারিয়ে গেছে এবং এখন এই অবস্থায় আছি।

Codex

সম্প্রতি Codex ব্যবহার শুরু করেছি এবং এর ডেভেলপমেন্ট অভিজ্ঞতা এতই ভালো যে আমি পুরোপুরি এতে মজে গেছি।

তাই এতদিন ধরে অসন্তুষ্ট থাকা Lume CMS থেকে Codex ব্যবহার করে ব্লগের রি-আর্কিটেক্ট করেছি।

SSG-এর Markdown-এ লিখতে পারা ভালো, কিন্তু আমি বেশিরভাগই ব্রাউজার থেকে আপডেট করতাম, তাই শেষ পর্যন্ত বুঝতে পারলাম যে আমার নিয়মিত ব্যবহৃত এডিটর vim-এ কষ্ট করে লেখার কোনো মানে হয় না।

বিশেষ করে ছবি সংক্রান্ত সমস্যার কারণে সহজে ব্লগ আপডেট করার ইচ্ছা হতো না...।

কোডটি এখানে প্রকাশ করা হয়েছে, তবে বর্তমানে এটি অনেক বাগে (bug) ভরা।

GitHub - haturatu/alleycat: cms

GitHub - haturatu/ViMusic

এর রক্ষণাবেক্ষণও আবার শুরু করা যাবে বলে মনে হচ্ছে, তাই আবার কাজ শুরু করেছি। আর আশ্চর্যজনকভাবে Reddit-এ যারা ফর্ক খুঁজছিল তাদের রিপ্লাই দিতে গিয়ে দেখলাম সে আমার রিপোজিটরিতেই issue তৈরি করা ব্যক্তি ছিল।

আসলেই পৃথিবীটা অনেক ছোট।

ConoHa VPS-এ নেটওয়ার্ক পৌঁছানো যাচ্ছে না

তারপর হঠাৎ একটি সমস্যা দেখা দিল।

মনে হচ্ছে Path MTU Black hole নামক কিছু একটা ঘটছিল। এটি সত্যিই অদ্ভুত, WireGuard-এর মতো UDP কমিউনিকেশন প্রয়োজন এমন কিছু বা DNS সার্ভারে পৌঁছানো গেলেও, TCP প্রয়োজন এমন SSH বা HTTP কমিউনিকেশন সিস্টেমগুলো পুরোপুরি কাজ করছিল না।

যেহেতু ConoHa VPS নিজেই FreeBSD-তে হোস্ট করা, তাই অনুসন্ধান করে দেখলাম যে প্যাকেট ফিল্টার ( 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 কমিউনিকেশনে এটি ঠিকঠাকভাবে কাজ করে। কিন্তু কেন এটি হঠাৎ এই মাসে ConoHa VPS <-> Starlink-এর মধ্যে ঘটল, তা আমি বুঝতে পারছিলাম না।

যদি স্টারলিংকের মূল CGNAT-এ কোনো সমস্যা থাকত, তবে এই সমস্যাটি আরও আগেই ঘটা স্বাভাবিক ছিল। কিন্তু এটি এতটাই অদ্ভুত একটি ঘটনা যে আমি এখনও এটি নিয়ে বিভ্রান্তিতে আছি।

Related Posts