ওপেনভিপিএন এর চেয়ে এসএসএইচ টানেলিং দ্রুততর, এটি কি হতে পারে?


21

যৌক্তিকভাবে, টানেলিংয়ের জন্য ভিপিএন এসএসএইচের চেয়ে দ্রুত হওয়া উচিত, কারণ:

  • এটি ইউডিপিতে চলছে, টিসিপি নয় (তাই টিসিপি-তে কোনও টিসিপি নেই)
  • এটি সংকোচনের আছে

যাইহোক, আজ আমি উভয় পদ্ধতিতে রেডিসের প্রতিরূপ পরীক্ষা করেছি।
আমি একটি আয়ারল্যান্ড AWS ভিএম এর মাধ্যমে পরীক্ষা চালিয়েছিলাম, একটি মার্কিন-পূর্ব এডাব্লুএস ভিএম-এর সাথে সংযোগ স্থাপন করেছি।
আমি একটি ফাঁকা Redis সার্ভার দৌড়ে গিয়ে পরে এটি সমাপ্ত লোড, আমি মৃত্যুদন্ড কার্যকর - যেহেতু আমার পরীক্ষার ক্ষেত্রে Redis রেপ্লিকেশন, এই আমি ঠিক কি পরীক্ষিত হয় slaveofঅন্য সার্ভার, এবং মধ্যে সময় মাপা Connecting to MASTERএবং MASTER <-> SLAVE sync: Finished with success। এর মধ্যে, আমি ব্যবহার করেছি

while 1; do redis-cli -p 7777 info | grep master_sync_left_bytes;sleep 1; done

গতির অপরিশোধিত অনুমান পেতে।
এসএসএইচ একটি দীর্ঘ শট দ্বারা জিতেছে: ওপেনভিপিএন এর ~ 2MB / s এর তুলনায় 11MB / s।
তার মানে কি এই যে আমি যা পুনঃনির্ধারণ করেছি তার সবই ভুল ছিল, বা আমি আমার সেটআপটিকে গুরুতরভাবে কনফিগার করেছি?

হালনাগাদ

আমি একই ডেটাসেট দিয়ে বেশ কয়েকটি পরীক্ষা করেছি এবং এই ফলাফলগুলি পেয়েছি:

  • VPN খুলুন
    • টিসিপি:
      সংক্ষেপণ: 15 মি
      কোনও সংক্ষেপণ: 21 মি
    • ইউডিপি:
      সংক্ষেপণ: 5 মি
      না কোনও সংক্ষেপণ: 6 মি
  • এসএসএইচ
    ডিফল্ট: 1 মি 50 সেকশন
    নেই: 1 এম 30 এস সংক্ষেপ
    : এম 30 এস

Update2

দ্বিপাক্ষিক পরীক্ষার সাথে এখানে আইপিএফ ফলাফলগুলি রয়েছে (এসএসএইচ ব্যতীত, যেখানে কোনও ফেরার পথ নেই)

| method           | result (Mb/s)|
|------------------+--------------|
| ssh              | 91.1 / N.A   |
| vpn blowfish udp | 43 / 11      |
| vpn blowfish tcp | 13 / 12      |
| vpn AES udp      | 36 / 4       |
| vpn AES tcp      | 12 / 5       |

প্রযুক্তিগত চশমা

আমি CentOS 6.3 (সার্ভার), CentOS 6.5 (ক্লায়েন্ট) চালাচ্ছি।
ওপেনভিপিএন সংস্করণটি ২.৩.২ (উবুন্টু ১৪.১০ এর মতো, সুতরাং সেখানে কোনও ছাঁচ সংস্করণ নেই)
আমার এসএসএইচ টানেলিংয়ের মতো দেখাচ্ছে:

ssh -f XXXX@XXXX -i XXXX -L 12345:127.0.0.1:12345 -N

আমার কনফিগারেশন ফাইলটি দেখতে:
সার্ভার

port 1194
proto udp
dev tun0
topology subnet
log /var/log/openvpn.log

ca XXXX
cert XXXX
key XXXX
dh XXXX
crl-verify XXXX

cipher AES-256-CBC

server XXXX 255.255.255.0

