20Mbps WAN terbatas pada 10Mbps melalui IPSec Tunnel

11

Kami baru-baru ini meningkatkan situs jarak jauh dari serat 10 / 10Mbps menjadi 20 / 20Mbps link serat (itu adalah serat ke ruang bawah tanah, kemudian VDSL dari ruang bawah tanah ke kantor, sekitar 30 meter). Ada salinan file besar (multi-gig) biasa antara situs ini dan situs pusat, jadi teorinya adalah bahwa meningkatkan tautan ke 20/20 akan mengurangi separuh waktu transfer.

Untuk transfer untuk menyalin file (misalnya menggunakan robocopyuntuk menyalin file di kedua arah, atau replikasi Veeam Backup and Recovery) mereka dibatasi pada 10Mbps.

Sebelum meningkatkan:

masukkan deskripsi gambar di sini

Setelah peningkatan ( robocopy):

masukkan deskripsi gambar di sini

Hampir identik (abaikan perbedaan lamanya waktu transfer).

Transfer sedang dilakukan melalui terowongan IPSec antara Cisco ASA5520 dan Mikrotik RB2011UiAS-RM .

Pikiran pertama:

  • QoS - tidak. Ada aturan QoS tetapi tidak ada yang mempengaruhi aliran ini. Saya menonaktifkan semua aturan selama beberapa menit untuk memeriksa, dan tidak ada perubahan
  • Batas yang ditentukan perangkat lunak. Sebagian besar lalu lintas ini adalah pengiriman Veeam Backup and Recovery di luar situs, tetapi tidak ada batasan yang ditentukan di sana. Selain itu, saya hanya melakukan straight robocopydan melihat statistik yang persis sama.
  • Perangkat keras tidak mampu. Nah, angka kinerja yang diterbitkan 5520 adalah 225Mbps data 3DES, dan Mikrotik tidak mempublikasikan angka tetapi akan lebih dari 10Mbps. Mikrotik memiliki sekitar 25% -33% penggunaan CPU saat melakukan tes transfer ini. (Juga, melakukan transfer HTTP melalui terowongan IPSec mencapai hampir 20Mbps)
  • Latensi dikombinasikan dengan ukuran Jendela TCP? Yah itu latency 15ms antara situs, jadi bahkan kasus terburuk ukuran jendela 32KB 32*0.015adalah maksimum 2,1 MB / detik. Selain itu, beberapa transfer konkuren masih hanya menambahkan hingga 10Mbps, yang tidak mendukung teori ini
  • Mungkin sumber dan tujuannya sama-sama sial? Yah sumbernya bisa mendorong pembacaan berurutan 1.6GB / detik berkelanjutan, jadi bukan itu. Tujuan dapat melakukan 200 MB / detik berkelanjutan menulis berurutan, jadi bukan itu juga.

Ini adalah situasi yang sangat aneh. Saya belum pernah melihat sesuatu yang nyata seperti ini sebelumnya.

Di mana lagi saya bisa melihat?


Pada penyelidikan lebih lanjut, saya yakin menunjuk ke terowongan IPSec sebagai masalahnya. Saya membuat contoh yang dibuat dan melakukan beberapa tes langsung antara dua alamat IP publik di situs, dan kemudian melakukan tes yang sama persis menggunakan alamat IP internal, dan saya dapat mereplikasi 20Mbps melalui internet yang tidak terenkripsi, dan hanya 10Mbps pada IPSec sisi.


Versi sebelumnya memiliki herring merah tentang HTTP. Lupakan ini, ini adalah mekanisme pengujian yang salah.

Sesuai saran dari Xeon dan didengungkan oleh ISP saya ketika saya meminta dukungan mereka, saya telah menyiapkan aturan mangle untuk menjatuhkan MSS untuk data IPSec ke 1422 - berdasarkan perhitungan ini :

 1422   +  20 + 4 +  4 +   16  +   0     +      1    +     1     +   12
PAYLOAD  IPSEC SPI ESP  ESP-AES ESP (Pad)  Pad Length Next Header ESP-SHA

Untuk masuk ke dalam ISP 1480 MTU. Tetapi sayangnya ini tidak membuat perbedaan yang efektif.


