सिस्को और लिनक्स और Vlans


9

मुझे कुछ मूलभूत गलतफहमी दिखाई देती है कि वीएलएएन लिनक्स पर कैसे काम करता है, और मुझे उम्मीद है कि यहां के अच्छे लोग मुझे शिक्षित कर सकते हैं।

कास्ट: एक सिस्को 3560, एक वीएलएएन, और एक लिनक्स बॉक्स [1]।

Cisco  ---------------  Linux
    ge0/1           eth0

सिस्को में Vlan 37 इंटरफ़ेस है, जिसमें IP पता 10.40.37.252/24 है। मैं लिनक्स बॉक्स पर 10.40.37.1/24 रखना चाहता हूं।

जब Cisco de-encapsulates vlan 37, सब कुछ ठीक काम करता है [2]:

# Cisco 
interface Vlan37
    ip address 10.40.37.252/24

interface GigabitEthernet 0/1
    switchport mode access
    switchport access vlan 37

# Linux
ip link set eth0 up
ip addr add 10.40.37.1/24 dev eth0

$ ping 10.40.37.252 && echo It works

हालाँकि, जब मैंने पोर्ट को ट्रैंकिंग के लिए सेट किया और लिनक्स साइड पर vlan 37 असाइन किया, तो यह काम करना बंद कर देता है:

# Cisco
interface GigabitEthernet 0/1
    switchport trunk encapsulation dot1q
    switchport mode trunk
    ! [3] [4] [7]

# Linux
vconfig add eth0 37
ip link set eth0.37 up
ifconfig eth0 0.0.0.0 up # ensure no address
ip addr add 10.40.37.1/24 dev eth0.37

$ ping 10.40.37.252 || echo Why does this not work

मुझे यहां क्या समझ नहीं आ रहा है?

संपादित करें: समाधान:

मैक एड्रेस टेबल के बारे में शेन के सवाल ने मुझे एक समाधान की ओर अग्रसर किया: वीएलएएन सब-इंटरफेस में से प्रत्येक पर अलग यू 2 (मैक) पते सेट करने के लिए "आईपी एड्र" का उपयोग करें, और यह अचानक काम करता है।

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

शुक्रिया शेन!

संपादित करें: टिप्पणियों के अनुसार अधिक जानकारी:

समग्र लक्ष्य के लिए तीन vlans (सार्वजनिक, निजी, oam & p) लाइन बॉक्स पर तीन अलग-अलग आईपी पते पर समाप्त करना है, विभिन्न अनुप्रयोगों के साथ स्थानीय पते पर बाध्यकारी है। यदि आवश्यक हो तो मैं और विस्तार कर सकता हूं, लेकिन मैं समस्या का वर्णन और चर्चा को सरल रखने की कोशिश कर रहा हूं, क्योंकि इससे पहले कि मैं तीन vlans काम कर सकता हूं, मुझे काम करने के लिए एक तरह की आवश्यकता है। :)

एंटोनी -> ifup बनाम ifconfig से कोई फर्क नहीं पड़ता।

Pepoluan -> मैं यह मान रहा हूँ कि तुम क्या देख रहे थे। ध्यान दें कि फी ड्राइवरों द्वारा संदर्भों की कमी स्पष्ट रूप से सामान्य है। [5]

$ lsmod | grep 802
    8021q   25545 1 cxgb3

अप्रेंटिस ->

$ ifconfig eth0
    eth0  Link encap: Ethernet HWaddr 00:17:08:92:87:22
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:0 [...]
    TX packets:31932 errors:0 dropped:0 overruns:0 carrier:0 

$ ifconfig eth0.37
    eth0.37 Link encap: Ethernet HWaddr 00:17:08:92:87:22
    UP BROADCAST RUNNING MULTICAST MUT:1500 Metric:1
    RX packets: 0 [...]
    TX packets:32024 errors:90 dropped:0 overruns:0 carrier:0

$ cat /proc/net/vlan/config
    VLAN Dev Name | VLAN ID
    Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
    eth0.37 | 37 | eth0

चक -> तारशर्क और / या tcpdump टैग नहीं दिखाते हैं, लेकिन यह स्पष्ट रूप से लिनक्स पर एक सामान्य सीमा है, कर्नेल हैंडलिंग के प्रसंस्करण क्रम के कारण और कर्नेल में [6]। इसके अलावा, छुआ हुआ VLAN 1 [7] पर सेट है।

[१] मैंने इसे CentOS ५.५ और उबंटू ११.०४ दोनों के साथ आज़माया है, और दोनों के पास एक ही मुद्दा है।

[२] ध्यान दें कि विन्यास एक कट और पेस्ट नहीं है, इसलिए यहाँ कोई भी टाइपोस केवल मेरी बुरी स्मृति है।

