Bant genişliğini Linux'taki bir NIC ile sınırlamanın bir yolu var mı? Keyfi olarak yavaş bir bağlantıyı simüle edebilmek istiyorum.
Bant genişliğini Linux'taki bir NIC ile sınırlamanın bir yolu var mı? Keyfi olarak yavaş bir bağlantıyı simüle edebilmek istiyorum.
Yanıtlar:
Netem iproute tarafından kontrol çekirdek modülü.
Netem'i çekirdek ile derlemeniz gerekir:
Networking -->
Networking Options -->
QoS and/or fair queuing -->
Network emulator
Netem modülü yüklendikten sonra, iproute's tc size aşağıdakileri sağlar:
tc qdisc add dev tap0 root netem delay 50ms loss 50%
(% 50 paket kaybı, 50 ms ekstra gecikme)
sch_netem
. Genellikle elle yüklemeye gerek yoktur, gerektiğinde otomatik olarak yüklenir.
rate
seçeneği: tc qdisc add dev lo root handle 1:0 netem delay 10ms rate 1mbit limit 1000
. Gibi bazı aygıtlar için unutmayın lo
(localhost'u erişmek için), siz de kuyruk uzunluğunu ayarlamak gerekir: ifconfig lo txqueuelen 1000
. Bakınız serverfault.com/a/394949/76090
Müşteri tarafı değil mi?
Damlama ne istersen yapmalısın. Ubuntu kullanıyorsanız (veya Debian, sanırım), onu yükleyebilir sudo apt-get install trickle
ve sonra çalıştırabilirsiniz. trickle -s -d 10 -u 10 firefox
(ya da çok uzun zamandır kullanmadım) firefox'u çalıştıracak, indirmesini sınırlayacak ve saniyede 10 kilobayta kadar yükleme hızını kaldıracaktı.
Kutumun ubuntu'da 'wondershaper' adı verilen bir araç kullanarak ağdaki tüm bant genişliğini yemesini önlemenin bir yolunu buldum. Umarım diğer linux destrolarında da vardır. Linux ana bilgisayarımın aşağıdaki komutu kullanarak ne tüketebileceğini bant genişliğini sınırlandırabilirim.
sudo wondershaper eth0 1000 200
Bu, indirme sınırını 1000 kilobite ile sınırlar ve 200 kilobite yükseltir. Daha fazla bilgi / seçenek için harika adamın man sayfalarına bakın.
wondershaper
Debian'da bir paket .
sudo wondershaper clear eth0
NIST, NistNet adında bir ağ simülatörü yapar.
http://snad.ncsl.nist.gov/nistnet/ (bağlantı ölü görünüyor)
http://cs.ecs.baylor.edu/~donahoo/tools/nistnet/
NistNet, seçtiğiniz bir haberleşme bağlantısını taklit eden bir yönlendirici yapmanızı sağlar.
En basit işlem için, iki ağ arasında iki NIC bulunan bir kutuya sahipsiniz.
Örneğin, bir uydu bağlantısı üzerinden çalışması gereken bir uygulamam vardı.
Veri, BÜYÜK gecikme süresine sahip 2Mbps'lik bir bağlantı üzerinden geçebilir. Kontrol aynı gecikme ile bir 128 kbps bağlantı üzerinden gitmek zorunda kaldı.
NistNet, hepsini 128 kb / sn hızında çalışmasına yardımcı oldu.
NistNet'i kullanarak sadece bant genişliğini değil aynı zamanda gecikmeyi de taklit edebiliyorum ve aynı zamanda yoğun ya da güvenilmez bir bağlantıyı simüle ederek sizin için paketleri de bırakacağım.
İsteğe bağlı bir bağlantıyı simüle etmek istiyorsanız, sadece bant genişliğini sınırlamayın, gecikmeyi de artırın.
Paketleri de parçalamayı unutmayın. Güzel küçük MTU'ları sahte bağlantıda ayarlayabilirsiniz.
IIRC paket jitter eklenmesi, sipariş dışı paketlerle başa çıkıp çıkamayacağınızı öğrenmenize yardımcı olur.
Ben şahsen kullandım wondershaper ADSL bağlantısının en iyi şekilde yararlanmak - bu karşıt kullanım durumu için yazılmıştır olsa bunun için geçmişte.
Burada belirtilen diğerlerini denemek zorundayım.
Bant genişliğini sınırlamak için yerel olarak kurulmuş kalamar proxy'sini kullanabilirsiniz, örneğin yavaş bağlantıda bir web sayfasını test etmek için:
Kalamar proxy'yi dağıtımınızdan yükleyin - Fedora'ma bu kadar kolay oldu yum install squid
.
Aşağıdakileri ekleyin /etc/squid/squid.conf
:
delay_pools 1
delay_class 1 1
delay_access 1 allow all
delay_parameters 1 16000/16000
Bu, bant genişliğini yaklaşık 128 kbps (16000 Bps) ile sınırlayacaktır.
Kalamar başla :/etc/init.d/squid start
Tarayıcınızı proxy sunucu localhost
portunu kullanacak şekilde yapılandırın 3128
.
Henüz hiç kimse söz ettirmiştir ip_relay Debian depolarındaki "iprelay" adlı,. Intercepting çağrıları kandırmanın yaptığı gibi arama yapmak yerine bir TCP proxy'si olarak çalışır ve proxy kullanabilen (örneğin bir web tarayıcısı) veya kullanıcı tanımlı bir hedef portu (telnet, ssh, ftp, curl, ve diğerleri cetera ).
Kurulumu biraz daha zor, ancak genellikle damlamanın yapamadığı durumlarda çalışıyor.