লিনাক্স নেটওয়ার্কিং পোর্ট ক্লান্তি


10

আমি কার্নেলের উত্সে ডান না খনন করে এ বিষয়ে যতটা গবেষণা করতে পেরেছি তা করেছি। বিষয়টিতে বৃহত পরিমাণে বিশৃঙ্খলা / ভুল তথ্য রয়েছে বলে মনে হয়, তাই আমি আশা করি এটি আমার এবং অন্যদের জন্য একবার এবং সবার জন্য প্রশ্নের উত্তর দেয়।

কঠোরভাবে আইপিভি 4 বলছে, বন্দর ক্লান্তি কি আসলে সম্ভব? আমাকে বিস্তারিত বলতে দাও:

  • সম্ভবত 65535 বন্দর ব্যবহারের জন্য উপলব্ধ। 0 পাওয়া যায় না।
  • আমি পড়েছি যে পোর্ট ক্লান্তিটির জন্য (src আইপি, এসআরসি পোর্ট, ডিএসটি আইপি, ডিএসটি পোর্ট) টিউপলটি অনন্য হতে হবে।
  • পরিষ্কার এবং অনুমান করার জন্য আমি sysctl নেট.ipv4.ip_local_port_range সেটিংসের মাধ্যমে 100% ক্ষণিকের বন্দর ব্যবহার করতে পারি

এবং এই প্রশ্নটি: এটি কীভাবে এটি কাজ করে?

  • আমার 127.0.0.1:(x) থেকে 127.0.0.1:80 এ 65 কে সংযোগ থাকতে পারে
  • আমার 127.0.0.1:(x) থেকে 127.0.0.1:5555 এ 65 কে সংযোগ থাকতে পারে
  • মূলত আবার, প্রশ্নটি (srcip, srcport, dstip, dstport) অবশ্যই অনন্য হতে হবে, তাই না?
  • আমি কোনো চেয়ে বেশি 65k সংযোগ খোলা যায়নি থেকে আইপি "একটি" আইপি থেকে "বি", পোর্ট "N" মানে
  • তেমনিভাবে, একটি একক আইপি আমার ওয়েবਸਰভারের সাথে xxxx: 80 এ 65k এর বেশি সংযোগ খুলতে পারে না, তবে আমি যতক্ষণ না তারা বিভিন্ন উত্সের আইপি থেকে দীর্ঘকাল 65k এর বেশি সমর্থন করতে পারি ?

অবশেষে, আমি (বহির্গামী) ইফেমেরাল বন্দর এবং আগত পোর্টগুলি যা শুনছে সে সম্পর্কে আমি কিছুটা বিভ্রান্ত am আমি বুঝতে পেরেছি যে সংযোগটি প্রতিটি পার্শ্বটি একবার প্রতিষ্ঠিত হয়ে গেলে সংযোগের প্রতিটি দিকটি একটি পিয়ার এবং সমান, তবে এর আগে ঘটে:

উদাহরণস্বরূপ, যদি সত্যই (srcip, srcport, dstip, dstport) টিউপলটি অবশ্যই অনন্য হতে পারে, যদি আমি সক্ষম করি তবে এটি কেন, উদাহরণস্বরূপ

net.ipv4.ip_local_port_range = 1024 65535

যা 1024-65535 থেকে ইফেমেরাল বন্দরগুলির ব্যবহারের অনুমতি দেয়, আমার কাছে যদি 3306 (মাইএসকিউএল, উদাহরণস্বরূপ) বন্দরটিতে বাঁধা পরিষেবাগুলি থাকে তবে সেগুলি কখনও কখনও শুরু করতে ব্যর্থ হয় কারণ বন্দরটি ব্যবহৃত হচ্ছে।

