क्या एक लिनक्स मशीन एक एकल भौतिक WLAN इंटरफ़ेस का उपयोग करके एक साथ वायरलेस क्लाइंट और एक्सेस पॉइंट दोनों के रूप में कार्य कर सकती है?


12

यदि मेरे पास केवल 1 भौतिक WLAN इंटरफ़ेस है, तो क्या कुछ हैकरी है जो कि की जा सकती है ताकि यह एक मौजूदा एक्सेस पॉइंट का क्लाइंट बन सके और साथ ही साथ अन्य क्लाइंट्स के लिए एक्सेस प्वाइंट के रूप में भी काम कर सके?

मेरे पास मौजूदा 802.11g ADSL राउटर है, और मैं एक HTPC का निर्माण करने जा रहा हूं, जिसमें 802.11n होगा। मेरे लैपटॉप में 802.11n भी है, लेकिन फिलहाल यह केवल 54Mbps पर ही कनेक्ट होता है क्योंकि यही एपी सपोर्ट करता है। मैं चाहता हूं कि HTPC मेरे ADSL राउटर का ग्राहक हो, लेकिन क्या मेरा लैपटॉप HTPC का ग्राहक है, इसलिए फाइल को कॉपी करना तेजी से होगा।

मुमकिन?

संपादित करें: स्पष्ट रूप से मैं ईथरनेट का उपयोग करके ADPC राउटर से HTPC को कनेक्ट कर सकता हूं और राउटर पर वाईफाई को अक्षम कर सकता हूं, लेकिन उस विकल्प को अनदेखा कर देता है। :-)

जवाबों:


9

मैंने व्यक्तिगत रूप से पहले ऐसा नहीं किया है, लेकिन यहां आपको सही दिशा में आगे बढ़ने के लिए कुछ जानकारी दी गई है।

प्रोटोकॉल के नजरिए से, एक रेडियो को एपी और क्लाइंट STA दोनों के रूप में काम करना निश्चित रूप से संभव है। यह सबसे अच्छा काम करता है (या शायद लगभग अनिवार्य है) यदि आप जो एपी बना रहे हैं और जो आप एक ग्राहक के रूप में शामिल कर रहे हैं वह उसी चैनल पर हैं। रेडियो कार्ड रखने से चैनल को सेवा के अनुरोध पर स्विच करना पड़ता है, खोए हुए फ्रेम और भयानक प्रदर्शन के लिए एक नुस्खा है।

सॉफ्टवेयर-वार, यह संभव हो रहा है। लिनक्स पर कई 802.11 कार्ड ड्राइवर VAPs (वर्चुअल APs) की अवधारणा का समर्थन करते हैं जो एक ही कार्ड को एक ही समय में कई APs (मल्टीपल SSID, यहां तक ​​कि BSSIDs) के रूप में कार्य करने की अनुमति देता है। काउंटरपिनुविटली, वीएपी शब्द का अर्थ उसी 802.11 कार्ड पर किसी भी तरह के वर्चुअल इंटरफेस से है, भले ही वर्चुअल इंटरफेस एपी मोड में हो या नहीं। तो इन कार्ड / ड्राइवर कॉम्बो पर, आप दो VAPs बना सकते हैं - एक STA- मोड VAP

एथरोस-आधारित कार्डों के लिए मैडविफी ड्राइवर वह है जो वीएपी का समर्थन करता है। यदि आपका 802.11 कार्ड Atheros चिपसेट का उपयोग करता है, और आप MadWifi ड्राइवर का सही संस्करण स्थापित करते हैं, तो आप अपने कार्ड को एक साथ STA + AP मोड के लिए कॉन्फ़िगर करने में सक्षम हो सकते हैं:

wlanconfig ath0 create wlandev wifi0 wlanmode sta
wlanconfig ath1 create wlandev wifi0 wlanmode ap

ध्यान दें कि ये सब कुछ स्थापित करने के लिए पूर्ण निर्देश नहीं हैं, लेकिन बस आपको आरंभ करने का प्रयास है।

आप अधिक जानकारी के लिए Google को " wifi vap " जैसी चीज़ के लिए चाहते हो सकता है । मैंने यहाँ से उपरोक्त आदेशों की प्रतिलिपि बनाई ।

