वीएलएएन टैग पैकेट कैप्चर (लिनक्स) में tcpdump के माध्यम से नहीं दिखाए जाते हैं


15

मैं eth0 पर एक टैग की गई VLAN जोड़ रहा हूँ:

#ip link add link eth0 name eth0.20 type vlan id 20

इसका परिणाम यह होगा:

#ip link
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff
....
12: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
 link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff

#ip -d link show eth0.20
70: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff
    vlan id 20 <REORDER_HDR>

#cat /proc/net/vlan/config
VLAN Dev name    | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.234       | 234  | eth0
eth0.20        | 20  | eth0

अब मैं dhclient शुरू करता हूं:

#dhclient -d -v -1 eth0.20

Tcpdump में जो मैं देख रहा हूं वह एक अनछुई डीएचसीपी खोज फ्रेम है:

#tcpdump -i eth0 -XX
0x0000:  ffff ffff ffff 9cc7 a695 651c 0800 4500 
                                       ^^^^

इसे क्यों नहीं टैग किया गया?

802.1q मॉड्यूल का उपयोग किया जा रहा है:

#lsmod | grep 8021q
8021q                  28324  0
garp                   14311  1 8021q

(OS: SLES11SP2 कर्नेल 3.0.13-0.27-डिफ़ॉल्ट)

BTW अन्य ट्रैफ़िक को या तो टैग नहीं किया जाता है (कम से कम tcpdump इसे नहीं दिखाता है) ...


अपडेट 16 अक्टूबर

 # tcpdump -Uw - | tcpdump -i eth0 -en -r - &
[1] 7310
 # tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

 # dhclient -d -v -1 eth0.20
Internet Systems Consortium DHCP Client 4.2.3-P2
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0.20/9c:c7:a6:95:65:1c
Sending on   LPF/eth0.20/9c:c7:a6:95:65:1c
Sending on   Socket/fallback
DHCPDISCOVER on eth0.20 to 255.255.255.255 port 67 interval 3
reading from file -, link-type EN10MB (Ethernet)
18:49:14.437882 9c:c7:a6:95:65:1c > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 347: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 9c:c7:a6:95:65:1c, length 305
                                                                       ^^^^^^

इसलिए, अभी भी यहां कोई टैग नहीं दिखाया गया है।

लेकिन वास्तव में dhclient चलाने के दौरान eth0.20 / proc / net / dev के लिए प्रेषित काउंटर बढ़ जाता है ...


क्या आप "ip -d लिंक शो eth0.20" चला सकते हैं?
डैनिला लैडनर

यकीन है, मैं सवाल करने के लिए जानकारी जोड़ दिया है।
मार्की

क्या आप सुनिश्चित हैं कि ट्रैफ़िक वीएलएएन टैग के बिना तार पर दिखाई देता है? जिस तरह से VLAN इंटरफेस के लिए लागू किया जाता है, यह बस कुछ libpcap quirk हो सकता है ip link
वाबेट

ठीक है, यह भी कि "कैट / प्रोक / नेट / वलान / कॉन्फिग" क्या कहता है?
दानिला लैडनर

मैंने कॉन्फिग आउटपुट के साथ सवाल बढ़ाया है। मैं OS के बाहर कैप्चर करने और आपको अपडेट रखने का भी प्रयास करूंगा।
मार्की

जवाबों:


16

आप tcpdump -i eth0VLAN त्वरण के कारण i686 / x86_64 आर्किटेक्चर पर आउटपुट से वीएलएएन टैग नहीं देख सकते हैं । वीएलएएन परत को कर्नेल द्वारा फ़िल्टर किया जाएगा ताकि यह हमेशा अनटैग्ड दिखे। कृपया बग 498981 को देखें - tcpdump 802.1q vlan टैग के साथ सौदा नहीं कर सकता है

आपके मामले के अनुसार, आप वीएलएएन टैग प्राप्त कर सकते हैं:

tcpdump -i eth0 -Uw - | tcpdump -en -r - vlan 20

आपको निम्न आउटपुट देखना चाहिए:

<timestamp> <mac-addr-of-eth0> > Broadcast, ethertype 802.1Q (0x8100), length 346: vlan 20, p 0, ethertype IPv4, 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP

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

1
@ मार्की क्षमा करें मुझे आपकी बात स्पष्ट रूप से नहीं मिली। Google के माध्यम से 20 मिनट के अध्ययन के बाद यहां अपडेट किया गया संस्करण है। यह टिप्पणी आपके प्रश्न के लिए महत्वपूर्ण है।
shammzhu

हाँ आप सही लग रहे हैं। सब कुछ परत के साथ सावधान रहना चाहिए 2. एक को डीएचसीपी ग्राहक के साथ अतिरिक्त सावधानी बरतनी चाहिए क्योंकि यह कुछ मामलों में कच्चे सॉकेट का उपयोग करने के लिए लगता है (इसलिए आप iptables का उपयोग करके पैकेट पर कब्जा नहीं कर सकते हैं)। और इसके अलावा, जब आप वीएमवेयर का उपयोग कर रहे हैं तो आपको किसी भी मामले में वीएम में पैकेट को टैग नहीं करना चाहिए क्योंकि vSwitch उन्हें अस्वीकार कर देगा, आपको वीएसएम में उस वीएलएएन के लिए एक समर्पित इंटरफ़ेस कॉन्फ़िगर करना होगा। यह सब एक साथ करना आसान नहीं था ... ;-)
मार्की

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