このブログを検索

2012/02/05

642-813J SWITCH いろいろ

HSRPでinterfaceをtrackして、実際にそのIFがダウンしてpriorityがstandbyルータより小さくなっても、standbyルータ側にpreempt設定がないと、activeルータの交替は起こらない。

これは知らなかった。priorityが逆転したら交替するのかと思っていた。

実際にやってみて確認した。
オークションで買った3550の一台に、期せずしてGBICが2個ついていたので、光ケーブルを買ってきた。 秋葉原の愛三電機で、1m 1890円だった。
show vlan で、 idをつけるとそのvlanだけの情報を表示する。 idなしの場合、trunkポートは表示されないが、idを指定するとtrunkポートも表示される。
知ってた?常識?
etherchannelで、desirable-autoに設定すると、 最初に以下のようなエラーになる。

01:20:34: %EC-5-L3DONTBNDL1: Fa0/48 suspended: PAgP not enabled on the remote port.


が、しばらくまつとネゴが成功する。
どうして?
あー、あれか、STPのせいでFWDになっていないからか。
やってみたが、silentモードであってもやはり auto - auto, on - auto ではチャネルが確立しない。 ガイドを読むと「対向がファイルサーバやネットワークアナライザであってもチャネルを形成できる」などと書いてある。 

2012/02/03

ループガード

loopガード。bpduが途絶えると検知する。
cata1#sho run interface fastEthernet 0/3
Building configuration...

Current configuration : 134 bytes
!
interface FastEthernet0/3
switchport access vlan 10
switchport mode access
spanning-tree portfast
spanning-tree guard loop
end

cata1#
02:48:31: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to down
02:48:32: %LINK-3-UPDOWN: Interface FastEthernet0/3, changed state to down
02:48:35: %LINK-3-UPDOWN: Interface FastEthernet0/3, changed state to up
02:48:36: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to up



cata1#sho spanning-tree

VLAN0010
Spanning tree enabled protocol ieee
Root ID Priority 10
Address 0016.9da0.4ec0
Cost 19
Port 3 (FastEthernet0/3)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)
Address 000f.90b3.b380
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 19 128.1 P2p
Fa0/2 Back BLK 19 128.2 P2p
Fa0/3 Root FWD 19 128.3 P2p




Cata2950_2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Cata2950_2(config)#no spanning-tree vlan 10
Cata2950_2(config)#end




cata1#sho spanning-tree

VLAN0010
Spanning tree enabled protocol ieee
Root ID Priority 10
Address 0016.9da0.4ec0
Cost 19
Port 3 (FastEthernet0/3)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)
Address 000f.90b3.b380
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 15

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 19 128.1 P2p
Fa0/2 Back BLK 19 128.2 P2p
Fa0/3 Desg BKN*19 128.3 P2p *LOOP_Inc

cata1#
02:49:47: %SPANTREE-2-LOOPGUARD_BLOCK: Loop guard blocking port FastEthernet0/3 on VLAN0010.
cata1#sho spanning-tree

VLAN0010
Spanning tree enabled protocol ieee
Root ID Priority 32778
Address 000f.90b3.b380
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)
Address 000f.90b3.b380
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 15

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 19 128.1 P2p
Fa0/2 Back BLK 19 128.2 P2p
Fa0/3 Desg BKN*19 128.3 P2p *LOOP_Inc

cata1#
cata1#sho spanning-tree interface fastEthernet 0/3 detail
Port 3 (FastEthernet0/3) of VLAN0010 is broken (Loop Inconsistent)
Port path cost 19, Port priority 128, Port Identifier 128.3.
Designated root has priority 32778, address 000f.90b3.b380
Designated bridge has priority 32778, address 000f.90b3.b380
Designated port id is 128.3, 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
Loop guard is enabled on the port
BPDU: sent 2, received 28
cata1#



cata1#show spanning-tree inconsistentports


Name Interface Inconsistency
-------------------- ---------------------- ------------------
VLAN0010 FastEthernet0/3 Loop Inconsistent

