Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter

Birkaç İnternet kanalını tek bir kanalda birleştirmek mümkün mü? Bu konuyla ilgili pek çok yanlış anlama ve efsane var; deneyimli ağ mühendisleri bile bunun mümkün olduğunu çoğu zaman bilmiyor. Çoğu durumda, bağlantı birleştirmeye yanlışlıkla NAT düzeyinde dengeleme veya yük devretme adı verilir. Ancak gerçek toplama izin verir tüm İnternet kanalları üzerinden aynı anda tek bir TCP bağlantısı başlatınÖrneğin internet kanallarından herhangi birinin kesintiye uğraması durumunda yayının kesintiye uğramaması için video yayını yapılması.

Video yayınları için pahalı ticari çözümler mevcut ancak bu tür cihazların maliyeti çok fazla. Makalede ücretsiz, açık kaynaklı OpenMPTCPRouter paketinin nasıl yapılandırılacağı açıklanmakta ve kanal toplamayla ilgili popüler efsaneler ele alınmaktadır.

Kanal toplamına ilişkin mitler

Çoklu WAN işlevini destekleyen birçok ev yönlendiricisi vardır. Bazen üreticiler bu kanal toplama adını verirler ki bu tamamen doğru değildir. Birçok ağ uzmanı buna ek olarak buna inanıyor LACP ve L2 seviyesinde toplama, başka kanal toplaması mevcut değildir. Telekom sektöründe çalışan insanlardan bunun genellikle imkansız olduğunu sık sık duydum. Bu nedenle popüler mitleri anlamaya çalışalım.

IP bağlantı düzeyinde dengeleme

Bu, aynı anda birden fazla İnternet kanalını kullanmanın en uygun fiyatlı ve popüler yoludur. Basitleştirmek için, her biri size kendi ağlarından gerçek bir IP adresi veren üç İnternet sağlayıcınız olduğunu varsayalım. Tüm bu sağlayıcılar Çoklu WAN işlevini destekleyen bir yönlendiriciye bağlıdır. Bu, mwan3 paketine sahip OpenWRT, mikrotik, ubiquiti veya başka herhangi bir ev yönlendiricisi olabilir, çünkü böyle bir seçenek artık nadir değildir.

Durumu simüle etmek için sağlayıcıların bize aşağıdaki adresleri verdiğini varsayalım:

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

Yani uzak bir sunucuya bağlanmak example.com Uzak sunucu, sağlayıcıların her biri aracılığıyla üç bağımsız kaynak IP istemcisi görecektir. Dengeleme, yükü kanallara bölmenize ve üçünü de aynı anda kullanmanıza olanak tanır. Basit olması açısından yükü tüm kanallara eşit olarak bölüştürdüğümüzü hayal edelim. Sonuç olarak, bir müşteri üç görsel içeren bir site açtığında, her görseli ayrı bir sağlayıcı aracılığıyla indirir. Site tarafında üç farklı IP'den gelen bağlantılar gibi görünüyor.

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter
Bağlantı düzeyinde dengeleme yapılırken her TCP bağlantısı ayrı bir sağlayıcı üzerinden geçer.

Bu dengeleme modu çoğu zaman kullanıcılar için sorunlara neden olur. Örneğin, birçok site çerezleri ve belirteçleri müşterinin IP adresine sıkı bir şekilde bağlar ve bu adres aniden değişirse istek reddedilir veya müşterinin sitedeki oturumu kapatılır. Bu genellikle müşteri-banka sistemlerinde ve katı kullanıcı oturumu kurallarına sahip diğer sitelerde çoğaltılır. İşte basit bir açıklayıcı örnek: VK.com'daki müzik dosyaları yalnızca bir IP'ye bağlı geçerli bir oturum anahtarıyla kullanılabilir ve bu tür bir dengelemeyi kullanan istemciler, istek, sağlayıcıdan geçmediği için genellikle ses çalmaz. oturum berabere kaldı.

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter
Torrentleri indirirken bağlantı düzeyi dengeleme, tüm kanalların bant genişliğini toplar

