joi, 13 august 2009

SAS RAID controllers for VMWare ESXi

Entry level SAS/SATA RAID controllers for a small server or a fast workstation
This list contains the entry-level/value SAS/SATA RAID controllers with internal ports, as listed by VMWare I/O compatibility tool on 2009-08-13. If you use or intend to use a controller with external ports, or a controller from other vendors (HP, DELL, fujitsu, IBM etc) do a check on VMWare web site, I haven't listed here all the SAS/SATA RAID controllers. I need to have this nicely formatted, so I can find easy where to choose from if i need a SAS/SATA controller for a small server, or a workstation, since most controllers are compatible with Windows too. For Windows the list could be much longer, since not all SAS RAID controllers are tested by VMWare, I only put here the ones that may be useful for a VMWare ESXi server running on a DIY platform. There may be many other SAS/RAID controllers usable with VMWare, but these listed below are definitely usable for VMFS volumes.
Adaptec Entry level / value SAS/SATA RAID Controllers compatible with VMWare ESX
  • Adaptec RAID 2405: Entry level SAS/RAID controller, 4 internal ports, low profile form factor, 800 MHz processor, PCI Express x8. Supports RAID levels 0, 1, 10, 128 MB DDR2 cache memory, up to 128 SAS or SATA drives using SAS expanders. Supports ESX / ESXi 4.0. Price: ~ $270 (US)
  • Adaptec RAID 3405: Value line SAS/RAID controller, 4 internal ports, Low profile form factor, Intel 80333 500 MHz processor, PCI Express x4 bus interface. Supports RAID levels 0, 1, 1E, 5, 5EE, 6, 10, 50, 60, JBOD, using 128 MB cache memory. Supports up to 128 SATA or SAS drives using SAS expanders, optional battery backup. Supports ESX/ESXi 4. Price: ~ $400 (US)
  • Adaptec RAID 3805: Value line SAS/RAID controller, 8 internal ports, Low profile form factor, Intel 80333 500 MHz processor, PCI Express x4 bus interface. Supports RAID levels 0, 1, 1E, 5, 5EE, 6, 10, 50, 60, JBOD, using 128 or 256 MB cache memory. Supports up to 128 SATA or SAS drives using SAS expanders, optional battery backup. Supports ESX/ESXi 4. Price: ~ $575 (US)
  • Adaptec RAID 31205: Value line SAS/RAID controller, 12 internal ports, half-length/full-height form factor, Intel 80333 800 MHz processor, PCI Express x8 bus interface. Supports RAID levels 0, 1, 1E, 5, 5EE, 6, 10, 50, 60, JBOD, 256MB ECC cache, up to 128 SATA or SAS devices using SAS expanders, optional battery backup. Price: ~ $795 (US)
  • Adaptec RAID 31605: Value line SAS/RAID controller, 16 internal ports, half-length/full-height form factor, Intel 80333 800 MHz processor, PCI Express x8 bus interface. Supports RAID levels 0, 1, 1E, 5, 5EE, 6, 10, 50, 60, JBOD, 256MB ECC cache, up to 128 SATA or SAS devices using SAS expanders, optional battery backup. Price: ~ $995 (US)
Intel Entry level / value SAS/SATA RAID Controllers compatible with VMWare ESX
  • Intel® RAID Controller SRCSAS144E: Mid-range (Mainstream) PCI-E SAS controller, PCI Express x4 bus interface, 4 internal ports, 4 external ports, Low profile PCI: 7.71" x 2.535" form factor, Intel IOP 80333 processor at 500 MHz, LSI 1068 3.0 GB/s SAS/SATA IO controller, supports up to 32 devices via expanders, 128 MB embedded memory, audible alarm. Price: $549 at NewEgg, without cables.
  • Intel® RAID Controller SRCSASRB: Mid-range (Mainstream) PCI-E SAS controller, Low profile, extended half-length (7.75" x 2.525") form factor, PCI Express x4 bus intreface, 256 MB ECC DDR2 cache memory, LSI1078 SAS ROC (RAID on Chip) at 500 MHz and dual-independent DMA controllers. Supports RAID Levels 0, 1, 5 and 6, 10, 60, 60, online capacity expansion, enclosure management, SMART. Supports up to 32 devices, through two SFF8087 mini-SAS 4i internal connectors. It uses Intel® Smart Battery AXXRSBBU4. Price: ~ $375.
  • Intel® RAID Controller SASWT4I is a PCI-E SAS Controller, with 4 internal ports. It is built around LSI1064E chip, a well-known chip used by many server boards. It is able to use RAID levels 0,1,1E,10E. According to Intel's documentation, this controller is verified to work with ESX3 and ESXi3.