Number of inconsistent ports (segments) in the system : 1
「portfastとループガードは同時に設定できない」と、黒本に書いてあり、ciscoのサイトにもそういう記述があったけど、 設定できるぜぇ?
cata1#sho spanning-tree interface fastEthernet 0/3 detail

 Port 3 (FastEthernet0/3) of VLAN0010 is forwarding
   Port path cost 19, Port priority 128, Port Identifier 128.3.
   Designated root has priority 16394, address 000b.fdb9.a680
   Designated bridge has priority 32778, address 000f.90b3.b380
   Designated port id is 128.3, designated path cost 19
   Timers: message age 0, forward delay 0, hold 0
   Number of transitions to forwarding state: 1
   The port is in the portfast mode
   Link type is point-to-point by default
   Loop guard is enabled on the port
   BPDU: sent 250, received 0
cata1#

ね?

ルートガード

今度はルートガード。

cata1(config)#interface fastEthernet 0/3
cata1(config-if)#spanning-tree guard root
cata1(config-if)#end
cata1#
02:28:26: %SPANTREE-2-ROOTGUARD_CONFIG_CHANGE: Root guard enabled on port FastEthernet0/3.
cata1#
cata1#
02:28:27: %SYS-5-CONFIG_I: Configured from console by console
cata1#
02:28:39: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to down
02:28:40: %LINK-3-UPDOWN: Interface FastEthernet0/3, changed state to down
02:28:43: %SPANTREE-2-ROOTGUARD_BLOCK: Root guard blocking port FastEthernet0/3 on VLAN0010.
02:28:43: %LINK-3-UPDOWN: Interface FastEthernet0/3, changed state to up
02:28:44: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to up
cata1#
cata1#sho spanning-tree

VLAN0010
Spanning tree enabled protocol rstp
Root ID Priority 32778
Address 000f.90b3.b380
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)
Address 000f.90b3.b380
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 19 128.1 P2p
Fa0/2 Back BLK 19 128.2 P2p
Fa0/3 Desg BKN*19 128.3 P2p Peer(STP) *ROOT_Inc

cata1#
cata1#sho spanning-tree inconsistentports

Name Interface Inconsistency
-------------------- ---------------------- ------------------
VLAN0010 FastEthernet0/3 Root Inconsistent

Number of inconsistent ports (segments) in the system : 1
http://www.cisco.com/cisco/web/support/JP/100/1008/1008510_74-j.html

ルートガードはinterfaceで設定する。

ルートガードは文字通り新しいルートブリッジをガードするのだが、
bpduguardも結局は同じ目的だった。

あれかな、bpduguardはルートブリッジでなくてもトポロジ変更があり得るのを防ぎ、
ルートガードはトポロジ変更は許容するがルートの変更は防ぐ、ということだろうか。

bpduguardではinterfaceはerror disableになる。
ルートガードでは upのままであるが、show spanning-tree interface detailで見ると、"broken"となっている。

BPDUガード

portfastを設定したポートにスイッチをつないでループが発生する状況を作ろうと思ったが、どうしてもできない。

ループが発生するのは2つのスイッチで両方spanning treeを無効にした場合だけである。
2つのスイッチのvlan 10に所属する二つのポートをそれぞれportfastに設定して2本のケーブルでつないだら、 全部FWDになってループが発生すると思ったのだが、ちゃんと一個がBLKになる。どうしてだろう・・・?

portfastを設定したことによってループが発生することになる例が思いつかない。

基本的なところから確認していこう。 まず、STPに対応していないL2スイッチを、ループが発生するようなトポロジで、つまり、2本のケーブルで同じセグメントを接続してみたらどうなるか。

1本目のケーブルを接続すると、LIS, LRNを経てFWDになる。 2本目を接続すると、即時BLKとなる。 この、2本目を接続するポートをportfastにしたらループが発生しそうだ。 

やってみよう。 ・・・が、ポートはやはり即時BLKとなる。

Interface Role Sts Cost Prio.Nbr Type

---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 19 128.1 P2p
Fa0/2 Back BLK 19 128.2 P2p


fa0/1,0/2をともにportfastに設定してSTPに対応していないスイッチングハブに接続したが、ひとつがBLKになり、 ループは発生しない。これでループが発生しないなら問題ないでしょ・・・・