Bu dengeleme, birden fazla bağlantı kullanıldığında İnternet kanalının hızının toplamını almanızı sağlar. Örneğin, üç sağlayıcıdan her birinin hızı 100 Megabit ise, torrentleri indirirken 300 Megabit elde edeceğiz. Çünkü bir torrent, tüm sağlayıcılar arasında dağıtılan ve sonuçta kanalın tamamını kullanan birçok bağlantıyı açar.

Tek bir TCP bağlantısının her zaman yalnızca bir sağlayıcı üzerinden geçeceğini anlamak önemlidir. Yani HTTP üzerinden büyük bir dosya indirirsek bu bağlantı sağlayıcılardan biri üzerinden yapılacak, bu sağlayıcıyla bağlantı koparsa indirme de kesilecektir.

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter
Bir bağlantı her zaman yalnızca bir İnternet kanalını kullanır

Bu aynı zamanda video yayınları için de geçerlidir. Bir tür koşullu Twitch'e video akışı yayınlıyorsanız, video akışı tek bir IP bağlantısı içinde yayınlanacağı için IP bağlantıları düzeyinde dengeleme belirli bir fayda sağlamayacaktır. Bu durumda WAN 3 sağlayıcısı paket kaybı veya hızın düşmesi gibi iletişim sorunları yaşamaya başlarsa anında başka bir sağlayıcıya geçiş yapamazsınız. Yayının durdurulması ve yeniden bağlanması gerekecek.

Gerçek kanal toplamı

Gerçek kanal toplama, koşullu bir Twitch'e tek bir bağlantının tüm sağlayıcılar üzerinden aynı anda çalıştırılmasını mümkün kılar; böylece sağlayıcılardan herhangi biri bozulursa bağlantı kesintiye uğramaz. Bu şaşırtıcı derecede zor bir sorundur ve hala optimal bir çözümü yoktur. Pek çok insan bunun mümkün olduğunu bile bilmiyor!

Önceki çizimlerden, koşullu Twitch sunucusunun bizden yalnızca bir kaynak IP adresinden video akışı alabildiğini hatırlıyoruz; bu, hangi sağlayıcıların devre dışı kaldığına ve hangilerinin çalıştığına bakılmaksızın bizim için her zaman sabit olması gerektiği anlamına gelir. Bunu başarmak için tüm bağlantılarımızı sonlandıracak ve bunları tek bir bağlantıda birleştirecek bir toplama sunucusuna ihtiyacımız var.

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter
Toplama sunucusu tüm kanalları tek bir tünelde toplar. Tüm bağlantılar toplama sunucusu adresinden kaynaklanır

Bu şemada tüm sağlayıcılar kullanılır ve bunlardan herhangi birinin devre dışı bırakılması Twitch sunucusuyla iletişim kaybına neden olmaz. Esasen bu, kaputunun altında aynı anda birkaç İnternet kanalının bulunduğu özel bir VPN tünelidir. Böyle bir planın asıl görevi, en yüksek kalitede iletişim kanalını elde etmektir. Sağlayıcılardan biri sorun yaşamaya, paket kaybına, artan gecikmelere başlarsa, bu durum iletişim kalitesini hiçbir şekilde etkilememelidir, çünkü yük otomatik olarak mevcut daha iyi diğer kanallara dağıtılacaktır.

Ticari Çözümler

Bu sorun uzun zamandır canlı etkinlik yayınlayan ve yüksek kaliteli internete erişimi olmayanları rahatsız ediyor. Bu tür görevler için birkaç ticari çözüm vardır; örneğin, Teradek şirketi, içine USB modem paketlerinin takıldığı canavarca yönlendiriciler yapar:

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter
Kanal toplama işlevine sahip video yayınları için yönlendirici

Bu tür cihazlar genellikle HDMI veya SDI aracılığıyla video sinyallerini yakalama özelliğine sahiptir. Yönlendiriciyle birlikte, kanal toplama hizmetine aboneliğin yanı sıra video akışının işlenmesi, kodunun dönüştürülmesi ve daha fazla iletilmesi de satılmaktadır. Bu tür cihazların fiyatı, bir dizi modem ve ayrıca hizmete ayrı bir abonelikle birlikte 2 bin dolardan başlıyor.

