ওপেনভিপিএন: প্রতি ক্লায়েন্ট ভিত্তিতে পাথ এমটিইউ ইস্যুগুলিকে কীভাবে প্রশমিত করা যায়?


16

আমাদের কয়েক ডজন এম্বেডড ডিভাইস গ্রাহকরা ইনস্টল করেছেন, সমস্ত আমাদের ওপেনভিপিএন পরিষেবাতে কল করে। এটি সাধারণভাবে কাজ করে, তবে আমাদের কয়েকটি গ্রাহকের মারাত্মক পথ এমটিইউ সমস্যা রয়েছে। গ্রাহকদের নেটওয়ার্ক ঠিক করার জন্য আমাদের প্রভাব সীমিত, সুতরাং এটি মোকাবেলায় আমাদের ওপেনভিপিএন প্রয়োজন। সংক্ষেপে, আমার প্রশ্নটি হ'ল:

প্রতি ক্লায়েন্ট বেসগুলিতে কিছু ক্লায়েন্টের নিম্ন পাথ এমটিইউগুলিকে আমি কীভাবে প্রশমিত করতে পারি, এটি সমস্ত ক্লায়েন্টের জন্য সবচেয়ে খারাপ পরিস্থিতি সমন্বিত বৈশ্বিক সেটিংস ব্যবহার না করেই করা যায়

মনে রাখবেন যে আমাদের সবচেয়ে খারাপ পরিস্থিতি এটি অত্যন্ত খারাপ: পাথ এমটিইউ 576, সমস্ত টুকরো টুকরো টুকরো করে, খণ্ড খণ্ড করে না, ডিএফ-বিটকে সম্মান করে না। আপনি দেখতে পাচ্ছেন কেন আমি বিশ্বব্যাপী এই সমস্যাটি সমাধান না করতে পছন্দ করব।

VPN খুলুন র manpage অফার MTU একটি নম্বর সম্পর্কিত বিকল্প মধ্যে উল্লেখযোগ্য --link-mtu, --tun-mtu, --fragment and --mssfix। তবে এটিও বলে

--link-mtu [...] আপনি কী করছেন তা যদি না জানেন তবে এই প্যারামিটারটি সেট না করা ভাল।

--une-mtu [...] এমটিইউ সাইজিংয়ের সমস্যাগুলি মোকাবেলার জন্য --fragment এবং / অথবা --mssfix বিকল্পগুলি ব্যবহার করা ভাল।

সুতরাং আমি পরীক্ষা-নিরীক্ষা শুরু করেছি --fragmentএবং --mssfixশীঘ্রই বুঝতে পারি যে কমপক্ষে প্রাক্তনটি কেবল ক্লায়েন্ট-সাইডই নয়, সার্ভার- সাইডও সেট করা উচিত । আমি তখন সার্ভার-সাইড প্রতি ক্লায়েন্ট কনফিগারেশনের মাধ্যমে দেখেছি --client-config-dirকিন্তু এটি বলে

নিম্নলিখিত বিকল্পগুলি ক্লায়েন্ট-নির্দিষ্ট প্রসঙ্গে আইনী: --push, --push-reset, --iroute, --ifconfig- পুশ এবং --config।

এমটিইউ বিকল্পের উল্লেখ নেই!

সুতরাং এখানে আমার আরো নির্দিষ্ট প্রশ্ন:

  • কেন হতাশ link-mtuএবং tun-mtuনিরুৎসাহিত হয়? এই বিকল্পগুলির সাথে সম্ভাব্য সমস্যাগুলি কী কী? নোট করুন যে আমি নিম্ন-স্তরের আইপি শিরোনাম মংগিংয়ের সাথে বেশ স্বাচ্ছন্দ্য বোধ করছি।
  • link-mtu tun-mtu fragment mssfixসার্ভার-সাইডে কাজ করার জন্য কোন অপশনটি মিরর করতে হবে?
  • বিকল্পগুলির মধ্যে কোনটি link-mtu tun-mtu fragment mssfixব্যবহার করা যেতে পারে client-config-dir?
  • যদি চারটি অপশনই সার্ভার-সাইড মিরর করতে হয় এবং এর ভিতরে ব্যবহার করা যায় না client-config-dir: ক্লায়েন্টের জন্য কম পাথ এমটিইউয়ের লড়াইয়ের জন্য কি কোনও বিকল্প আছে?

