このブログを検索

ラベル 642-813J の投稿を表示しています。 すべての投稿を表示
ラベル 642-813J の投稿を表示しています。 すべての投稿を表示

2012/02/09

642-813J SWITCH 準備 知らなかったコマンド

知らなかったコマンド

3550_1(config-if)#switchport host
switchport mode will be set to access
spanning-tree portfast will be enabled
channel group will be disabled


3550_1#sho interfaces fastEthernet 0/8 switchport
Name: Fa0/8
Switchport: Enabled
Administrative Mode: static access
Operational Mode: down
Administrative Trunking Encapsulation: dot1q
Negotiation of Trunking: Off
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Voice VLAN: none
Administrative private-vlan host-association: none
Administrative private-vlan mapping: none
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk private VLANs: none
Operational private-vlan: none
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture VLANs Allowed: ALL
Protected: false
Unknown unicast blocked: disabled
Unknown multicast blocked: disabled

Appliance trust: none

3550_1(config)#logging trap ?
  <0-7>        Logging severity level
  alerts         Immediate action needed           (severity=1)
  critical       Critical conditions               (severity=2)
  debugging      Debugging messages                (severity=7)
  emergencies    System is unusable                (severity=0)
  errors         Error conditions                  (severity=3)
  informational  Informational messages            (severity=6)
  notifications  Normal but significant conditions (severity=5)
  warnings       Warning conditions                (severity=4)
  <cr>

642-813J SWITCH準備 いろいろ

Tue Feb 7 09:54:52 2012
知らなかったこと

trunkモードのネゴシエーションはdtpドメイン名が異なると行われない

vtp transparent モードでは、vlan情報がrunning-configに保存される 

Tue Feb 7 10:09:01 2012
vrrpにはインタフェーストラッキングの機能がなく、ciscoが独自にオブジェクトによってトラックできるようにしている

Tue Feb 7 17:20:17 2012
aaa newmodel を入力するとvtyアクセスでユーザ名とパスワードを聞かれるようになる

Tue Feb 7 21:08:18 2012
etherchannelのシミュレーションの練習をしていたら、
vlan mask is different
とかいうメッセージが出てチャネルが確立できなくなった。

原因は、etherchannelのメンバーにしようとしたポートで、allowed vlanが設定されていたことであった。

それは気づいたのだが、いったんetherchannelを作った後でポートの設定を直しても、
portchannel IF のほうには設定が残ってしまう。

このようなケースでは、いったんport channelのIFを消して、物理ポートの設定を直してから、
ether channelを作りなおさねばならない。

それにして、portchannelとか etherchannelとかchannel groupとか、
まぎらわしいよね・・・・・・

Wed Feb 8 00:33:39 2012
L2通信、スイッチ、Catalystの使い方を、まったくといっていいほどわかっていなかったことをこの2週間程で思い知った。
だが、L2スイッチなんてハブに毛が生えたようなもんだろ?と思っている人は多いと思う。
私もその一人であった。
だが、Catalystというのはとんでもないバケモノである。
これをデフォルト設定でスイッチングハブのように扱うととんでもないことになる。

私はいまだにL2スイッチはスイッチングハブとして利用すればいいという考えだが、
そうだとしてもCatalystを使うならいろいろと注意しなければいけないことがたくさんある。

Wed Feb 8 18:35:55 2012
SNMP

version 1
GET REQUEST
GET NEXT REQUESt
GET RESPONSE
SET REQUEST
TRAP

version 2
PDUの拡張

追加
GetBulk
INFORM request
Report

version 3
セキュリティ機能の強化
PDUの暗号化


Wed Feb 8 18:51:14 2012
syslog

0: Emergency
1: Alert
2: Critical
3: Error
4: Warning
5: Notice
6: Informational
7: Debug

Thu Feb 9 01:44:29 2012
vrrpのrfcは、2338 (1998) 、3768(2004),5798(2010)
と、現在はver.3 になっている。

