किसी भी डिवाइस को राउटर कैसे बनाएं
(nbailey.ca)- साधारण कंप्यूटर या mini PC का उपयोग करके पूरा राउटर सेटअप करने की प्रक्रिया को चरण-दर-चरण समझाया गया है
- Debian या Alpine Linux वातावरण में
hostapd,dnsmasq,bridge-utilsजैसे न्यूनतम पैकेजों से wired और wireless नेटवर्क बनाया जा सकता है - सिर्फ 2 Ethernet interfaces हों तो desktop, laptop, SBC जैसी किसी भी डिवाइस को राउटर में बदला जा सकता है
- firewall (nftables), DHCP/DNS services, IP forwarding सेटअप के जरिए commercial router स्तर की सुविधाएँ लागू की जा सकती हैं
- पुराने हार्डवेयर और open source सॉफ्टवेयर से स्थिर और लचीला network infrastructure बनाया जा सकता है
किसी भी डिवाइस को राउटर कैसे बनाएं
- अमेरिकी सरकार द्वारा consumer routers के import ban के बाद, मौजूदा हार्डवेयर का उपयोग करके खुद राउटर बनाने का तरीका बताया गया है
- Linux-आधारित mini PC से कई वर्षों तक स्थिर रूप से राउटर चलाने के अनुभव के आधार पर, ज़रूरी कॉन्फ़िगरेशन और सेटअप प्रक्रिया को चरण-दर-चरण व्यवस्थित किया गया है
- राउटर मूल रूप से साधारण कंप्यूटर जैसी ही संरचना वाला होता है, इसलिए desktop, laptop, SBC जैसी कई तरह की डिवाइस से इसे बनाया जा सकता है
- Debian या Alpine Linux वातावरण में hostapd, dnsmasq, bridge-utils जैसे न्यूनतम पैकेजों से सेटअप किया जाता है
- उद्देश्य नीतिगत प्रतिक्रिया देना नहीं, बल्कि मौजूदा हार्डवेयर का पुन: उपयोग और नेटवर्क की समझ बढ़ाना है
हार्डवेयर चयन
- passive cooling mini PC आदर्श है, लेकिन 2 Ethernet interfaces हों तो कोई भी डिवाइस इस्तेमाल की जा सकती है
- USB-Ethernet dongle से इसकी कमी पूरी की जा सकती है; विश्वसनीयता थोड़ी कम हो सकती है, लेकिन यह पर्याप्त रूप से काम करता है
- उदाहरण के तौर पर Celeron 3205U dual-core (1.5GHz) सिस्टम wired में 820~850Mbps और wireless में लगभग 300Mbps संभाल सकता है
- पहले ThinkPad T60, ExpressCard-PCIe bridge, Cisco 2960 switch, D-Link router (सिर्फ AP के लिए) जैसे पुराने हिस्सों से भी सेटअप बनाया गया था
- दिखने में भले अस्थायी लगे, लेकिन यह पूरी तरह काम करने वाला राउटर था
नेटवर्क कॉन्फ़िगरेशन
- interface संरचना
eth0: WANeth1: LAN (wired)wlan0: LAN (wireless)
- wired और wireless LAN को bridge में जोड़कर एक ही नेटवर्क की तरह चलाया जाता है
- अगर अतिरिक्त LAN ports चाहिए हों, तो USB-Ethernet dongle जोड़कर bridge से कनेक्ट किया जा सकता है
- ऑपरेटिंग सिस्टम Debian Linux है, और आवश्यक घटक इस प्रकार हैं
hostapd: Wi-Fi नेटवर्क बनानाdnsmasq: DNS और DHCP servicesbridge-utils: port bridging
इंस्टॉलेशन और शुरुआती सेटअप
- BIOS/UEFI सेटिंग्स
- PXE network boot बंद करें
- USB/PCI power management बंद करें
- “AC power restore के बाद auto boot” विकल्प चालू करें
- display न जुड़ा हो तो boot समस्या से बचने के लिए HDMI dummy dongle का उपयोग करें
- कुछ हार्डवेयर में non-free-firmware repository सक्षम करना पड़ सकता है
- wireless chipset के अनुसार firmware इंस्टॉल करें
- Intel:
firmware-iwlwifi - Realtek:
firmware-ath9k-htc - पुराने Atheros:
firmware-atheros
- Intel:
आवश्यक पैकेज इंस्टॉल करना
- नीचे दिए गए कमांड से मुख्य utilities इंस्टॉल करें
sudo apt install bridge-utils hostapd dnsmasq - पूरे सिस्टम के पैकेज लगभग 250 के आसपास रहते हैं
नेटवर्क interface नाम स्थिर करना
- आधुनिक Linux में
enp0s31f6जैसे नाम इस्तेमाल होते हैं, लेकिन इन्हें पारंपरिक ethX फॉर्मेट में स्थिर किया जा सकता है /etc/systemd/network/10-persistent-ethX.linkफ़ाइल बनाएं[Match] MACAddress=AA:BB:CC:DD:00:11 [Link] Name=ethX
wireless नेटवर्क बनाना
- USB Wi-Fi dongle को access point (AP) के रूप में सेट करें
/etc/hostapd/hostapd.confउदाहरणinterface=wlan0 bridge=br0 hw_mode=g channel=11 ssid=My Cool and Creative Wi-Fi Name wpa_passphrase=mysecurepasswordhostapdservice सक्षम करेंsudo systemctl unmask hostapd sudo systemctl enable --now hostapd
interface सेटिंग्स
/etc/network/interfacesकॉन्फ़िगरेशनallow-hotplug eth0 allow-hotplug eth1 auto wlan0 auto br0 iface eth0 inet dhcp iface br0 inet static bridge_ports eth1 wlan0 address 192.168.1.1/24- reboot के बाद
brctl show br0कमांड से bridge की स्थिति जांचें
IP forwarding सक्षम करना
/etc/sysctl.d/10-forward.confफ़ाइल में जोड़ेंnet.ipv4.ip_forward=1- लागू करें
sudo systemctl restart systemd-sysctl.service
firewall और NAT सेटिंग
- nftables आधारित कॉन्फ़िगरेशन (
/etc/nftables.conf)- बाहरी ट्रैफ़िक ब्लॉक करना
- आंतरिक DNS, DHCP, SSH की अनुमति देना
- NAT लागू करना
- service सक्षम करें
sudo systemctl enable nftables.service
DHCP और DNS सेटिंग
dnsmasqका उपयोग (/etc/dnsmasq.conf)interface=br0 dhcp-range=192.168.1.50,192.168.1.250,255.255.255.0,6h dhcp-option=option:router,192.168.1.1 dhcp-option=option:dns-server,192.168.1.1 cache-size=10000- service सक्षम करें
sudo systemctl enable dnsmasq
serial port प्रबंधन
- अगर डिवाइस में serial console port है, तो बिना monitor के भी प्रबंधन किया जा सकता है
/etc/default/grubसंशोधित करेंGRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,115200n8' GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"systemctl enable [email protected]के बादsudo update-grubचलाएं
कामकाज की पुष्टि
- reboot के बाद
sudo nft list rulesetसे firewall की स्थिति जांचें sudo nft -c -f /etc/nftables.confसे कॉन्फ़िगरेशन सत्यापित करेंsudo systemctl reload nftables.serviceसे बिना downtime के rules रिफ्रेश किए जा सकते हैं- DHCP logs जांचें
sudo less /var/lib/misc/dnsmasq.leases sudo journalctl -eu dnsmasq.service
अतिरिक्त सुविधाएँ
- logging और traffic analysis, VLAN isolation, IPv6 support, VPN tunneling, dynamic routing (BGP, IGP) जैसी चीज़ें जोड़ी जा सकती हैं
- Prometheus-आधारित monitoring, DMZ port forwarding, intrusion detection और blocking जैसी सुविधाएँ भी जोड़ी जा सकती हैं
- हालांकि, राउटर पर बहुत अधिक सॉफ्टवेयर इंस्टॉल करने से बचना बेहतर है, और ट्रैफ़िक को DMZ या VLAN के जरिए अलग करना अधिक उचित है
निष्कर्ष
- free software और पुराने हार्डवेयर से भी पूरा राउटर बनाया जा सकता है
- राउटर आखिरकार सिर्फ एक साधारण कंप्यूटर ही है, और कोई भी इसे खुद बना सकता है
- बेकार पड़े उपकरणों का पुन: उपयोग करके स्थिर और लचीला network infrastructure बनाया जा सकता है
1 टिप्पणियां
Hacker News की राय
शानदार लेख है। मैं अपने create_ap स्क्रिप्ट का ज़िक्र करना चाहूँगा, जिसे मैं लंबे समय से maintain कर रहा हूँ।
इसे GitHub repository में देखा जा सकता है।
यह एक shell script है जो सिर्फ एक command line से किसी भी Linux कंप्यूटर को WiFi राउटर में बदल देती है।
यह मूल रूप से WiFi कार्ड को AP mode में सेट करती है और WPA2/3, MAC filtering, DHCP/DNS server तक अपने-आप configure करती है।
इसकी dependencies भी बहुत कम हैं, और NetworkManager की भी ज़रूरत नहीं है।
मैंने इसे एक पुराने Atom mini PC के साथ घर के internet gateway के रूप में भी इस्तेमाल किया है, और IoT डिवाइसों के reverse engineering के लिए test network बनाने में भी अक्सर उपयोग किया है
संबंधित उदाहरण इस लेख में देखे जा सकते हैं
बहुत से comments में “बस X इस्तेमाल करो” कहा गया है, लेकिन इस लेख का सार routing की न्यूनतम संरचना और उसकी सरलता को दिखाना है।
अगर आपने Docker या VM में NAT इस्तेमाल किया है, तो आप मूल रूप से वही काम पहले ही कर चुके हैं।
Android का WiFi hotspot feature भी आखिरकार Linux kernel की यही सुविधाएँ इस्तेमाल करता है।
संभव है कि यह संदेश भी अभी कई software routers से होकर आप तक पहुँचा हो
मुझे लगता है कि यह एक अच्छा software design principle है
Windows का Internet Connection Sharing भी आखिर NAT चालू करने वाला एक checkbox ही था
firewall, switch, file server वगैरह को एक ही मशीन में बाँधकर उसे “राउटर” कहना शायद लोगों को भ्रमित करता है
यह लेख देखकर पुरानी बातें याद आ गईं। Linux इस्तेमाल करने का मेरा पहला मकसद बचे हुए कंप्यूटर से राउटर बनाना था।
मैंने 100MHz Pentium में दो 3Com ISA NIC लगाकर IP-Masquerading HOWTO के अनुसार सेटअप किया था।
बाद में इसे Robert Ziegler की Linux Firewalls किताब के आधार पर आगे बढ़ाया, और spam filter तथा Squid cache भी जोड़ दिया, ताकि फेंके जाने वाले hardware का अच्छा उपयोग हो सके
27 साल बाद भी लोग मुझे अब तक “Linux, रबर बैंड और पेपर क्लिप से सस्ता हल कैसे निकालें” जैसे सवालों के लिए बुला लेते हैं
संदर्भ: Linux Routers - A Primer for Network Administrators
मैं लंबे समय से OPNsense/pfSense इस्तेमाल कर रहा हूँ और इसकी जोरदार सिफारिश करता हूँ।
automatic updates, backups, WireGuard tunnels, Suricata-आधारित packet filtering जैसी सुविधाएँ शानदार हैं।
वीकेंड पर network manage करते समय terminal के बजाय web UI से configure कर पाना सुविधाजनक होता है
आधिकारिक साइट
pfSense, OpenWRT, Barracuda, Verizon OEM — इन सबमें features तो मिलते-जुलते हैं, लेकिन उन्हें दिखाने का तरीका अलग-अलग है
मुझे ऐसे products पसंद नहीं जो “डिवाइस मुझसे बेहतर जानता है” वाला रवैया रखते हों। लचीलापन की कमी ही निर्णायक कारण थी
मैंने Atom mini PC पर 300Mb/s तक routing की, लेकिन gigabit internet पर जाने के बाद VM-आधारित OPNsense पर स्विच कर लिया
Intel 4-port card के ports को VM में अलग-अलग passthrough करना मजेदार है
मैं N100 + 10Gbit router hardware इस्तेमाल कर रहा हूँ, लेकिन लगता है कि dedicated hardware router की तुलना में इसकी latency ज्यादा है
dedicated chipsets CPU की दखल के बिना packets संभालते हैं, इसलिए वे कहीं ज्यादा efficient होते हैं।
सोच रहा हूँ कि क्या किसी ने वास्तव में इस अंतर को मापा है। ज़्यादातर लोग सिर्फ bandwidth test करते हैं
OpenWRT कुछ hardware switch API को support करता है, लेकिन PCIe card के रूप में ऐसे विकल्प लगभग नहीं हैं
Mikrotik का CCR2004-1G-2XS-PCIe एक दिलचस्प उदाहरण है।
यह PCIe के जरिए जुड़ने वाला एक पूरा router board है, जिस पर RouterOS चलता है।
अगर आप 25Gbps ports का लाभ उठा सकते हैं, तो यह उपयोगी है, वरना RB5009 से बहुत अलग नहीं है
अगर आपके पास managed switch है, तो एक ही NIC से router setup भी किया जा सकता है
802.1q trunk port के रूप में सेट करके switch को interface expander की तरह इस्तेमाल किया जा सकता है
मेरे घर में यही “router-on-a-stick” setup है।
PoE switch और इस्तेमाल किए हुए Aruba IAP को मिलाकर consumer-grade से कहीं बेहतर quality का WiFi बनाया जा सकता है
पहले मैं Thinkpad को router की तरह इस्तेमाल करता था, लेकिन अब Dell Optiplex पर आ गया हूँ और इसे VM भी चलाने वाला homelab router की तरह उपयोग कर रहा हूँ
Alpine Linux इस तरह के उपयोग के लिए बहुत अच्छा है
उसी performance वाला AP खरीदने में लगभग 180 डॉलर लगेंगे, यह थोड़ा खलता है
router import ban के नीतिगत कारण क्या हैं, यह जानने की जिज्ञासा है
जबकि ज़्यादातर traffic पहले से ही TLS से encrypted है, फिर भी इसे इतना जोखिमपूर्ण क्यों माना जाता है?
क्या वजह botnet, DDoS, कमजोर default passwords, या internal network में घुसपैठ जैसी है?
Volt Typhoon और Flax Typhoon जैसे मामले अब भी सक्रिय हैं।
foreign equipment ban से सब कुछ हल नहीं होगा, लेकिन security कोई product नहीं, एक process है, इसलिए supply chain को नियंत्रित करना ज़रूरी है
मैंने पहले Amazon में Bot Mitigation पर काम करते हुए दुनिया भर के consumer devices से आने वाला traffic देखा था।
सक्रिय devices के आधे से भी कम संख्या से ऐसा traffic पैदा हुआ जिसे रोका ही नहीं जा सकता था
Huawei हो या Netgear, DDoS का स्रोत तो एक जैसा ही है
DNS/traffic metadata तक पहुँच, internal network पर हमला, DDoS, internet shutdown वगैरह
अंततः इनका दुरुपयोग निगरानी और नियंत्रण के साधन के रूप में हो सकता है
foreign equipment में backdoor होने की संभावना कोई अवास्तविक कल्पना नहीं है
“बस OPNsense इस्तेमाल करो” production environment में अच्छी सलाह हो सकती है, लेकिन सीखने के लिए यह सबसे खराब है
इस लेख की अहमियत इस बात में है कि यह दिखाता है कि routing कितने सरल सिद्धांत पर काम करती है
एक बात लेख में नहीं कही गई है: router के रूप में इस्तेमाल करते समय
/etc/sysctl.d/10_router.confमेंजैसे settings से overhead कम किया जा सकता है।
यह VoIP या gaming के लिए latency और jitter कम करने वाली tuning में असरदार हो सकता है।
gro_flush_timeout, sch_cake, napi_defer_hard_irqs जैसी चीज़ें भी adjust की जाती हैं।
लक्ष्य यह है कि परिवार को बेहतर gaming experience महसूस हो
मेरे मामले में fq_codel ही 10Gbps environment में पर्याप्त रूप से stable है
मुझे तो इससे भी ज्यादा optical modem replacement में दिलचस्पी है
AT&T से मिला डिवाइस अक्सर धीमा हो जाता है और उसकी security को लेकर भी संदेह है।
सोच रहा हूँ कि सीधे optical modem बदलने के तरीके पर कोई guide है क्या