LSI Entry level / value SAS/SATA RAID Controllers compatible with VMWare ESX
  • LSI MegaRAID SAS 8344 ELP SAS RAID Adapter: Mid-range (Mainstream) PCI-E SAS controller, PCI Express x4 bus interface, low profile form factor, 4 internal ports, 4 external ports, supports up to 32 devices via expanders, RAID levels 0, 1, 5, 10, 50, max. 32 drives (4 per port using expanders), 128 MB embedded cache memory, audible alarm. Price: unknown. This controller looks identically to Intel RAID Controller SRCSAS144E.
  • LSI MegaRAID SAS 8708ELP: Value line eight-port PCI Express SAS Controller, low profile form factor, PCI Express x4, LSI SAS 1078 RAID on Chip (ROC) (500 MHz power-pc processor, hardware RAID 5 & 6 parity engines), 129 MB DDRII cache, optional battery backup unit, RAID levels 0, 1, 5, 6, 10, 50, 60, auto-resume (rebuild, reconstruction), online capacity expansion, online RAID level migration, single controller multipath, I/O load balancing, two Mini-SAS SFF-8078 x4 connectors.

HP SAS/SATA RAID controllers compatible with VMWare ESX

  • HP SmartArray E200. This is a 8-port SAS/SATA RAID controller with PCI Express x4 bus interface. Form factor: SmartArray E200/64MB: full height PCI Express long card. RAID levels supported: 0,1,0+1. RAID 5 is available with 128MB Battery-Backed Write Cache (BBWC) upgrade option. It seems that HP prefers to put reliability first with this controller, because the controller disables a SATA hard disk drive's write cache, making it unable to write faster than 11 MB/sec at default settings. Fortunately, drive's write cache can be re-enabled by HP Array management tools. Yes... these tools may require a running operating system with HP smart Array tools installed (ESXi may not be suited for this task), but there is a solution. A second note regarding this card: it is a VERY long card (more than 30 cm), and it may require hard disk drive relocation or a new case, if not used in a system with E-ATX motherboard/case. I can confirm that it fits into Antec Sonata III 500, if used with a dual PCI-Express x16 motherboard, like Gigabyte EP45-UD3P, mounted on the second PCI-Express x16 slot.

IBM SAS/RAID controllers compatible with VMWare ESX
  • IBM ServeRAID-BR10il SAS/SATA Controller v2 is a small form factor (MD2) controller built around LSI 1064E, PCI Express x4 bus interface and 2MB flash memory. RAID levels supported: 0,1, 1E. Stripe size is fixed, 64KB. The drives can be attached through an SFF 8087 mini-SAS connector, only internal drives, up to 14 disks.This controller does not support more than 2 logical volumes or SAS / SATA drive mixing.
You can check my Amazon Associates Store for availability and pricing.

There are some losses when using ESXi and some RAID controllers: it's possible to loose the advantages of using RAID configuration and monitoring tools like 'Adaptec Storage Manager', so you must check your arrays by other means.

marți, 14 iulie 2009

Instanțe apache 2 multiple pe FreeBSD

Mi s-a întâmplat de câteva ori să am nevoie să rulez mai multe instanțe de server apache pe un server. Deși metoda folosirii virtualhost este adesea suficientă, unicitatea anumitor directive din fișierul de configurare httpd.conf face necesară rularea de instanțe multiple.
Una dintre metodele de a rula mai multe servere apache concomitent este folosirea conceptului FreeBSD 'jail', care conferă o multitudine de avantaje, cum ar fi posibilitatea de a instala doar extensiile php strict necesare respectivei instanțe și izolarea mai bună față de server, dar punerea pe picioare a unui jail poate dura destul de mult.

O variantă alternativă este folosirea de profile de instanță apache distincte, care partajează același set de librării și extensii php, însă folosind fișiere de configurare diferite, lucru facilitat chiar de scriptul de pornire a serverului instalat de pachetul apache22. Pentru fiecare profil configurat, urmează a se pune în execuție câte un proces apache, cu setări specifice.
Astfel, în fișierul global de configurare a sistemului, /etc/rc.conf, directivele referitoare la apache22 se extind față de directivele uzuale:
# directive apache22 clasice, comune
apache22_enable="YES"
apache22_http_accept_load="YES"
apache22_http_accept_enable="YES"

# Directive apache22 care permit folosirea de profile
apache22_profiles="default p1"
apache22_default_enable="YES"
apache22_default_http_accept_enable="YES"
apache22_default_configfile="/usr/local/etc/apache22/httpd.conf"
apache22_p1_enable="YES"
apache22_p1_http_accept_enable="YES"
apache22_p1_configfile="/usr/local/etc/apache22/httpd-p1.conf"

