Tomasz Wendlandt

Avatar

Tech blog

Protecting the BIG-IP LTM against DoS

Przydatny dokument opisujący mechanizm chroniące LTMa przed DoSami – Protecting the BIG-IP LTM against denial of service attacks (SOL7301).

ACL based on IP on F5

Przykład jak można zrobić ACLkę na F5, za pomocą iRule.

Python iControl Library

Na początku marca F5 wypuściło bibliotekę w Pythonie pod nazwą pyControl, która umożliwia dostanie się do iControl, czyli API dla BIG-IP. Trochę trzeba było się naczekać, ale w końcu jest i działa bez zarzutów. Teraz pisanie skryptów do obsługi iControl stało się przyjemniejsze:).

Hash Load Balancing and Persistence on BIG-IP LTM

LTM wspiera kilka algorytmów load balancingu, które możemy podzielić na dwie grupy:

- statyczne
- dynamiczne

Do tych pierwszych należą round-robin, oraz ratio (znane jako weighted round-robin w Ciscowym CSMie czy ACEie).
Do dynamicznych zaliczają się least connections, fastes response, observed (kombinacja dwóch poprzednich), predictive
oraz dynamic ratio. Niestety defaultowo nie ma do wyboru tzw. hash loadbalancingu, który jest niezbędny dla rozkładania
ruchu serwerów proxy. Hashing w LTMie można jednak zrobić, a wykorzystuje się do tego iRule. Artykuł będący dobrym
wstępem do napisania takiej iRule’i dostępny jest na DevCentral, polecam.

UPDATE: I jeszcze coś takiego.

Hotfix installation on F5

Instalacja Hotfixów na BIG-IP jest bardzo prosta. Soft pobieramy z https://downloads.f5.com/esd/productlines.jsp. Przerzucamy Hotfixa na BIG-IP i uruchamiamy z CLI:

[root@f5-1:Active] ~ # im Hotfix-BIGIP-9.4.3-14.3-HF3.im
Available KiB blocks in root partition: 2700684
Checking integrity of packages...
/tmp/rpmdisk.XmfarE/RPMS/noarch/tzdata-2007f-9.4.3.14.0...
Stopping processes, please wait...
Jan 30 16:52:43 f5-1 LOGIN: Re-starting syscalld
httpd (pid 4916 3301 3300 3288 1816 1814 1772) is running...
Stopping httpd: [  OK  ]
/tmp/rpmdisk.XmfarE ~
Searching for relevant packages...
Upgrading installed packages...
>>>>>> Beginning single-package install pass 1...
Preparing packages for installation...
cssd-1.0-9.4.3.14.0
Preparing packages for installation...
f5km-1-9.4.3.14.0
Preparing packages for installation...
gtm-1.1-9.4.3.14.0
Preparing packages for installation...
gtm-big3d-1.1-9.4.3.14.0
Checking active big3d version...
Active big3d (9.4.3) is the same major version as available big3d (9.4.3)
Installing new big3d (9.4.3).
Preparing packages for installation...
iControl-wsdl-1.0.F5-9.4.3.14.0
Preparing packages for installation...
iControl-handlers-1.0.F5-9.4.3.14.0
Preparing packages for installation...
initscripts-sccp-7.31.18.EL-9.4.3.14.0
Preparing packages for installation...
initscripts-7.31.18.EL-9.4.3.14.0
Preparing packages for installation...
isomd5sum-11.1.0.95-9.4.3.14.0
Preparing packages for installation...
mcpd-1.0.F5-9.4.3.14.0
Preparing packages for installation...
system_check-1.0.F5-9.4.3.14.0
Preparing packages for installation...
tmm-1.0.F5-9.4.3.14.3
Preparing packages for installation...
tmm-debug-1.0.F5-9.4.3.14.3
Preparing packages for installation...
tmplugin-1.0.F5-9.4.3.14.0
Preparing packages for installation...
TS-bd-5.0.0-9.4.3.14.0
Preparing packages for installation...
TS-mng-scripts-5.0.0-9.4.3.14.0
Preparing packages for installation...
TS-policy-builder-5.0.0-9.4.3.14.0
Preparing packages for installation...
WA-1.0.F5-9.4.3.14.2
Loading Stored Procedures
Preparing packages for installation...
xconfig-1.0.F5-9.4.3.14.0
Preparing packages for installation...
zrd-1.0.F5-9.4.3.14.0
Preparing packages for installation...
f5base-1.0.0-9.4.3.14.0
Preparing packages for installation...
f5config-sccp-1.0-9.4.3.14.0
Preparing packages for installation...
f5config-1.0-9.4.3.14.0
Preparing packages for installation...
pkg-tools-1.0-9.4.3.14.0
Preparing packages for installation...
sccp-software-1.0-9.4.3.14.0
Preparing packages for installation...
TS-mng-crawler-5.0.0-9.4.3.14.0
Preparing packages for installation...
TS-tsui-5.0.0-9.4.3.14.3
Preparing packages for installation...
tzdata-2007f-9.4.3.14.0
Unloading SubDomain profiles[OK]
Loading SubDomain profiles[OK]
>>>>>> Beginning single-package install pass 2...
>>>>>> Upgrading all packages...
Preparing packages for installation...
iControl-modules-1.0.F5-9.4.3.14.0
iControl-1.0.F5-9.4.3.14.0
Checking for new EUD
info: EUD-update: No package found in /tmp/rpmdisk.XmfarE/RPMS
**************************************************************
Hotfix files have been applied.
Please read the hotfix.readme file
**************************************************************
!NOTICE!
This hotfix may not be operational without a FULL
system restart. To accomplish this, use the command:
/usr/bin/full_box_reboot
**************************************************************