মন্তব্য:

  • আমার প্রশ্নের অংশগুলি এখানে ইতিমধ্যে 5 বছর আগে এখানে জিজ্ঞাসা করা হয়েছিল , তবে তাদের সত্যিই তখন আর উত্তর দেওয়া হয়নি, তাই আমি সেগুলি অনুলিপি করার সাহস করি।
  • ওপেনভিপিএন সার্ভারটি বর্তমানে উবুন্টু 12.04 এ 2.2.1 রয়েছে। আমরা উবুন্টু 14.04 এ 2.3.2 এ আপগ্রেড প্রস্তুত করছি
  • ওপেনভিপিএন ক্লায়েন্টগুলি ডেবিয়ান 7.6 এ 2.2.1
  • আমি নিজে নিজে গ্রাহকের পথ-এমটিইউ নির্ধারণ করতে পেরে খুশি
  • বর্তমানে আমরা বেশি সার্ভার-সাইড পরীক্ষা করতে পারি না। তবে আমরা একটি সম্পূর্ণ পৃথক পরীক্ষার বিছানা তৈরি করছি, শীঘ্রই প্রস্তুত হওয়া উচিত।

আমি কোনও সহায়ক পরামর্শের জন্য কৃতজ্ঞ।


1
576? প্রিয় gawd। ডায়ালআপের দিনগুলি থেকে আমি কোনও এমটিইউ কম দেখিনি। এটি কি কোনও প্রাচীন সিরিয়াল লিঙ্কের ওপরে যাচ্ছে?
মাইকেল হ্যাম্পটন

আপনি দুটি ওপেনভিপিএন সার্ভার চালাতে পারবেন? সম্ভবত আপনি একই সার্বজনীন আইপি ঠিকানায় উভয় সার্ভার পরিচালনা করতে এবং ক্লায়েন্টদের কোনও সমস্যাযুক্ত নেটওয়ার্কে আছেন বা না তার উপর নির্ভর করে ভিন্ন ওপেনভিপিএন সার্ভারের দিকে পরিচালিত করতে পোর্ট ফরওয়ার্ডিং (বা একটি রাউটিং নীতি) ব্যবহার করতে পারেন (ক্লায়েন্টের একটি তালিকা অনুসারে নির্ধারিত) আইপি ঠিকানা)।
ক্যাস্পার্ড

1
@ মিশেলহ্যাম্পটন আমিও অবাক হয়েছি। এটি> 600kbit / s এবং RTT ~ 30ms, আমার কাছে প্রাচীন সিরিয়ালের মতো লাগে না। তাদের অন্যান্য বোকামি সেটিংস রয়েছে (যেমন, 'ফ্র্যাগমেন্টেশন প্রয়োজনীয়' দিয়ে ডিএফ-তে সাড়া না দেওয়া) দেওয়া, আমি অনুমান করি এটি কেবল অন্য একটি। আমরা তাদের বলেছি, কিন্তু এখনও শুনিনি।
নিলস টোডটম্যান

@ ক্যাস্পার্ড আকর্ষণীয় ধারণা। আমি একাধিক ওপেনভিপিএন সার্ভার দৃষ্টান্ত চালাতে পারি। বিভিন্ন এমটিইউ রেঞ্জের জন্য সম্ভবত 3 বা 4 থাকতে হবে। সার্ভার-সাইড-ক্লায়েন্ট NAT কাজ করবে না (আমি ডায়নামিক পাবলিক ক্লায়েন্টের আইপি অ্যাড্রেসগুলি পূর্বাভাস দিতে পারি না), তবে এমটিইউ সেটিংসের জন্য আমাকে ক্লায়েন্ট কনফিগারেশন (ঠিক?) পরিবর্তন করতে হবে, তাই আমি সহজভাবে আলাদা পোর্টটি সরাসরি কনফিগার করব ক্লায়েন্ট মধ্যে। - তবে এটি একটি রক্ষণাবেক্ষণের দুঃস্বপ্ন হবে যা আমি এড়াতে পছন্দ করব!
নিলস টোডটম্যান