Thu Feb 9 01:45:38 2012
hsrpは、1998年の2281

2012/02/05

uplinkfast, backbonefast

uplinkfast

Cata2950_2#sho spanning-tree uplinkfast

UplinkFast is enabled

02:45:18: %SPANTREE_FAST-7-PORT_FWD_UPLINK: VLAN0020 FastEthernet0/11 moved to Forwarding (UplinkFast).


Station update rate set to 150 packets/sec.

UplinkFast statistics
-----------------------
Number of transitions via uplinkFast (all VLANs)            : 1
Number of proxy multicast addresses transmitted (all VLANs) : 4

Name                 Interface List
-------------------- ------------------------------------
VLAN0001             Fa0/24(fwd)
VLAN0010             Fa0/24(fwd)
VLAN0020             Fa0/11(fwd)
VLAN0030             Fa0/24(fwd)
backbonefast
uplinkfastは即座にFWDになり、メッセージも表示されるが、backbonefastはLIS→LRNを経る。だが、本来ならBPDU消失を検知してからこの移行を実施するので、 それを省略することによりより速い切り替えをおこなう。
Cata2950_2#sho spanning-tree backbonefast
BackboneFast is enabled

BackboneFast statistics
-----------------------
Number of transition via backboneFast (all VLANs)           : 1
Number of inferior BPDUs received (all VLANs)               : 1
Number of RLQ request PDUs received (all VLANs)             : 0
Number of RLQ response PDUs received (all VLANs)            : 1
Number of RLQ request PDUs sent (all VLANs)                 : 1
Number of RLQ response PDUs sent (all VLANs)                : 0

Cata2950_2#sho sp vl 20

VLAN0020
  Spanning tree enabled protocol ieee
  Root ID    Priority    32788
             Address     000b.fdb9.a680
             Cost        19
             Port        12 (FastEthernet0/12)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32788  (priority 32768 sys-id-ext 20)
             Address     0016.9da0.4ec0
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 15

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/10           Altn BLK 19        128.10   P2p
Fa0/12           Root FWD 19        128.12   P2p
Fa0/16           Desg BKN*19        128.16   P2p *LOOP_Inc


Cata2950_2#sho spanning-tree inconsistentports

Name                 Interface              Inconsistency
-------------------- ---------------------- ------------------
VLAN0020             FastEthernet0/16       Loop Inconsistent
loop guard
Cata3550#sho udld gigabitEthernet 0/1

Interface Gi0/1
---
Port enable administrative configuration setting: Follows device default
Port enable operational state: Enabled
Current bidirectional state: Bidirectional
Current operational state: Advertisement - Single neighbor detected
Message interval: 15
Time out interval: 5

    Entry 1
    ---
    Expiration time: 41
    Device ID: 1
    Current neighbor state: Bidirectional
    Device name: CAT0732Z28X
    Port ID: Gi0/1
    Neighbor echo 1 device: CAT0704Z0SX
    Neighbor echo 1 port: Gi0/1

    Message interval: 5
    CDP Device name: SW2

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

ルートガード

今度はルートガード。

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"となっている。

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の通信についての理解不足が原因かもしれない。

2012/01/29

続・642-813J SWITCHの準備 スイッチの本質

いろいろあって中断していましたが、再開します。
黒本の前にガイドを読んで再整理です。

以前、「ルータとはデバイス同士の接続を切断する装置である」と書いたことがあるが、それはL2スイッチにも言える事である。

L2スイッチは、コリジョンドメインが各ポートごとに存在する。そのポートにデバイスが接続されていれば、そのデバイスはそれぞれ別のコリジョンドメインに所属する。

たとえば10個のポートを持つL2スイッチのすべてのポートに1台ずつPCを接続した場合、コリジョンドメインは10個に分離されることとなる。

そういう意味で「L2スイッチも接続を切断する」と言えるが、その切断のしかたはルータとは異なる。

