อินเทอร์เน็ตแบนด์วิธต่ำผ่าน VPN


10

ฉันเพิ่งเสร็จสิ้นการตั้งค่า VPN'ed NAS ด้วย Raspberry Pi รุ่นใหม่ที่ยังไม่ได้ทำการโอเวอร์คล็อกและฉันพบสิ่งที่ฉันไม่สามารถหาคำตอบได้จากที่อื่น

แบนด์วิดท์อินเทอร์เน็ตตามที่กำหนดโดยใช้

wget --output-document = / dev / null http://speedtest.wdc01.softlayer.com/downloads/test500.zip

ช้ากว่าที่ฉันคาดไว้มาก ฉันได้รับประมาณ 1.34 เมกะบิตต่อวินาทีที่ Pi ของฉันผ่านอีเธอร์เน็ตเมื่อฉันเข้าใกล้ 7MBps เมื่ออีเธอร์เน็ตเสียบกับแล็ปท็อปของฉันโดยตรง

ปัญหาเกิดขึ้นกับ OpenVPN แต่ฉันไม่สามารถเข้าใจได้ว่ามันคืออะไร นี่คือวิธีที่ฉันรู้

ฉันเปรียบเทียบอัตราการดาวน์โหลดของ Pi กับ VPN ที่ปิดและเปิด - เป็น 5.03 MBPS เทียบกับ 1.34 MBPS

จากนั้นฉันลองบนแล็ปท็อปของฉัน (ต่อสาย) - มันเป็น 6.9 MBPS (สมบูรณ์แบบ) เทียบกับ 6.7 MBPS (ใกล้สมบูรณ์)

ดังนั้นความผิดไม่ได้อยู่ที่บริการ VPN ของฉัน (PrivateInternetAccess) ซึ่งให้แบนด์วิดท์ลดลง 3% ในแล็ปท็อปของฉัน - แต่ต้องทำอย่างไรกับวิธีที่ OpenVPN ทำงานบน Pi ซึ่งให้แบนด์วิดธ์ลดลง 74%

ความคิดเห็นใด ๆ เกี่ยวกับสาเหตุที่ OpenVPN ใน Raspbian แย่มาก ๆ ?

อัปเดต: การลดลงส่วนใหญ่จาก 6.9MBPS บนแล็ปท็อปที่ไม่มี VPN เป็น 5.03 MBPS บน Pi โดยไม่ต้องใช้ VPN ดูเหมือนว่าจะมาจากความเร็วในการเขียนการ์ด SD ซึ่งฉันตั้งใจจะอยู่ที่ประมาณ 4.9MBPS เป็นการลดลงอย่างมากจาก 5.03 MPBS บน Pi โดยไม่ต้องใช้ VPN เป็น 1.3MBPS ด้วย VPN ที่ต้องอธิบาย

ปรับปรุง 2: เบาะแสเพิ่มเติมจากคำแนะนำจากความคิดเห็น: 1) OpenVPN ใช้ 70% ของ CPU เมื่อมันทำงานและ wget อยู่ในพื้นหลัง 2) บน Pi ฉันได้รับ 1.34 MBPS จากเซิร์ฟเวอร์ VPN US และประมาณ 500- 600 KBPS จากเซิร์ฟเวอร์ VPN ในยุโรปทั้งหมด แต่บนแล็ปท็อปของฉันฉันได้รับ 6.7MBPS จากเซิร์ฟเวอร์ VPN ของสหรัฐอเมริกาและ 6.6MBPS ที่คล้ายกันมากจากเซิร์ฟเวอร์ยุโรปบางรุ่นเช่นเดียวกับในเนเธอร์แลนด์ สิ่งที่ฉันพูดคือระยะทางไปยังเซิร์ฟเวอร์นั้นดูเหมือนว่าจะส่งผลกระทบต่อ Pi อย่างไม่เป็นสัดส่วนมากกว่าแล็ปท็อปของฉัน