Acum voi detalia semnificația directivelor suplimentare
apache22_profiles="p1 p2 p3"
indică scriptului /usr/local/etc/rc.d/apache22 să folosească instanțe multiple, instanțe identificate prin lista separată cu spații. Pentru fiecare profil, fișierul /etc/rc.conf va trebui să includă câte un set de directive de forma "apache22_profil_directiva=valoare".

Directivele specifice fiecărui profil sunt:

apache22_profil_configfile="/cale/catre/fisier/configurare/httpd.profil.conf"
apache22_profil_enable="YES|NO"
apache22_profil_flags="alte_directive_pentru_httpd_specifice_pentru_acest_profil"
apache22_profil_http_accept_enable="YES|NO"
apache22_profil_limits_enable="YES|NO"
apache22_profil_limits_args="limits_args"
apache22_profil_fib="FIB"


Este strict necesară indicarea fișierului de configurare al respectivului profil, toate celelalte directive fiind opționale. O directivă interesantă este "FIB", care nu poate avea efect decât pe FreeBSD mai recent de 7.1, care se referă la 'Forward Information Base' (FIB) asociat cu respectiva instanță apache. Începând de la versiunea 7.1, FreeBSD poate folosi multiple FIB-uri, lucru care permite folosirea de tabele de rutare diferite pentru procese diferite.

În continuare, se crează fișierul de configurare httpd-profil.conf specific respectivului profil, probabil pornind de la o versiune salvată sau de la fișierul de configurare inclus în distribuția Apache22. Va trebui să ajustați câteva setări importante: adresa IP si portul folosit de profil, amplasarea DocumentRoot, si în mod special amplasarea log-urilor, pentru a nu fi scrise în același loc cu logurile altor profile. Atenție mare și la adresa IP/port, dacă sunt mai multe servicii configurate să foloseasca acelasi IP și același port, uul dintre ele nu va putea porni.

Pentru pornirea tuturor instanțelor apache nu mai rămâne de făcut decât:
/usr/local/etc/rc.d/apache22 start

joi, 9 iulie 2009

X-Fi Titanium Fatal1ty Professional - Gaming performance


I've been digging the net for some X-Fi gaming performance benchmarks for a while, but I wasn't able to find anything more than Creative's own benchmark done with UT 2004. So... I began my own research.

What is an X-Fi card

Creative is using the X-Fi brand for their most recent product lineup targeted to the non-professional users. Since X-Fi launch, there were two processors capable of hardware acceleration: CA20K1 (a.k.a. EMU20K1), followed few years later by CA20K2 (a.k.a. EMU20K2). CA20K1 processor seems to be 24 times faster than the previous generation's processor (Audigy). A major difference between Audigy and X-Fi is the effects processor sampling rate and number of bits for audio resolution. Audigy was able to apply sound effects only at 48kHz/16 bit, so if the source signal wasn't 48kHz/16 bit, it needed to be resampled, and the resampling operation generates intremodulation distortion. CA20K1 is used in the first generation of X-Fi sound cards, connected through PCI slots, while CA20K2 is used on PCI Express based variants, Titanium family. Being a revised chipset, CA20K2 also fixes the 'Sound crackling and popping' issues.

But... these processors are not included in all X-Fi products. For example, the cheapest sound card from Creative branded X-Fi is 'X-Fi Extreme Audio', a card which looks like the previous generation cheap card, Audigy SE. It has a PCI Express counterpart, but this cannot accelerate in any way audio processing. This does not mean that X-Fi Extreme Audio is using an older processor for hardware acceleration, it means that Audigy SE does not use hardware acceleration at all. Since I wanted a card with hardware accelerated DSP/processing I've decided that a card from the X-Fi Titanium family should be enough for me, and I wanted to have available the 'Crystalyzer'.

After few days using it on a Logitech Z2300 speaker system, I wasn't sure if the sound quality was superior or below onboard ALC889 when listening music and/or watching movies, and googling over the net showed me that it's the DAC the most important chip, that Auzentec X-Fi prelude is better than X-Fi Titanium, that Asus Xonar D2X has superior DAC, that EAX is dying, and many things which made me ask myself if the X-Fi Titanium Fatal1ty is worth the money. In fact, EAX is not dying, but Creative is implementing EAX on vista through OpenAL extensions.

So i decided to measure gaming performance improvement on Unreal Tournament 3, a game which is using OpenAL, comparing X-Fi Titanium Fatal1ty gaming performance with onboard audio provided by an ALC889 chip. Since I didn't have another sound card for comparision, the results are limited, but I found some convincing results. If anyone do think that there are cards not using X-Fi CA20K2 with better performance, I accept him/her sending me such a card for performance comparision.

My test configuration:

CPU:
- Intel Core2 Duo E8400 @ 3.0 GHz, FSB 1333 (333 QDR)
- Intel Core2 Duo E8400 @ 3.6 GHz, FSB 1600 (400 QDR)
Motherboard: Gigabyte EP45-UD3P
Mem: 4 GB DDR2/800
Graphics card: ATI Radeon HD 3870 from Gigabyte, Catalyst 9.6
Sound cards:
- onboard ALC889
- Creative X-Fi Titanium, using drivers from june 2009


My tests were made with the UT3 Benchmark tool from Guru3D, with DirectX10, max quality, sound on, max display resolution (1440 x 900). I did 5 runs of DM-ShangriLa map, without bots, with each card. After the first set of results, I've overclocked the CPU to 3.6 GHz, and I did a second set of benchmark runs. The average FPS are shown below.


X-Fi Titanium vs. Onboard Realtek 889 benckmark results

So far, I can tell that there is a 15% FPS gain only by using X-Fi Titanium instead ALC-889, and another important thing is that there is a higher performance gained overclocking the CPU when using X-Fi, since the CPU soes not need to handle all the workload needed for rendering audio.

I tought that, these days, the CPU power needed by audio on games is negligible, but I was wrong. Games using UT3 engine and/or OpenAL need a lot of CPU cycles to render audio, and using a hardware accelrated platform does squeeze maximum performance from other subsystems such as CPU and graphics card. In my test configuration, all the time when I ran the benchmarks, the CPU usage was 100%, making a CPU the limiting factor on this case. So, overclocking the CPU or using some hardware acceleration would help increasing gaming performance.

Doing some math, results that I need to overclock a Core2Duo by 0.6 x 4 = 2,4 GHz to release from the CPU the workload needed by audio processing in the same way X-Fi does in hardware with it's CA20K2, only to gain the same 15% FPS improvement. Also, I achived a higher framerate increase by overclocking when I used X-Fi, by 7.42%, which twice the gain achieved by overclocking the CPU and using onboard ALC889. Combining using an X-Fi Titanium instead onboard audio with some light overclock yelds a total framerate increase by 23,99%, which I consider 'high performance improvement' and 'worthy'.

Conclusion
That degree of performance increase may not be noticed by someone using a high clocked quad core CPU, but it does a big difference when the CPU has some limits, and such improvements cannot be achieved by overclocking. I can say that X-Fi titanium Fatal1ty does worth the money, and probably any CA20K2 X-Fi based sound card does, especially for gamers wanting to squeeze the maximum FPS from their platform, including those using the latest CPUs. But keep in mind another important thing: Unreal Tournament 3 engine is using OpenAL for audio rendering, and games using software for rendering cannot benefit from the acceleration provided by X-Fi, using only the CPU for this task.

marți, 5 mai 2009

Securizare retea wireless, router DLink DI 524

Deoarece devin tot mai frecvente întrebările de forma: "Cum se securizează o rețea wireless?", "Cum îmi configurez routerul wireless?" și "Cum fac port forwarding pe routerul DLink DI 524?" am compilat acest mic ghid.

Din fabrică sau după resetare, routerul permite asocierea oricărui client fără a folosi nici o metodă de restricționare a clienților wireless. Acest lucru nu e tocmai sănătos, pentru că permite conectarea oricui se află în apropiere, și dorește să folosească această rețea wireless. Pentru a rezolva această gaură de securitate, trebuie configurat routerul.

Setările wireless
Parametrii wireless care trebuiesc ajustați se referă la criptarea transmisiei intre router și clientul wireless, iar în cazul în care este un număr mare de routere wireless în zonă, mai trebuie ajustată și frecvența de operare radio.
Securizarea routerului se face prin activarea criptării, folosind WPA. Trebuie să deschizi o fereastră de navigator web, și să introduci adresa IP a routerului în câmpul adresă al navigatorului. Va apărea o fereastră de autentificare asemănătoare cu cea de mai jos:


Introduceți numele de utilizator și parola pe care le-ați configurat, sau admin/admin în cazul în care routerul este nou sau a fost resetat. Atenție, este posibil ca autentificarea sa nu meargă de la prima încercare, mi s-a întâmplat frecvent sa mi se solicite de două ori combinația utilizator/parola. După autentificare apare ecranul principal al setărilor și statusului routerului:


Pentru a face modificările referitoare la securizarea wireless, dați click în partea stângă pe link-ul 'Wireless'. Va apărea fereastra următoare:


Aici faceți următoarele setări: numele rețelei, canalul de frecvență folosit, tipul de securizare. Sugerez folosirea WPA2-PSK sau WPA-PSK + WPA2-PSK (mixt WPA + WPA2). Pentru WPA/WPA2 trebuiesc setați doar 2 parametri: modul de codificare și cheia. După ce ati introdus acești parametri, salvează noile setări apasând butonul "Apply". Va trebui să introduci aceeași parola si pe calculatorul care urmează a se conecta wireless la acest router.