ओह, और कुछ मिथक का पर्दाफाश: उपभोक्ता मशीनों में एथेरस कार्ड असामान्य नहीं हैं। वे ब्रॉडकॉम, मार्वेल, इंटेल और रालिंक के साथ 802.11 चिपसेट में एक प्रमुख खिलाड़ी हैं। और सिर्फ इसलिए कि मैंने MadWifi / Atheros का उदाहरण इस्तेमाल किया है, इसका मतलब यह नहीं है कि अन्य प्रमुख खिलाड़ियों के चिप्स के लिए लिनक्स ड्राइवर नहीं हैं जो एक समान काम कर सकते हैं। साथ ही, इसके लिए 802.11s की आवश्यकता नहीं है । यह कहना कि ऐसा करने के लिए आपको 802.11s करने होंगे, यह कहने के लिए कि आपको स्पैनिंग ट्री प्रोटोकॉल का समर्थन करना है, एक फ्रेम से दूसरे इंटरफ़ेस में फ़ॉरवर्ड करने के लिए।


ऐसा लगता है जैसे मुझे जो बोर्ड मिल रहा है उसमें एथेरोस चिपसेट है, इसलिए मैं भाग्य में हो सकता हूं। मैं अपने घटकों के वितरण की प्रतीक्षा कर रहा हूं तब मैं निर्माण और परीक्षण कर सकता हूं।
ThatGraemeGuy 8

मुझे अभी तक MadWifi के साथ खेलने का मौका नहीं मिला है। मैं स्वीकार कर रहा हूं क्योंकि उत्तर सही है, ऐसा लगता है कि कोई अन्य चिपसेट / परिवार नहीं है जो यह कार्यक्षमता प्रदान करता है।
ThatGraemeGuy

स्पिफ़, मैं एथरोस चिप और मैडविफ़ी के साथ काम कर रहा हूं और मैं वीएपी को एक स्टा में और एक एपी में स्थापित करने की कोशिश कर रहा हूं। मैं एपी मोड में कई वीएपी स्थापित करने में सक्षम हूं, लेकिन जब मैंने एसटीए में पहला वीएपी स्थापित किया और फिर एपी में एक और वीएपी स्थापित करने का प्रयास किया गया तो मुझे wlanconfig: ioctl: इनपुट / आउटपुट त्रुटि मिली। क्या आपके पास इससे निपटने का कोई उपाय है?
साचिनर

1
@sachinr सवाल है कि एक सवाल के रूप में तो हर कोई इसे देखता है, न कि केवल तीन साल पुराने एक टिप्पणी पर किसी और के सवाल का जवाब।
स्पाइफ

अरे मैंने अपना प्रश्न यहाँ जोड़ा - superuser.com/questions/649742/… । क्या आप देख सकते हैं? धन्यवाद :)
sachinr

4

Nl80211 ड्राइवर को कुछ "प्रबंधित" इंटरफ़ेस मोड कहा जाता है। आप इसे "iw" उपयोगिता का उपयोग करके कॉन्फ़िगर कर सकते हैं जैसे:

Iw phy phy0 इंटरफ़ेस wlan1 प्रकार को प्रबंधित करें जोड़ें

इस बारे में अधिक जानकारी https://wireless.wiki.kernel.org/en/users/documentation/iw पर उपलब्ध है । Phy0 आपको संदर्भित करता है कि आप / sys / class / ieee80211 / में क्या देखते हैं।

मैंने rPI3 को भी कुछ इसी तरह से देखा है, लेकिन एक अधिक छायादार "__ap" इंटरफ़ेस मोड के साथ । इस तरह उपयोगकर्ता एक दूसरा इंटरफ़ेस बनाता है जो केवल एपी मोड में चलता है, और क्लाइंट मोड के रूप में प्रारंभिक इंटरफ़ेस का उपयोग करता है।

जिस भी तरह से आप इसे महसूस करते हैं (ड्राइवर को स्पष्ट रूप से इसका समर्थन करना है), आपको दो इंटरफेस (एक ही भौतिक डिवाइस से) की आवश्यकता होगी। एक इंटरफ़ेस बस क्लाइंट मोड के रूप में wpa_supplicant चला सकता है, अन्य (एपी मोड) आमतौर पर एक्सेस पॉइंट खेलने के लिए होस्टपैड का उपयोग करता है।

[संपादित करें:]

Iw टूल का स्रोत कोड छायादार __ap मोड के बारे में बहुत कुछ स्पष्ट करता है:

..
} else if (strcmp(tpstr, "__ap") == 0) {
    *type = NL80211_IFTYPE_AP;
    return 0;
} else if (strcmp(tpstr, "__ap_vlan") == 0) {
    *type = NL80211_IFTYPE_AP_VLAN;
    return 0;
} else if (strcmp(tpstr, "wds") == 0) {
    *type = NL80211_IFTYPE_WDS;
    return 0;
} else if (strcmp(tpstr, "managed") == 0 ||
       strcmp(tpstr, "mgd") == 0 ||
       strcmp(tpstr, "station") == 0) {
    *type = NL80211_IFTYPE_STATION;
    return 0;
} 
..