อาจเป็นการรวมกันของความเร็วในการเขียนต่ำและค่าใช้จ่าย VPN ฉันไม่เคยชอบที่จะใช้ VPN เพราะมันช้าผ่านอินเทอร์เน็ตและ SSH tunneling นั้นเร็วที่สุดเสมอ มีตัวเลือกสำหรับเปิดใช้งานการบีบอัดใน OpenVPN หรือไม่ อาจเป็นไปได้ว่าอาจมีการเข้ารหัสทันทีทำให้เกิดปัญหา มันเป็นคำถามที่ดี ฉันยังสนใจในคำตอบที่เกี่ยวข้องกับ Pi
Piotr Kula

ดูการโหลด CPU ด้วยtopขณะทดสอบซึ่งควรพูดอะไรบางอย่างเกี่ยวกับค่าใช้จ่ายในการเข้ารหัส
Frepa

@ ข้อเสนอแนะที่ดีเยี่ยม! เมื่อเปิดใช้งาน VPN แล้ว OpenVPN จะใช้ CPU 70% คุณคิดว่านี่เป็นสิ่งที่ทำให้อัตราการถ่ายโอนแตกต่างกันมากหรือไม่?
dbrane

@dbrane ดูเหมือนว่า CPU เป็นปัจจัย จำกัด ส่วนที่เหลืออีก 30% CPU-time จะไปไหน ไม่ได้ใช้งาน? จากการอัพเดต 2 ดูเหมือนว่าเวลาแฝงของเครือข่าย (เช่นไม่เพียง แต่ปริมาณงาน) มีความสำคัญต่อประสิทธิภาพ บางทีอาจมีบางสิ่งเขย่ามือใน VPN
Frepa

@Frepa เวลา CPU ส่วนใหญ่ที่เหลือถูกใช้โดย wget เองซึ่งเป็นคำสั่งที่ฉันใช้เพื่อทดสอบอัตราการถ่ายโอน ทุกอย่างอื่นในรายการใช้น้อยกว่า 1% ฉันใช้ใบรับรอง CA กับ VPN หากข้อมูลนั้นช่วยได้ บางทีฉันควรลองโอเวอร์คล็อกและดูว่ามันช่วยได้ไหม?
dbrane

คำตอบ:


4

บนอุปกรณ์ที่ใช้พลังงานต่ำอย่างน้อยเมื่อใช้ SSH ฉันมีประสบการณ์ที่ดีในการใช้รหัส RC4 เพื่อปรับปรุงประสิทธิภาพเนื่องจากมันเร็วกว่าการคำนวณดังนั้นจึงใช้ CPU น้อยลงสำหรับแบนด์วิดท์ / อนุญาตแบนด์วิดท์สูงขึ้นสำหรับการใช้ CPU เดียวกัน คู่มือนี้จะอธิบายวิธีเปลี่ยนรหัสไปเป็นรหัสที่รองรับโดย OpenSSL - like RC4:

http://openvpn.net/index.php/open-source/documentation/howto.html#security

