четвъртък, декември 02, 2010

default route backup





При горната картинка Remote Office комуникира с Central Office през L2 свързаност. Целта е когато падне основната връзка трафика да се изнася през L3 VPN закачен за dedicated за това машина с минимална (сиреч никаква) намеса на потребителите в Remote Office
Най-лесният начин ми се стори - смяна на default route на R2  към RAS-a при отпадане на основната връзка. Отпадането се трак-ва с ip sla (и в двата края рутерите са cisco)
ip sla monitor 1
# cisco-то ще ping-вa 192.168.61.1 
#със source р2р IP - да съм сигурен, защото 192.168.61.1 може да се вижда
#от друго място (през VPN-a примерно)
 type echo protocol ipIcmpEcho 192.168.61.1 source-ipaddr 192.168.61.2
#и ще чака 1000ms да му отговори нещото отсреща
 timeout 1000
tag CHANGE-DEFAULT-ROUTE
# на всеки 2 sec ще прави по 1 ping
 frequency 2
exit
# schedule-вам цялата анджиклЪмЪ да се случва non-stop и да започне сега
ip sla monitor schedule 1 life forever start-time now
# подтвърждавам reachability нa 192.168.61.1
track 10 rtr 1 reachability
# правя reverse triger т.е ako track 10 is not true then mark "event"
track 11 list boolean and
 object 10 not
# apply this default route if "event" occur (track 11 == true if track 10 <> true)
ip route 0.0.0.0 0.0.0.0 192.168.64.152 track 11  
Когато primary връзката се възтанови, track 10 == true; track 11 == false 0.0.0.0/0 via 192.168.64.152 не се инсталира в рутинг таблицата и трафика си тръгва през prez 192.168.61.1

четвъртък, ноември 25, 2010

Задача

Получено в Skype:
Мама е по-голяма от сина си с 21 години. След 6 години ще бъде 5 пъти по-голяма от него. Пита се къде е тате?

четвъртък, ноември 11, 2010

What is my OS

