2010-10-23

Question of the day

вопрос:

дана топология: PC1 --- SW1 --- PC2
PC1 - компьютер, генерирующий ip-трафик отмаркированный dscp 46
PC2 - компьютер, на котором запущен снифер
SW1 - коммутатор 3560 с дефолтным конфигом

вопрос: какие значения DSCP будут видны у пакетов полученных на PC2??

вопрос 2: а если на коммутаторе включить mls qos?


вопрос 3: а если на портах коммутатора в которые включены PC1 и PC2 прописать mls qos trust?


ответ: 46
пока не включен mls qos коммутатор "не замечает" маркировки qos, соответственно и не меняет ее


ответ 2: 0
по-умолчанию все порты коммутатора untrusted, соотвественно все пакеты будут перемаркированы под cos0/dscp be(по-умолчанию)


ответ 3:
это зависит от того чему верит коммутатор. по-умолчанию, mls qos trust доверяет меткам dscp, потому dscp не будет изменен, PC2 получит кадры с dscp 46

2010-10-19

Question of the day

вопрос:
в каких ролях(режимах) коммутатор генерирует BPDU?

ответ:
в режиме pvst bpdu генерируются только корневым коммутатором (аналогично - 802.1d)
в режимах rapid-pvst, mstp - bpdu генерируются всеми комутаторами (802.1w, 802.1s, rapid-pvst).


естественно вы можете мне возразить, что ответ по pvst это противоречит принципам работы stp, но тут есть различие между "генерацией" bpdu, и "ретрансляцией" bpdu:
1) корневой коммутатор порождает конфигурационное bpdu и отправляет на всех designated портах
2) все коммутаторы получившие конфигурационный bpdu на своих root портах, пересылают его дальше со всех своих designated портов, меняя BID, Path Cost и Message Age.


контроль:
представим себе топологию:
SW1 --- SW2 --- R1
где SW1 - корневой коммутатор.



SW1# debug spanning-tree bpdu transmit

11w3d: STP: VLAN0001 Fa0/1 tx BPDU: config protocol=ieee
    Data : 0000 00 00 00 80010019E8B79E80 00000000 80010019E8B79E80 8001 0000 1400 0200 0F00
11w3d: STP: VLAN0001 Fa0/1 tx BPDU: config protocol=ieee
    Data : 0000 00 00 00 80010019E8B79E80 00000000 80010019E8B79E80 8001 0000 1400 0200 0F00

bpdu генерируются и отправляются каждые 2 сек.


SW2# debug spanning-tree bpdu transmit
SW2#
SW2# show spanning-tree interface fa0/2 detail
 Port 2 (FastEthernet0/2) of VLAN0001 is forwarding
   Port path cost 4, Port priority 128, Port Identifier 128.02.
   Designated root has priority 32769, address 0019.e8b7.9e80
   Designated bridge has priority 32769, address 0024.13db.d400
   Designated port id is 128.02, designated path cost 19
   Timers: message age 0, forward delay 0, hold 0
   Number of transitions to forwarding state: 1
   Link type is point-to-point by default
   BPDU: sent 2, received 0
SW2# show spanning-tree interface fa0/2 detail
 Port 2 (FastEthernet0/2) of VLAN0001 is forwarding
   Port path cost 4, Port priority 128, Port Identifier 128.02.
   Designated root has priority 32769, address 0019.e8b7.9e80
   Designated bridge has priority 32769, address 0024.13db.d400
   Designated port id is 128.02, designated path cost 19
   Timers: message age 0, forward delay 0, hold 0
   Number of transitions to forwarding state: 1
   Link type is point-to-point by default
   BPDU: sent 4, received 0
SW2#

как мы видим, количество отправленных bpdu растет, но debug их не показывает :)
усложним задачу:

SW1# configure terminal
SW1(config)# interface fa0/1

11w3d: STP: VLAN0001 Fa0/1 tx BPDU: config protocol=ieee
    Data : 0000 00 00 00 80010019E8B79E80 00000000 80010019E8B79E80 8001 0000 1400 0200 0F00
SW1(config-if)# spanning-tree bpdufilter enable
SW1(config-if)#