Bazen oldukça korkutucu görünüyor:

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter

OpenMPTCPRouter'ı kurma

Protokol MP-TCP (MultiPath TCP), aynı anda birden fazla kanal üzerinden bağlanabilmek için icat edildi. Örneğin, onun iOS'u destekler ve aynı anda Wi-Fi ve hücresel ağ aracılığıyla uzaktaki bir sunucuya bağlanabilir. Bunların iki ayrı TCP bağlantısı olmadığını, iki kanal üzerinden aynı anda kurulan tek bir bağlantı olduğunu anlamak önemlidir. Bunun çalışması için uzak sunucunun da MPTCP'yi desteklemesi gerekir.

OpenMPTCPRouter gerçek kanal özetlemesine olanak tanıyan açık kaynaklı bir yazılım yönlendirici projesidir. Yazarlar projenin alfa sürüm statüsünde olduğunu ancak halihazırda kullanılabildiğini belirtiyor. İki bölümden oluşur - İnternette bulunan bir toplama sunucusu ve birkaç İnternet sağlayıcısının ve istemci cihazlarının kendilerinin bağlı olduğu bir yönlendirici: bilgisayarlar, telefonlar. Özel yönlendirici bir Raspberry Pi, bazı WiFi yönlendiricileri veya normal bir bilgisayar olabilir. Çeşitli platformlar için çok uygun olan hazır montajlar vardır.

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter
OpenMPTCPRouter nasıl çalışır?

Özetleme sunucusu kurma

Toplama sunucusu internette bulunur ve istemci yönlendiricinin tüm kanallarından gelen bağlantıları tek bir kanalda sonlandırır. Bu sunucunun IP adresi, OpenMPTCPRouter aracılığıyla internete erişildiğinde harici adres olacaktır.

Bu görev için Debian 10'da bir VPS sunucusu kullanacağız.

Toplama sunucusu için gereksinimler:

  • MPTCP, OpenVZ sanallaştırmasında çalışmıyor
  • Kendi Linux çekirdeğinizi kurmanız mümkün olmalı

Sunucu tek bir komut yürütülerek dağıtılır. Betik mptcp destekli bir çekirdek ve gerekli tüm paketleri kuracaktır. Ubuntu ve Debian için kurulum komut dosyaları mevcuttur.

wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh

Başarılı bir sunucu kurulumunun sonucu.

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter

Şifreleri kaydediyoruz, istemci yönlendiricisini yapılandırmak ve yeniden başlatmak için onlara ihtiyacımız olacak. Kurulumdan sonra SSH'nin 65222 numaralı portta mevcut olacağını unutmamak önemlidir. Yeniden başlattıktan sonra yeni çekirdekle önyükleme yaptığımızdan emin olmalıyız.

uname -a 
Linux test-server.local 4.19.67-mptcp

Sürüm numarasının yanında mptcp yazısını görüyoruz, bu da çekirdeğin doğru kurulduğu anlamına geliyor.

İstemci yönlendiricisinin kurulması

Üzerinde proje web sitesi Raspberry Pi, Banana Pi, Lynksys yönlendiricileri ve sanal makineler gibi bazı platformlar için hazır yapılar mevcuttur.
Openmptcprouter'ın bu kısmı, OpenWRT ile karşılaşan herkesin aşina olduğu bir arayüz olarak LuCI'yi kullanan OpenWRT'yi temel alır. Dağıtımın ağırlığı yaklaşık 50 MB'tır!

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter

Test tezgahı olarak Raspberry Pi'yi ve farklı operatörlere sahip birkaç USB modemi kullanacağım: MTS ve Megafon. SD karta nasıl resim yazılacağını size söylememe gerek yok sanırım.

