pátek 23. dubna 2010

BSDCan






Někdy v budoucnu bych se velmi rád podíval na BSD konferenci. Ale nějak nejsou žádní sponzoři :-(

http://www.bsdcan.org

Velmi zajimavý bude pfSense 2.0 Tutorial, tak si stáhnu aspoň prezentace, pokud budou k mání.

pondělí 19. dubna 2010

pfSense vs Linux eth0 TSO on

Dnes provozovat firemní router bez firewalu je asi nemyslitelné. Řešil jsem takový malý problém. Jako firewall jsem užil pfSense 1.2.3-RELEASE a v něm je definované pravidlo povolující port 22 ze serverů v internetu na servery ve firemní DMZ. Komunikace ze 3 serverů funguje a nefungovala a po přidání nového serveru HP model přesně nevím s os Ubuntu 8.04.4 SE a síťovou kartou broadcom s driverem bnx2.

ethtool -i eth0
driver: bnx2
version: 2.0.2
firmware-version: 4.6.4 NCSI 1.0.3
bus-info: 0000:02:00.0

dmesg | grep eth0
eth0: Broadcom NetXtreme II BCM5709 1000Base-T (C0) PCI Express
bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex

V logu pflog0 ve firewalu, který interně používá Packet Filter jsem nalezl tuto hlášku.

tcp 40 bad hdr length 0 - too short

Dospěl jsem k názoru, že musí být problém na serveru s Ubuntu, kde je pomocí ifconfig standartně nastavena IP adresa a TSO on. Chybová hláška mě nasměrovala na stránky o TSO neboli TCP segmentation offloading a tak jsem pátral, jak to v Linuxu a případně ve FreeBSD nastavit - vypnout.

Linux danou volbu nastavuje pomocí ethtool

ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp segmentation offload: on
udp fragmentation offload: on
generic segmentation offload: on

ethtool eth0 -K tso off


Pro permanentní vypnutí lze použít např. tento návod. FreeBSD má pro danou volbu parametr v ifconfigu, což je jistá výhoda.

ifconfig bce -tso

čtvrtek 15. dubna 2010

Rychost disku

Doma jsem instaloval jedno PC s novějším HW a tak mě zajímala rychlost SATA disků. Zaklínadlem pro SATA II je zjevně AHCI. Jeho podporu a připadně povoleni v BIOSu budu jeste zkoušet a testovat.

Testovací programy:

FreeBSD
diskinfo -t /dev/ad0

Linux
hdparm -tT /dev/sda


Dalším velmi zajímavým nástrojem je Bonne++

středa 14. dubna 2010

MRP-K/S Firebird21 Ubuntu

Jeden známý mě požádal o instalaci Linuxu pro jeho účetnictví. Tím je MRP-K/S a tak jsem pátral co si to žádá. Již v minulosti jsem si zkoušel instalovat databázi Firebird z portu na FreeBSD, ale neměl jsem žádnou aplikaci, která by ji využívala. Testoval jsem hlavně patřičný php modul.

Výrobce na svém FAQ uvádí podrobné informace o instalaci dané databáze. Taktéž umožňuje staženi Linuxové verze, ale je možno užít i aktuální verzi.

Před manuální instalací je vhodné prověřit verzi NPTL, zratka znamená Native POSIX Thread Library.

Verzi prověříme takto

getconf GNU_LIBPTHREAD_VERSION

NPTL 2.7 # 8.04.4 LTS
NPTL 2.9 # 9.04
NPTL 2.11.1 # 10.04 BETA1

NPTL 2.15 # 12.04.4 LTS

Dále je doporučeno nastavit sysctl proměnné net.ipv4.tcp_keepalive*

joe /etc/sysctl.conf
net.ipv4.tcp_keepalive_time=60
net.ipv4.tcp_keepalive_probes=5
net.ipv4.tcp_keepalive_intvl=15

defaultni hodnoty v Ubuntu jsou
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 75

Budeme potřebovat tuto knihovnu
apt-get install libstdc++5


Provedeme ruční instalaci na Ubuntu 8.04.4 LTS Server Edition, protože v daném release Firebird21 není. Na Launchpadu je přehled verzí v daných vydání Ubuntu.

mkdir /opt/install
cd /opt/install
tar xvzf FirebirdSS-2.1.3.18185-0.i686.tar.gz
cd FirebirdSS-2.1.3.18185-0.i686./install.sh


instalace provede zmeny v /etc/services, /etc/passwd a vytvoří systémové starovací skripty.

Vytvoříme si první databázi.

root@firebird:/opt/firebird/bin# ./isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> CREATE DATABASE '/data/test.fdb' page_size 8192
CON> user 'SYSDBA' password 'mojeheslo';


Dále jsem testoval očekávané Ubuntu 10.04 BETA2 Server Edition. Tam je instalce Firebirdu 2.1 o poznání snažší.

apt-get install firebird2.1-super
dpkg-reconfigure firebird2.1-super


UPDATE 29.1.2014

Po letech si MRP K/S verze 5.24.001 vyžádalo Firebird 2.5. Ubuntu server 12.04.3 LTS ovšem obsahuje jen verzi firebird2.5-super 2.5.1.26351.ds4-2ubuntu0.1. Ale MRP vyžaduje ještě novější verzi. Proto je třeba přidat externí repo. Např. dle tohoto návodu.


add-apt-repository ppa:mapopa/ppa
apt-get update
apt-get install firebird

firebird2.5-common               2.5.2.26540.ds4-8ubuntu4
firebird2.5-common-doc           2.5.2.26540.ds4-8ubuntu4
firebird2.5-server-common        2.5.2.26540.ds4-8ubuntu4
firebird2.5-super                2.5.2.26540.ds4-8ubuntu4

pátek 2. dubna 2010

APR + Tomcat-6.x + libtcnative

Na jednom serveru jsem nedávno instalovat Tomcat6, přesně apache-tomcat-6.0.26.tar.gz. Po spuštění serveru jsem v logu vídal INFO hlášku o tom, že nemůže načíst APR knihovnu. Nevěnoval jsem tomu pozornost do doby než mi napsal kolega mail a tak jsem to začal nějak řešit.

INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /opt/java/jdk1.6.0_18/jre/lib/i386/client:/opt/java/jdk1.6.0_18/jre/lib/i386:/opt/java/jdk1.6.0_18/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib

Tyto cesty jsou evidentě defaultně načtené, některé ani neexistují.

První cesta vedla na stránky projektu kde se o APR něco píše, zaměřil jsem se na instalaci pod Linuxem.

Pro funkční kompilaci je třeba do systému Linux Ubuntu Server 8.04.4 nainstalovat pár balíčků.

apt-get install libapr1
apt-get install libapr1-dev
apt-get install libaprutil1
apt-get install libaprutil1-dev

APR je zkratka "The Apache Portable Runtime Library" podrobně popsáno na WiKi.

Manuální kompilaci a instalaci lze provádět např. takto.

./tomcatctl stop
cd /opt/apache-tomcat-6.0.26/bin
tar xvzf tomcat-native.tar.gz
cd tomcat-native-1.1.20-src/jni/native
./configure --with-apr=/usr/bin/apt-config
nebo
./configure --with-apr=/usr/bin/apr-1-config --with-java-home=$JAVA_HOME --with-ssl=yes
make
make install

v adresáři /usr/local/apr/lib/ se po instalaci objeví potřebná knihovna libtcnative-1.so

Pro funkční načtení knihovny jsem ještě nastavil patřičnou JAVA proměnnou.

JAVA_OPTS="-Djava.library.path=/usr/local/apr/lib"

Pro funkční běh jsem ještě musel lehce poladit server.xml aby tomcat vubec naběhl. Některé direktivy už nejsou asi platné.

Stávající nastaveni konektoru mám pro Tomcat5.

port="8019" protocol="AJP/1.3"
enableLookups="false"
useBodyEncodingForURI="true"
acceptCount="256"
maxThreads="500"
emptySessionPath="true"


Takovou malou zajimavostí, alespoň pro mě je, že s použitím APR se zjevně používá jiný Conector, přičemž definice v konfiguračním souboru je stejná. U Tomcatu bez APR se používá JK konektor a při použití APR se startuje Coyote JK. Některé části Tomcatu ještě zjevně nemám probádané a toto chování mě lehce rozhodilo. Každopádně jsem zvědav zda s APR získám větší výkon.

Důkladně jsem si přečetl BUILDING, kde se píše o přenastaveni konektoru

protocol="org.apache.coyote.http11.Http11AprProtocol"
protocol="org.apache.coyote.ajp.AjpAprProtocol" = protocol="AJP/1.3"

Od verze Ubuntu Intrepid je k dispozici balík libtcnative-1, ten je, použitelný v případě, že používáme tomcat jako balík v systému, což není můj případ. Takže manuální kompilaci se nevyhneme. Ikdyž použít starší verzi Apache Tomcat Native library je možné. Alespoň verze 1.1.19 mi s Tomcat 6.0.26 fungovala s tím že v dané verzi tomcatu je Apache Tomcat Native library 1.1.20. Takže by mělo být asi možné provozovat balíčkovou verzi Apache Tomcat Native library s manuální instancí Tomcatu6.

Loaded APR based Apache Tomcat Native library 1.1.20

Ve FreeBSD je port /www/tomcat-native. Použití na tomto systému jsem zatím netestoval.

Soubor v balíku ?

Občas je třeba zjistit, do jakého balíčku patří daný soubor. Nápomocné k tomu jsou tyto příkazy.

FreeBSD
pkg_which file

Linux RPM Base
rpm -qf file

Ubuntu
dpkg -S file

Debian
apt-file file

čtvrtek 1. dubna 2010

Edimax nLite BR-6225N

Co se používání domách routeru, přešel jsem na novější model od Edimaxu a tím je BR-6225N, novinkou je i čeština v menu. Webové rozhraní se mi více libilo u starších modelů např. BR-6204WG, ale s tím se da přežít. Tento model již umí standard IEEE 802.11n.

http://www.alza.cz/edimax-nlite-br-6225n-d153189.htm

Router v sobě má upravený Linux a v menu status je v logu vidět i verze použitého BusyBox, což je aplikace obsahující sadu UNIXových příkazů. Tento nástroj je hojně používán v Embeded zažízeních.