отправка bpdu прекратилась (больше нет портов в роли designated). посмотрим что происходит теперь на SW2:



SW2#
SW2# show spanning-tree interface fa0/2 detail
 Port 2 (FastEthernet0/2) of VLAN0001 is forwarding
   Port path cost 4, Port priority 128, Port Identifier 128.02.
   Designated root has priority 32769, address 0019.e8b7.9e80
   Designated bridge has priority 32769, address 0024.13db.d400
   Designated port id is 128.02, designated path cost 19
   Timers: message age 0, forward delay 0, hold 0
   Number of transitions to forwarding state: 1
   Link type is point-to-point by default
   BPDU: sent 12, received 0
SW2# show spanning-tree interface fa0/2 detail
 Port 2 (FastEthernet0/2) of VLAN0001 is forwarding
   Port path cost 4, Port priority 128, Port Identifier 128.02.
   Designated root has priority 32769, address 0019.e8b7.9e80
   Designated bridge has priority 32769, address 0024.13db.d400
   Designated port id is 128.02, designated path cost 19
   Timers: message age 0, forward delay 0, hold 0
   Number of transitions to forwarding state: 1
   Link type is point-to-point by default
   BPDU: sent 12, received 0
SW2#
SW2#
2w5d: STP: VLAN0001 Fa0/2 tx BPDU: config protocol=ieee
    Data : 0000 00 00 01 8001002413DBD400 00000000 8001000024.13db.d4002413DBD400 8002 0000 1400 0200 0F00
SW2#show spanning-tree interface fa0/2 detail
 Port 25 (GigabitEthernet0/1) of VLAN0001 is forwarding 
   Port path cost 4, Port priority 128, Port Identifier 128.02.
   Designated root has priority 32769, address 0024.13db.d400
   Designated bridge has priority 32769, address 0024.13db.d400
   Designated port id is 128.02, designated path cost 0
   Timers: message age 0, forward delay 0, hold 0
   Number of transitions to forwarding state: 1
   Link type is point-to-point by default
   BPDU: sent 13, received 0
SW2#
2w5d: STP: VLAN0001 Fa0/2 tx BPDU: config protocol=ieee
    Data : 0000 00 00 01 8001002413DBD400 00000000 8001002413DBD400 8002 0000 1400 0200 0F00
мы видим что сначала счетчик bpdu не растет. через 20 секунд - начинает расти. попутно мы видим что в выводе команды show spanning-tree detail изменился корневой коммутатор :)
т.е. пока SW2 не решил что SW1 исчез (прошел max age) - он не генерировал bpdu. что и требовалось доказать :)

2010-10-18

Question of the day

дано:

два роутера соединены fa0/0 интерфейсами. их конфиг:



hostname R1
!
ipv6 unicast-routing
!
int fa0/0
  ipv6 address 2001:1::1/64
  no shutdown
!




hostname R2
!
ipv6 unicast-routing
!
int fa0/0
  ipv6 address autoconfig
  no shutdown
!


вопрос 1:
получит ли R2 адрес ipv6 на интерфейс fa0/0 адрес автоматически?

вопрос 2:
что нужно прописать на R1 что б ответ на вопрос 1 стал утвердительным? :)
a. ничего
b. ipv6 nd prefix 2001:1::/64
c. ipv6 nd ra suppress
d. ipv6 nd advertisement-interval 5
e. ipv6 nd dad
f. не c
g. b и c
h. b и не c
i.. b,c,d,e
j. b, c, d и не e
k. ни один из вариантов (или их комбинаций) не является правильным

вопрос 3:
что произойдет если на R2 ввести команды:

R2(config)# int fa0/0
R2(config-if)# ipv6 address 2001:1::1/64
R2(config-if)# do ping 2001:1::1


ответы:

1. нет, R2 не получит адрес автоматически, т.к. не получает информацию о наличии роутера и о префиксе линка.

2. достаточно "не c", но большинство вариантов включающих "no ipv6 nd ra suppress" будут работать :)
по-умолчанию R1 будет отправлять только NA (neighbor advertisement) сообщения. для того что б R2 смог сделать IPv6 SLAA (state-less autoconfiguration) нужно что б R1 отправлял RA(router advertisement), которые по-умолчанию отключены(supressed).