@ নীলস টোডটম্যান কোন ক্লায়েন্ট প্রভাবিত হয়েছে তা সনাক্ত করতে আপনি কোন মানদণ্ড ব্যবহার করবেন? অন্য একটি পদ্ধতির ক্ষেত্রে কোনও ক্লায়েন্ট সংযুক্ত হওয়ার পরে সার্ভারে একটি স্ক্রিপ্ট চালানো হতে পারে। স্ক্রিপ্টটি বিভিন্ন প্যাকেটের আকারের সাথে ক্লায়েন্টের আইপি ঠিকানাটি পিং করার চেষ্টা করতে পারে যা কোন কাজ এবং কোনটি নয় তা নির্ধারণ করার জন্য। তারপরে iptablesসমস্ত ক্লায়েন্টের আইপি ঠিকানায় বা এসআইএন প্যাকেটে এমএসএস হ্রাস করার জন্য এটি বিধিগুলি সন্নিবেশ করতে পারে।
ক্যাস্পার্ড

উত্তর:


4

mssfix 1300কনফিগার ফাইলে বিকল্পটি যুক্ত করে আমি ক্লায়েন্টের পাশে সমস্যাটি সমাধান করেছি ।

ওপেনভিপিএন ম্যান পৃষ্ঠা থেকে:

--mssfix max
    Announce to TCP sessions running over the tunnel that they should limit their send packet sizes such that after OpenVPN has encapsulated them, the resulting UDP packet size that OpenVPN sends to its peer will not exceed max bytes. 

আমার সমাধানের জন্য আসল ধারণাটি ব্যক্তিগত vpn.org থেকে এসেছে


1
তাহলে mssfixকেবল ক্লায়েন্ট-সাইড সেট করা যায়? ঠিক আছে, এটি অন্তত কিছু। এটি ইউডিপি প্যাকেটগুলির সাহায্যে সহায়তা করে না (এ কারণেই আমি অন্যান্য অপশনগুলিতে আগ্রহী ছিলাম, তবে কমপক্ষে প্রস্তাবিত fragmentসার্ভার-
সাইডও

3
এমএসএসফিক্স ক্লায়েন্টের পাশাপাশি সার্ভারে যুক্ত করা যেতে পারে। তবে ছোট মানটি আলোচনায় ব্যবহৃত হবে
আহমেদ

2

উত্তরের অভাব বিবেচনা করে, আমি এখন একটি সমাধান পোস্ট করছি যা খুব মার্জিত নয়, তবে সহজ: "খারাপ ক্লায়েন্ট" এর জন্য টিসিপিতে অন্য একটি ওপেনভিপিএন উদাহরণ চালান

proto tcp

এবং ক্লায়েন্টের উপর টিসিপি এমএসএস কম করুন, যেমন

iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o ${OUT_DEV} -j TCPMSS --set-mss ${PATH-MTU-MINUS-40}

এই সমাধানটির একটি সুবিধা হ'ল প্রতিটি ক্লায়েন্ট তার স্বতন্ত্র এমএসএস সেট করতে পারে।

এটি স্বীকৃতভাবে টিসিপি-ওভার-টিসিপি, তবে এটি অনেক পরিস্থিতিতে ভাল পারফরম্যান্স করা উচিত

মনে রাখবেন যে আমি এখনও খুব আগ্রহী সমাধানগুলির প্রয়োজন নেই যা proto tcpআমি প্রয়োজন না এবং আমি যদি তাদের কম-বেশি আমার বর্ণিত প্রয়োজনীয়তা পূরণ করে তবে আমি তাদের বৈধ উত্তর হিসাবে চিহ্নিত করব।

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