Каква е версията на OS на машината на която съм се логнал ?
Linux:
uname -a -- kernel version, 32/64 bits
lsb_release -a
cat /etc/*issue
cat /etc/*-release
cat /etc/*_version
cat /proc/version
*BSD:
uname -a
Solaris
showrev -a
HP-UX:
uname -r -> това дава release identifier и после по този release identifier тук примерно
IOS/XOS (Extreme Networks) :
show ver
NT based Windows (7/Vista/2003/XP/2000/NT4):
Run/cmd -> msinfo32
Run/cmd -> winver
Run/cmd systeminfo | find /i "System Type:"

понеделник, ноември 01, 2010

Disable Automatic Windows Update

Понякога (неизвестно как/защо/кога) при изрично спрени AU от Control Panel-a, клавиатурата на  с инсталиран  започва да се държи много странно

Affective device : FS Amilo PI3525
Software : Windows 7 Pro ++++
Problem: на част от клавиатурата (частта където е NUM PAD-a) при не-натиснат fn клавиш работи като num pad, а при настиснат такъв работи като както си трябва
сиреч:
  • при не-задействан fn и натискането на бутона k се отпечатва 2
  • при задействан fn и натискането на бутона k се отпечатва k 
Тъй като това е машина която се използва за работа най-бързото решение което ползвах беше System Restore до предишна дата.
При този System Restore виждах, че разликата м/у сегашното и настоящето състояние е наличието на един или няколко Security/Critical Updates
Първо спрях през Control Panel-a автоматичните ъпдейти - не се получи... продължиха Security/Critical Updates които най-вероятно ми трошат профила и клавиатурата - профила защото се логвам на машината (паролата ми съдържа част от символите в района на num pad-a) , а след зареждането профила ми тогава почват да се печат дивотиите
Омръзна ми на 4-5 дни да правя system restore и исках бързо и окончателно решение - windows-ките ъпдейте въобще не ме интересуват
Мислех да null route-на мрежите отговарящи за Windows Update, но ...  много са защото се оказа, че тези тарикати за да затруднят настройките на firewalls на всичките сериозни win admins (най-вероятно !) сменят А записите за ъпдейт сървърите си и те се въртят м/у
64.4.*.*
64.158.*.*
65.59.*.*
67.72.*.*
207.46.*.*
208.172.*.*
Ако го направя ще убия и ценни неща като download.windows.com, msn.com, technet.microsoft.com etc
в host file да ги опиша да сочат към 127.0.0.1 или пък някакви подобни DNS магарии пак не става - освен всичко останало ако съм в мрежа/доставчик който работи с Akamai на запитване за подобен ресур ще получа нещо като :
nslookup download.windowsupdate.com
Non-authoritative answer:
Name:    a26.ms.akamai.net
Addresses:  85.14.5.170
          85.14.5.169
Aliases:  download.windowsupdate.com
          download.windowsupdate.nsatc.net
          main.dl.wu.akadns.net
          intl.dl.wu.akadns.net
          dl.wu.ms.geo.akadns.net
т.е. списъкът с Aliases прави настройката на firewall-a базиран на DN/DNS rules трудна, неблагодарна и най-вероятно неработеща схема
Това което ми се струва желязно работещо и отговарящо на изискванията (никакви ъпдейти които да ми трошат клавиатурата и/или да губя време да ги гледам кой от всичките ъпдейти го прави това - хич не ми дреме, че операционната ми система е non-updated)
1. Варианта net stop wuaserv ще работи само до първия рестарт така че: sc config wuaserv start=disabled  (сигурно и с netsh ще да стане нещото ама някой гуру да го каже как)
2. HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\  --> new DWORD NoAutoUpdate 0=AU enable 1=AU disable
3.Най-чистият и елегантен начин : gpedit.msc > Computer Configuration > Administrative Templates > Windows Components > Windows Update > Specify intranet Microsoft update service location > Enabled http://localhost
Да се ъпдейтва сега... и да страда

N.B. Оказа се , че от списъка с ъпдейти ако маркирам конкретен ъпдейт и след десен клик в/у него избира Hide той няма да влезне в скеджула за инсталация повече и съответно няма да се инсталира

вторник, септември 21, 2010

Daily wisdom

Опита е като Мъдростта - когато го придобиеш в повечето случаи се оказва доста
късно

неделя, септември 12, 2010

понеделник, август 09, 2010

Monthly wisdom

Това, че винаги си го правил по този начин, не означава, че не е пълна глупост !

неделя, август 08, 2010

Linksys WRT54GL with dd-wrt

Задача: 2 тунела до една централана точка. 1 префикс разнасян от рутинг протокол с различна метрика (за бекъп)
Цена: до 100 лв.
Реализция:
Устройство: Linksys WRT54GL (по препоръка като най-стабилен SOHO router, а и наличен в необходимите количества на склад) - микротик рутербордове по това време на БГ пазара нямаше
Software: dd-wrt tomato-не предлагаше нужната функционалност; open-wrt-по мненията из разни форуми и етц не толкова стабилен, и по-малък брой поддържани устройства; други проекти както и варинта да се инсталира пълноценна Linux дистрибуция отпаднаха по една или друга причина (като цяло крайната реализация трябваше да бъде не произведение на изкуството, а нещо достатъчно стабилно и лесно да подръжка, обслужване и евентуален extend/expand )
Configuration:
1. 30/30/30 Hard reset procedure
2. Избран е този image заради размера, възможността да се mount-не router flash-a with read&write permissions, подръжка на необходимите неща + още някоя и друга глезотийка която може и да не се ползва, но е добре да я има в случай на нужда
3. Заради големият брой устройства които трябва да се конфигурират и разпратят така, че само да се закачат и всичко да тръгне almost zero-day install се реализира така:
а) basic config На един от рутерите - всички необходими неща които са еднакви за всички nodes - firewall, QoS, disable DHCP on LAN, remote access, enable/disable services, NAT, etc и цялото това нещо се запази като backup bin file през WEB интерфейса.
firewall-а e стандартен iptables чиято конфигурация се записва в /tmp/.rc_firewall, но може да се пишат тези правила през WEB-Administration-Commands-Save firewall
b) за спецефичните за всеки node неща (WAN IP, LAN IP,Tunnel IP, BGP neighbor, static routes, etc) се използва startup script (/tmp/.rc_startup или през WEB-Administration-Commands-Save Startup). StratUp script-a е последователност от nvram set name=value
формат:
nvram set lan_ipaddr=10.134.254.253
nvram set lan_netmask=255.255.255.252
nvram set routing_bgp_neighbor_ip=172.16.254.253
nvram commit

За routing demon се използва bird - трябва да се прочете повече дали и как може да се правят повече неща с него в тази му реализация (load balance, prefix filters, BGP attributes change, etc). Има възможност да се инсталират стандартни *.deb и *.ipk packages през ipkg, но quagga не можах да инсталирам (а и нямах време да дебъгвам)
По интересно е нещото което не се поддържа директно от конкретният image - IPinIP/GRE tunnels. Беше избран IPinIP тунелинг заради по-малкият овърхед, през него не минава мултикаст (сиреч no OSPF,no RIP), но пък GRE тунелите използват protocol 47 (също като pptp) който се филтрира от някои доставчици.Повече инфо тук и тук Като алтернатива могат да се използват подържаните от image pptp, openvpn и EoIP tunnels, но най-лесно и чисто като че ли е варианта с IPinIP tunnel
Наличието на iproute2 пакета улесни и опрости много нещата тъй че в моят случай сетъпа изглежда така:
#tunnel specific
insmod ipip.o
# local == Tunnel Source
ip tu ad tun0 mode ipip local $Tunnel_source_IP remote $Tunnel_dest_IP ttl 250 dev vlan1
# 172.17.254.254 == Tunnel IP spoke side; peer 172.17.254.253/32 == tunnel IP remote side
ip ad ad dev tun0 172.17.254.254 peer 172.17.254.253/32
ip li se dev tun0 up

Това присъства в startup script-a и се изпълнява при всеки (re)start на рутера.
Linksys WRT54 има един WAN порт + switch module в който членуват останалите 4 порта. За да има реална бекъп връзка до Spoke през вторият тунел най-чистият вариант беше да се "осигури" втори WAN порт. В случая е реализирано така:
# vadim port 1 ot switch-modula i go prawim WAN
# nvram show | grep vlan.ports
#0 = port 4
#1 = port 3
#2 = port 2
#3 = port 1
#4 = WAN
#5 = CPU internal
#5* = CPU internal default

nvram set vlan0ports="0 1 2 5*"
nvram set vlan1ports="3 4 5"
nvram commit

Правилната статия по темата е тук
Най-сериозният проблем (който в момента не ми е толкова критичен, но си е сериозен) е добавянето на user с ограничени права...
Номерът с echo 'admin:$1$bLL3EQ3А$3SNexDssIzKZx9KmUP1.O.:0:0:Admin User,,,:/tmp/root:/bin/sh' >> /etc/passwd работи като ми добавя User: admin с root права;
Но пък:
mkdir /tmp/user
echo 'user:$1$unix crypted pass here.:1234:1234:LimitedUser,,,:/tmp/user:/bin/sh' >> /etc/passwd
echo 'user:x:1234' >> /etc/group

ми дава един мноооого limited user който дори и ping команда не може да изпълни въпреки, че върху /bin/ping са UID bits
Anyway... за целите на first level support-a по-скоро ще се мисли за някакъв вариант в който се изпълнява някой script който да се логва на устройството и взима Output-a на няколкото команди необходими за това да се отвори или затвори тикет или ще получава същите работи през snmp

ToDo: всичкото това със сигурност може да се постигне с един startup script т.е. да се избегне стъпката с изливането на basic_config.bin, но искаше повече копане и време (което нямах). Някой ден ще трябва да го направя (но защо да отлагам днешната работа за утре, като мога да я отложа за вдругиден)

P.S. 3 седмици след старта иснталациите изглежда като да работят нещата добре, въпреки, че имаме 2 (засега) рутера които след някакви токови удари и/или други незнайни причини са си загубили напълно конфига и на практика са brick-нати. Да се надяваме, че са "случайни случки", а не някакъв посевместен бъг в имиджа който изливаме

понеделник, юли 19, 2010

На попрището жизнено в средата

Първо бих искал да благодаря на XXXXX за коректното и професионално отношение към мен като кандидат за работа при Вас и да се извиня за това, че ще откажа отправеното ми предложение за работа.
Отказът ми е свързан с причини от чисто лично естество и няма отношение към техническите параметри на отправената оферта и същността на свободната позиция.
Още веднъж се извинявам за отнетото време и ресурси и пожелавам бързо откриване на правилният човек за сглобяването на успешен ИТ тиим.



Дано изборът да работя нещо което мисля, че е по-интересно спрямо нещо което е (доста) по-добре платено се оакже правилен и да не се налага да съжалявам (и за това) в последствие.

четвъртък, юни 10, 2010

Google Maps for Windows Mobile

Жега.Пек.Просто да умре човек.И затова деца джабуркат си ...(краката?) във водата.
Та в това топло и задушно посреднощие се заиграх с телефона и инсталираните google maps... Тези не са хора! Освен доста приличните снимки навързани една с друга по един почти незабелижим начин така, че се създава илюзията за едно цялостно фото-изображение, има доста точни карти на забутани места (като наше село например), че и навигация от рода step-by-step-instructions-to-reach-Пичковци N42a от асансьора в дясно до хладилника.Слоевете са много практични... въпреки, че доста цъках из София така и не намерих място което да ми каже нещо по-различно от "тук няма информация за трафика". За сметка на това като се натисне и задържи в/у някоя точка изкача адреса от който мога да си изтегля упътвания как да стигна пеш (къ ли пъ не! пеш само до тоалетната и то ако не ме мързи... много); Какво има наблизо - изкачат много интересни неща (например Студио за епилация и солариум 'АриАяр' някъде наблизо около нас); Изпращане на SMS с точният адрес по Google Maps (дали може и GPS координати да изпраща? Сигурно трябва да включа GPS-a преди това едва ли не ?!), а на всичкото отгоре и повечето места са нацвъкани с Wikipedia лого-то през което се стига до кратка извадка (с опция read full article) от статията в Wikipedia.
Но пък най-интересното нещо беше когато планирах (за пореден път) обиколка из Лондон... има Градски Изглед! Същото като РС версията на Google Earth... дори с опция да се "поразходиш" из улицата напред-назад (даже и бегъл поглед през витрината на някакъв магазин на Gucci хвърлих). Това което ми направи впечатление: номерата на колите по улиците са замазани и не си личат (но пък лицата на хората се виждат почти прилично!). Още по-интересното е, че успях да се "разходя" из Waterloo Station и да видя графитите по стените (като как са го излъгали този сателит да се навре там и да снима на - съда не стана ясно )
А това как тиквите от google labs успяват да определят позцията ми с точност до 200м в/у картата без SIM и без пуснат  GPS само с активирана wireless връзка си остава загадка... v.0.0.1a теоритично нещата (биха могли да) се случват така: има определени сървъри с точно известни GPS координати (примерно на AKAMAI акселераторите са такива); аз през активната си wireless връзка пращам нещо (хелло уорлд! ) на най-близките до мен (на база текущо IP/hop path); те си джуркат тяхната триангулираща магия и казват - те тука си. Слабото ми място е, че според мен за да ме заковат в радиус от 200м ... бая на брой трябва да са тези сървъри с фиксирани координати... от друга страна кой знае колко са тез TCP-IP-триангулачни точки.. може и да са достатъчен брой
ToDo: да взема да си синифна трафика м/у телефона и АР-то да видим дали и кои си говорят така
Да го направят цялото това нещо 3D и тези от ... забраих къде беше може да идват у нас да снимат Аватар 2 (или пък онези от онзи филм с Брус Уилис дето го играеше детектив и си имаха по една кукла с която излизаха навън да се фукат... и него го забравих как се казваше)

четвъртък, юни 03, 2010

Mikrotik L2 filtering

Целта на упражнението: да се забрани ползването на услугите предоставяни
от рутера (в случая RouterBoard RB705, но предполагам, че ще работи и за
други модели)
До 3 работещи варианта стигнах в крайна сметка
1.
interface bridge filter export
# jan/09/1970 01:36:42 by RouterOS 4.6
#
/interface bridge filter
add action=accept chain=input comment="" disabled=no mac-protocol=arp \
src-mac-address=00:2D:7D:C1:4F:01/FF:FF:FF:FF:FF:FF
add action=drop chain=input comment="" disabled=no mac-protocol=arp \
src-mac-address=FF:FF:FF:FF:FF:FF/FF:FF:FF:FF:FF:FF
(add action=drop chain=input comment="" disabled=no mac-protocol=arp \
src-mac-address=00:00:00:00:00:00/FF:FF:FF:FF:FF:FF)
Микротик firewall-a има експлитицно правило allow any any... т.е. ако
нещо изрично не е забранено, то ТО по подразбиране е разрешено
В този случай не сработиха последните правила (XOR) които според мен
трябваше да забранят всичко останало което не е match-нато в първото
правило.
Сиреч може да се използва при зададено условие: на всички е разрешено,
освен на тези на които изрично е забранено

2.
2.1. маркираме пакети и конекшъни
/ip firewall mangle export
# jan/10/1970 01:05:47 by RouterOS 4.6
#
/ip firewall mangle
add action=mark-connection chain=prerouting comment="" disabled=no \
new-connection-mark=allowedpassthrough=yes src-mac-address=\
00:1D:7D:C1:4F:01
add action=mark-packet chain=prerouting comment="" disabled=no \
new-packet-mark=allowedpassthrough=yes src-mac-address=00:1D:7D:C1:4F:01
2.2. block/allow на базата на маркировката от 2.1.
/ip firewall filter
add action=drop chain=forward comment="" connection-mark=!allowed
disabled=yes packet-mark=!allowed
Основният плюс тука, е че наличната "марка" може да се използва и за
други неща... Queue примерно...
3.
/ip firewall filter> export
# jan/04/1970 02:39:09 by RouterOS 4.5
#
/ip firewall filter
add action=accept chain=input comment="" disabled=no src-mac-address=\
00:19:66:09:64:14
add action=accept chain=input comment="" disabled=no src-mac-address=\
00:1D:7D:C1:6F:BE
add action=accept chain=input comment="" disabled=no src-mac-address=\
00:13:8F:3A:70:02
add action=drop chain=input comment="" disabled=no in-interface=\
ether2-local-master
(add action=drop chain=input comment="" disabled=no
src-address=192.168.88.0/24)
Първите 3 правила описват allowed PC закачени зад switch "модула" (2-5
порт по подразбиране с default config на RB750), като последните 2 (XOR)
забраняват всичко останало
Хитрото тук е, че се блок-ва трафика иницииран от "вътрешният интерфейс"
(т.е. този за който in-interface е споменат в правилото), но трафика
адресиран "от вън" към този МАС си е ОК. Може да се използва в при
зададено условие: на всички е забранено, освен на тези на които изрично
им е разрешено.

събота, май 08, 2010

Monthly wisdom

"Някои места остават неизследвани защото никой не е дръзвал стигне до там или никой не се е върнал от там за да разкаже."