3. при указанном конфиге, маршрутизаторы используют механизм IPv6 ND DAD:

R1# show ipv6 interface fa0/0
FastEthernet0/0 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::222:90FF:FEAF:10D8 
  No Virtual link-local address(es):
  Stateless address autoconfig enabled
  Global unicast address(es):
    2001:1::222:90FF:FEAF:10D8, subnet is 2001:1::/64 [EUI/CAL/PRE]
      valid lifetime 2591879 preferred lifetime 604679
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::1:FFAF:10D8
  MTU is 1500 bytes
  ICMP error messages limited to one every 100 milliseconds
  ICMP redirects are enabled
  ICMP unreachables are sent
  ND DAD is enabled, number of DAD attempts: 1
  ND reachable time is 30000 milliseconds (using 15789)
  Hosts use stateless autoconfig for addresses.
потому мы можем наблюдать следующую цепочку событий:
1) мы назначаем адрес на интерфейс
2) роутер выполняет проверку DAD, отправляя NS(neighbor solicitaion) сообщение
3) если роутер получает ответ на NS, адрес уже занят
4) роутер маркирует адрес как DUP
R2(config-if)# do debug ipv6 nd
R2(config-if)# ipv6 address 2001:1::1/64
R2(config-if)#
*Oct 18 13:30:13.029: IPv6-Address: Prefix change 0x1 -> 0x4
*Oct 18 13:30:13.029: IPv6-Address: Updating prefix 2001:1::/64 to FastEthernet0/0
*Oct 18 13:30:13.029: IPv6-Address: Address 2001:1::1 configured on FastEthernet0/0
*Oct 18 13:30:13.029: IPv6-Addrmgr-ND: DAD request for 2001:1::1 on FastEthernet0/0
*Oct 18 13:30:13.033: ICMPv6-ND: Sending NS for 2001:1::1 on FastEthernet0/0
*Oct 18 13:30:13.037: ICMPv6-ND: Received NA for 2001:1::1 on FastEthernet0/0 from 2001:1::1
PC1(config-if)#
*Oct 18 13:30:13.037: %IPV6_ND-4-DUPLICATE: Duplicate address 2001:1::1 on FastEthernet0/0

естественно, наиболее интересным элементом вопроса является то, кого именно мы пропингуем по адресу 2001:1::1 :)
к счастью(или к сожалению), маршрутизатор не использует адреса маркированые как DUP, т.е. не отправляет по ним NA (и таким образом невозможно разрешение IPv6 адреса в MAC данного роутера), и вообще игнорирует его присутствие в конфиге.
таким образом адрес 2001:1::1 будет соответствовать первому роутеру использовавшему данный адрес, т.е. R1:

R2(config-if)#do show run interface fa0/
Building configuration...

Current configuration : 115 bytes
!
interface FastEthernet0/0
 ipv6 address 2001:1::1/64
 ipv6 address autoconfig
end

R2(config-if)#do show ipv6 interface
FastEthernet0/0 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::222:90FF:FEAF:10D8 
  No Virtual link-local address(es):
  Stateless address autoconfig enabled
  Global unicast address(es):
    2001:1::1, subnet is 2001:1::/64 [DUP]
    2001:1::222:90FF:FEAF:10D8, subnet is 2001:1::/64 [EUI/CAL/PRE]
      valid lifetime 2591879 preferred lifetime 604679
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::1:FFAF:10D8
  MTU is 1500 bytes
  ICMP error messages limited to one every 100 milliseconds
  ICMP redirects are enabled
  ICMP unreachables are sent
  ND DAD is enabled, number of DAD attempts: 1
  ND reachable time is 30000 milliseconds (using 15789)
  Hosts use stateless autoconfig for addresses.
R2(config-if)# do show ipv6 route
IPv6 Routing Table - Default - 3 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
C   2001:1::/64 [0/0]
     via FastEthernet0/0, directly connected
L   2001:1::222:90FF:FEAF:10D8/128 [0/0]
     via FastEthernet0/0, receive
L   FF00::/8 [0/0]
     via Null0, receive