__Ap मोड नेटलिंक प्रकार NL80211_IFTYPE_AP में अनुवाद करता है। मैंने इसका परीक्षण भी किया, और यह ठीक काम करता है। अजीब बात है कि कर्नेल डॉक्यूमेंट विकी इसे मेटियन नहीं करता है।


4

स्रोत और अधिक जानकारी:

https://wiki.archlinux.org/index.php/Software_access_point

संक्षिप्त जवाब

sudo iw dev wlan0 interface add wlan0_ap type managed
sudo create_ap wlan0_ap wlan0 createap mypassword

वाई-फाई डिवाइस को एपी मोड का समर्थन करना चाहिए

आपको एक nl80211 संगत वायरलेस डिवाइस की आवश्यकता है, जो एपी ऑपरेटिंग मोड का समर्थन करता है। यह iw सूची कमांड चलाकर सत्यापित किया जा सकता है, समर्थित इंटरफ़ेस मोड के तहत ब्लॉक को AP सूचीबद्ध किया जाना चाहिए:

...
    Supported interface modes:
         * IBSS
         * managed
         * AP
         * AP/VLAN
         * WDS
         * monitor
         * mesh point
...

एक एकल वाई-फाई डिवाइस के साथ वायरलेस क्लाइंट और सॉफ्टवेयर एपी

एक सॉफ्टवेयर एपी बनाना आपके अपने नेटवर्क कनेक्शन (ईथरनेट, वायरलेस, ...) से स्वतंत्र है। कई वायरलेस डिवाइस एक ही समय में एपी और वायरलेस "क्लाइंट" के रूप में एक साथ संचालन का समर्थन करते हैं। उस क्षमता का उपयोग करके आप एक एकल वायरलेस डिवाइस का उपयोग करके, एक मौजूदा नेटवर्क के लिए "वायरलेस रिपीटर" के रूप में कार्य करने वाला एक सॉफ्टवेयर एपी बना सकते हैं। क्षमता निम्न अनुभाग में iw सूची के आउटपुट में सूचीबद्ध है:

मान्य इंटरफ़ेस संयोजन:

$ iw list
...
valid interface combinations:
     * #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 1, #{ P2P-device } <= 1,
       total <= 3, #channels <= 2
...

बाधा # चैनल <= 1 का अर्थ है कि आपके सॉफ़्टवेयर एपी को आपके वाई-फाई क्लाइंट कनेक्शन के समान चैनल पर संचालित होना चाहिए; नीचे hostapd.conf में चैनल सेटिंग देखें।

यदि आप क्षमता / सुविधा का उपयोग करना चाहते हैं, तो शायद क्योंकि ईथरनेट कनेक्शन उपलब्ध नहीं है, आपको इसका उपयोग करने के लिए दो अलग-अलग वर्चुअल इंटरफेस बनाने की आवश्यकता है। एक भौतिक उपकरण wlan0 के लिए वर्चुअल इंटरफेस निम्नानुसार बनाया जा सकता है: अद्वितीय मैक पते के साथ वर्चुअल इंटरफेस नेटवर्क कनेक्शन (wlan0_sta) के लिए स्वयं और सॉफ़्टवेयर AP / hostapd "वायरलेस पुनरावर्तक" के लिए बनाए जाते हैं:

# iw dev wlan0 interface add wlan0_sta type managed 
# iw dev wlan0 interface add wlan0_ap  type managed

विन्यास

एक्सेस पॉइंट सेट करने में दो मुख्य भाग होते हैं:

  1. वाई-फाई लिंक परत की स्थापना, ताकि वायरलेस ग्राहक आपके कंप्यूटर के सॉफ़्टवेयर एक्सेस बिंदु से जुड़ सकें और इसके साथ आईपी पैकेट का आदान-प्रदान कर सकें।
  2. आपके कंप्यूटर पर नेटवर्क कॉन्फ़िगरेशन सेट करना, ताकि यह अपने स्वयं के इंटरनेट कनेक्शन और वायरलेस क्लाइंट के बीच आईपी पैकेट को ठीक से रिले कर सके।

उपकरण

create_ap

Create_ap पैकेज एक ऐसी स्क्रिप्ट प्रदान करता है जो इंटरनेट साझाकरण के लिए या तो ब्रिड या नैट एक्सेस बिंदु बना सकता है। यह पहुँच बिंदु के अच्छे कामकाज के लिए hostapd, dnsmasq और iptables को जोड़ती है। नैटेड वर्चुअल नेटवर्क बनाने के लिए मूल सिंटैक्स निम्नलिखित है:

# create_ap wlan0 eth0 MyAccessPoint MyPassPhrase

शानदार जवाब, धन्यवाद!
इमान अकबरी

मैं दूसरी है कि यह एक महान जवाब है, के बारे में चैनलों बाधा विशेष रूप से बिट है
crazystick
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.