ifconfig-pool-persist /etc/openvpn/ipp.txt
keepalive 10 120
comp-lzo
status /var/log/openvpn-status.log
verb 3
tun-mtu 1500
fragment 1300

persist-key
persist-tun

মক্কেল

client

remote XXXX 1194

proto udp
dev tun
log /var/log/openvpn.log
comp-lzo

cipher AES-256-CBC
ns-cert-type server

# the full paths to your server keys and certs
ca XXXX
cert XXXX
key XXXX

tun-mtu 1500 # Device MTU
fragment 1300 # Internal fragmentation

persist-key
persist-tun
nobind

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

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

4
@ এসটিএস-এ থাকা এনটিজ টিসিপি টানেলগুলি টিসিপিতে কোনও টিসিপি ব্যবহার করে না। আসলে ssh ক্লায়েন্টটি এমনকি এটি করার জন্য অপর্যাপ্ত সুযোগ-সুবিধা দিয়ে চালিত হয়। এবং না, ssh প্যাকেটগুলি থেকে কোনও টিসিপি শিরোনাম সরিয়ে দেয় না, কারণ এটি কখনও টিসিপি প্যাকেটও স্পর্শ করে না। ssh হ'ল একটি অ্যাপ্লিকেশন যা অন্য অ্যাপ্লিকেশনগুলির মতো কার্নেলের টিসিপি স্ট্যাক ব্যবহার করে। কিছু প্রোগ্রাম থেকে এসএসএস ক্লায়েন্টের কাছে একটি টিসিপি সংযোগের মাধ্যমে ডেটা ভ্রমণ করে। Ssh ক্লায়েন্ট তথ্য এনক্রিপ্ট করে এবং এটি টিসিপি সংযোগের মাধ্যমে সার্ভারে প্রেরণ করে। সার্ভার এটি ডিক্রিপ্ট করে উত্তরগুলি অন্য প্রান্তে একটি তৃতীয় টিসিপি সংযোগের মাধ্যমে কোনও প্রোগ্রামে প্রেরণ করে।
ক্যাস্পারড

2
অবশ্যই ওপেনভিপিএন সহ আরও কিছুটা ওভারহেড থাকতে পারে কারণ এতে অতিরিক্ত আইপি / টিসিপি শিরোনাম রয়েছে। তবে এটি 4-10 গুণ ধীর গতির একটি পার্থক্য করা উচিত নয়। পার্থক্যটি যদি 5-10% ধীর পরিসরে হয় তবে আমি দোষ দিতে প্ররোচিত হতে পারি। যে কারণে আপনি এখনও তদন্ত করতে চাইতে পারেন এটি হ'ল এটি এমন কিছু অন্তর্নিহিত সমস্যার লক্ষণ হতে পারে যা অন্য বিষয়গুলিকে এমনভাবে প্রভাবিত করছে যা কম স্পষ্ট।
জোরডেচে

2
@ নিটস যদি আমি আপনাকে সঠিকভাবে বুঝতে পারি তবে আপনি বলছেন যে ভার্চুয়াল ইন্টারফেসে প্রবেশ করা এনক্রিপ্ট করা প্যাকেটগুলি 1424 বাইট, তবে প্রকৃত ইন্টারফেসে প্রেরিত এনক্রিপ্ট হওয়া প্যাকেটগুলি কেবল 160 বাইট। এটি ভিপিএন স্তর বা এর নীচে ইউডিপি / আইপি স্তরতে ঘটে যাওয়া একটি চূড়ান্ত বিভাজনকে নির্দেশ করবে। এটি অবশ্যই পারফরম্যান্স সমস্যার ব্যাখ্যা দিতে পারে। ভার্চুয়াল ইন্টারফেসের প্যাকেটগুলি 1300-1400 বাইটের ক্রমে কিছু হওয়া উচিত। শারীরিক ইন্টারফেসের প্যাকেটগুলি 1400-1500 বাইটের ক্রম হিসাবে কিছু হওয়া উচিত।
ক্যাস্পারড

উত্তর:


7

