टीसीपी-ऑफ़लोडिंग को अक्षम करें {पूरी तरह से, उदारतापूर्वक और आसानी से}


15

मैं अपने डेबियन सर्वर पर tcp-offloading ("TOE") को निष्क्रिय करना चाहता हूं।

ethtool -K .....

मेरी कुछ इच्छाएँ हैं, हालाँकि:

सफाई से इसे डेबियन में एकीकृत करें

इसमें लिखा है: नो आरलोकल, मैं छद्म आरसी-स्क्रिप्टिंग से भी बचना चाहूंगा ...

मैं अनुमान लगाऊंगा , यह एथलूल स्थापित कर रहा है और पूर्व-अप / / -हुक का उपयोग कर रहा है जो / etc / नेटवर्क / इंटरफेस से विकल्पों का उपयोग करके TOE को डिकॉन्फ़िगर करता है

मैं अपने सभी (भविष्य) सर्वरों को FAI का उपयोग करके एक सामान्य शैली में कॉन्फ़िगर करना चाहूंगा । (चूंकि फ़ै पहले से ही मौजूद है - और चाहता था!) ​​कुछ हार्डवेयर पर समर्थित नहीं होने वाले पैर की उंगलियों के विकल्प क्या हैं? यदि गैर-मौजूदा-विकल्प को अक्षम किया जाना चाहिए, तो क्या नेटवर्किंग विफल हो जाएगी? मुझे लगता है कि ऐसा नहीं करना मजबूत होना चाहिए, लेकिन यह मेरा वांछित समाधान नहीं लगता है, या तो।

यह विन्यास को बहुत कम करता है, क्योंकि इसमें 11 विकल्प होते हैं! एकाधिक एनआईसी का उपयोग करने से मुझे यह त्रुटि हो जाती है।

क्या अधिक सामान्य समाधान नहीं है? मेरे पास दिमाग में एक sysctl है, लेकिन अभी तक एक नहीं मिला। मेरी इच्छा थी:

echo 0 > /proc/sys/net/core/enable_tcp_offloading

पुनश्च: मैं अपने "नए हार्डवेयर" को खोजने के लिए काफी आश्चर्यचकित हूं, क्योंकि यह डिफ़ॉल्ट रूप से सक्षम है: http://www.linuxfoundation.org/collaborate/workgroups/networking/toe


1
मैं यह बताना चाहूंगा कि जब तक तर्कवादी TOE तर्क सही हैं, यह ज्यादातर टिन-पन्नी टोपी प्रकार हैं, जिन्हें यथार्थवादी बाधाओं (जहां कोई त्वरण आमतौर पर सहायक होता है) के साथ नहीं रहना पड़ता है। बहुत सारे किनारे मामले हैं जहां टीओई को निष्क्रिय किया जाना चाहिए, लेकिन यह आम नहीं है और इसे "सामान्य और आसान" बनाने में अक्षम करने के प्रयास का गुण नहीं है।
क्रिस एस

1
@ क्रिस एस: सही है, लेकिन मैंने तब तक बुरा नहीं माना जब तक यह गड़बड़ नहीं हुई। और यह वास्तव में हाल ही में बोता है कि नेटवर्क मुद्दे "टीओई को अक्षम" करने के लिए उबलते हैं। तो मैं यह चाहता हूँ! : DI नैतिक-पद्धति के साथ रह सकता है, लेकिन किसी को "द नॉब" जानने की उम्मीद है ....
15

@ मिचेल्निक यो - अगर यह काम कर रहा है, तो मैं इसे चलने दूंगा, लेकिन अगर यह काम कर रहा है और आपके लिए समस्याएं पैदा कर रहा है, तो इसे अक्षम करने का एक अच्छा कारण है। हो सकता है कि आप ऑफलोड इंजन के कुछ हिस्सों को सक्रिय छोड़ना चाहें, लेकिन अगर लिनक्स इसकी अनुमति देता है: उदाहरण के लिए ऑफलोडिंग चेकसम (हार्ड CRC32 को स्क्रू करना, और कार्ड इसे हार्डवेयर में करते हैं जो तेज है और आपको प्रति पैकेट कुछ सीपीयू चक्र बचाता है जो उच्च-यातायात नेटवर्क में जोड़ें)
voretaq7