Alegerea algoritmului de criptare
O diferență majoră intre WPA-PSK și WPA2-PSK constă în tipul de algoritm folosit implicit la codificarea semnalului transmis. WPA folosește TKIP, iar WPA2 folosește AES. TKIP este implementat pe majoritatea routerelor și adaptoarelor wireless, fiind preferat ca mod de codificare implicit pe sistemele mai vechi. AES este implementat pe routere și adaptoare wireless mai recente, oferind o protecție mărită. În cazul în care se întâmplă să nu vă funcționeze asocierea unei stații mai vechi, încercați să vedeți dacă respectiva stație poate folosi AES și dacă are selectat acest algoritm, sau configurați routerul să folosească WPA + WPA2.


Port forwarding (DC++, torrent, etc)

Adesea este nevoie ca alte stații din internet să se poată conecta la un port deschis de o aplicație de pe calculatorul dvs. Exemple de aplicații: dc++ mod activ, clienți de torrent, jocuri, remote desktop, server web, remote admin sau alte aplicații de tip server.


Se completează casetele referitoare la: adresa ip a calculatorului pe care rulează aplicația server, adresa numărul de port pentru conexiunea externă, numărul de port folosit de aplicație, protocolul (tcp/udp), după care click pe 'apply'.

DLink are disponibilă o pagină cu un emulator unde puteți exersa setarea routerului. Această pagină este disponibilă pe situl www.dlink.com.

duminică, 3 mai 2009

What is X-Fi MB

What is X-Fi MB
Is a software driver, which adds to your sound processing chain (only on selected chips) some capabilities. Here is the web page detailing Creative X-Fi MB. This is the second generation of software-only EAX implementation from Creative available to other manufacturers, following the first generation called Audigy MB. It seems that X-Fi MB is available only for some models from specific vendors (Dell, Gigabyte, Asus, etc). When it is installed, the driver will disable the current Dolby software, and installs the following applications: Alchemy (to provide EAX to OpenAL library call translation for older games on Vista), MediaSource (some media player/organizer), Audio Console (an application which provides access to Creative audio features), Console launcher (same thing as Audio console, but with a user-friendly interface), WaveStudio and VolumePanel (a system tray control application). After installation on Vista, these Creative features are available:
- EAX environment Effects (echo/reverb for standard applications)
- CMSS 3D (surround sound on headphones, 2 channel to n speakers, etc)
- Crystalizer (improves mp3/movie sound quality)
- OpenAL, supporting EAX up to level 4
- Another dolby encoder, replacing the one bundled by Gigabyte
On Vista, all hardware-accelerated operations are no longer handled by EAX and creative drivers directly, but through OpenAL library, which offers EAX4 compatibility.
The user has nothing to tune at the application level after installation, the software simply installs itself as a driver, all the sound post-processing is done at the driver level (no need to tune each application, and an equalizer is not the same as a DSP)

Why did I installed it
Because before my current motherboard, a Gigabyte EP45-UD3P, i've used a Intel Motherboard DG965OT built with Sigmatel sound chip, bundled with 'Intel Audio Studio' which includes some ddigital sound processing software from Sonic Focus. That piece of software totally changes the way the sound gets to the speakers. Since i've used to this kind of audition, it was difficult to me to 'adapt' to the flat sound coming from ALC889A, especially MP3 audio, and I started searching for methods to improve the sound quality. If you listen music/radio to a low-end speaker set, probably you won't notice any improvement, but Logitech Z2300 or z5500, Genius 6000 or better will do a difference.

It's good to know some other things...
1. Creative entry-level boards are not built with hardware processors like EMU20Kx and not even the older EMU10Kx, and probably nobody will notice any difference from the sound coming from ALC889A + X-Fi MB compared to X-Fi Xtreme Audio / Audigy SE. Even more, X-Fi Xtreme Audio which is very little different from Audigy SE and all the DSP / EAX is done in software on these boards too. So, X-FI MB or Audigy SE or X-Fi Xtreme Audio will offer comparable CPU usage and sound post-processing. I think i'm absolutely right when I say 'X-Fi Extreme Audio and Audigy SE are hardware licenses to use EAX drivers and applications'.

2. There are other implementations for sound post-processing, which offers remarcable sound improvement, I refer to Sonic Focus, which is bundled with the Intel motherboards, at least 9xx series. I've used this software DSP on Intel DP965LT and DG965OT, and the difference is like from moving from classic TV (PAL/NTSC) to HDTV, but translated into music improvement, and it seems to me comparable to Creative's 'Crystalizer'. Anyway, Crystalizer, the way it's implemented on X-Fi MB downloaded from Gigabyte (version 9.1.0.429) is inferior to Sonic Focus / Intel Audio Studio, Creative only offers a slider where you can select the 'Crystalizing' level, while Intel offers 3 or more, thus providing more flexibility.

