लिनक्स में वायरलेस ब्रिज के लिए वायर्ड


17

मैं अपने रास्पबेरी पाई को एक पुल के रूप में स्थापित करने का प्रयास कर रहा हूं, डेबियन व्हीजी का उपयोग कर रहा हूं। मेरे पास hostapd.conf: (सुरक्षा के लिए कुछ विवरण बदले गए हैं, और हाँ, मुझे पता है WEP अच्छा नहीं है) ...

interface=wlan0
bridge=br0
driver=nl80211
auth_algs=1
macaddr_acl=0
ignore_broadcast_ssid=0
logger_syslog=-1
logger_syslog_level=0
hw_mode=g
ssid=MY_SSID
channel=11
wep_default_key=0
wep_key0=MY_KEY
wpa=0

और इसमें /etc/network/interfaces:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
auto br0
iface br0 inet dhcp
bridge-ports eth0 wlan0

सब कुछ ठीक लग रहा है, लेकिन मैं वायरलेस वायरलेस कनेक्शन के साथ जुड़ नहीं सकता - भले ही यूएसबी स्टिक सुझाव पैकेट पर चमकती रोशनी का आदान-प्रदान किया जा रहा हो।

मैंने कहीं पढ़ा है कि सभी कार्ड / डिवाइस होस्टप मोड में नहीं चलेंगे - वे एक दिशा में पैकेट पास नहीं करेंगे: क्या यह सही है? (जानकारी थोड़ी पुरानी थी) - यह मेरा कार्ड:

[    3.663245] usb 1-1.3.1: new high-speed USB device number 5 using dwc_otg
[    3.794187] usb 1-1.3.1: New USB device found, idVendor=0cf3, idProduct=9271
[    3.804321] usb 1-1.3.1: New USB device strings: Mfr=16, Product=32, SerialNumber=48
[    3.816994] usb 1-1.3.1: Product: USB2.0 WLAN
[    3.823790] usb 1-1.3.1: Manufacturer: ATHEROS
[    3.830645] usb 1-1.3.1: SerialNumber: 12345

तो, मैंने यहाँ क्या गलत किया है?

अद्यतन : तो मैंने आगे की जांच की है और पुल को प्राप्त कर सकता है, लेकिन प्रतीत होता है कि (वायर्ड) ईथरनेट कनेक्शन को नष्ट कर देता है, जो अजीब है। जैसे, आरपी पर:

सिस्टम बूट करें ...

ping 192.168.62.1 

(रूटर) - यह काम करता है

वायरलेस लैन के साथ जुड़ने का प्रयास ... विफल (या बल्कि "सीमित कनेक्टिविटी के साथ" एंड्रॉइड फोन पर - कोई अच्छा नहीं)

brctl showmacs br0

यह सिर्फ wlan0 के मैक और इस बिंदु पर फोन के मैक को दिखाता है

brctl addif br0 eth0 wlan0

इस बिंदु पर मैं अब वायरलेस नेटवर्क के साथ फोन को संबद्ध कर सकता हूं, लेकिन ...

ping 192.168.62.1

... विफल रहता है

और इसी तरह मैं अब नेटवर्क पर किसी अन्य मशीन से रासपी को पिंग नहीं कर सकता

चल रहा है

ifconfig br0

लगता है कि पुल पैकेट गिरा रहा है ...

कोई विचार?

आगे का अद्यतन : /etc/network/interfacesअब (और उपरोक्त अनुक्रम के लिए) फ़ाइल पढ़ता है:

auto lo eth0

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

सुपर यूजर के लिए यह निश्चित रूप से विषय है, इसलिए कोई चिंता नहीं है। इनाम के साथ शुभकामनाएं, मुझे यह जानने के लिए उत्सुक हैं कि उत्तर क्या है।
ब्रेकथ्रू

क्या iw dev wlan0 infoदिखाता है? और आपके डिवाइस आईडी पर Googling से पता चलता है कि आपको एपी मोड में इस डिवाइस को चलाने के लिए हाल ही में कर्नेल या वायरलेस मॉड्यूल की आवश्यकता है। देखें इस । आप क्या कर्नेल और ath9kड्राइवर चला रहे हैं?
gertvdijk

जवाबों:


10

पुल आसान बनाया:

आपकी स्थिति के लिए बनाए गए सोर्सफोर्ज पर एक परियोजना है। http://sourceforge.net/projects/bridger/ यह भी एक बहस पैकेज के रूप में आता है।

पैकेट छोड़ने के संबंध में:

  1. क्या आपने यह देखने के लिए जाँच की है कि क्या iptables डिफ़ॉल्ट ड्रॉप पर सेट है? sudo iptables --list इस प्रकार के एक बॉक्स के लिए "ACCEPT, ACCEPT, ACCEPT" कहना चाहिए। यदि यह समस्या है तो इसे बंद कर दें।

  2. क्या आप पैकेट को भी अग्रेषित कर रहे हैं, भाई? सुनिश्चित करें कि लाइन "net.ipv4.ip_forward = 1" /etc/sysctl.conf (यह डिफ़ॉल्ट रूप से) में टिप्पणी नहीं की गई है, फिर अपनी नेटवर्किंग को पुनरारंभ करें।

  3. प्रमुख मोड आपके वायरलेस डोंगल द्वारा समर्थित नहीं है । (इसका अर्थ है कि यह पैकेट को स्वीकार नहीं कर सकता जो इसके लिए नियत नहीं है)

शुद्ध पुल बनाम साझा ब्रिज:

  1. iface br0 inet dhcp एक साझा पुल को इंगित करता है , जिसका अर्थ है कि पुल स्वयं एक आईपी प्राप्त करता है और यातायात के लिए एक समापन बिंदु हो सकता है।

  2. एक शुद्ध पुल को एक आईपी पता नहीं मिलता है और केवल दो इंटरफेस के बीच आगे की ओर यातायात होता है

  3. साझा ब्रिज नमूना / आदि / नेटवर्क / इंटरफेस विन्यास फाइल (डेबियन / उबंटू)

# यह फ़ाइल आपके सिस्टम पर उपलब्ध नेटवर्क इंटरफेस का वर्णन करती है
# और उन्हें कैसे सक्रिय किया जाए। अधिक जानकारी के लिए, इंटरफेस (5) देखें।

# लूपबैक नेटवर्क इंटरफ़ेस
ऑटो लो
iface लो इनसेट लूपबैक

# Eth0 और wlan0 के बीच का पुल
ऑटो br0
iface br0 inet dhcp
  प्री-अप आईपी लिंक सेट eth0 डाउन
  प्री-अप आईपी लिंक सेट wlan0 डाउन
  प्री-अप ब्रैक्टल एडब्र ब्र ०
  पूर्व-अप brctl addif br0 eth0 wlan0
  प्री-अप आईपी एड्र फ्लश देव एथ0
  पूर्व अप आईपी एड्र फ्लश देव wlan0
  पोस्ट-डाउन आईपी लिंक सेट eth0 डाउन
  डाउन-डाउन आईपी लिंक सेट wlan0 डाउन
  पोस्ट-डाउन आईपी लिंक सेट br0 डाउन
  पोस्ट-डाउन ब्रैक्टल डेलिफ़ br0 eth0 wlan0
  पोस्ट-डाउन ब्रैक्टल डेलब्र br0

sudo /etc/init.d/networking restartनेटवर्क को फिर से शुरू करें : जटिल नेटवर्क कॉन्फ़िगरेशन करने के बाद रिबूट में सब कुछ ठीक से दोबारा शुरू हो जाए, यह सुनिश्चित करने के बजाय सिर्फ रिबूट करने के लिए अपने आसान को बदलता है।

आपको लगता है कि आपके पास रूटिंग मुद्दे हैं:

  1. के साथ परीक्षण करके एक कारण के रूप में DNS को हटा देंping 8.8.8.8 । यदि यह काम करता है, तो संभवतः आपके नेटवर्क में DNS मुद्दा है।

  2. अपने प्रवेश द्वार की जाँच के साथ sudo ip routeउम्मीद है कि आप देख default via 192.168.1.1 dev br0 proto dhcp(अपने प्रवेश द्वार संभालने 192.168.1.1 है)। यदि यह गायब है या गलत है, तो इसे ठीक करें sudo ip route add default via 192.168.1.1। फिर से परीक्षण करें:ping 8.8.8.8

  3. अपने साझा किए गए ब्रिज IP को फिर dhclient br0से बनाएं और साथ रीस्टेस्ट करेंping 8.8.8.8

  4. अपने 'गुलाम' इंटरफेस की जाँच के साथ ifconfigऔर यह सुनिश्चित करें कि eth0 बनाने के लिए और wlan0 आईपी पते नहीं हैं। वे अब पुल का एक हिस्सा हैं। यदि वे करते हैं, तो सुनिश्चित करें कि आप उन्हें सभी कॉन्फ़िगरेशन फ़ाइलों से हटा दें, उन्हें स्थिर 0.0.0.0 या कुछ और पर सेट करें।