ルータはブロードキャストドメインを切断するので、適切なルーティングをおこなわないとノード間で通信ができない、という意味での切断である。

L2スイッチの場合は、受信する必要のないフレームを受信しなくてすむ、という消極的な切断である。だから、ハブで接続していたのをスイッチに置き換えたからといって、各ノード間で通信ができなくなることはない。


ハブとL2スイッチの違いを示す具体的な例をあげると、

たとえばオフィスのある島で10人がひとつのハブ(バカハブ)に接続してメールの送受信をしていたとすると、ある人のpopアクセスのやりとりを別の人が自分のPCのNICをキャプチャすることで覗き見ることができる。
実際に私はそのような状況で、他人のパスワードを盗み見たことがある(メールは読んでない)。

ハブをL2スイッチに置き換えることの利点は、主に不要なフラッディングをなくして、ネットワークの利用効率を上げることである。
つまり、「遅くならない」ようにする。ハブのときと比べると「速くなった」と感じるかもしれない。
「L2スイッチの方が高性能だから転送が速い」ということではなく、余計なフレームの送受信が減ったために相対的に速くなったように感じるのみである。


「トランスペアレントブリッジ」って何だ?

「ルートキャッシング」、「トポロジベース」について


「ルートキャッシング」というのは、一度転送をおこなったらそれをキャッシュに残しておき次回はそれを参照する、というもののようだ。

「トポロジベース」というのは、個々のフローに応じて転送を行うのではなく、ネットワークトポロジを格納しておりそれを参照して転送をおこなうもの。そのトポロジとは、つまりルータのルーティングテーブルのようなものであろう。しかし、どうしてルーティングテーブルと呼ばないのか?ルーティングじゃないから、か。では「ルーティング」と「L3転送」の違いは?

これについて納得いく説明はできないし聞いたこともない。


スパニングツリー・・・。
トラウマになっていると言っていいくらい、苦手である。
実際に使ったこともないし。

VTPにしても、etherchannelのネゴにしても、STPにしても、あまり必要性を感じない。
どれもしっかり設計・管理すれば不要な機能である。
むしろ、ネットワークの変化に動的に対応すると予想しない動作をしてよくないのではないだろうか?
きっとそういうポリシーの人もいるだろう。


etherchannelの silent modeというのは、前回BCMSNを受験したときにはなかったトピックである。
最近追加された機能なのだろうか?

このモードはデフォルトで有効であり、この場合相手からネゴシエーションをされなくてもetherchannelが有効になるとのことである。

となると、デフォルトではもしかして、on/auto/desirableのどの組み合わせでも有効になるのではないか?

この辺は実機で確認せねばなるまい。
catalyst2950を3台オークションで買った。1万円もしない。
前回、もう3年くらい前は、たしか1台1万くらいじゃなかったかな?


ブリッジングループの発生メカニズムについては、前回の試験でもよく読んだし、自分でも納得済みのことであるが、大事な原則なので、あらためて確認しておく。


switch A, BがともにPC1, PC2からのフレームを未受信でアドレス学習をおこなっていない状態であるとする。

このときPC1はPC2のMACアドレスを知っているとする。

2台のSwitchがフレーム未受信で、PC1がPC2のMACアドレスを知っている状態というのは、
PC1がarpによりPC2のMACを学習した後、PC1とPC2の間の通信がなくSwitchA,Bのアドレス学習のみエージアウトし、しかしPC1のarpテーブルはエージアウトしていないような場合が考えられる。
あるいは、あまりないがPC1でスタティックにarpテーブルを設定した場合。

その状態でPC1からPC2あてに「フレーム」が送信されたときの話。

「フレーム」というのは、送信されるデータをLayer2で捉えたときの呼び方である。それはpingのecho requestであるかもしれない。それは普通「パケット」と言う。イーサヘッダが先にあって、その後にIPヘッダがつく。フレームとして考えるとIPヘッダは「フレームのデータの一部」ということになる。