3. By default, the 'Crystalizer' feature is enabled at level 50% on X-Fi MB, and I presume that it's the same on X-Fi Xtreme Audio. That's the main reason why Xtreme Audio owners are happy and they 'wont ever use onboard audio again!'.

The bad
- I don't like that Gigabyte is not bundling the licenses with their boards, or at least with performance/extreme series, it's a useful piece of software...
- On Gigabyte download page it is not listed Vista64, but the software for Vista32 is working absolutely fine on Vista64, and even including parts specifically for Vista64.

What other options are available
If you don't like to pay $29 to Creative for this software-only solution AND you want dynamics improvement AND EAX4 or higher, you can choose from
- A software (95%) + hardware (5%) solution for some extra $$$: X-Fi Xtreme Audio (these parts are fully licensed for EAX/Crystalizer,CMSS,etc) or Audigy SE, which is almost identical to X-Fi Xtreme Audio
- A software (5%) + hardware (95%) solution from Creative for much more $$$: X-Fi series with EMU20K1/2 chip, see X-Fi lineup.

If you don't care about EAX, you can use a Intel motherboard, but you may be missing some other useful features like overclocking or better CPU support (yes, better official CPU support!).
Don't blame me for not mentioning other boards, I did not use other boards and I don't want to talk about things I don't know about.

sâmbătă, 16 august 2008

Traffic shaper cu FreeBSD