R2(config-if)# do sh ipv6 ro 2001:1::1
Routing entry for 2001:1::/64
  Known via "connected", distance 0, metric 0, type connected
  Route count is 1/1, share count 0
  Routing paths:
    directly connected via FastEthernet0/0
      Last updated 00:24:58 ago

R2(config-if)# do sh ipv6 ro 2001:1::222:90FF:FEAF:10D8    
Routing entry for 2001:1::222:90FF:FEAF:10D8/128
  Known via "connected", distance 0, metric 0, type receive
  Route count is 1/1, share count 0
  Routing paths:
    receive via FastEthernet0/0
      Last updated 00:25:09 ago

...
R1(config-if)#do debug ipv icmp
  ICMP Packet debugging is on
R1(config-if)#
*Oct 18 13:20:59.409: ICMPv6: Received echo request, Src=2001:1::222:90FF:FEAF:10D8, Dst=2001:1::1
*Oct 18 13:20:59.413: ICMPv6: Sent echo reply, Src=2001:1::1, Dst=2001:1::222:90FF:FEAF:10D8
*Oct 18 13:20:59.413: ICMPv6: Received echo request, Src=2001:1::222:90FF:FEAF:10D8, Dst=2001:1::1
*Oct 18 13:20:59.413: ICMPv6: Sent echo reply, Src=2001:1::1, Dst=2001:1::222:90FF:FEAF:10D8
*Oct 18 13:20:59.417: ICMPv6: Received echo request, Src=2001:1::222:90FF:FEAF:10D8, Dst=2001:1::1
*Oct 18 13:20:59.417: ICMPv6: Sent echo reply, Src=2001:1::1, Dst=2001:1::222:90FF:FEAF:10D8
*Oct 18 13:20:59.417: ICMPv6: Received echo request, Src=2001:1::222:90FF:FEAF:10D8, Dst=2001:1::1
*Oct 18 13:20:59.421: ICMPv6: Sent echo reply, Src=2001:1::1, Dst=2001:1::222:90FF:FEAF:10D8
*Oct 18 13:20:59.421: ICMPv6: Received echo request, Src=2001:1::222:90FF:FEAF:10D8, Dst=2001:1::1
*Oct 18 13:20:59.421: ICMPv6: Sent echo reply, Src=2001:1::1, Dst=2001:1::222:90FF:FEAF:10D8do R1(config-if)#
как мы видим, на R2 не появился Local маршрут, и маршруты на локальный SLAA-адрес и на адрес 2001:1::1 ярко отличаются (receive для Local, directly connected для удаленного).

2010-10-14

Question of the day [MSTP]

вопрос:

как передаются MSTP(802.1s) BPDU?
естественно, вопрос не имеет односложного ответа, потому приведу уточняющие вопросы:

a) сколько BPDU будет генерироваться в домене MSTP при наличии 30 инстанций MST, и 3000 vlan'ов?
b) в каком влане передаются BPDU разных инстанций?
c) поддерживается ли инкапсуляция ISL или только 802.1q?


ответы:


a) MSTP использует ровно один BPDU независимо от количества инстанций.
фактически BPDU состоит из общей части, содержащей информацию о таймерах, версии, и множество "расширений", по одному на каждую инстанцию + для CIST. расширения содержат информацию о корнях/айди/костах каждого дерева.


b) на транковых портах MSTP BPDU передается в нативном влане (независимо от номера - просто без тега). если транк не поддерживает нативный влан, используется 1й влан (независимо от того какие вланы на транке разрешены).


c) фактически поддерживаются обе инкапсуляции.


приложения:
native_mstp.pcap
isl_mstp.pcap
dot1q_mstp.pcap

2010-10-12

Question of the day

вопрос:
что делает команда 'spanning-tree stack-port' в режиме настройки интерфейса?



sw(config-if)#spanning-tree ?
...
  stack-port     Enable stack port
...

2010-10-11

linux-2.6.35 make nconfig

в ядре 2.6.35 добавили новый интерфейс для конфигурирования ядра: nconfig.
он, как и menuconfig использует ncurses, однако имеет несколько более "футуристичный вид" :)
принципиальных различий вроде как нету, но как-то приятнее :)

Ubuntu 10.10 Maverick Meerkat