ধন্যবাদ kasperd এর মন্তব্য , আমি শিখেছি যেহেতু এটি শুধুমাত্র প্যাকেট ডাটা চলে আসে যে, SSH বিভিন্ন TCP ওভার বিভিন্ন TCP ভোগা না। আমি এটি সম্পর্কে একটি ব্লগ পোস্ট লিখেছি , তবে সবচেয়ে আকর্ষণীয় বিষয় netstatআউটপুট, প্রমাণ করে যে এসএসএইচ সত্যই স্তর ৩,৪ সংরক্ষণ করে না:

টানেলিংয়ের পরে, সংযুক্ত হওয়ার আগে

backslasher@client$ netstat -nap | grep -P '(ssh|redis)'
...
tcp        0      0 127.0.0.1:20000             0.0.0.0:*                   LISTEN      20879/ssh
tcp        0      0 10.105.16.225:53142         <SERVER IP>:22              ESTABLISHED 20879/ssh
...

backslasher@server$ netstat -nap | grep -P '(ssh|redis)'
...
tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      54328/redis-server
tcp        0      0 <SERVER IP>:22              <CLIENT IP>:53142           ESTABLISHED 53692/sshd
...

টানেলিং এবং সংযোগের পরে

backslasher@client$ netstat -nap | grep -P '(ssh|redis)'
...
tcp        0      0 127.0.0.1:20000             0.0.0.0:*                   LISTEN      20879/ssh
tcp        0      0 127.0.0.1:20000             127.0.0.1:53142             ESTABLISHED 20879/ssh
tcp        0      0 127.0.0.1:53142             127.0.0.1:20000             ESTABLISHED 21692/redis-cli
...

backslasher@server$ netstat -nap | grep -P '(ssh|redis)'
...
tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      54328/redis-server
tcp        0      0 127.0.0.1:6379              127.0.0.1:42680             ESTABLISHED 54328/redis-server
tcp        0      0 127.0.0.1:42680             127.0.0.1:6379              ESTABLISHED 54333/sshd
tcp        0      0 <SERVER IP>:22              <CLIENT IP>:53142           ESTABLISHED 52889/sshd
...

সুতরাং আমি এসএসএইচ টানেলিংটি ব্যবহার করব, যেহেতু মনে হয় যে আমার ওপেনভিপিএনটি ভুলভাবে কনফিগার করা বা কিছুই নয়, কেবল কাজের জন্য সঠিক সরঞ্জাম নয়।


3

এটি আপনি কী অর্জন করতে চাইছেন এবং আপনার অগ্রাধিকারগুলি কী তা নির্ভর করে। ভিপিএন আপনাকে একটি নেটওয়ার্কে এবং এসএসএইচকে একটি মেশিনে সংযুক্ত করে। এনপিপুলেশন সহ ভিপিএন কিছুটা বেশি সুরক্ষিত, যা এসএসএইচ করে না।

এছাড়াও, ভিপিএন সমস্ত ট্র্যাফিক সহজেই এর মধ্য দিয়ে যেতে দেয়, বনাম এসএসএইচ যেখানে আপনাকে অ্যাপ্লিকেশনগুলিকে বাধ্য করতে হবে।

আপনি আদৌ এডি ব্যবহার করতে যাচ্ছেন? কারণ ভিপিএন আপনাকে আরও অনেক স্বাচ্ছন্দ্যের সাথে এটি করতে দেয়।

আমি দ্রুত প্রয়োজনের জন্য এসএসএইচ এবং সমালোচনামূলক অ্যাপ্লিকেশনগুলির জন্য ভিপিএন পছন্দ করি যেখানে আমার অতিরিক্ত সময় ব্যয় করা উচিত।

পরিস্থিতির উপর নির্ভর করে, ভিপিএন আপস করার ক্ষেত্রে আমি এসপিএইচটি একটি ভিপিএন-এ ব্যবহার করেছি। এইভাবে অনুসন্ধানকারী কাউকে এসএসএইচ টানেলিংয়ের মাধ্যমে যেতে হবে।


2
আমি টানেলের উপর দিয়ে আবার চালাচ্ছি, তাই একটি একক বন্দর আমার পক্ষে যথেষ্ট। আমি কেবল এই বিষয়টি দেখে অবাক হয়েছি যে ভিভিপিএন নেটওয়ার্ক ট্র্যাফিক সুরক্ষার জন্য সর্বদা সেরা সমাধান নয়
নিতজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.