Una dintre cele mai practice si simple solutii de controlare a traficului in retea este oferita de dummynet(4), implementat in FreeBSD. Dummynet este un traffic shaper, manager de latime de banda (bandwidth) si emulator de intarzieri / pierderi de pachete, creat de Luigi Rizzo (vezi pagina originala aici: http://info.iet.unipi.it/~luigi/ip_dummynet/). Alte utilizari ale lui dummynet ar fi: emulare pierdere pachete pe link, emulare intarzieri pachete pe link, in vederea testarii comportamentului anumitor servicii in cazul in care creste rata de pierderi si/sau latenta.

Pentru activarea acestuia este nevoie de incarcarea modulului de kernel "dummynet", adaugand linia 'dummynet_load="YES"' in /boot.loader.conf, sau integrarea acestuia in kernel, modificand fisierul de configurare a kernelului astfel incat sa includa:
options IPFIREWALL
options DUMMYNET

dupa care se recompileaza kernel-ul. Pentru mai multe detalii, vedeti: man ipfirewall, man dummynet.

Dummynet este controlat prin intermediul utilitarului ipfw. Initial se clasifica pachetele, si se impart in flow-uri, folosind orice model de identificare care se poate folosi in regulile ipfw. In functie de politicile locale, respectivul flow poate include pachete referitoare la: o singura conexiune tcp, catre (sau dinspre) un host, catre (sau dinspre) un subnet intreg, un anume protocol, etc.

Pachetele care sunt incadrate intr-un flow se trimit catre unul dintre urmatoarele obiecte, care implementeaza regularizarea traficului:
- pipe - emulator de legatura cu o anumita latime de banda, cu o anumita intarziere de propagare, lungime coada pachete, rata pierderi pachete
- queue - abstractizare care este folosita pentru implementarea algoritmului WF2Q+ (Worst Case Fair Weighted Fair Queueing), care este o varianta eficienta a politicii WFQ

In practica, un obiect "pipe" este folosit pentru a limita superior latimea de banda alocata unui flow, iar "queue" se foloseste pentru a determina modul in care mai multe flow-uri pot imparti banda disponibila intr-un queue.

Exemplul 1: doua flow-uri, controlate prin pipe-uri diferite
1. creez queue-urile de 1MBit/s si de 512 kbit/s
/sbin/ipfw queue 11 config bw 1Mbit/s
/sbin/ipfw queue 12 config bw 512kbit/s


1.1 Verific parametrii pipe-urilor nou create
# /sbin/ipfw pipe 11 show
00011: 1.000 Mbit/s 0 ms 50 sl. 0 queues (1 buckets) droptail

... 2. Incadrez traficul in 2 flow-uri, in acest caz traficul catre doua host-uri internet distincte
/sbin/ipfw add pipe 11 ip from any to 1.1.1.1
/sbin/ipfw add pipe 12 ip from any to 1.1.1.2
Atentie: in cazul in care regula de firewall nu va face match niciodata, traficul nu va vi incadrat in flow, si ca atare nu va fi controlat de respectivul pipe/queue.
De exemplu, urmatoarea regula de firewall va face ca traficul trimis de sistemul local catre host-ul cu adresa 1.1.1.1 nu va fi procesat de dummynet, si limitat la 1Mbit/s, urmand circuitul standard al pachetelor IP (de exemplu: legatura LAN Gigabit), in timp ce restul traficului catre 1.1.1.1 si 1.1.1.2 va fi procesat de dummynet:
/sbin/ipfw add pass ip from me to 1.1.1.1
/sbin/ipfw add pipe 11 ip from any to 1.1.1.1

/sbin/ipfw add pipe 12 ip from any to 1.1.1.2


Exemplul 2: doua queue-uri care impart banda dintr-un pipe (Cozi dinamice / Dymanic queues)
1. configurare pipe
/sbin/ipfw pipe 1 config bw 1Mbit/s queue 32kb
2. configurare queue-uri, cu weight-uri diferite
/sbin/ipfw queue 1 config weight 10 pipe 1 mask dst-ip 0xffffffff
/sbin/ipfw queue 2 config weight 20 pipe 1 mask dst-ip 0xffffffff
3. Clasificare trafic in flow
/sbin/ipfw queue 1 ip from any to 1.1.1.0/24
/sbin/ipfw queue 2 ip from any to 1.1.2.0/24

In acest exemplu am creat un queue de 1Mbit/s, al carui trafic este partajat cu cuantumuri diferite (weight) de doua queue-uri. aplicand mask dst-ip 0xffffffff am specificat ca toti bitii din adresa ip a destinatiei sunt relevanti pentru diferentierea flow-urilor, adica se vor crea mai multe flow-uri in functie de adresa ip a destinatiei. Traficul in acest caz ar putea fi impartit astfel, daca am 3 host-uri active: host1:1.1.1.1, host2:1.1.1.2, host3:1.1.2.1. Pentru ca traficul spre 1.1.1.1 si 1.1.1.2 e incadrat in queue 1, cu diferentiere pe toti bitii din adresa ip, se vor crea dinamic 2 flow-uri, cu weight 10. Traficul spre 1.1.2.1 va genera un flow cu weight 20. Conform algoritmului WF2Q+, in cazul in care banda ceruta de hosturi atinge sau are tendinta de a depasi maximul specificat in definitia pipe-ului, traficul se va distribui corespunzator weight-urilor flow-urilor active. Adica: flow-ul catre 1.1.1.1 va prelua 25% din traficul din pipe, flow-ul catre 1.1.1.2 va prelua 25% din pipe, iar traficul catre 1.1.2.1 va prelua 50% din pipe. Explicatia e data de faptul ca queue-urile active genereaza o suma a weight-urilor egala cu 40. Din acesti 40, 10 (sau 25% din totalul sumei weight-urilor flow-urilor active) reprezinta weight-ul pentru flow-ul catre 1.1.1.1, iar alti 25%, conform aceleiasi reguli reprezinta traficul flow-ului catre 1.1.1.2, iar 50%.
In cazul in care host-ul 1.1.1.2 nu ar face trafic, situatia se schimba in felul urmator:
suma weight-urilor definite pentru flow-urile active este de 10 + 20 = 30. Din acesti 30 (100%), pentru flow-ul catre 1.1.1.1 se va distribui 33,33% din banda alocata pipe-ului, iar pentru traficul catre 1.1.2.1 se va aloca 66.66%.

In acest fel, este posibil sa se implementeze distribuirea traficului cu minim garantat, si urcare la cel mult cat este alocat in definitia de pipe. Spre exemplu: latimea de banda alocata pe pipe este de 2Mbit/s, intr-o retea cu 50 de utilizatori. Specificand
/sbin/ipfw pipe 1 config bw 2Mbit/s queue 32kb
/sbin/ipfw queue 1 config weight 10 queue 1 mask dst-ip 0xffffffff
/sbin/ipfw queue 1 ip from any to 1.1.1.0/24
este foarte simplu de calculat latimea minima de banda pe care o are disponibila oricand oricare dintre useri: banda_minima = banda_totala / nr_useri = 40kbit/s. In cazul in care exista utilizatori carora trebuie sa le rezerv un disponibil mai mare, le schimb weight-ul flow-urilor traficului lor:
/sbin/ipfw pipe 1 config bw 2Mbit/s queue 32kb
/sbin/ipfw queue 1 config weight 10 queue 1 mask dst-ip 0xffffffff
/sbin/ipfw queue 2 config weight 30 queue 1 mask dst-ip 0xffffffff
# staff, regula este ca la match-ul regulii de firewall se termina
# cautarile in regulile ipfw, si implicit clasificarea in flow-uri
/sbin/ipfw queue 2 ip from any to 1.1.1.0/28
# others
, mib-ul sysctl net.inet.ip.fw.one_pass=1
# daca net.inet.ip.fw.one_pass=0, atunci traficul care iese din queue se
# va reinjecta in firewall
, urmand a face alt match, si implicit se va
# clasifica de mai multe ori, cumulativ.

/sbin/ipfw queue 1 ip from any to 10.1.1.0/24

In cazul in care doresc sa rezerv pentru traficul e-mail o anumita latime de banda, am 2 optiuni: ori creez flow-uri intr-un pipe, iar acest trafic nu se va putea face decat la respectiva viteza maxima, ori incadrez traficul intr-un flow cu weight mai mare, pentru a i se aloca o viteza mai mare de transfer


Clasificare trafic cu maxim disponibil per user (Dynamic pipes)

In cazul in care am nevoie sa clasific traficul cu un maxim disponibil oricarui utilizator, pot folosi conceptul de "dymanic pipes", sau pipe-uri dinamice. Acest lucru inseamna ca se creeaza cate un pipe pentru fiecare flow activ la un moment dat. In acest caz nu se poate vorbi despre minim garantat, pentru ca algoritmul WF2Q+ nu opereaza pe pipe-uri, ci pe queue-uri, de la pipe se foloseste doar indicatorul de latime maxima de banda, si nu mai este valabil conceptul "weight".
Exemplu: aloc fiecarui utilizator din subnetul 1.1.1.0/24 un maxim de 1Mbit/s, si fiecarui utilizator din 1.1.2.0/24 un maxim de 2Mbit/s
/sbin/ipfw pipe 1 config 1Mbit/s mask dst-ip ox000000ff
/sbin/ipfw pipe 2 config 2Mbit/s mask dst-ip 0x000000ff
/sbin/ipfw pipe 1 ip from any to 1.1.1.0/24
/sbin/ipfw pipe 2 ip from any to 1.1.2.0/24


vineri, 20 iunie 2008

FreeBSD - Conexiune wireless securizată WPA

Pentru reduce riscului de interceptare a comunicațiilor wireless între sistemul FreeBSD și access-point, exploatându-se o rețea wireless absolut nesecurizată ("autorizare" Open System) sau securizată cu un standard slab (WEP), există posibilitatea folosirii unui standard de codificare mai solid, WPA. Pentru configurare, urmați pașii:

- se setează in /etc/rc.conf parametrii:
ifconfig_ral0="WPA up"
ifconfig_ral0_alias0="inet 192.168.0.1 netmask 255.255.255.0"
wpa_supplicant_enable="YES"

Adaptati numele plăcii de retea la situația locală, în exemplul de mai sus am folosit un adaptor PCI Wireless Ralink

- se setează în /etc/wpa_supplicant.conf parametrii referitori la rețeaua wireless: SSID și cheia de securitate
network={
ssid="netname"
psk="yourS3cr3+"
}

"ssid" este numele retelei, iar "psk" este cheia pre-shared.

- Restartați rețeaua și serviciul wpa_supplicant:
# /etc/rc.d/netif restart
# /etc/rc.dwpa_supplicant restart
# /etc/rc.d/routing restart

FreeBSD - /: write failed, filesystem is full

Uneori se întâmplă ca pe un sistem pe care rulează FreeBSD să apară mesaje de eroare generate de lipsa spațiului pe disc, cum ar fi

/: write failed, filesystem is full

La examinarea spațiului liber cu utilitarul "df" se poate observa că spațiul de pe cel puțin o partiție este alocat în totalitate:

[root@example]:~# df -h
Filesystem Size Used Avail Capacity Mounted on

...
/dev/ad4s1a 100G 93G -1G 101% /home
...


Deși pare ciudat să se aloce peste 100% din spațiul volumului, această situație este posibilă la sistemele de fișiere UFS/UFS2 din FreeBSD, pentru că la formatarea acestora, implicit, 8% din spațiu este rezervat și se previne alocarea acestuia pentru utilizatorii standard ai sistemului.

Pentru a rezolva acest tip de situație sunt mai multe soluții posibile:

- Mutarea unor fișiere de pe partiția / volumul afectat în altă parte.

- Mărirea spațiului sistemului de fișiere folosind utilitarul growfs. Această opțiune este soluția optimă pentru sisteme configurate cu managerul de volume "vinum".

- Schimbarea procentului de spațiu rezervat pe partiție, folosind utilitarul tunefs:

# tunefs -m 6% /dev/ad0s1f


Această operație poate fi executată bootând sistemul de pe un LiveCD sau în mod single-user

Super ofertă la eMag!

Related Posts Plugin for WordPress, Blogger...