โปรดทราบว่า RC4 ไม่ใช่อัลกอริทึมที่ปลอดภัยที่สุดที่มีอยู่ แต่ SSL ยังคงใช้ในวิธีที่ปลอดภัย (ซึ่งมีอยู่ตามที่อธิบายไว้ที่นี่: http://en.wikipedia.org/wiki/RC4 ) อัปเดต : นี่เป็นความจริงน้อยกว่าในอดีต ความไว้วางใจในความปลอดภัยของ RC4 จะลดมากยิ่งขึ้นเป็นเทคนิคในการทำลายมันล่วงหน้าและ 2013 ได้ให้เราต่าง ๆความคืบหน้าในการทำลาย RC4และการเก็งกำไรเกี่ยวกับเอ็นเอสเอที่มีการจัดการ การอ้างถึง Wikipedia:

ในปี 2013 มีการคาดเดาว่าหน่วยงานเข้ารหัสลับของรัฐบางแห่งอาจมีความสามารถในการทำลาย RC4 แม้ว่าจะใช้ในโปรโตคอล TLS [3] Microsoft แนะนำให้ปิดการใช้งาน RC4 หากเป็นไปได้ [4] [5]

ดังนั้นฉันยังสามารถแนะนำ RC4 ได้หรือไม่ โดยทั่วไปไม่จริง แน่นอนว่าคุณต้องแลกเปลี่ยนความปลอดภัยและประสิทธิภาพและบางทีคุณไม่ต้องการความปลอดภัยมากมาย - การเข้ารหัสใด ๆ แม้แต่ RC4 จะยังคงชะลอความพยายามเฝ้าระวังของระบบไล่ยุงเช่นเดียวกับ NSA แต่ฉันจะต้องระมัดระวังกับข้อมูลที่ละเอียดอ่อนจริง ๆ และเปลี่ยนอัลกอริทึมเป็นอย่างอื่นถ้าเป็นไปได้ (ฉันได้เริ่มสร้างมาตรฐาน Raspberry เพื่อหาทางเลือกที่รวดเร็ว)

อัปเดต 2 : บนราสเบอรี่ (โอเวอร์คล็อก) ของฉัน AES ไม่ช้ามากหากคุณมี CPU เพียงพอ ตารางด้านล่างแสดงให้เห็นว่า RC4 สามารถเข้ารหัสได้ ~ 57MB / s ในขณะที่ AES-128-CBC สามารถเข้ารหัสได้ ~ 21.4MB / s แน่นอนว่านี่ไม่ได้อธิบายว่าทำไมคุณถึงได้รับประสิทธิภาพที่แย่เช่นนี้ - แต่บางทีคุณอาจใช้ Cypher ที่ช้ากว่าเดิมหรือบางทีอาจจะมีความไร้ประสิทธิภาพอื่น ๆ ที่สามารถปรับปรุงได้

$ openssl speed rc4 aes
[...]
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
rc4              45281.36k    54782.67k    57196.80k    57391.48k    57570.77k
aes-128 cbc      17904.15k    20469.38k    21133.95k    21449.62k    21403.72k

การตั้งค่าโอเวอร์คล็อกจาก/boot/config.txt:

arm_freq=950

# for more options see http://elinux.org/RPi_config.txt
core_freq=250
sdram_freq=450
over_voltage=6

1
การเข้ารหัสชนิดใด ๆ (ssh / vpn) จะทำให้การใช้งาน CPU เพิ่มเติมซึ่งอาจเป็นคอขวดของคุณ
earthmeLon

1
ประเด็นของฉันคือ RC4 ใช้ CPU น้อยกว่า ciphers อื่นดังนั้นจึงอาจดีในสถานการณ์นี้ แต่ฉันไม่แน่ใจว่าคุณเห็นด้วยหรือไม่เห็นด้วยกับคำตอบของฉัน
Blaisorblade

@earthmeLon: ฉันได้อัปเดตคำตอบเพื่อระบุจุดของฉันอย่างชัดเจนเนื่องจากยังไม่ชัดเจน ไม่แน่ใจว่าที่อยู่ความคิดเห็นของคุณ
Blaisorblade

อย่างแน่นอน ฉันรู้สึกซาบซึ้งมากที่รู้ว่า RC4 เป็นวิธีแก้ปัญหาที่ดีโดยมีค่าใช้จ่ายน้อยที่สุดเนื่องจากการใช้งาน SSH2 ขอบคุณสำหรับข้อมูล: D น่าเสียดายที่คุณไม่เห็นฉันให้การโหวตขึ้นมาใช่มั้ย
earthmeLon

แน่นอน - ฉันเพิ่งสังเกตเห็นในภายหลังว่าความคิดเห็นของคุณใกล้เคียงกับเวลาที่มี upvote ขอบคุณ!
Blaisorblade
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.