pingしたときにパケットキャプチャすると、イーサヘッダも見える。実際にノードやスイッチが送受信しているものはイーサヘッダまで含んだ「フレーム」である。

「パケット」という時は、イーサヘッダ以降の部分、つまり、フレームの一部を指す。

イーサネットフレームの最大長は1518オクテット(VLANタグも含めると1522)、
IPパケット(ヘッダ+データ部)の最大長は65536バイトである。

「バイト」と「オクテット」であるが、これは両方8ビットなので同じことなのだが、L2では「オクテット」と呼ぶことになっている。
これはなぜかというと、昔は1バイトが8ビットではない場合があったためだそうだ。

というわけで、IPパケットはフレームの一部分なのであるが、IPパケットの方が最大長が大きいため、フレームに収まらない場合がある。そのときは分割して送信する。


ちょっと話がそれて基本的なことの確認になってしまったが久しぶりなので許して欲しい。


さて、PC1からPC2にフレームが送信される、ということであった。

どのようなフレームであるかはどうでもいいのだが、なるべく具体的なイメージがつかめるように、
pingのecho requestのIPパケット(を含むフレーム)であったとしよう。

pingはサイズ指定できるがそれをせずに64バイトの普通のpingだったとしよう。つまり、フレームも1個であった。

アドレス解決は済んでいたので、arp requestも送信されず、いきなりecho requestが飛んだ。

MACアドレスは PC1が 0001.0001.0001, PC2が0002.0002.0002だったとする。

送信されるフレームヘッダにはSRC:0001.0001.0001, DST:0002.0002.0002 と書かれている。

Switch Aが、port1でこのフレームを受信した。
ヘッダを見る。まずport1とPC1のMACアドレス 0001.0001.0001を記憶する。
次に、あて先を見る。0002.0002.0002は初見あるいはかつて学習したがエージアウトして今は宛先(どのポートから送信するか)が不明なアドレスである。

このときSwitchは受信したポート以外のすべてのポートからフレームを送信する。これをフラッディングという。
送信するフレームは受信したフレームとまったく同じものである。

SwitchBは、port2とport3でまったく同じフレームを受信する。
このときはどうなるのかな・・・同時に送られるのだがSwitchがアドレス学習をするのはひとつずつだろうから、後から受信したフレームで学習したアドレスを記憶するのだろうか(不明)。

この場合は「port3がPC1へ送信するポートである」と学習したとする。
SwitchBもPC2のMACアドレスを知らないため、フラッディングする。フラッディングされるポートはどこか?port1のみか?

これはちょっとややこしい。

SwitchBがport2でフレームを受信した瞬間に、宛先へのフラッディングをおこなう。このときはport1,3から送信される。

だがほぼ同時にport3でも同じフレームを受信している。
このときのSwitchの動作はどういう順序でおこなうのか?

port2でのフレーム受信→port1とport3からのフラッディング→port3でのフレーム受信→port2とport1からのフラッディング

だろうか?

あるいはフラッディングの前に後からのフレーム受信処理が割り込むことがあるだろうか?

port2でのフレーム受信→port3でのフレーム受信
→por2とport1からのフラッディング


それは気になるが、いずれにせよ、SwitchBはport2とport1からフラッディングすることになる。
フラッディングしているフレームはPC1からPC2宛てに送信されたものであった。

SwitchAは、macアドレスとポートの対応表を更新することになる。
PC1はport2に接続しているということになってしまうのである。



・・・「だからループが発生してしまうのでSTPが必要なんですね?」
と考えるのは、これからSTPを学ぶということになっているからであるが、

「L2スイッチのアドレス学習に問題があるんじゃないですか?」
と言う人がいてもおかしくないだろう。
ブリッジングループが発生しないようなアドレス学習方法はないだろうか?

STPはアドレス学習方法そのものは変更せずにループを防ぐ方法であるが、
アドレス学習方法そのものを改良できないだろうか?

