मुझे कुछ मूलभूत गलतफहमी दिखाई देती है कि वीएलएएन लिनक्स पर कैसे काम करता है, और मुझे उम्मीद है कि यहां के अच्छे लोग मुझे शिक्षित कर सकते हैं।
कास्ट: एक सिस्को 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
[[] देशी (अछूता) वीएलएएन १ है। इसे "स्विचपोर्ट ट्रंक देशी वलन १" के साथ मैन्युअल रूप से सेट करने का कोई प्रभाव नहीं है।
lsmod
लिनक्स बॉक्स पर आउटपुट पोस्ट कर सकते हैं ?
ifconfig eth0.37
और / या ifconfig -a
जैसा दिखता है?
/proc/net/vlan/config
?
sho mac address-table vlan 37
?