ব্রিজড VPN হটস্পট: ফোনটি কোন ডিফল্ট রুট ব্যবহার করে?
Pi-এর ডিফল্ট রুট ফোনের গেটওয়ে নয়। দুটি সিদ্ধান্ত আলাদা করুন, আপলিংক ব্রিজের বাইরে রাখুন, এবং টানেলের আগে লিজ পরীক্ষা করুন।
আপনার ব্রিজড হটস্পটের ফোনটি তার ঠিকানা ও গেটওয়ে কোথাও থেকে পায়, এবং সেটি Pi-এর ডিফল্ট রুট নয়। Pi-এর ডিফল্ট বদলালে Pi নিজের ট্রাফিক কোথায় পাঠাবে সেটি বদলায়। ফোনটি তাকে যে গেটওয়ে বলা হয়েছিল সেটিই ব্যবহার করে চলে, আর সেই গেটওয়ে যদি দূরবর্তী LAN-এ থাকে তবে তার ফ্রেমগুলো শুধু ব্রিজ পার হয়। দুই ভোক্তা, দুই সিদ্ধান্ত। এগুলো আলাদা করলে Pi নিজে ঠিক থাকা সত্ত্বেও ইন্টারনেটহীন হটস্পটের বেশিরভাগ রিপোর্ট ব্যাখ্যা হয়।
দুটি ডিভাইস, দুটি ভিন্ন গেটওয়ে সিদ্ধান্ত
Pi-এর নিজের একটি IP স্ট্যাক ও নিজের ডিফল্ট রুট আছে। ফোনের নিজের একটি IP স্ট্যাক ও নিজের ডিফল্ট রুট আছে।
| Consumer | Who chooses its gateway | What carries the traffic |
|---|---|---|
| Phone on the bridged AP | The remote LAN router, delivered in its client configuration | An Ethernet frame toward that router crosses the AP and TAP bridge |
| Pi's encrypted connection | The travel uplink's route toward the VPN peer | The Pi sends its own outer transport packets over the underlay |
ওই টেবিলটাই পুরো মডেল। ফোনের গেটওয়ে দূরবর্তী LAN-এর একটি ঠিকানা, আর তার ফ্রেম লেয়ার 2-এ ওই রাউটারের দিকে ফরওয়ার্ড হয়। Pi-এর ডিফল্ট রুট Pi-এর নিজের আউটার ট্রান্সপোর্টের বিষয়, যা ট্রাভেল আপলিংকের ওপর দিয়ে VPN পিয়ার পর্যন্ত পৌঁছাতে হয়।
ব্রিজ ফ্রেম ফরওয়ার্ড করে, প্যাকেট রুট করে না
একটি Linux ব্রিজ গন্তব্য MAC অনুযায়ী Ethernet ফ্রেম ফরওয়ার্ড করে, এবং তার পোর্টগুলোর মধ্যে এটুকুই করে। ফোনের ফ্রেম, যা দূরবর্তী রাউটারের MAC-এ সম্বোধন করা, TAP পোর্টে সুইচ হয় এবং Pi-এর রাউটিং টেবিল স্পর্শ না করেই টানেল পার হয়। এজন্য নষ্ট Pi ডিফল্ট রুটে ফোন কাজ করতে পারে, আর এজন্য সঠিক একটি ভুল গেটওয়ে পাওয়া ফোনকে ঠিক করতে পারে না।
TAP Ethernet ফ্রেম বহন করে এবং ব্রিজ পোর্ট হতে পারে। TUN IP প্যাকেট বহন করে এবং হতে পারে না। আপনার ডিজাইন যদি একটির বদলে অন্যটি বসিয়ে থাকে, তবে ব্রিজটি ব্রিজ নয় এবং এখানকার বাকিটা প্রযোজ্য নয়।
ফোনের লিজ কে দেবে তা ঠিক করুন
DHCP অপশন 3 হলো রাউটার অপশন, এবং এটি ক্লায়েন্টকে বলে তার সাবনেটের জন্য কোন গেটওয়ে ব্যবহার করবে। যখন দূরবর্তী LAN-এর DHCP সার্ভারই একমাত্র বিতরণকারী, ফোন দূরবর্তী গেটওয়ে পায় এবং ডিজাইন সামঞ্জস্যপূর্ণ থাকে। যখন ট্রাভেল দিকে অন্য কিছু আগে উত্তর দেয়, ফোন স্থানীয় গেটওয়ে পায়, তার ইন্টারনেট ট্রাফিক ট্রাভেল আপলিংক দিয়ে বেরিয়ে যায়, আর দূরবর্তী LAN-এর ট্রাফিকের কোনো পথই থাকে না।
ওই ব্রডকাস্ট ডোমেইনের জন্য একটি বিতরণকারী চালান, এবং এটি কী দেয় তা লিখে রাখুন।
Pi আলাদা একটি ক্ষেত্র, এমনকি যখন একই লিজ থেকে ঠিকানা নেয়। লিজ যে রুটগুলো দেয় সেগুলো এটি ইনস্টল করবে কি না তা সচেতনভাবে ঠিক করুন, কারণ আমদানি করা দূরবর্তী ডিফল্ট Pi-এর নিজের VPN ট্রান্সপোর্টকে যে টানেল সচল রাখতে চায় সেটির ভেতরে টেনে নিতে পারে। systemd-networkd-এ সেই সিদ্ধান্ত DHCP অংশে UseRoutes=; dhclient-এ এটি রিকোয়েস্ট তালিকার routers অপশন।
আপলিংক ব্রিজড LAN-এর বাইরে রাখুন
যে ইন্টারফেস Pi-এর আউটার VPN সংযোগ বহন করে সেটি ব্রিজ পোর্ট হওয়া যাবে না। যদি হয়, এনক্রিপ্টেড ট্রান্সপোর্ট বর্ধিত LAN-এ সুইচ হয় এবং টানেল শেষে নিজের আউটার প্যাকেটই বহন করে, যা লুপ নয় বরং প্যাকেট লসের মতো দেখায়। AP সক্ষমতা ও ব্রিজ সমর্থনও স্পষ্ট রাখুন। station মোডে থাকা ওয়্যারলেস ইন্টারফেস সাধারণত ব্রিজ পোর্ট হতে পারে না, কারণ 802.11 হেডারে ব্রিজের প্রয়োজনীয় দ্বিতীয় MAC ঠিকানার জায়গা নেই।
সংজ্ঞায়িত করুন বর্ধিত ব্রডকাস্ট ডোমেইন, একটি ঠিকানা পরিকল্পনা, এবং আপনি সত্যিই যে ফ্রেম ফিল্টারিং চান। Pi-তে VPN লিসেনার অনুমোদন করলে প্রতিটি ব্রিজড ক্লায়েন্ট Pi-এর ম্যানেজমেন্ট সেবায় প্রবেশাধিকার পায় না। এগুলো আলাদা নিয়ম, আর সেগুলোকে এক হিসেবে ধরা—এভাবেই একটি হটস্পট চুপচাপ খোলা দরজা হয়ে ওঠে।
ভাঙলে চারটি জিনিস আলাদাভাবে পরীক্ষা করুন
ফোন যখন দূরবর্তী LAN-এ পৌঁছাতে পারে না, তখন চারটি পর্যবেক্ষণ কারণগুলো আলাদা করে। এই ক্রমে চালান এবং প্রথম ব্যর্থ একটিতে থামুন।
ip route show default
bridge link show
ip -4 neigh show dev br0
tcpdump -ni br0 arp or icmpলিজ দিয়ে শুরু করুন: ফোনটি কি দূরবর্তী সাবনেটে ঠিকানা ও গেটওয়ে ধরে আছে? তারপর ব্রিজ দেখুন, এবং নিশ্চিত করুন AP পোর্ট ও TAP পোর্ট দুটোই ফরওয়ার্ড করছে। তারপর নেইবার টেবিল পড়ুন, কারণ দূরবর্তী রাউটারের জন্য অমীমাংসিত এন্ট্রি মানে ফ্রেম বেরোয় কিন্তু কিছুই উত্তর দেয় না। শেষে ফোন পিং করার সময় ব্রিজে ফ্রেম দেখুন, যা বলে দেয় ত্রুটি আদৌ IP-এর নিচে কি না।
শেষ হলে কোন ডিভাইস কোন ডিফল্টের মালিক তা লিখে রাখুন। এক লাইন ডকুমেন্টেশন স্থানীয় বনাম দূরবর্তী ইগ্রেসকে সচেতন ক্লায়েন্ট সিদ্ধান্তে পরিণত করে, আর ব্রিজ রেফারেন্সটি তার পাশে রাখার যোগ্য।