でも、どうして両方portfastにしても片方がBLKになるんだろう? STP未対応のスイッチングハブでも、BPDUは転送するから、ひとつのポートから送信されたBPDUをもう一方で受信することでBLKになるのか。

http://www.cisco.com/cisco/web/support/JP/100/1007/1007812_65-j.html

どうやら、portfastを設定することによりループが発生することにはならないようだ。 portfastを設定することによって問題となる可能性のあるのは、そのポートにL2スイッチを接続してそれがルートになることにより、トポロジに予期しない変化が発生することのようだ。

そこで、bpduguardを設定する。これはグローバルに設定する。 bpduguardを設定した状態で、portfastを設定したポートにSTP対応スイッチを接続すると、 リンクアップするがすぐにerrdisableになる。

cata1(config)#spanning-tree portfast ?
bpdufilter Enable portfast bdpu filter on this switch
bpduguard Enable portfast bpdu guard on this switch
default Enable portfast by default on all access ports

cata1(config)#spanning-tree portfast bpduguard
cata1(config)#end
cata1#
02:19:08: %SYS-5-CONFIG_I: Configured from console by console
cata1#sho spanning-tree



VLAN0010
Spanning tree enabled protocol rstp
Root ID Priority 32778
Address 000f.90b3.b380
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)
Address 000f.90b3.b380
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 19 128.1 P2p
Fa0/2 Back BLK 19 128.2 P2p





cata1#
02:19:30: %LINK-3-UPDOWN: Interface FastEthernet0/3, changed state to up
02:19:30: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port FastEthernet0/3 with BPDU Guard enabled. Disabling port.
02:19:30: %PM-4-ERR_DISABLE: bpduguard error detected on Fa0/3, putting Fa0/3 in err-disable state
02:19:32: %LINK-3-UPDOWN: Interface FastEthernet0/3, changed state to down
cata1#
cata1#sho spanning-tree

VLAN0010
Spanning tree enabled protocol rstp
Root ID Priority 32778
Address 000f.90b3.b380
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)
Address 000f.90b3.b380
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 19 128.1 P2p
Fa0/2 Back BLK 19 128.2 P2p


bpduguardの意味が、やっとわかった。

2012/02/02

ブリッジプライオリティ

STPのBPDUのブリッジプライオリティのフィールドは4ビットである。つまり十進数で0~15までの16段階しかない。
デフォルトのプライオリティは32768である。BPDUには実際のpriorityを4096で割ったものが記録される。
つまりプライオリティは4096の倍数でしか設定できない。
デフォルトの場合、8になる。
プライオリティは「ブリッジID」の先頭4ビットである。

priority (4)
拡張システムID(vlan id) (12)
mac address (48)

STPの種類

初耳

switchport autostate exclude

flex link


Thu Feb 2 10:02:58 2012

STPの種類

PVST(デフォルト)... vlanごとにひとつのSTPインスタンスを持つ。つまり、vlanごとにルートブリッジの選出とポートの役割が決定される。vlanごとにrootブリッジを決め、ブロックされるポートを変えることができる。つまり、負荷分散ができる。

MST ... STPのインスタンスとvlanの対応を任意に設定できる。たとえばvlan 10,20...100と10個のvlanがあったときに、10から50はインスタンス1、60-100はインスタンス2、というように。これにより負荷分散も可能であり、いくつかのインスタンスをまとめることもできる。

2950, IOS 12.1(22)EA13 では、modeは mst, pvst, rapid-pvstのいずれかを設定できる。

cata1(config)#spanning-tree mode ?
mst Multiple spanning tree mode
pvst Per-Vlan spanning tree mode
rapid-pvst Per-Vlan rapid spanning tree mode

MSTにすると、コスト値が変わる。100Mbpsが200000 となる。

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/30 Desg FWD 200000 128.30 P2p
Fa0/47 Desg BKN*200000 128.47 P2p Bound(PVST) *ROOT_Inc
Fa0/48 Desg BKN*200000 128.48 P2p Bound(PVST) *ROOT_Inc

