Ipfw sebességkorlátozó internet (2. rész)

Az IPFW: Internet sebességkorlátozás cikk első részében leírtam a DUMMYNET hálózatban lévő csatornák és szálak építésének alapjait. Itt az ideje, hogy egy konkrét példát vegyünk egy kis hálózatba, ahol minden felhasználó egyenlő arányban osztozik egy kommunikációs csatornán.

DSL-kapcsolatunk van, mert a csatorna aszinkron, a feltöltési sebesség 5 Mbit / s, a feltöltési sebesség 512 kbit / s.

Az első dolog, mi kell hozzá támogatást DUMMYNET a lényege a rendszernek, ugyanakkor a nukleáris NAT és tűzfal (úgy gondolja, hogy az átjáró, ezek a lehetőségek van szükség, különben az átjáró erre kiderül):

opciók IPFIREWALL
opciók IPFIREWALL_VERBOSE
opciók IPFIREWALL_VERBOSE_LIMIT = 100
opciók IPFIREWALL_FORWARD
opciók IPFIREWALL_DEFAULT_TO_ACCEPT
opciók IPFIREWALL_NAT
opciók DUMMYNET
opciók HZ = 1000

Részletezd, hogyan gyűjtsd össze a rendszermagot, nem fogok - egy blogban már írták, és a hálózat nem probléma. Menjünk a beállításhoz. /etc/rc.firewall A szabályokat a tűzfal konfigurációjához adjuk hozzá:

$ pipe 1 config bw 5Mbit / s
$ pipe 11 config bw 512Kbit / s
$ sor 1 konfigurációs csõ 1 maszk dst-ip 0xffffffff
$ sor 2 konfigurációs csô 11 maszk src-ip 0xffffffff
$ add sor véletlen sorrendben 1 ip-től 192.168.1.0/24-ig
$ add sor 2 ip-et a 192.168.1.0/24-ből bármelyikhez

Lássuk, mi van itt írva. Két csövet hoz létre: 1 - 5 Mbit / s cső és 11 - 512Kbit / s cső:

$ pipe 1 config bw 5Mbit / s
$ pipe 11 config bw 512Kbit / s

Fontos és lényeges pontot kell figyelembe venni a csővezeték sebességének meghatározásakor. Meg kell felelnie a csatorna valós sávszélességének, mert ez közvetlenül meghatározza a teljes forgalomelválasztó rendszer helyes működését.

Például a szolgáltató 6 Mbit / s sebességet jelentett be, de a cső megfelelő működéséhez 5 Mbit / s, tk. ez inkább összhangban van a csatorna aktuális sebességével. Ha a csatorna nagyobb sebességet biztosít, az egész szétválasztó rendszer megszűnik.

Minden egyes cső sorhoz létrejön:

$ sor 1 konfigurációs csõ 1 maszk dst-ip 0xffffffff
$ sor 2 konfigurációs csô 11 maszk src-ip 0xffffffff

Mivel a feladat a egyenletes eloszlását internetes csatorna a felhasználók között, létre kell hoznia egy sorban számának megfelelő ugyanezek a felhasználók, mind a bejövő és a kimenő forgalmat. Nyilvánvaló, hogy manuálisan, enyhén szólva, unalmas. Ezért egyetlen csomópontot hozunk létre minden csatorna maszkjával, ezáltal egyszerűsítve a feladatot magunk számára.

maszk az az érték, amellyel a sorok megosztottak:

Továbbra is futtatni kell a forgalmat ezeken a sorokban:

$ add sor véletlen sorrendben 1 ip-től 192.168.1.0/24-ig
$ add sor 2 ip-et a 192.168.1.0/24-ből bármelyikhez

# ipfw cső mutat 00001: 5.000 Mbit / s 0 ms tört 0
q131073 50 sl. 0 folyamok (1 vödör) menet 65537 tömeg 0 lmax 0 pri 0 cseppentő
sched 65537 típusú FIFO zászlók 0x0 0 vödör 0 aktív
00011: 512 000 Kbit / s 0 ms tört 0
q131083 50 sl. 0 folyamok (1 vödör) menet 65547 súly 0 lmax 0 pri 0 droptail
sched 65547 típusú FIFO zászlók 0x0 0 vödör 0 aktív

Ez a parancs nagyban segíthet a szabályok hibakeresésénél. Új IPFW szabályok tesztelése és hozzáadása során nem rossz ötlet a régi szabályok tisztítására:

# ipfw -f flush # ipfw -f cső flush # ipfw -f sorban flush

Ha a tűzfal (ha nincs nyitva), meg kell rendelni egy változó sysctl - net.inet.ip.fw.one_pass 0 (ez az alapértelmezett „1”). Erre azért van szükség, hogy a csomagok ne "esnek" a csövön a tűzfalról (mint a felbontási szabályon).

Megváltoztatni nem vész el újraindítás lista változó net.inet.ip.fw.one_pass /etc/sysctl.conf állományba.

Ui Csak egy példát adtam a DUMMYNET internetes sebességelosztásra. Természetesen fejlettebb konfigurációkat is létrehozhat - rögzített csatornákat rendelhet egy adott sebességhez a kiemelt feladatokhoz, egyedi protokollokhoz stb.

Ha a cikket hasznosnak tartja,
ne lusta, hogy kedveli, és ossza meg barátaival.