これはCCNP試験の範囲から逸脱するどころの脱線ではないがちょっとだけ考えてみよう、せっかくだから。

まず思いつくのは、フレームを異なるポートから受信したからといって即そのポートに接続先が変わったとみなすのをやめてはどうか、という事だ。

でもそれをしないと接続ポート変更にどうやって対応するのか、ということになる。
たとえば1回受信しただけでは更新しないとか、直後(一定の時間内)なら更新しないとか・・・

フラッディングするフレームには印をつけるとか・・・。
たとえ学習済みのsrc macアドレスのフレームであってもフラッディングされたものであったら更新しない。

いちいちフラッディングされたかを確認しなければならないということを除けばうまくいきそうに思えるが・・・


ループ発生の根本的な原因はフラッディングにある。
フラッディングとは要するにフレームの複製である。本物のフレーム以外のニセモノが複数作成されてしまうのだ。これが実際に接続していないポートに接続していると誤認してしまう原因だ。

では、このフラッディングをやめてはどうか?
つまり、送信先のアドレス学習をしないのである。
これはダメか・・・。
同じスイッチの二つのポートに通信をおこなう装置が接続されていれば双方が何か送信すれば通信がおこなえるが、スイッチ同士を接続したらその間の通信がいつまでたってもできなくなる。
ルーティングのように、macアドレスを広告しなければならなくなる。


今更だが「ハブとスイッチの違い」を調べた。
ハブというのは、全部フラッディングする装置である。
スイッチは、アドレス解決のためにフラッディングをする、というよりは、
受信フレームのsrc MACとポートを記憶しておくことにより、余計なフラッディングをしないようにしたのだ。

通信というのはあたかもケーブルの中を小包のようなものが流れていくようなイメージがあり実際にそのように説明されることが多いが、あれは全部コピーなのだ。あるパソコンからパケットは、スイッチに到達するとそこでコピーして違うポートから送信される。それがルータに到達したら今度はルーティングなどの処理をおこなってまた別のインタフェースからコピーして送信される。

通信とは複製なのであった。
今更過ぎるか・・・・


「ハブ」「ブリッジ」「スイッチ(スイッチングハブ)」の違い。

ごく少数の装置を「つなげる」だけであれば、この3つは区別がつかないだろう。
もっとも、今ではハブやブリッジを入手することは困難である。
(もう製造されていないか?)

ハブとスイッチの違いは比較的わかりやすいが、ブリッジとスイッチは難しい。私は今説明できない。
昔、後輩に聞かれたことがあるがちゃんと答えられなかった記憶がある。
今もネットを探すと「同じと考えて差し支えない」みたいな人も多い。

簡単に言ってしまうと「スイッチ」とは「高性能なブリッジ」ということになる。

ブリッジという装置が登場したときは、2ポートしかなかったそうだ。
各ポートにハブをつないで使っていたのか。

やがて2つじゃ少ないというので、「マルチポートブリッジ」が登場した。
しかしこれはただブリッジをくっつけただけで、動作原理はブリッジとまったく同じだった。

それが「スイッチ(スイッチングハブ)」と呼ばれるようになったのは、どのような革新があったからなのか。


初期の2ポートのブリッジは、10Base2とか10Base5とかのバス方式で使われていた。
バス方式というのはもう見かけないが、一本のケーブルに複数のノードがぶら下がる方式だ。

バス方式では全二重通信ができない。
これは同軸ケーブルを使っていたためである。

それは置いといて、ブリッジとスイッチの一番本質的な違いは何か?
名前からして、ブリッジは架け橋、接続するものであり、スイッチは単なる接続ではなく、切り替えつまり選択する機能を持つ。となるとやはり「マルチポートである」ということだろうか?

HW処理とSW処理というのは確かに大きな違いで転送速度などにも大きく影響するだろうが、動作原理の違いという観点からすると本質的な違いではない。

転送方式の違いつまり全部読み込む前に転送を開始する、というのも革新的なことではあっただろうが、やはり機能改善にすぎず本質的な違いではないように思う。