сегодня обновился до 10.10
из приятностей: ядро 2.6.35, а в этом ядре наконец-то есть vgaswitcheroo!
а vgaswitcheroo, в свою очередь, позволит мне наконец под линухой переключать видеокарты! (напомню, в моем ноуте их две :))


1) проверим работоспособность vgaswitcheroo:

# lscpi -vnn | grep VGA
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a42] (rev 07) (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: ATI Technologies Inc M92 LP [Mobility Radeon HD 4300 Series] [1002:9552] (prog-if 00 [VGA controller])
# cat /sys/kernel/debug/vgaswitcheroo/switch
0:+:Pwr:0000:00:02.0
1: :Pwr:0000:01:00.0

что мы видим:
а) две видях, интел и ати, и соответствующие id (pci bus:device)
б) vgaswitcheroo нашел обе видяхи, видяха 0 - intel, видяха 1 - ати (видно по bus:device)
в) сейчас активна интел, но электричество жрут обе :)


2) подготовимься к впереключению

напишем крохотный скриптик:
#!/bin/bash

MAGICFILE="/sys/kernel/debug/vgaswitcheroo/switch"

case $1 in
intel|integrated)
echo -n DIGD > ${MAGICFILE}
;;
ati|radeon|discreete)
echo -n DDIS > ${MAGICFILE}
;;
off)
echo -n OFF | ${MAGICFILE}
;;
*)
cat ${MAGICFILE}
;;
esac
скриптик делает очень простую штуку:
а) при запуске с параметром intel включает встроенную видяху
б) при запуске с параметром ati включает дискретную видяху
в) при запуске с параметром off выключает неактивную видяху
в) при запуске с другими параметрами выдает информацию о том какая видяха активна


3) последняя проблема. переключение работает только при остановленном X-сервере.
т.е. нужно или запускать скриптик из консольки, либо в скриптике добавить /etc/init.d/kdm stop/start до/после смены видяхи. в скрипт я эти действия не добавляю, поскольку при таком останове X-ов kde не сохраняет сессию, мне проще самому завершить сеанс, и с консольки все сделать.


4) тест

# chvt 1
# /etc/init.d/kdm stop
# vgaswitcher
0:+:Pwr:0000:00:02.0
1: :Pwr:0000:01:00.0
# vgaswitcher ati
# vgaswitcher
0: :Off:0000:00:02.0
1:+:Pwr:0000:01:00.0
# /etc/init.d/kdm start

теперь попробуем воспроизводить HD-видео :)
с интеловской видяхой воспроизведение HD было кошмаром - 100% загрузка проца и лаги.
испытаем на big_buck_bunny_720p_h264.mov:
# w | head -1
15:09:07 up 2:33, 5 users, load average: 1,56, 1,02, 1,13
# mplayer Videos/big_buck_bunny_720p_h264.mov

MPlayer 1.0rc4-4.4.5 (C) 2000-2010 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing Videos/big_buck_bunny_720p_h264.mov.
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1d95d70]max_analyze_duration reached
[lavf] stream 0: video (h264), -vid 0
[lavf] stream 2: audio (aac), -aid 0, -alang eng
VIDEO: [H264] 1280x720 24bpp 24.000 fps 5146.8 kbps (628.3 kbyte/s)
Clip info:
major_brand: qt
minor_version: 537199360
compatible_brands: qt
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
==========================================================================
Opening audio decoder: [faad] AAC (MPEG2/4 Advanced Audio Coding)
AUDIO: 48000 Hz, 2 ch, s16le, 437.6 kbit/28.49% (ratio: 54700->192000)
Selected audio codec: [faad] afm: faad (FAAD AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
Movie-Aspect is undefined - no prescaling applied.
VO: [xv] 1280x720 => 1280x720 Planar YV12
A: 547.0 V: 547.0 A-V: -0.000 ct: 0.022 0/ 0 31% 3% 4.4% 11 0
Exiting... (Quit)
# w | head -1
15:18:25 up 2:42, 5 users, load average: 2,15, 2,19, 2,52
по top'у процесс mplayer ест где-то 25-35% процессорного времени.
большую нагрузку на самом деле создает io :)

