Skip to content

By Тодор in Uncategorized

Ако някой има нужда да забрани Google Talk покаквато и да е причина, ето как става:
Прави се DNS запис за chatenabled.mail.google.com, който сочи примерно към 127.0.0.1.
Сега когато си отворите пощата, Gtalk аплетчето няма да се свързва.

Tags: , , , , , ,

By Тодор in DOCSIS

Arris Cornerstone 1000/1100/1500 са бриджове и могат да работят само като такива.
Пускам конфигурацията на една такава машинка заедно с решението на проблем, който срещнах по време на експлоатация:

[Cornerstone] remote1> putmng display
$ box
      name                           "Cornerstone"
      high-temp-threshold            55
$ admin
      sw-server-ip-addr              172.16.1.2
      provisioning-control           use-nvram
$ ip-level
      config-ip-address              10.10.255.254
      config-ip-subnet               255.255.0.0
      config-ip-gateway              10.10.0.1
$ admin
      config-tftp-ip-addr            172.16.1.2
      time-rfc868-addr               172.16.1.2
      time-offset                    7200
      time-sntp-addr                 172.16.1.2
$ downstream
      frequency                      400000000
      modulation                     qam256
      power                          530
$ upstream-specific/4
      frequency                      32000000
      power                          0
$ upstream-specific/5
      frequency                      27000000
      power                          20
$ upstream-specific/6
      frequency                      27000000
      power                          0
$ upstream-specific/7
      frequency                      27000000
      power                          0
$ cable-level
      admin-status                   up
$ forwarder
      proxy-arp                      enable
$ admin
      bootp-relay-control            relay-tagging-enabled
$ bootp-modify/1
      server-ip-addr                 172.16.1.2
      status                         active
$ ip-level
      dns-control                    enabled
$ dns-modify/1
      server-ip-addr                 172.16.1.10
      status                         active
$ dns-modify/2
      server-ip-addr                 172.16.1.20
      status                         active
$ ip-level
      dns-domain-name                "cornerstone.kamenitza.org"
$ accounts
      inactivity-timer               60
$ cable-level
      concatenation-control          disabled
$ admin
      ssh-control                    enabled
      ssh-host-key-bits              1024
      ssh-server-key-bits            2048
$ cable-level
      cpe-active-default             enabled

172.16.1.2 – DHCP, TFTP, NTP, DAYTIME сървър
10.10.255.254 – IP адреса на CMTS-а
10.10.1.1 – IP адреса на аксес рутера, към който е закачен CMTS-a

Топологията е горе долу такава:
DHCP--->ROUTER--->CMTS--->Cable Modems

Доста странен проблем се получи в тази ситуация – клиентите (CPE-тата) получаваха коректни настройки от DHCP сървъра, но нямаха мрежова свързаност?!
WTF!? ще си кажете…
Щом получават настройките – те ги получават по мрежата, значи няма как да не работи!

При всеки мрежовата свързаност се възстановяваше веднага след като напиша:
# arping 1.2.3.4
на рутера към който е закачен CMTS-a. Това е ИП адреса на мрежовата карта на клиента, не на кабелния модем.
Значи нещо се дъни най-вероятно на второ ниво!?
Какво ли не правих – пускане и спиране на proxyarp на CMTS-a, пускане и спиране на dhcprelay на рутера – никаква промяна.

Реших проблема по възможно най-простия и дървен начин:

#!/bin/bash
i=2
while [ $i -lt 255 ]
do
    /sbin/arping -q -c 1 10.20.30.$i &
    let i=$i+1
done

Това скриптче се изпълнява през 2 минути от cron.
Ако някой с подобна топология няма такива проблеми – ще се радвам да сподели по-елегантно решение :)

Tags: , , , , , ,

By Тодор in Linux

Ще дам пример със статистика на мрежов интерфейс на линукс компютър.
Какво е необходимо:
1. Инсталиран и конфигуриран SNMP демон – пример.
2. Инсталиран и работещ RRDTool.
3. Добре охладена халба бира и кофа с чипс.

SNMP ще ни предостави достъп до всички системни “броячи”, ако мога така да ги нареча:
# snmpwalk -v2c -c public localhost
Ще видите доста дълъг списък.
Като начало ни трябват само мрежовите интерфейси, с които разполага машината:

# snmpwalk -v2c -c public localhost IF-MIB::ifDescr
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: eth1
IF-MIB::ifDescr.4 = STRING: eth2
IF-MIB::ifDescr.5 = STRING: eth3

От тук ни трябва само индекса на мрежовата карта, която ще следим – да кажем eth0, която е с индекс 2.

За да получим изпратените от интерфейса байтове:

# snmpwalk -v2c -c public localhost IF-MIB::ifHCOutOctets.2
IF-MIB::ifHCOutOctets.2 = Counter64: 6377552360

За да получим приетите от интерфейса байтове:

# snmpwalk -v2c -c public localhost IF-MIB::ifHCInOctets.2
IF-MIB::ifHCInOctets.2 = Counter64: 135903877111

Да, но на нас ни трябват само цифрите от брояча, и вместо да парсваме целия този стринг, който получаваме от snmpwalk, добавяме параметрите -Oqv:

# snmpwalk -v2c -c public -Oqv localhost IF-MIB::ifHCOutOctets.2
6377552360

и
# snmpwalk -v2c -c public -Oqv localhost IF-MIB::ifHCInOctets.2
135903877111

Малко по-добре нали :)

Така, вече имаме данните от броячите. Сега трябва да подготвим RRD базата данни за съхранението им:

/opt/rrdtool/bin/rrdtool create eth0.rrd --step 300 --start N \
            DS:in:DERIVE:600:0:U   \
            DS:out:DERIVE:600:0:U   \
            RRA:AVERAGE:0.5:1:288      \
            RRA:AVERAGE:0.5:6:2016      \
            RRA:AVERAGE:0.5:24:8640

Като съответно корегирате пътя до rrdtool с този на вашата инсталация. Не би трябвало да се налага корекция на която и да е от цифрите, които виждате тук. Изпълнението на тази команда ще създаде файл eth0.rrd, в който ще съхраняваме отчитанията на броячите на мрежовия интерфейс.

Примерен скрипт, който проверява броячите и ги съхранява в базата данни:

#!/bin/bash
out=`snmpwalk -v2c -Oqv -c public localhost IF-MIB::ifHCOutOctets.2`
in=`snmpwalk -v2c -Oqv -c public localhost IF-MIB::ifHCInOctets.2`
/opt/rrdtool/bin/rrdtool update eth0.rrd -t in:out N:$in:$out

Това кодче трявба да се изпълнява на всеки 5 минути.
Добавяме го в cron:
# crontab -e
И добавяме следния ред:
*/5 * * * * /rrd/updaterrd >> /rrd/rrd.log
Изхода от всяко изпълнение ще се записва във файла /rrd/rrd.log – помага при търсене на грешки.

Настроихме компютъра да отчита и събира статистиките за интерфейса, остана да ги изрисуваме:

/opt/rrdtool/bin/rrdtool graph -a PNG eth0.png \
        --title "Daily stats" --start -1day \
        DEF:i=eth0.rrd:in:AVERAGE DEF:o=eth0.rrd:out:AVERAGE \
  -h 80 -w 250 \
  AREA:o#0903FF:"Out" LINE1:i#00ff00:"In\n" 

Това ще изрисува статистиката за последният ден. Можете да я генерирате директно в директория достъпна от уеб сървъра, за да може да бъде поставена по-късно в уеб сайт.

Графиката показва скоростта на натоварване в MB/s мегабайти в секунда (не мегабити).

RRDTool е много мощен инструмент, и ако се зачетете в документацията му ще откриете куп параметри, с които да направите вашите графики максимално удобни за четене и с външен вид, който ви допада.

Сега докато си изпиете бирата и си изхрупате чипса ще са се събрали достатъчно данни, за да проверите какво сте направили.

Очаквайте продължение…

Tags: , , , , ,

By Тодор in Linux, Solaris

На този линк е много добро описание с примерчета как се работи с awk. Ако намеря време ще го преведа.

Tags: , , , ,

By Тодор in Linux

Най-прост пример ще дам.
Създайте /etc/rsyncd.conf със следното съдържание:

max connections = 10
log file = /var/log/rsync.log
timeout = 300
[share]
 comment = Shared folder
 path = /share
 read only = yes
 list = yes 
 uid = nobody
 gid = nobody
 auth users = gosho
 secrets file = /etc/rsyncd.secrets

Тазки конфигурация ще направи “споделен обект” с име share, който ще е самата директория /share (не е нужно двете да са с еднакви имена). Достъпът до тази директория ще бъде само за четене и ще се осъществява от името на потребител nobody, така че той трябва да има поне права за четене. Права за достъп през rsync ще има gosho, като паролата му ще бъде в /etc/rsyncd.secrets.

Съдържанието на /etc/rsyncd.secrets:

gosho:goshoto

Т.е. паролата на gosho е goshoto.
Следва бърза предпазна мярка:

# chmod 600 /etc/rsyncd.secrets

Така никой друг няма да може да чете файла с паролите.
За дистрибуциите, които ползват xinetd редактирате /etc/xinetd.d/rsync, така че:
disable = yes
да стане:
disable = no
xinetd трябва да бъде рестартиран след това:
# /etc/init.d/xinetd restart

Остана само да се разреши порт TCP/873 през firewall-a и всичко е готово.

Ето няколко примера за употребата:

# rsync rsync://gosho@server.address/
Ще покаже списъка със споделените директории.