ちなみに上記は、対向装置がpvstの場合である。
Boun というroleは、異なるモードのstpの境界であることを示す。

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg BLK 200000 128.1 P2p
Fa0/47 Boun FWD 200000 128.47 P2p Bound(RSTP)
Fa0/48 Desg BLK 200000 128.48 P2p

モードがmstであっても、名前が違うと"Bound"になる。

RSTPとは、pvstのrapid版である。速いpvstである。
どのくらい速いか?
FWD状態のポートをダウンさせると、Roleがaltn, StsがBLKのポートが一瞬でFWDになる。
ダウンしたポートをまたアップさせると、一瞬でステータスが変わる。

なんでデフォルトをrstpにしないんだろうか?

pvst, rstp, mstについては、前回勉強したとき深くやらなかった。
実際に設定して動作を確認することもしなかった。
よく合格したな・・・。

2012/02/01

続続・642-813J SWITCHの準備

catalyst2950とcatalyst3550がある。
3550はL3スイッチなので、vlanにIPアドレスを設定できる。

今、vlan 10に 192.168.10.254/24 というアドレスを振った。
そして、そのvlan 10に所属するポートにcatalyst2950を接続し、catalyst2950に192.168.10.1/24というアドレスを持った装置を接続した。
そして192.168.10.1と192.168.10.254の間で通信をおこなった。

その後、show mac address-table を 3550で実行すると、次のようになる。
All 000b.fdb9.a683 STATIC CPU
All 000b.fdb9.a684 STATIC CPU
All 000b.fdb9.a685 STATIC CPU
All 000b.fdb9.a686 STATIC CPU
All 000b.fdb9.a687 STATIC CPU
All 000b.fdb9.a688 STATIC CPU
All 000b.fdb9.a689 STATIC CPU
All 000b.fdb9.a68a STATIC CPU
All 000b.fdb9.a68b STATIC CPU
All 000b.fdb9.a68c STATIC CPU
All 000b.fdb9.a68d STATIC CPU
All 000b.fdb9.a68e STATIC CPU
All 000b.fdb9.a68f STATIC CPU
All 000b.fdb9.a690 STATIC CPU
All 000b.fdb9.a691 STATIC CPU
All 000b.fdb9.a692 STATIC CPU
All 000b.fdb9.a693 STATIC CPU
All 000b.fdb9.a694 STATIC CPU
All 000b.fdb9.a695 STATIC CPU
All 000b.fdb9.a696 STATIC CPU
All 000b.fdb9.a697 STATIC CPU
All 000b.fdb9.a698 STATIC CPU
All 000b.fdb9.a699 STATIC CPU
All 000b.fdb9.a69a STATIC CPU
All 000b.fdb9.a69b STATIC CPU
All 000b.fdb9.a69c STATIC CPU
All 000b.fdb9.a69d STATIC CPU
All 000b.fdb9.a69e STATIC CPU
All 000b.fdb9.a69f STATIC CPU
All 000b.fdb9.a6a0 STATIC CPU
All 000b.fdb9.a6a1 STATIC CPU
All 000b.fdb9.a6a2 STATIC CPU
All 000b.fdb9.a6a3 STATIC CPU
All 000b.fdb9.a6a4 STATIC CPU
All 000b.fdb9.a6a5 STATIC CPU
All 000b.fdb9.a6a6 STATIC CPU
All 000b.fdb9.a6a7 STATIC CPU
All 000b.fdb9.a6a8 STATIC CPU
All 000b.fdb9.a6a9 STATIC CPU
All 000b.fdb9.a6aa STATIC CPU
All 000b.fdb9.a6ab STATIC CPU
All 000b.fdb9.a6ac STATIC CPU
All 000b.fdb9.a6ad STATIC CPU
All 000b.fdb9.a6ae STATIC CPU
All 000b.fdb9.a6af STATIC CPU
All 000b.fdb9.a6b0 STATIC CPU
All 000b.fdb9.a6b1 STATIC CPU
All 000b.fdb9.a6b2 STATIC CPU
All 0100.0c00.0000 STATIC CPU
All 0100.0ccc.cccc STATIC CPU
All 0100.0ccc.cccd STATIC CPU
All 0100.0ccd.cdce STATIC CPU
All 0180.c200.0000 STATIC CPU
All 0180.c200.0001 STATIC CPU
All 0180.c200.0002 STATIC CPU
All 0180.c200.0003 STATIC CPU
All 0180.c200.0004 STATIC CPU
All 0180.c200.0005 STATIC CPU
All 0180.c200.0006 STATIC CPU
All 0180.c200.0007 STATIC CPU
All 0180.c200.0008 STATIC CPU
All 0180.c200.0009 STATIC CPU
All 0180.c200.000a STATIC CPU
All 0180.c200.000b STATIC CPU
All 0180.c200.000c STATIC CPU
All 0180.c200.000d STATIC CPU
All 0180.c200.000e STATIC CPU
All 0180.c200.000f STATIC CPU
All 0180.c200.0010 STATIC CPU
100 0016.9da0.4ec1 DYNAMIC Fa0/1
100 0080.bd08.978b DYNAMIC Fa0/1
300 000d.0234.faa9 DYNAMIC Fa0/33
300 0016.9da0.4ed1 DYNAMIC Fa0/33
Total Mac Addresses for this criterion: 76
3550は48ポートで、1行目から48行目までは各ポートの持っているMACアドレスである。 それ以降のアドレスは何なのか、不明。