ちょっと深入りしすぎたかな・・・
これくらいにしておくか・・・

やっぱりマルチポートであることですかね。
3つ以上になるということは、右から左へ受け流すだけではなく、受け取ったフレームを残る2つ(またはそれより多く)のポートのどこから送出するかを判断する必要がある。

わかった!!!

初期のブリッジは2ポートであった、これが重要である。
そして、ブリッジもL2スイッチと同様のフラッディングによるアドレス学習をおこなうのであるが、
そもそも2ポートしかないのだから、出口は一個しかなくて選択の余地がないから全部そこへ送ってしまえばよさそうなものである。
でも、それではハブと変わらない。
ブリッジがアドレスを学習するのは、出力ポートの選択が目的ではないのである。
目的は、不要なフラッディングをしないようにすることである。

アドレス学習の原理はブリッジとスイッチで変わりなく、その目的も不要なフラッディングの防止ということで同じである。
しかし、マルチポートになったことによって、本来は単なる不要なフラッディングの防止のためでしかなかったアドレス学習に、出力ポートの選択という新たな目的が加わったのである。

そうなると、マルチポートブリッジの機能は複数のコリジョンドメインを接続(本当は分離なのだが)するというよりも、複数のコリジョンドメイン間でフレームの出力先を判定して振り分ける機能が主要になった。それによって、「ブリッジ」という呼び名が「スイッチ」となったのである。

私はまずスイッチからその動作原理を学習し始め、そのときに「アドレス学習は出力ポート選択のため」と認識していたのだが、実はこれは副次的な目的であって、主目的はやはり「不要なフラッディングの抑制」なのだった。

やはり、通信機器というのは、その機能するレイヤーが上位に行くほど、通信が抑制される。
基本は全コピー。なんでもかんでもコピーしてばらまく。そうすればとりあえず届く。

でもそうすると余計な送受信が発生するので、それを減らすような装置が必要となり、スイッチやルータが登場した。

これで整理がついた。

こんなのは当たり前なのかもしれないが、ちゃんと説明できる人はすごく少ないと思う。
少なくとも私は納得のいく説明を聞いたことがない。

以前、「スイッチはネットワークを拡大する装置だ」なんてことを書いた記憶があるのだが、それは大きな間違いであった。
スイッチの目的はコリジョンドメインの分離であった。

2011/08/30

642-813J SWITCHの準備

642-813J SWITCH
2008/3にBCMSNで取ったが3年過ぎてしまった。
黒本買ってきた。

<1章>キャンパスネットワーク設計

SONA (Service Oriented Network Architecture)

アプリケーション層
インタラクティブサービス層
ネットワークドインフラストラクチャ層

---

コア層では冗長化と高速コンバージェンスが必要


<2章 VLAN>

エンドツーエンドVLAN:企業LAN全体にわたり複数のスイッチを経由する広い範囲で構成されるVLAN
ローカルVLAN:狭い範囲に限定されたVLAN

DTP
AUTO-AUTO → access
AUTO-DESIRABLE → trunk
DESIRABLE-AUTO → trunk
DESIRABLE-DESIRABLE → trunk

allowed vlan 10,20 → 10と20を許可

allowed vlan 10
allowed vlan 20 → 20だけ許可(後の設定で上書き)


allowed vlan 10
allowed vlan add 20 → 10と20を許可


VTP Version: 2 であっても、VTP V2 ModeがDisableならV1で動作する

LACP 標準プロトコル
Pagp Cisco独自
(逆に書いていたが2012/2/4 気づいて修正した)


PAgp
Desirable/Auto

D-D → ○
D-A → ○
A-D → ○
A-A → ×


LACP
Active/Passive

A-A → ○
A-P → ○
P-A → ○
P-P → ×


簡単すぎる

ついこないだ18000円になったと思ってたら、24000円になったんだって?
受けるのやめようかな・・・