मेरे पास एक अच्छा शेपर है, हैशेड फ़िल्टरिंग के साथ, एक लिनक्स ब्रिज पर बनाया गया है। संक्षेप में, br0
कनेक्ट external
और internal
भौतिक इंटरफेस, वीएलएएन टैग किए गए पैकेटों को "पारदर्शी रूप से" ब्रिज किया जाता है (मेरा मतलब है, कोई वीएलएएन इंटरफेस नहीं हैं)।
अब, विभिन्न गुठली अलग तरीके से करते हैं। मैं सटीक कर्नेल की सीमाओं के साथ गलत हो सकता हूं, कृपया मुझे क्षमा करें। धन्यवाद।
2.6.26
तो, डेबियन में, 2.6.26 और ऊपर (2.6.32 तक, मेरा मानना है) --- यह काम करता है:
tc filter add dev internal protocol 802.1q parent 1:0 prio 100 \
u32 ht 1:64 match ip dst 192.168.1.100 flowid 1:200
यहां, "कर्नेल" 0x8100 के साथ "प्रोटोकॉल" फ़ील्ड में दो बाइट्स से मेल खाता है, लेकिन आईपी पैकेट की शुरुआत को "शून्य स्थिति" के रूप में गिना जाता है (मेरी अंग्रेजी के लिए खेद है, अगर मैं थोड़ा अस्पष्ट हूं)।
2.6.32
फिर से, डेबियन में (मैंने वेनिला कर्नेल नहीं बनाया है), 2.6.32-5 --- यह काम करता है:
tc filter add dev internal protocol 802.1q parent 1:0 prio 100 \
u32 ht 1:64 match ip dst 192.168.1.100 at 20 flowid 1:200
यहां, "कर्नेल" प्रोटोकॉल के लिए समान है, लेकिन इस प्रोटोकॉल के हेडर की शुरुआत से ऑफसेट की गणना करता है --- मुझे ऑफसेट में 4 बाइट्स जोड़ना होगा (20, डीएसटी पते के लिए 16 नहीं)। यह ठीक है, मेरे लिए अधिक तार्किक लगता है।
3.2.11, अब नवीनतम स्थिर
यह काम करता है --- जैसे कि कोई 802.1q टैग नहीं है:
tc filter add dev internal protocol ip parent 1:0 prio 100 \
u32 ht 1:64 match ip dst 192.168.1.100 flowid 1:200
समस्या यह है कि मुझे 802.1q टैग से मिलान करने का कोई तरीका नहीं मिला।
अतीत में 802.1q टैग का मिलान
मैं इस प्रकार से पहले कर सकता है:
tc filter add dev internal protocol 802.1q parent 1:0 prio 100 \
u32 match u16 0x0ed8 0x0fff at -4 flowid 1:300
अब मैं साथ 802.1q टैग से मिलान करने में असमर्थ हूँ at 0
, at -2
, at -4
, at -6
या जैसे कि। मुख्य मुद्दा जो मेरे पास शून्य हिट्स है --- इस फिल्टर को "गलत प्रोटोकॉल", दूसरे शब्दों में चेक नहीं किया जा रहा है।
कृपया, किसी को भी, मेरी मदद :-)
धन्यवाद!
protocol all
मुझेRTNETLINK answers: Invalid argument
(3.3.4 कर्नेल यहाँ) के लिए एक रूट फ़िल्टर जोड़ने का प्रयास । मैं इसका परीक्षण नई गुठली से करूँगा। धन्यवाद।