यदि कोई भी काम नहीं करता है, तो उस डेबियन ब्रिजिंग ऐप को आज़माएं, और अगर वह काम नहीं करता है, तो आपका वायरलेस डोंगल, उचित मोड का समर्थन नहीं करता है। (ऊपर देखो)

यदि यह यहां किसी भी समय काम करता है, तो रिबूट करें और सुनिश्चित करें कि यह अभी भी काम करता है।


कृपया इंटरफेस फ़ाइल के लिए नवीनतम अद्यतन देखें और, हाँ, सभी श्रंखलाएँ ACCEPT के लिए निर्धारित हैं
adrianmcmenamin

ये निर्देश काम करते हैं, कम से कम इस अर्थ में कि अगर मैं dhclient br0 को लागू करता हूं और eth0 को निर्दिष्ट करता हूं, तो 0.0.0.0 तक बंद कर दिया जाता है, अब बस वर्क करना है कि कैसे इसे ऑटोमैटिक बनाया जाए :)
adrianmcmenamin

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

पर अब विद्रूप सवाल superuser.com/questions/522332/...
adrianmcmenamin

इस उदाहरण में eth0और wlan0सेटिंग्स क्या हैं ? विशेष रूप से, आप SSID और किसी भी प्रमाणीकरण के लिए कैसे सेट करते हैं wlan0?
इयान

6

मेरे पास डेबियन लिनक्स और ओपनरट पर काम करने वाले कुछ वायरलेस पुल हैं, इसलिए मैं इस मुद्दे से बहुत परिचित हूं।

आपने एक महत्वपूर्ण आदेश को याद किया: आप अपने वायरलेस ड्राइवर को 4-एड्रेस फ्रेम (कभी-कभी अनुचित / ऐतिहासिक रूप से डब्ल्यूडीएस कहा जाता है) प्रसारित करने के लिए कहना भूल गए, जो कि 802.11 / वायरलेस ब्रिजिंग के लिए आवश्यक है। कमांड के साथ ऐसा करें "iw dev wlan0 set 4addr ऑन"। पुल लाने से पहले इसे लागू करने के लिए पुल पर अपने डेबियन इंटरफेस फाइल में "प्री-अप" स्टेटमेंट का उपयोग करें। ध्यान दें कि 4-एड्रेस फ्रेम मोड में ड्राइवर समर्थन की आवश्यकता होती है और कुछ पुराने भद्दे 802.11 ड्राइवर या हार्डवेयर इसका समर्थन नहीं कर सकते हैं।

मुझे यह भी दृढ़ता से संदेह है कि आपकी समस्याएं लिनक्स कर्नेल में बग से जटिल हो सकती हैं जो विशेष रूप से ब्रिजिंग इंटरफेस को प्रभावित करती हैं। मैं स्वयं इस बग में भाग गया और मुझे अपने स्वयं के wpa_supplicant को स्रोतों से संकलित करना पड़ा क्योंकि डेबियन में संस्करण पुराना और प्रभावित है। wpa_supplicant और hostapd एक साझा कोड आधार साझा करते हैं, लेकिन मुझे पूरी तरह से यकीन नहीं है कि यह प्रभावित hostapd के साथ-साथ wpa_supplicant भी है।

इस मुद्दे पर काम करने के लिए प्रतिबद्ध है:

https://w1.fi/cgit/hostap/commit/?id=e6dd8196e5daf39e4204ef8ecd26dd50fdca6040

मैं इस धारणा के तहत हूं कि यह 2.5 रिलीज में है, और मुझे पता है कि यह मौजूदा 2.6 स्रोत में है। वर्तमान डेबियन संस्करण 2.4 है, जो टूट गया है। कृपया अपने wpasupplicant और hostapd संकुल को अद्यतन करने के लिए डेबियन प्रोजेक्ट को पेस्टर करें।