Başlangıçta Raspberry Pi'deki Ethernet portu statik IP adresine sahip lan olarak yapılandırılmıştır. 192.168.100.1. Masanın üzerindeki kablolarla uğraşmamak için Raspberry Pi'yi bir WiFi erişim noktasına bağladım ve bilgisayarın WiFi adaptörünü statik bir adrese ayarladım 192.168.100.2. DHCP sunucusu varsayılan olarak etkin değildir, dolayısıyla statik adresler kullanmanız gerekir.

Artık web arayüzüne giriş yapabilirsiniz 192.168.100.1

İlk kez giriş yaptığınızda sistem sizden root şifresi belirlemenizi isteyecek; SSH aynı şifre ile kullanıma sunulacaktır.

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter
LAN ayarlarında istediğiniz alt ağı ayarlayabilir ve DHCP sunucusunu etkinleştirebilirsiniz.

Ayrı bir DHCP sunucusuyla USB Ethernet arayüzleri olarak tanımlanan modemleri kullanıyorum, dolayısıyla bu kurulum gerektiriyordu ek paketler. Prosedür normal OpenWRT'de modem kurulumuyla aynıdır, bu yüzden burada ele almayacağım.

Daha sonra WAN arayüzlerini yapılandırmanız gerekir. Başlangıçta sistem iki sanal arayüz WAN1 ve WAN2 oluşturdu. Onlara fiziksel bir cihaz atanması gerekiyor, benim durumumda bunlar USB modem arayüzlerinin adlarıdır.

Arayüz adlarıyla ilgili karışıklığı önlemek için SSH üzerinden bağlanırken dmesg mesajlarını görüntülemenizi öneririm.

Modemlerimin kendileri yönlendirici görevi gördüğünden ve bir DHCP sunucusuna sahip olduklarından, dahili ağ aralıklarının ayarlarını değiştirmek ve DHCP sunucusunu devre dışı bırakmak zorunda kaldım çünkü başlangıçta her iki modem de aynı ağdan adresler veriyor ve bu bir çakışmaya neden oluyor.

OpenMPTCPRouter, WAN arayüz adreslerinin statik olmasını gerektirir, bu nedenle modemler için alt ağlar oluşturup bunları sistem → openmptcprouter → arayüz ayarları menüsünde yapılandırıyoruz. Burada toplama sunucusunun kurulumu sırasında elde edilen IP adresini ve sunucu anahtarını belirtmeniz gerekir.

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter

Kurulum başarılı olursa durum sayfasında benzer bir resim görünmelidir. Yönlendiricinin toplama sunucusuna ulaşabildiği ve her iki kanalın da normal şekilde çalıştığı görülebilir.

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter

Varsayılan mod shadowsocks + mptcp'dir. Bu, tüm bağlantıları kendi içinde saran bir proxy'dir. Başlangıçta yalnızca TCP'yi işleyecek şekilde yapılandırılmıştır ancak UDP de etkinleştirilebilir.

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter

Durum sayfasında herhangi bir hata yoksa kurulum tamamlanmış sayılabilir.
Bazı sağlayıcılarda mptcp bayrağı trafik yolu boyunca kesildiğinde bir durum ortaya çıkabilir, ardından aşağıdaki hata görünecektir:

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter

Bu durumda MPTCP kullanmadan farklı bir çalışma modu kullanabilirsiniz, bunun hakkında daha fazla bilgi burada.

Sonuç

OpenMPTCPRouter projesi çok ilginç ve önemlidir, çünkü belki de kanal toplama problemine yönelik tek açık kapsamlı çözümdür. Geriye kalan her şey ya sıkı bir şekilde kapalı ve özeldir ya da sıradan bir insanın anlayamayacağı ayrı modüllerdir. Şu anki geliştirme aşamasında, proje hala oldukça kaba, dokümantasyon son derece zayıf, pek çok şey açıklanmıyor. Ama aynı zamanda hala çalışıyor. Umarım gelişmeye devam eder ve kanalları kutudan çıktığı gibi düzgün bir şekilde birleştirebilecek ev tipi yönlendiriciler alırız.

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter

Geliştiricimizi Instagram'da takip edin

Gerçek İnternet Kanalı Özeti - OpenMPTCPRouter

Kaynak: habr.com

Yorum ekle