Setelah membandingkan tangkapan wireshark, sesi TCP menegosiasikan MSS 1380 di kedua ujungnya sekarang (setelah men-tweak beberapa hal dan menambahkan buffer jika matematika saya payah. Petunjuk: mungkin memang demikian). 1380 juga merupakan MSS default ASA, jadi mungkin saja ini sudah dinegosiasikan.


Saya melihat beberapa data aneh di alat di dalam Mikrotik yang saya gunakan untuk mengukur lalu lintas. Bisa jadi bukan apa-apa. Saya tidak melihat ini sebelumnya karena saya menggunakan permintaan difilter, dan saya hanya melihat ini ketika saya menghapus filter.

Mark Henderson
sumber
Seperti apa bentuk MTU?
xeon
Poin yang bagus. Ini 9000 di kedua switch di kedua ujung, 1500 di server dan klien sendiri, dan 1480 di bagian VDSL dari tautan. Itulah satu-satunya bagian dari tautan yang saya kontrol.
Mark Henderson
ping -t -f -l 1500 (turun 20 setelah gagal) tujuan, setelah Anda sekitar 1300 saya yakin itu akan berhasil, ini harus menunjukkan Anda harus menyesuaikan MTU pada terowongan ASs / Mikrotik IPsec atau Anda mungkin dapat mengaturnya sehingga tidak menjatuhkan fragmen ke ukuran besar.
xeon
1394adalah MTU terbesar yang bisa saya lalui.
Mark Henderson
Data Anda sedang terfragmentasi, jadi mengurangi MTU di terowongan ke 1350-1380 akan membantu meningkatkan throughput. Overhead IPsec adalah sekitar 84 byte (tergantung pada enkapsulasi Anda dll) jadi 1480 - 84 = 1396, dekat dengan maks Anda yang Anda lihat.
xeon

Jawaban:

3

Meskipun CPU adalah hal ketiga yang saya periksa, dan saya menulis ini:

Mikrotik memiliki sekitar 25% -33% penggunaan CPU saat melakukan tes transfer ini

Yang dikonfirmasi oleh grafik CPU

masukkan deskripsi gambar di sini

Saya sudah memastikannya dengan sumber daya eksternal (yaitu banyak forum dan blog pendukung lainnya ) bahwa sebagian besar router Mikrotik tidak dapat mendorong lebih dari 11Mbps lalu lintas IPSec dengan enkripsi 3DES atau AES, kecuali jika Anda mendapatkan model yang memiliki pembongkaran enkripsi perangkat keras .

Jadi sepertinya ini hanyalah batasan perangkat keras. Seharusnya saya menangkapnya lebih awal, tetapi untuk beberapa alasan Mikrotik tidak menunjukkan kepada saya bahwa itu sedang terikat CPU.

Aku pergi berbelanja.

Mark Henderson
sumber
Saya akan tertarik untuk mengetahui batasan spesifik yang memberlakukan plafon ini untuk lalu lintas IPSec. Apakah ada sumber eksternal Anda yang menjelaskannya secara lebih mendalam?
Blacklight
Sayangnya tidak. Saya menemukan beberapa utas di forum Mikrotik di mana 11Mbps dilemparkan sebagai maksimum untuk router ini (dan sepertinya saya telah mengkonfirmasi ini di sini). Blog yang saya tautkan ke orang itu menjalankan tesnya dan mendapatkan sekitar 1Mbps lalu lintas, tetapi pada router bertenaga jauh lebih rendah. Milik saya harus sekitar 6-10x lebih kuat dan saya tampaknya mendapatkan 6-10x jumlah lalu lintas IPSec, yang semuanya cocok. Itu tidak terlihat seperti masalah terikat CPU, atau masalah terikat IRQ, atau masalah terikat memori. Saya tidak tahu apa yang sebenarnya terjadi di sini.
Mark Henderson
2

Saya dapat mengkonfirmasi bahwa pelakunya adalah CPU. Di sini saya membandingkan RB750GL Mikrotik dan saya mengukur 12 Mb / s dengan lalu lintas AES-128 (dan hanya 6,0 Mb / s dengan 3DES).

Hasil Anda tampaknya sangat sejalan dengan apa yang direkam oleh saya.

shodanshok
sumber
Sepertinya tambahan kecepatan 200Mhz antara 750 dan 2011 belum membuat perbedaan pada kecepatan IPSec. Saya berharap Mikrotik akan menerbitkan angka-angka ini di suatu tempat.
Mark Henderson