यहाँ एक वायरलेस ब्रिज क्लाइंट के लिए WPA / WPA2 का उपयोग करते हुए इंटरप्राइज़ wlan0 और eth0 के बीच वायरलेस ब्रिज के साथ एक नमूना विन्यास है, जिसमें मेजबान को br0 इंटरफ़ेस पर DHCP एड्रेस मिल रहा है ("dhcp" को "मैन्युअल" से बिना IP एड्रेस के)। ऐसी स्थिति के लिए जहां आप एपी बनना चाहते हैं, इंटरफ़ेस = और ब्रिज = कमांड को hostapd.conf में शामिल करें और नीचे दिए गए wpa- * कमांड को छोड़ दें।

आपके / etc / नेटवर्क / इंटरफेस फ़ाइल में:

allow-auto br0
iface br0 inet dhcp
    bridge_ports wlan0 eth0
    bridge_stp off
    bridge_waitport 5
    bridge_fd 0
    wpa-ssid mynetwork
    wpa-psk abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123
    wpa-iface wlan0
    wpa-bridge br0
    pre-up iw dev wlan0 set 4addr on
    post-down iw dev wlan0 set 4addr off

और सुनिश्चित करें कि आपका wpa_supplicant 2.5 या बाद का संस्करण है। यह wpa_supplicant 2.4 और वर्तमान कर्नेल संस्करणों के साथ काम नहीं करेगा।

मुझे यह भी ध्यान देना चाहिए कि वर्तमान में ifup में एक दौड़ बग है जहां ब्रिज इंटरफेस बूट समय पर आने में विफल हो सकता है, लेकिन यह एक संपूर्ण समस्या है।


3

आपको आईपी अग्रेषण की आवश्यकता है।

प्रयत्न, कोशिश cat /proc/sys/net/ipv4/ip_forward

यदि यह 0समस्या है:echo 1 > /proc/sys/net/ipv4/ip_forward


sys.net.ipv4.ip_forwardIPv4 रूटिंग, NAT, आदि के लिए है। पुल नेटवर्क स्टैक में नीचे एक परत का काम करता है।
थॉमस गुयोट-सायननेस्ट

0

ब्रिजिंग केवल तभी काम कर सकती है जब कोई इंटरफ़ेस सभी पैकेट प्राप्त करता है अन्यथा उन्हें केवल उनके लिए संबोधित पैकेट मिलेंगे। आपका वर्तमान सेटअप राउटर के लिए कॉन्फ़िगरेशन का वर्णन कर सकता है, लेकिन पुल के लिए नहीं।

eth0 और wlan0 का कोई आईपी पता नहीं होना चाहिए (जिसका अर्थ 0.0.0.0 है) और यदि वांछित है, तो आप हमेशा br0 के लिए एक IP पते का उपयोग कर सकते हैं।

यहाँ कुछ आधिकारिक दस्तावेज भी दिए गए हैं: http://wiki.debian.org/BridgeNetworkConnections


1
मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन जब से मैंने इसे कुछ और खोजते हुए पाया, मैंने सोचा कि मैं यह उल्लेख करूंगा कि यह कोई फर्क नहीं पड़ता कि क्या ब्रिज इंटरफ़ेस करता है / जहां तक ​​ब्रिजिंग का संबंध है, वहां आईपी एड्रेस नहीं है। लिनक्स पर, एक ब्रिजित इंटरफ़ेस ARP पैकेट (OSI लेयर 2) को भी रिले करेगा। कोई भी स्विच उस स्विच पोर्ट पर स्वीकृत होने के साथ पुल के दूसरी तरफ से जुड़े कई उपकरणों को मैप करेगा। मेरे संदर्भ के रूप में राउटर, पुलों, फायरवॉल, आदि एस अमेरिका के लिए एक प्राथमिक संयुक्त राज्य अमेरिका NAP सहित शीर्ष स्तरीय डेटा केंद्रों में उच्च उपलब्धता की तैनाती के लिए लिनक्स सर्वर की तैनाती अनुभव है
jetole

0

कॉन्फ़िगर करें wlan0

vi / etc / नेटवर्क / इंटरफ़ेस

iface eth0 inet static
address 192.168.2.1
network 192.168.2.0
netmask 255.255.255.0
broadcast 192.168.2.255

vi /etc/sysctl.conf

net.ipv4.ip_forward=1

vi /etc/rc.local

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o wlan0 -j MASQUERADE
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.