видео идет реально гладко, звук не отстает, прокрутка не тормозит :)
правда клавиатура ноута стает заметно теплее :)

UPDATE1: добавил функцию OFF:
root@t00l ~ # vgaswitcher
0:+:Pwr:0000:00:02.0
1: :Pwr:0000:01:00.0
root@t00l ~ # vgaswitcher off
root@t00l ~ # vgaswitcher
0:+:Pwr:0000:00:02.0
1: :Off:0000:01:00.0
после "выключения" внешней видяхи кулер заметно снижает обороты :)
при переключение выключение происходит автоматом. а вот при использовании встроенной можно ати выключить без переключений.

а знаете ли вы?

что в zsh есть туева куча подстановок.
например можно вывести список пустых каталогов:

ls -d *(/^F)

например можно вывести список просто каталогов:

ls -d *(/)

файлов модифицированных за посление 3 минуты:

ls *(mm+3)

каталогов к которым обращались ровно 1 час назад:

ls -d *(/ah3)

каталоги приинадлежащие root'у:

ls -d *(/u0)

подробнее: man zshall /Glob Qualifiers

Question of the day

вопрос 1:
как можно очистить буферы и кеши ядра?
например если нам не хочется что б наши фоновые приложения уходили глубоко в своп

ответ:
используем  файл /proc/sys/vm/drop_caches
если в файл записать 1, то очищается  только pagecache.
если в файл записать 2, то очищаются dentries и inodes.
если в файл записать 3, то очищаются pagecache, dentries и inodes.
см. man proc

улучшить эфективность можно, сделав перед очисткой кеша запись на диск "грязных" inode, dentry и pagecache (т.е. тех, которые были изменены в памяти и еще не сохранены обратно на диск):

# sync
# echo 4 > /proc/sys/vm/drop_caches


вопрос 2:
как можно вывести на экран 10 последовательных чисел (например от 1 до 10)? а 10 раз определенное сообщение, например messageX где X число от 1 до 10?

ответ:
1. seq 10
2. вариантов просто бесконечное количество :)
а) for i in $(seq 10); do
echo message${i}
done
б) for i in {1..10}; do
echo message${i}
done
в) for i ({1..10}) echo message${i}
г) echo message{1..10}
д) ваш вариант :)

стоит обратить внимание:
1) что у seq может быть 3 аргумента (начальное значение, конечное, шаг) и ключи(например использовать фиксированную ширину):
seq -w 10 10 100
выведет числа 010 020 030 ... 100
2) подстановка $(command) эквивалентна подстановке `command`
3) {X..Y} не совместимо с sh, зато удобно, и поддерживается bash/zsh/...
4) for i (values) command так же несовместимо с sh, и тоже бывает удобно для выполнения в цикле 1й команды :)

Question of the day

вопрос:
можно ли на коммутаторах cisco блокировать unknown unicast flooding?

ответ:
да. 
можно блокировать и flooding на неизвестные unicast, и неизвестные multicast адреса получателей:



SW1#conf t
SW1(config)#int fa0/1
SW1(config-if)#switchport block ?
  multicast  Block unknown multicast addresses
  unicast    Block unknown unicast addresses
SW1(config-if)#switchport block unicast 

SW1(config-if)#switchport block multicast 
SW1(config-if)#^Z
SW1#show interface fa0/1 switchport | in block
Unknown unicast blocked: enabled
Unknown multicast blocked: enabled
SW1#
но при этом надо быть осторожным, ведь учитывая mac-address aging timer и arp aging timer, можно получить недоступность соседних хостов: 
arp-кеш еще содержит мак получателя, а mac-таблица - уже нет, результат - данные втихую теряются, пока получатель не отправит на свич хоть какой-то кадр по своей инициативе для обновления таблицы маков.
вариант решения - полностью статическая таблица mac-адресов :)

Question of the day

вопрос 1:
поддерживает ли ASA PPP?

ответ:
да. правда в условиях отстутствия последовательных портов приходится выкручиваться :)


asa(config)# sh ver | in Version         
Cisco Adaptive Security Appliance Software Version 8.2(1) 
Device Manager Version 6.2(1)
asa(config)# int e0/0
asa(config-if)# ppoe ?
interface mode commands/options:
  client  PPPoE client configuration