Na koniec trzeba zrobić full_box_reboot, o którym mówi installer. I to wszystko:). Warto jeszcze pamiętać, że:

Note that each hotfix release is cumulative, and contains all previous hotfix releases.

Dokładny dokument opisujący instalacje Hotfixów na produktach F5 jest do przeczytania na: https://support.f5.com/kb/en-us/solutions/public/6000/800/sol6845.html

F5 VIPRION

VIPRION
F5 właśnie wypuściło na rynek nowy produkt pod nazwą VIPRION. Jeszcze nie miałem okazji dotknąć tego wynalazku, ale już na tą chwilę producent podaje, że urządzenie może zapewnić wydajność czterech BIG-IP 8800. Chassis od VIPRIONa ma 7U i jest w stanie pomieścić do czterech blade’ów, tak zgadza się blade’ów. Całe chassis jest modularne i można do niego wkładać karty rozszerzeń w postaci blade. Producent podaje, że każdy blade potrafi obsłużyć 50,000 TPS (transactions per second) SSL i 800,000 RPS (requests per second) w Layer 7. Co po obsadzeniu całego urządzenia daje 1 milion połączeń na sekundę w L4, przepustowość 36Gbps w L4 lub L7, 3.2 miliona requestów w L7 i 200k SSL TPS. Każdy blade ma dwa procesory dual core, 8GB pamięci, 2 porty XFP (10Gb), 12 SFP (1Gb) i 8 portów miedzianych 10/100/1000. Całość wygląda imponująco, czyżby konkurecja typu Cisco ACE miała zostać zmiażdzona?:) Pomijam w tym momencie milczeniem stabilność i funkcjonalność ACE w porównaniu do BIG-IP. To samo dotyczy poprzednika ACEa, Cisco CSM, który był mocno średnim produktem.

Dla zainteresowanych na Devcentral jest krótki filmik prezentujący VIPRIONa.

iRule’a na koniec roku.

F5 BIG-IP

Kiedyś trafiłem na taką iRule’a na DevCentral. W zależności od RTT klienta F5tka ustawia odpowiedni poziom kompresji dla serwowanej strony. Cwane:)


# rule HTTP_compression_slow_connections {
#     If client round trip time (latency) exceeds:
#     50ms  set HTTP compression to level 1
#     100ms set HTTP compression to level 5
#     RTT returns latency as 1/32 of a millisecond,
#     so 1600=50ms, 3200=100ms, etc
#     In the HTTP profile, set compression to "selective"

when HTTP_REQUEST {
  set rtt [TCP::rtt]
}
when HTTP_RESPONSE {
  if {$rtt > 1600 } {
    COMPRESS::enable
    COMPRESS::gzip level 1
  }
  elseif {$rtt > 3200 } {
    COMPRESS::enable
    COMPRESS::gzip level 5
  }
}
}

Poznań

  • Cloud and Visibility OK
  • Temperature: 10°C
  • Visibility: 10km
  • Clouds: Cloud and Visibility OK
  • Wind: E at 7 km/h
  • Barometer: 1014 hPa
  • Humidity: 81.6%
  • Sunrise: 8:53 GMT+2
  • Sunset: 21:00 GMT+2