[३] "बंद करो" पर या समस्या पर कोई प्रभाव नहीं पड़ता है।

[४] वलन ३ 37 लिंक पर सक्रिय और गैर-चुस्त दिखाया गया है, इसलिए "अनुमति" समस्या नहीं है।

[५] सर्वरफॉल्ट : .०२१q को एनएक्स पर सक्षम करना

[६] http://wiki.wireshark.org/CaptureSetup/VLAN#Linux

[[] देशी (अछूता) वीएलएएन १ है। इसे "स्विचपोर्ट ट्रंक देशी वलन १" के साथ मैन्युअल रूप से सेट करने का कोई प्रभाव नहीं है।


क्या आपने ifconfig eth0 0.0.0.0 अप के बजाय ifup eth0 की कोशिश की है?
एंटोनी बेनकेमॉन

क्या आप lsmodलिनक्स बॉक्स पर आउटपुट पोस्ट कर सकते हैं ?
पेपोलुआन

2
क्या ifconfig eth0.37और / या ifconfig -aजैसा दिखता है?
अप्रेंटिस ५

कृपया पोस्ट भी करें /proc/net/vlan/config?
अप्रेंटिस ५

1
sho mac address-table vlan 37?
शेन मैडेन

जवाबों:


2

क्या आप चाहते हैं कि होस्ट की पहुंच सिर्फ vlan 37 तक हो या क्या आप चाहते हैं कि होस्ट की पहुंच कई vlans तक हो?

इस IOS कॉन्फ़िगरेशन का अर्थ है मूल (जो कि अछूता है) vlan को 37 पर सेट करें।

interface GigabitEthernet 0/1
    switchport mode access
    switchport access vlan 37

Linux तरफ, vconfig आदेश यातायात के लिए एक इंटरफेस उर्फ बनाता टैग किया VLAN 37 के रूप में।

vconfig add eth0 37

क्या आप समस्या को देखते हैं? स्विच आपके होस्ट को अनटैगड ट्रैफ़िक भेज रहा है और होस्ट टैग किए गए ट्रैफ़िक की तलाश / उत्पादन कर रहा है।

आपको देशी vlan 37 में या तो eth0 का उपयोग करने की ज़रूरत है या स्विच का कॉन्फिडेंस बदलना है ताकि यह टैग किए गए ट्रैफ़िक को पार कर रहा है, जैसे।

interface GigabitEthernet 0/1
    switchport trunk allowed vlan 37
    switchport mode trunk

काफी पुराने IOS उपकरणों पर आप आदमी को 8021q के लिए ट्रक इनकैप्सुलेशन सेट करने की आवश्यकता है क्योंकि वे आईएसएल के लिए डिफ़ॉल्ट होंगे।


पहुंच ने ठीक काम किया, ट्रंकिंग नहीं किया। लक्ष्य के पास तीन या अधिक वीएलएएन थे, प्रत्येक अपने स्वयं के सबनेट के साथ, लिनक्स बॉक्स पर समाप्त होता है। समाधान / समाधान यह सुनिश्चित करना था कि लिनक्स पर प्रत्येक वीएलएएन का एक अलग मैक पता था।
डैरेन एच

ठीक है कि आप "काम" से क्या मतलब है पर निर्भर करता है। जब किसी IOS डिवाइस का एक्सेस मोड में पोर्ट होता है, तो इसका मतलब है " इस पोर्ट में सभी पैकेट इनपुट को [स्विच को आंतरिक] vlan X के रूप में टैग किया जाएगा"। इसका मतलब है कि लिनक्स होस्ट से आपके द्वारा जोड़े गए 802.1q हेडर को कभी नहीं हटाया जाएगा। आप विभिन्न पोर्ट पर tcpdump चलाकर इसे आसानी से सिद्ध कर सकते हैं, vlan 37 पर एक्सेस मोड पर सेट करें; आप लिनक्स बॉक्स पर अपने "वेलन" इंटरफेस के सभी तीन से प्रसारण यातायात देखने में सक्षम होना चाहिए।
जोशुआ हॉब्लिट

मुझे दो बातों का उल्लेख करना चाहिए था। 1) मैं अपने उत्पादन वर्चुअलाइजेशन वातावरण में सिस्को और ब्लेड नेटवर्क स्विच के साथ सेंटोस 5 पर वलान टैग का उपयोग करता हूं। 2) switch port mode accessइजराइल ट्रैफिक पर सभी 802.1q टैग भी छीन लेगा। यही कारण है कि आपको संचार पर काम करने के लिए मैक पतों के साथ फ़िडलिंग का सहारा लेना पड़ा है। विभिन्न मैक पते वाले गंतव्यों के बिना वे सभी देशी vlan इंटरफ़ेस पर समाप्त हो रहे थे क्योंकि पैकेट लिनक्स होस्ट के लिए आ रहे हैं जिनमें नोएलन टैग नहीं हैं
जोशुआ हॉब्लिट