এটি কি এই সত্যটির সাথে সম্পর্কিত: (এবং এটি একটি বিবৃতি যা আমি বৈধ হওয়ার জন্য বলছি):

  • (srcip, srcport, dstip, dstport) 1-65535 পোর্ট সীমার সাথে প্রতিটি সংযোগের জন্য অনন্য হতে হবে (ওএসের সাময়িক বন্দরগুলির ব্যবহারের দিকে মনোযোগ দিচ্ছে না)
  • তবে, সকেটের সাথে বাঁধাইয়ের জন্য এটি (srcip, srcport, *, *) হিসাবে দেখা যায়। বা এটি রাখার অন্য কোনও উপায়, আইপি কি কোনও কারণেই আবদ্ধ হওয়ার জন্য সেই বন্দরটি ব্যবহার করা উচিত নয়?

আমি উপরের আচরণটি যাচাই করতে পারি, উদাহরণস্বরূপ আমি উপরের সিস্টিএল লাইনটি ব্যবহার করি এবং এর কারণেই আমি মাইএসকিউএল 1024 এর চেয়ে কম একটি বন্দরে স্থানান্তরিত করেছি কারণ এটি মাঝেমধ্যে এবং খুব এলোমেলোভাবে পুনরায় আরম্ভ করতে ব্যর্থ হবে কারণ ধরে নিই যে ওএস সেই বন্দরটি ব্যবহার করছে (3306) একটি সাময়িক বন্দরের জন্য।


আমি আরও তথ্যের সাথে আমার উত্তর আপডেট। যেকোন প্রশ্নের জবাব দিতে নির্দ্বিধায়।
89c3b1b8-b1ae-11e6-b842-48d705

উত্তর:


8

আপনার এখানে দুটি প্রধান প্রশ্ন রয়েছে:

1।

কঠোরভাবে আইপিভি 4 বলছে, বন্দর ক্লান্তি কি আসলে সম্ভব?

হ্যাঁ. উদাহরণস্বরূপ, একটি লোড ব্যালেন্সিং রাউটারটি একটি NAT আইপি ঠিকানায় সমস্ত সংযোগ প্রেরণ করুন। যখন আপনার অনেকগুলি SRC IPসংযোগ একটি একক এর বাধা সঙ্গে সংযুক্ত থাকে তখন এটি ঘটতে পারে DST IP

এর অর্থ হ'ল আপনার ওয়েবসারকে এর মতো সংযোগের গুচ্ছ থাকতে পারে:

root@buglab:~# netstat -pnt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 173.200.1.18:80      10.100.1.100:49923        ESTABLISHED 13939/nginx: worker
tcp        0      0 173.200.1.18:80      10.200.1.200:10155        ESTABLISHED 13939/nginx: worker
tcp        0      0 173.200.1.18:80      10.10.1.10:14400        ESTABLISHED 13939/nginx: worker
tcp        0      0 173.200.1.18:80      10.10.1.10:50652        ESTABLISHED 13939/nginx: worker
tcp        0      0 173.200.1.18:80      10.20.1.20:57554        ESTABLISHED 13939/nginx: worker 

এবং এটি পুরোপুরি ঠিক আছে। তবে, সমস্ত 'বিদেশী ঠিকানা' একই থাকলে এটি সমস্যার কারণ হতে পারে (যেমন 'বড় রাউটার যা NAT <---> একটি আইপি ঠিকানা সহ সার্ভার সম্পাদন করে')।

যদি আমাকে সাময়িক বন্দরের অবসন্নতা কেন একটি সাধারণ সমস্যা নয় তা যদি পোস্ট করতে হয় তবে আমি প্রস্তাবিত কারণ এটি হ'ল প্রতিটি বন্দরের একটি শ্রবণ পরিষেবা এবং প্রতিক্রিয়া করার জন্য পর্যাপ্ত সংস্থান প্রয়োজন - অন্য উত্স (মেমরি, সিপিইউ) সাধারণত প্রথমে একটি বাধা।