そして最後の4行にあるのが、実際に通信した装置のMACアドレスである。
vlanは100,200,300と作ってある。
200のアドレスはエージアウトして消えているので100,300のものが表示されている。 
さて、vlan 100について、二つのアドレスが表示されている。 このcatalystが通信した相手は1台だけで、そのmac addressは 0080.bd08.978bである。
では、もうひとつの 0016.9da0.4ec1はどこのmac addressか?

これは、catalyst3550と通信した装置の間にある、catalyst2950のポートのmac addressである。
これは衝撃的な事実である。 L3スイッチとあるデバイスが通信したときに、mac address-tableにその間のL2スイッチのポートのmac addressが記録されているとは!

私の中でL2スイッチの動作概念が覆された。
そもそも、2950の各ポートにmacアドレスがあること自体に驚いた。 管理VLANを設定したときにはL3通信をすることになるからそのときのためかなと思ったのだが、
そうではなくてL2通信しかしていないのにmac address-tableには学習されているのだ。
cdpとstpをとめたがやはり表示されている。
2950に2台のデバイスを接続してその間で通信した場合はデバイスのmac addressのみが表示される。

スイッチ間を接続すると、対向ポートのmacを学習するようだ。
l2,l3によらず。
でも、たとえスイッチ間を接続してその間でフレームを転送する必要があるとしても、 通信に必要なmacアドレスはエンド同士のみのはずだから、
やはりスイッチのポートのaddressを覚えるのはcdpなどのようなスイッチ間の通信のためではないだろうか?
ポートをキャプチャしてみると、cdp, stp, そしてloop というフレームが送信されている。 loopというのは、type 0x9000で、cdpとは違うものである。
この3つを全部とめれば、さっきの対向ポートのmac学習はしなくなった。
ちなみにloopを止めるにはinterfaceで no keepaliveを設定する。

また今更シリーズ。
catalyst2台を、それぞれvlan 10, vlan 20と二つのvlanに区切り、その2台を接続する。
やり方は2つある。
ひとつは、同じvlan同士をケーブルでつなぐ。vlanの数だけケーブルが必要になる。当然、ポートも。
もうひとつは、トランクポートを作って、スイッチ間を1本のケーブルで接続する。
こうすればvlanがいくつになってもケーブルは1本でよい。

これがトランクの使い方であるが、私はいつもvlan間直接接続方式にしていた。
つい最近、職場で3~4台のcatalystをつないだときもそうしていて、ポートが足りないと悩んでいたが、トランク接続すればよかったのだ。

ただし、一本のリンクで複数vlanをまとめるのだから当然帯域はきつくなる。
私の職場も、帯域はけっこうシビアだったのでこれでよかったのかもしれないが、
それをわかってやっていたわけではなかった。

L2スイッチについては、誤解や無知の部分がけっこうある。
STPとかが苦手なのも根本的にL2の通信についての理解不足が原因かもしれない。