asa(config-if)# 
см. так же:
show parser dump configure
show parser dump interface
и т.д.

вопрос 2:
поддерживает ли ASA GRE (mGRE, DMVPN, GREoIPSec)?

ответ:
к сожалению нет. ASA ни в коем виде не поддерживает GRE. и это наверно основной show stopper для использования DMVPN в корпоративных сетях.
проверка:
show parser dump configure | in gre
show parser dump configure | in dmvpn
show parser dump interface | in gre
show parser dump interface | in dmvpn

2010-10-07

Question of the day

вопрос:

какой ethertype используется для сообщений ieee802.1x?

ответ:
EAPoL использует ethertype 0x888e

2010-10-04

Question of the day

вопрос 1:
как настроить на cisco mars синхронизацию времени с ntp?

ответ:


1) открываем консоль
2) задаем ntp сервер
ssh pnadmin@csmars
Password:

[pnadmin]$ ntp
Usage : ntp server [ntp server1] [ntp server2]
        ntp sync
        ntp disable
[pnadmin]$ ntp server 172.16.1.105 
Mon Oct  4 18:03:10 ALMT 2010
[pnadmin]$ exit
Connection to 127.0.0.1 closed.


вопрос 2:
как часто марс синхронизируется с ntp-сервером?

ответ:
имхо, настолько же часто, как администратор вводит в консоли команду ntp sync :)

2010-10-03

Acer AS3810TG

вот уже год я являюсь счастливым обладателем сабжа.
поделюсь впечатлениями от использования (считайте рекламой).
в хронологическом порядке

1) на ноуте оказалась заблокирована Intel VT.
после обращения в сапорт типа "вы ж обещали, вот на сайте написано! обновите биос и включите vt!" - тишина. где-то через месяц вспомнил об истории, заглянул на сайт, и оказалось проблема решена - упоминания о виртуализации с сайта исчезли.

2) получил лицензию на win7, решил поставить на ноут.
a) 32-битная версия давала на выбор (в зависимости от настроек биоса) два бсода.
с 20й попытки каким-то чудом установилась(нужно было в определенном порядке переключать опции биоса, ребутать, переразбивать и форматировать разделы, ребутать, переключать опции, и ставить на размеченный веник).
b) но, после хибернейта с вероятностью 30% не просыпался - бсод, ребут, фск.
c) и с вероятностью еще 30% начинал безбожно тормозить - process explorer говорил что interrupts 100%

3) поставил убунту.
a) первая же трабла - система не бутается
оказалось что веник(hitachi) не поддерживает ncq, и как-то криво об этом сообщает контроллеру. без отдельного хака линуксовый драйвер не может работать с веником и виснет на detect.
b) не работает суспенд. точнее уснуть - не проблема. проблема проснуться.
спустя пол года выяснилось что проблема в драйвере i8042 который неправильно инициализирует после суспенда контроллер.
c) не работает микрофон.
решилось само собой после 3х месяцев танцев с бубном.

4) acer объявил о заводском браке проводки кабеля, которая может привести к перетиранию кабеля, закупорке вентиляции, и перегреву.
сдал в ремонт (1й раз).
работе микрофона под убунтой не помогло

5) добрые люди подсказали что можно поставить win7 64bit.
действительно поставилась без проблем (и без единого бсода).
правда пришлось переставлять 3 раза - после установки дров начинались проблемы с энергосбережением (3 часа вместо обещанных 8), с зависаниями и т.д.
с третьей попытки, с тщательно отобранными модифицированными дровами все наконец-то заработало.

6) на экране появился битый пиксел.

7) сдох веник.
второе обращение в сервисный центр.
веник на замену заказали и доставили в течении 4 недель.

8) приблизительно через 365 дней после покупки перестал заряжаться аккумулятор.
без объявления войны.
гугл помог выяснить, что это не баг, а фича - в прошивке контроллера аккумулятора стоит заглушка, блокирующая зарядку в определенных условиях (я так понял ровно через год после первого включения?).
как выяснилось в сервис-центре, гарантия на аккум - 6 месяцев.
предложили за 160у.е. заказать новый аккум (почти треть стоимости ноута?)

продолжение следует...