@ voretaq7: अच्छी बात है! जल्द ही इसके बारे में सोचा, क्या मुझे प्रयोग करने योग्य और दुखी विकल्पों में अंतर करना चाहिए। लेकिन मुझे टीओई का अध्ययन किए बिना एक बहुत ही त्वरित समाधान की आवश्यकता थी, खासकर जब से टीओई सामान विशिष्ट विक्रेता लगता है कि यह ज्ञान है कि उम्र बढ़ने के लिए बहुत तेजी से इसमें निवेश करना चाहिए। क्या TX-chksum-offloading मूल है कि मेरे वायरशर्क गलत chumsums के बारे में शिकायत क्यों करते हैं?
मिकुएलनिक

मेरा कहना है कि जिन सुविधाओं को आप अक्षम कर रहे हैं वे टीओई नहीं हैं। TOE एक पूर्ण TCP ऑफ़लोड इंजन है। आप सिर्फ चेकसम ऑफलोड को अक्षम कर रहे हैं, सेगमेंटेशन ऑफलोड भेज सकते हैं और पुनः लोड ऑफ लोड प्राप्त कर सकते हैं। उन सुविधाओं में से कोई भी TOE है। लिनक्स टीओई का
juhist

जवाबों:


13

डेबियन पर, ethtoolपैकेज अब एक if-up.dस्क्रिप्ट प्रदान करता है जो ऑफलोडिंग (और अन्य ethtoolसेटिंग्स) के लिए विकल्पों को लागू करता है ।

आपको बस इस पैकेज को स्थापित करना है और इंटरफ़ेस में इन जैसी लाइनें जोड़ना है /etc/network/interfaces

auto eth0
iface eth0 inet static
    address 10.0.3.1/255.255.248.0
    gateway 10.0.2.10
    offload-tx  off
    offload-sg  off
    offload-tso off

4
इसका स्वीकृत उत्तर होना चाहिए
स्पॉन्जमैन

7

यूरेका! "मेरा" समाधान मिला!

मैं बस अपनी खुद की अक्षम-पैर की स्क्रिप्ट /etc/network/if-up.d/ में रख रहा हूं जो पूरी तरह से tcp-offloading को निष्क्रिय करता है।

बोनस के रूप में मैंने एक / etc / network / interfaces -Option जोड़ा है , जो इसे निष्क्रिय करता है।

#!/bin/bash

RUN=true
case "${IF_NO_TOE,,}" in
    no|off|false|disable|disabled)
        RUN=false
    ;;
esac

if [ "$MODE" = start -a "$RUN" = true ]; then
  TOE_OPTIONS="rx tx sg tso ufo gso gro lro rxvlan txvlan rxhash"
  for TOE_OPTION in $TOE_OPTIONS; do
    /sbin/ethtool --offload "$IFACE" "$TOE_OPTION" off &>/dev/null || true
  done
fi

"यूरेका" में "एच" नहीं है।
क्रिस एस

मेरी मातृभाषा में, यह है ...;
पी

1
डेबियन (ईश) विशिष्ट (या कम से कम आवश्यक सामान जो सम्मान करता है if-up.d), लेकिन बहुत सुंदर - मुझे पसंद है।
voretaq7

@ voretaq7: धन्यवाद! अभी भी सुधार करना है - बंधन उपकरणों और शायद अन्य विशेष मामलों को संभालना।
मिकुएलनिक

बेहतर होगा कि तुम एक का उपयोग करेंगे post-up for i in rx tx gso ; do ethtool -K $IFACE $i off; doneमें/etc/network/interfaces
जेबी। मोनिका के साथ।

0

ऑफ टॉपिक (सॉर्ट) लेकिन मैं कुछ आरएचईएल 6 सर्वरों के लिए एक ही काम करने का तरीका जानने की कोशिश कर रहा था। तो अगर किसी को आरएचईएल / सेंटोस / फेडोरा के समान वितरण के लिए एक ही चीज़ की तलाश है, तो आपको यहां जवाब मिलेगा ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.