# rsync -aPv rsync://gosho@server.address/share .
Ще изкопира всичко от посоченият път рекурсивно в текущата директория.

За да се избегне ръчното писане на паролата и ползването на rsync в скрипт може да се сетне променливата:
# export RSYNC_PASSWORD=goshoto

Приятно синхронизиране, бекъпване, копиране и т.н!

Tags: , , , ,

By Тодор in Linux

По начало CentOS 5.4 идва с Postgresql версия 8.1.
За да инсталирате по-нова е необходимо това:

# rpm -Uvh http://yum.pgsqlrpms.org/reporpms/8.4/pgdg-centos-8.4-1.noarch.rpm

Следва стандартното:
# yum install postgresql-server

Tags: , , , ,

By Тодор in Windows

Който вече е минал на Windows 7 сигурно е забелязал неприятния начин за писане на кавички, а именно, че след натискането на самата кавичка ” трябва да се натисне и нещо друго (интервал), за да се появи тя.
Отстранява се като се промени регионалната нстройка на клавиатурата от US International на US.

Tags: , , , , ,

By Тодор in FreeBSD

1. отиваме в /usr/ports/net/boinc-client/
2. отваряме Makefile в текстов редактор
3. променяме
CONFIGURE_ARGS=--disable-server
както следва:
За 32 битов FreeBSD променяме на:
CONFIGURE_ARGS=--disable-server --with-boinc-platform=i686-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
За 64 битов FreeBSD променяме на:
CONFIGURE_ARGS=--disable-server --with-boinc-platform=x86_64-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
4. make install clean
5. при грешки от рода на “ELF 0 ….”, проверете дали са инсталирани тези:
/usr/ports/emulators/linux_base-fc4 или по-висока версия

# sysctl kern.elf32.fallback_brand=3

Може би ще има грешки с емулацията на линукс, ако в момента се емулира ядро 2.4, тогава:

# sysctl compat.linux.osrelease=2.6.16

И се инсталира нов линукс емулатор – фc6 примерно.

Приятно смятане!

Tags: , , , ,

By Тодор in Cisco

Не е точно възстановяване, а по-скоро ресетване:

1. Закачате се към конзолата със сериен кабел.
2. Рестартирате/включвате рутера и натискате CTRL+BREAK или CTRL+B докато зареждането спре в rommon.
3. confreg 0×2142
4. reset или рестартиране от тока.
5. За да запазите конфигурацията: copy start run
6. Сега сменяте enable паролата с:

conf t
enable secret newpassword
exit

7. Записвате с write
8. Рестартирате рутера отново в rommon
9. Връщате конфигурационният регистър както си беше: confreg 0×2102
10. Рестартирате рутера.

Tags: , , , , , , ,

By Тодор in Cisco

Cisco конфигуриране на NTP. Т.е. рутера автоматично да се сверява.

conf t
clock timezone gmt +2
clock summer-time CDT recurring

Така дори ще поддържа и лятното време :)

Tags: , , , , , ,

By Тодор in Cisco

conf t
service dhcp
ip dhcp pool 192.168.1.0/24
network 192.168.1.0 255.255.255.0
default-router 192.168.1.1
dns-server 217.10.240.2 217.10.240.242
exit
ip dhcp excluded-address 192.168.1.1 192.168.1.100

Така конфигуриран ще раздава динамични адреси от 192.168.1.101 нагоре (включително).

Tags: , , , , , , ,

By Тодор in Windows

Много качествена програмка за дебъгване на HTTP сесии – Fiddler

Tags: , , , , ,

By Тодор in Windows

За проверка на уеб сървър каква SSL версия има и какви шифри поддържа – SSLDIGGER. Едно добро инструментче, с което да си проверите сървъра и по желание да изключите слабите шифри. Можете да го изтеглите от тук – http://www.foundstone.com/us/resources/proddesc/ssldigger.htm

Tags: , , , , , , ,

By Тодор in Linux

Инсталиране на PHP 5.2, както и друг софтуер сравнително по-нов от публикуваният в официалните хранилища на Yum (CentOS, RHEL, Fedora) е обяснено тук: http://www.jasonlitka.com/yum-repository/

Tags: , , , ,

By Тодор in Linux

Ако е на интерфейс eth0:

# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.10

Това копира конфигурационния файл на eth0 в eth0.10
Тук някъде някой може би започва да се досеща, че тази цифра 10 е на практика VLAN тага.

Следва редактиране на конфигурационният файл за новият интерфейс:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0.10

Променяме:

DEVICE=ifcfg-eth0.10

Добавяме:

VLAN=yes

И рестартираме мрежата:

# /etc/init.d/network restart

Другият вариант е следният:

# vconfig add eth0 10
# ifconfig eth0.10 192.168.1.1 netmask 255.255.255.0

За да изтриете създаден VLAN:

# ifconfig eth0.10 down
# vconfig rem eth0.10

Честито!

Tags: , , , , ,