स्पष्टता के लिए, IOS "ट्रंक" पर 802.1q vlan टैग का उपयोग करें।
जोशुआ हॉब्लिट

0

अब मैं इस के लिनक्स पक्ष के साथ एक विशेषज्ञ नहीं हूँ, मेरे स्विचिंग ज्ञान से जाकर, क्या आपके पास डॉट 1 ट्रंकिंग के लिए कॉन्फ़िगर किए गए लिनक्स मशीन पर एथ 0 इंटरफ़ेस है? मुझे नहीं पता कि लिनक्स मशीन के भीतर कई vlans को संचालित करने का प्रावधान है, लेकिन मुझे लगता है कि आपके पास एक एकल इंटरफ़ेस है जिसे Vlan37 के हिस्से के रूप में काम करने के लिए कॉन्फ़िगर किया गया है, इस प्रकार अनिवार्य रूप से आपके लिनक्स मशीन का NIC एक्सेस पोर्ट बन सकता है। एक एक्सेस पोर्ट सीधे ट्रंक पोर्ट के साथ संवाद नहीं कर सकता है, यह ट्रंकिंग एनकैप्सुलेशन को बनाने या समझने में सक्षम नहीं होगा।

जो मैं समझता हूं कि आप चाहते हैं कि लिनक्स मशीन Vlan 37 के भीतर काम करे। बस V037 के तहत एक एक्सेस पोर्ट होने के लिए ge0 / 1 पोर्ट को वापस लाएं और Vlan37 के सबनेट के नीचे किसी भी IP को नियमित रूप से linux मशीन असाइन करें। आपको वास्तव में ट्रंकिंग की आवश्यकता नहीं है जो केवल एक लिंक पर कई वलान जानकारी को संप्रेषित करने के लिए उपयोग किया जाता है।


1
Vconfig हिस्सा dot1q ट्रंकिंग को कॉन्फ़िगर करता है :)
एंटोनी

अंतिम लक्ष्य लिनक्स सिस्टम पर कई वीएलएएन को समाप्त करना है; मुझे सबसे पहले एक काम करना है;)
डेरेन एच।

आपका मतलब है कि आप अपने लिनक्स मशीन को कई Vlans का हिस्सा बनाना चाहते हैं या Vlan37 में रहकर इसे कई अन्य Vans से एक्सेस करने की आवश्यकता है?
गोकुल वर्मा nk

पूर्व - लाइनक्स मशीन में कई गैर-अतिव्यापी आईपी पते होने चाहिए, जिनमें से प्रत्येक अपने स्वयं के वीएलएएन में हों। मुख्य निकाय ने इसे स्पष्ट करने के लिए संपादन किया।
डेरेन एच।

0

मुझे लगता है कि समस्या आपके स्विच कॉन्फिग के साथ है। 802.1q टैग के साथ पोर्ट को ट्रंक मोड में सेट करने के बाद आपको vlan 37 को टैग किए गए ट्रैफ़िक भेजने के लिए स्विच को कॉन्फ़िगर करने की आवश्यकता है और आपको गैर-टैग किए गए ट्रैफ़िक के लिए किसी अन्य vlan का उपयोग करने के लिए पोर्ट को सेट करने की भी आवश्यकता हो सकती है। जब मैंने इसे सेट किया तो मुझे यह भी सेट करना पड़ा कि उस पोर्ट पर कौन से व्लन की अनुमति / खंडन किया गया था। मेरा IOS थोड़ा कठोर है लेकिन मुझे लगता है कि यह वही है जो आप ढूंढ रहे हैं।

जब आप पैकेटों पर VLAN टैग दिखाएंगे, तब आपको eth0 पर वायरशार्क का उपयोग करके अपने स्विच कॉन्फिगर की पुष्टि करने में सक्षम होना चाहिए। सिस्को एलएलडीपी पैकेट आपको एक संकेत भी दे सकता है कि पोर्ट ge0 / 1 क्या कर रहा है।


पोस्ट करते समय मुझे बुलेट पॉइंट 3 और 4 नज़र नहीं आए। मैं अब भी वायरशर्क की कोशिश करूंगा क्योंकि यह आपको यह सत्यापित करने की अनुमति देगा कि स्विच के लिए ट्रैफ़िक वलान 37 पर भेजा जा रहा है।
चक

लाइनक्स पर Wireshark अक्सर वीएलएएन टैग नहीं दिखा सकता है, और दुर्भाग्य से, यहां ऐसा ही है। ऊपर संपादित प्रश्न में नए फुटनोट [6] देखें।
डैरेन एच

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