যাইহোক, লোড ব্যালেন্সিং সংস্থায় কাজ করার সময় আমি ব্যক্তিগতভাবে কয়েকটি বন্দর ক্লান্তি সমস্যাগুলি নিয়ে এসেছি।

২. একটি ব্যবহৃত বন্দর শোনার পরিষেবার জন্য কেন একটি সমস্যা উপস্থাপন করতে পারে?

"এটি 1024-65535 থেকে সাময়িক বন্দরগুলির ব্যবহারের অনুমতি দেয়, আমার কাছে যদি 3306 পোর্টে (উদাহরণস্বরূপ) মাইএসকিউএল বাঁধাই পরিষেবাগুলি থাকে তবে তারা কখনও কখনও শুরু করতে ব্যর্থ হয় কারণ বন্দরটি ব্যবহৃত হচ্ছে।"

মাইএসকিউএল সার্ভারটি যদি ব্যবহার হয় তবে সেই বন্দরে বাঁধাই করতে পারে না - লোকালহোস্ট দ্বারা বলুন: 3306 বা সমস্ত ইন্টারফেসে। উদাহরণস্বরূপ, নিম্নলিখিত netstatআউটপুটটিতে 0.0.0.0.80 রেখাটি দেখুন ?

root@buglab:~# netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      PID/Program name
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      964/php-fpm.conf)
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1660/mysqld     
tcp        0      0 0.0.0.0:842             0.0.0.0:*               LISTEN      1317/inetd      
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      13938/nginx     

তার মানে যে পোর্ট 80 সার্ভারে লোকাল সমস্ত ইন্টারফেস জুড়ে শুনছে । যদি আমার nginxসার্ভার শুরুর আগে অন্য কোনও প্রক্রিয়া 80 বন্দরটি ধরে রাখে তবে nginxসেই বন্দরটির নিয়ন্ত্রণ নিতে সক্ষম হবে না এবং সম্ভবত এটির শুরুর প্রক্রিয়াটি ব্যর্থ হবে।

সাধারণত, 3306 পোর্টটি ঠিক আছে কারণ শ্রবণকারী পরিষেবাদিতে পূর্বনির্ধারিত পোর্টগুলি (বা ব্যাপ্তিগুলি) রয়েছে যা হোস্ট মেশিনের থেকে অনুরোধ করা হয় - যেমন ওয়েবসার্সের জন্য পোর্ট 80 এবং 443।


0

আমার 127.0.0.1:(x) থেকে 127.0.0.1::80 পর্যন্ত 65k সংযোগ থাকতে পারে আমার 127.0.0.1:(x) থেকে 127.0.0.1:555 এ 65 কে সংযোগ থাকতে পারে

একটি: হ্যাঁ, যদি আপনার স্থানীয় বন্দরটি 1-65535 হয় তবে সংযোগের সংখ্যা 65 কে -1 হয় (একটি পোর্ট শোনানো হয়)

মূলত আবার, প্রশ্নটি (srcip, srcport, dstip, dstport) অবশ্যই অনন্য হতে হবে, তাই না? a: হ্যাঁ

আমি আইপি "এ" থেকে আইপি "বি", পোর্ট "এন" তে 65k এর বেশি সংযোগ আর খুলতে পারি নি, একইভাবে, একটি একক আইপি আমার ওয়েবসভারে xxxx: 80 এ 65k এর বেশি সংযোগ খুলতে পারে না, তবে আমি আরও অনেক সমর্থন করতে পারি যতক্ষণ না তারা বিভিন্ন উত্সের আইপি থেকে 65 কে?

একটি: একক আইপি xxx: 80 এ আমার ওয়েবসার্ভারে 65k এর বেশি সংযোগ খুলতে পারে নি, কারণ srcip, srcport, dstip, dstport অনন্য। হ্যাঁ আপনি 65k এর চেয়ে অনেক বেশি সমর্থন করতে পারেন, যদি সরস আইপি আলাদা হয়

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.