0019-01-28

メモリ

さて、ネットワークの世界は日進月歩で、日々新たな技術が生み出され、議論されている。
全てを把握するには1日が2400時間あっても足らないだろう。

しかし最低でも自分が携わる部分について深く知っておきたいと思うのは私だけではない。
だが悲しいかな、人間のメモリには限界がある。それは歳を重ねると、あるピークを経過すると衰える一方で誰もそれを止めることはできない。そういう場合は脳のメモリに頼るのではなく、メモるのである。
そのメモがどこにあるか忘れてしまうようであれば、それは気の毒だが、ご臨終だ。

さて関連がありそうでなさそうなCiscoのメモリの話を少し。

Ciscoルータのメモリ構成や役割なぞ基本ではあるが、ルータを設計・運用する上では必須である。
"意外"とCiscoを使って設計したこと無い人などは忘れていたり知らなかったりする。 CCNAの範囲なので基本ということで・・・知らない人は知る必要があるし知っている人は読む必要はない。

・RAM/DRAM
ルーティングテーブル、ARPキャッシュ、Fastswitch用キャッシュ、パケットバッファリング、パケットホールドキューを格納する。ルータが電源オンの間、そのルータのコンフィグファイルのテンポラリメモリ、または実行メモリを提供する。RAMの内容は電源オフ時に消去される。 running configなど
・NVRAM
不揮発性RAM(Nonvolatile RAM)はルータのバックアップコンフィグファイルを格納する。NVRAMの内容は電源オフ時にも保持される。 startup configなど
・Flash
消去可能で再プログラム可能なROM。フラッシュメモリはOSのimageとマイクロコードを保持する。電源オフ時にも保持される。複数のIOSを保管することも可能
・ROM
電源オンテスト、ブートストラッププログラム、オペレーティングシステムソフトウェアを格納する。このソフトウェアは限定版IOSでトラブルシューティングに使用する。このソフトウェアをアップグレードする場合はCPUボードのチップを交換する必要がある。

コントロールプレーンとデータプレーン

この世界では良く耳にします。

ようはどういうことか。

データ処理、転送を考えると、ソフトウェアで処理するよりハードウェアで処理した方が負荷に依存少なく高速で処理することができます。

しかしながらASIC化(ハードウェア化)できるものとできないものがあり、それぞれがデータプレーンとコントロールプレーンに分けられて動作しています。

たとえばMPLSについて考えてみると、MPLSはまだまだIETFでもdraftとして議論されている項目が多くあります。つまり今後拡張していく要素は大いにあるということです。

この部分をASIC化してしまったらどうか。
恐らくルータの処理はさらに負担なく高速な処理が可能になりますが、機能追加や変更ヘ柔軟に対応できなくなってしまいます。
BGPもそうですし、その他ルーティングプロトコルについても同様です。つまりASIC化には不適切なものがあるということです。

勿論ASIC化する必要がないほどの処理という理由からASIC化されていない部分もあると思います。

こういう理由からソフトウェアで動作するコントロールプレーンとASIC化され高速処理が可能なデータプレーンに分けられているのが最近の一般的なルータの傾向(ですかね)

WCCP

CCIEラボを受験するならWCCPだって避けては通れません。


インターネットを使用している環境だと、相手のWebサーバだったり途中のネットワークだったりと原因は色々ありますがなんらかしらのボトルネックは存在しているケースが殆どです。

一度ダウンロードしたコンテンツはキャッシュサーバに蓄積し、他のユーザが同じコンテンツにアクセスする際はそのキャッシュサーバからコンテンツを引き出すことが1つの解として考えられます。

よくプロキシサーバは耳にしますが、Ciscoが開発したWeb Cash Communication Protocol は何が違うのでしょうか。

ユーザの観点からみると、通常、キャッシュサーバーを使う場合は、ブラウザのでプロキシ設定をする必要がありますが、WCCPの場合はブラウザの設定を変更することなく、キャッシュサーバーを利用できる点でしょうか。

エンドユーザはキャッシュの存在を意識することなく、キャッシュサーバからキャッシュされたデータを引き出すことが可能(透過)となります。これをトランスペアレントネットワークキャッシュと呼びます。

ちなみにWCCPはVer2.0が最新です。

コマンドなどはCCDを参照してください。
はじめはip wccp web-cache redirect in かoutか、そしてどのインタフェースに適用すべきかで悩むかもしれません。Group Studyでも悩んでいる人がいましたし。

IEEE802.3, 802.1

イーサネットに関してはIEEE802.1やら802.3やらを目にしますがどう違うのか?

それは今までの規格をみればその違いがわかります。いくつか例をあげると、

IEEE802.3u = 100Base-X
IEEE802.3z = 1000Base-X
IEEE802.3ad = LAG
IEEE802.3ae = 10GBase-X

IEEE802.1D = STP
IEEE802.1p = CoS
IEEE802.1q = VLAN tagging
IEEE802.1w = RSTP
IEEE802.1s = MSTP
IEEE802.1x = Access control for port base
IEEE802.1ag = Ethernet OAM


つまり、これらワーキンググループで議論されているのはレイヤが異なるんですね。
IEEE802.3は下位レイヤ、その上位に802.1が位置づけられています。

ちょっとした豆知識ということで・・・

transport output

実NWで使用したことのないコマンド・・・・transport output。

■ケース
:あるルータにtelnetしてそこから更に別のルータへtelnetするのを防ぐ場合


dora#telnet 10.10.10.10
Trying 10.10.10.10 ... Open
User Access Verification
Password:


通常ターゲットのルータでtelnetを許可されている限り、telnetできる

ではdoraルータからvty lineを通してtelnetを禁止したい場合, transport output noneコマンドを設定することで制御できる。 (defaultはtransport output all)

dora#show running-config
!
!
line con 0
password cisco
login
line vty 0 4
password cisco
login
transport output none
line vty 5 15
password cisco
login
!
!


telnetを試みると・・

dora#
dora#telnet 10.10.10.10
% telnet connections not permitted from this terminal

許可されていませんね。
なおline con 0に設定した場合はconsole接続のユーザが対象になります。

access-classなどは使用したことがありますが、この辺りの機能は知らないと要求もあまりないところですね

Hidden command

昔、NYに出張で言った時、向こうのエンジニアとCiscoのHidden commandで盛り上がったことがある。

Configモードからのdoコマンドもその一つである。
そこで1つ役立つか不明だが以下のコマンドを紹介する。

show running-config default

"default"はhiddenであり、動くOSも限られているようだが、defaultとnon-defaultのrunningコンフィグが表示されるようになる。たとえば"ip routing"など普通にshow run叩いても表示されないコマンドが見えたりする。
どこまで見えるか確認まではしていないが、時には役立つかも!?
※ちなみに動作確認ができたのはC7200 12.4 Enterprise


CatOSでは昔っからshow config allでdefaultとnon-defaultのコンフィグを表示させれたんだけどね。

皆さんはどんなHidden commandをご存知でしょうか。

vlan.dat

Catalyst3550や2950でvlanを作成した場合、wr eraseしてconfigを消してreloadしてもvlanは消去されない。

ここを訪れる人の大半はvlanの消し方を知らない人はいないだろうけど、、消去方法を紹介する。


消し方は大きく2通りあるだろう。

  1. 一つ一つ消していく
  2. 一度に全て消去する

1つ1つ消去するのはno vlan Xで消していく。
一度に全て消去する場合は、Catalyst内のvlan databaseであるvlan.datファイルを消去する。


Cat35#show vlan
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/5, Fa0/6, Fa0/7, Fa0/8
          Fa0/9, Fa0/10, Fa0/11, Fa0/12
          Fa0/13, Fa0/14, Fa0/15, Fa0/16
          Fa0/17, Fa0/18, Fa0/19, Fa0/20
          Fa0/21, Fa0/22, Fa0/23, Fa0/24
          Gi0/1, Gi0/2
10 VLAN0010 active   ★ユーザが作成したvlan
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup

Cat35#pwd  ★カレントの位置を確認
flash:
Cat35#
Cat35#dir  ★ディレクトリflashを確認
Directory of flash:/
2 -rwx 7804416 Mar 02 1993 02:05:58 +00:00 c3550-i5q3l2-tar.121-22.EA
1a.tar
3 -rwx 255 Mar 02 1993 02:06:07 +00:00 info
4 drwx 192 Mar 02 1993 02:10:20 +00:00 c3550-i5q3l2-mz.121-22.EA1
a
89 -rwx 255 Mar 02 1993 02:10:20 +00:00 info.ver
90 -rwx 616 Mar 01 1993 06:41:23 +00:00 vlan.dat  ★ vlan database
91 -rwx 5 Mar 01 1993 00:01:41 +00:00 private-config.text
93 -rwx 0 Mar 01 1993 00:54:09 +00:00 system_env_vars
94 -rwx 33 Mar 01 1993 00:54:09 +00:00 env_vars
95 -rwx 2138 Mar 01 1993 00:01:41 +00:00 config.text
15998976 bytes total (424448 bytes free)


Cat35#
Cat35#show flash: ★show flashでもいい
Directory of flash:/
2 -rwx 7804416 Mar 02 1993 02:05:58 +00:00 c3550-i5q3l2-tar.121-22.EA
1a.tar
3 -rwx 255 Mar 02 1993 02:06:07 +00:00 info
4 drwx 192 Mar 02 1993 02:10:20 +00:00 c3550-i5q3l2-mz.121-22.EA1
a
89 -rwx 255 Mar 02 1993 02:10:20 +00:00 info.ver
90 -rwx 616 Mar 01 1993 06:41:23 +00:00 vlan.dat
91 -rwx 5 Mar 01 1993 00:01:41 +00:00 private-config.text
93 -rwx 0 Mar 01 1993 00:54:09 +00:00 system_env_vars
94 -rwx 33 Mar 01 1993 00:54:09 +00:00 env_vars
95 -rwx 2138 Mar 01 1993 00:01:41 +00:00 config.text
15998976 bytes total (424448 bytes free)
Cat35#
Cat35#
Cat35#delete vlan.dat  ★消去
Delete filename [vlan.dat]?
Delete flash:vlan.dat? [confirm]
Cat35#
Cat35#show flash:
Directory of flash:/
2 -rwx 7804416 Mar 02 1993 02:05:58 +00:00 c3550-i5q3l2-tar.121-22.EA
1a.tar
3 -rwx 255 Mar 02 1993 02:06:07 +00:00 info
4 drwx 192 Mar 02 1993 02:10:20 +00:00 c3550-i5q3l2-mz.121-22.EA1
a
89 -rwx 255 Mar 02 1993 02:10:20 +00:00 info.ver
91 -rwx 5 Mar 01 1993 00:01:41 +00:00 private-config.text
93 -rwx 0 Mar 01 1993 00:54:09 +00:00 system_env_vars
94 -rwx 33 Mar 01 1993 00:54:09 +00:00 env_vars
95 -rwx 2138 Mar 01 1993 00:01:41 +00:00 config.text

あとはreloadすれば手動で設定したvlan 10は消える

flash partition

flash memoryはpartitionで区切り、異なる領域を作ることができる。つまり異なるflash imageを入れておくことが可能。ちなみにこんなことはCCIE試験に出ないだろうが、こんなこともできるんだ、ということで知ってもらえればと思う。

Router#sh ver
Cisco Internetwork Operating System Software
IOS (tm) 2500 Software (C2500-IS-L), Version 11.2(15)P, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-1998 by cisco Systems, Inc.
Compiled Mon 13-Jul-98 21:47 by dschwart
Image text-base: 0x03030170, data-base: 0x00001000

ROM: System Bootstrap, Version 5.2(8a), RELEASE SOFTWARE
BOOTFLASH: 3000 Bootstrap Software (IGS-RXBOOT), Version 10.2(8a), RELEASE SOFTWARE (fc1)

Router uptime is 23 minutes
System restarted by power-on
System image file is "flash:c2500-is-l.112-15.P.bin", booted via flash

cisco 2522 (68030) processor (revision E) with 2048K/2048K bytes of memory.
Processor board ID 04604103, with hardware revision 00000002
Bridging software.
X.25 software, Version 2.0, NET2, BFE and GOSIP compliant.
Basic Rate ISDN software, Version 1.0.
1 Ethernet/IEEE 802.3 interface(s)
2 Serial network interface(s)
8 Low-speed serial(sync/async) network interface(s)
1 ISDN Basic Rate interface(s)
32K bytes of non-volatile configuration memory.
8192K bytes of processor board System flash partition 1 (Read ONLY)
8192K bytes of processor board System flash partition 2 (Read/Write)

こういうshow versionを見たことがある方も多いはず。
これは16MByteのflash memを8MByteで区切っていることを示す。

ではpartitionをなくし1つにまとめる方法を紹介する。まずはflashのeraseから。

Router#erase flash
Partition Size Used Free Bank-Size State Copy Mode
1 8192K 5888K 2303K 8192K Read ONLY RXBOOT-FLH
2 8192K 5905K 2286K 8192K Read/Write Direct

System flash directory, partition 2:
File Length Name/status
1 6046760 c2500-is-l.112-17.P.bin
[6046824 bytes used, 2341784 available, 8388608 total]

Erase flash device, partition 2? [confirm]  //patition2からflashを消すか?と聞かれるのでyes//
Are you sure? [yes/no]: yes
Erasing device... eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ...erased

次にpartitionを1つにする。

Router(config)#no partition flash: 2
Router(config)#
Router#

確認してみる。

Router#show ver
Cisco Internetwork Operating System Software
IOS (tm) 2500 Software (C2500-IS-L), Version 11.2(15)P, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-1998 by cisco Systems, Inc.
Compiled Mon 13-Jul-98 21:47 by dschwart
Image text-base: 0x03030170, data-base: 0x00001000

ROM: System Bootstrap, Version 5.2(8a), RELEASE SOFTWARE
BOOTFLASH: 3000 Bootstrap Software (IGS-RXBOOT), Version 10.2(8a), RELEASE SOFTWARE (fc1)

Router uptime is 36 minutes
System restarted by power-on
System image file is "flash:c2500-is-l.112-15.P.bin", booted via flash

cisco 2522 (68030) processor (revision E) with 2048K/2048K bytes of memory.
Processor board ID 04604103, with hardware revision 00000002
Bridging software.
X.25 software, Version 2.0, NET2, BFE and GOSIP compliant.
Basic Rate ISDN software, Version 1.0.
1 Ethernet/IEEE 802.3 interface(s)
2 Serial network interface(s)
8 Low-speed serial(sync/async) network interface(s)
1 ISDN Basic Rate interface(s)
32K bytes of non-volatile configuration memory.
16384K bytes of processor board System flash (Read ONLY) //16MByteになっていることが確認できる//

今回はこれだけ。

tcl

IOSもtcl(ティクル)が使えるようになった。最も簡単便利に使えるのはforeachだろうか。
IP reachabilityを確認するためにはとても有効に働く。

tclshでtcl shellに入り、tclquitで抜ける。使いこなせば大変便利である。

This command was integrated into Cisco IOS Release 12.2(25)S.


っとあるが、

  • Cisco2500シリーズは未サポート
  • Cat3550は未サポート
  • Cisco3725 12.2(11)YT2 Enterprise plusでは動作OK
  • Cisco7200 12.4(5) Enterprise plusでは動作OK

Router#tclsh
Router(tcl)#foreach t {
+>178.1.1.1
+>178.1.15.1
+>} {ping $t}

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 178.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 178.1.15.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
Router(tcl)#tclquit
Router#

その他tclを書ければいろんな小細工が可能ですね。


■参考
Cisco IOS Scripting with Tcl

show run linenum

少し知っていて嬉しいかもしれないコマンドを紹介。
「3行目のコマンドは・・・」なんて会話する時などに使えるか?なぁ。

R1#sh run linenum
Building configuration...

Current configuration : 522 bytes
1 : !
2 : version 12.4
3 : service timestamps debug datetime localtime show-timezone
4 : service timestamps log datetime localtime show-timezone
5 : no service password-encryption
6 : service linenumber
7 : !
8 : hostname R1
9 : !
10 : boot-start-marker
11 : boot-end-marker
12 : !
13 : !
14 : no aaa new-model
15 : !

IFG

イーサのフレームとフレームの間にはご存知インターフレームギャップというのがある。
フレームとフレームの隙間と呼べばわかりやすいのだが、これはDIX規格ではフレームのlengthをヘッダーに表現しないため(type)、フレームの長さ、切れ目が分からなくなる可能性がある。

そこでイーサネットはこのギャップによってフレームの切れ目を認識するような仕組みになっている。

このギャップは最低96bit時間以上。つまり、以下になる。
  • Ethernetの場合は
    96/10000000=9.6μs
  • FastEthernetの場合は
    96/100000000=0.96μs
  • 1GigabitEthernetの場合は
    96/1000000000=0.096μs

大した話ではないが、96bit時間という単位を使用していることを考えると、この規格を作成した当初から今後Ethernetの世界は100M, 1G、そして10G, 100Gと伸びていくことを予測して、どんな場合にも規格を修正することなく対応できるように考えられていたようにも思える。

Ethernet

Ethernetのカプセルタイプでも色々とある。

中でも代表的なもの?といえば以下3つだろうか。




  • DIX規格(= Ethernet II)
  • IEEE 802.3規格
  • snap
フレームは酷似しているがヘッダーの2byteがtypeかlengthかで異なる。DIX規格はtype、 802.3規格とsnapはlengthを使用している。

世の中の殆どのEthernet通信はDIX仕様である。Ciscoで言えばarpaである。show intなどですぐに分かる。

switch#show interfaces vlan1
Vlan1 is up, line protocol is up
Hardware is EtherSVI, address is 0009.b754.3900 (bia 0009.b754.3900)
Internet address is 10.10.10.100/24
MTU 1546 bytes, BW 1000000 Kbit, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
ARP type: ARPA, ARP Timeout 04:00:00

ただ802.3やsnapを使用しているものもある。
身近なところで言えばCisco CDPはsnapフレームである。パケットキャプチャしてみればすぐにわかるしCCOにもPacket formatなど記載されているので興味ある人は是非参照されたい。


ちなみに自分が触っているCat3550の場合はカプセル化は変更できないようだ。その代わりarpのタイプは変更できる。

switch(config-if)#arp ?
arpa Standard arp protocol
probe HP style arp protocol
snap IEEE 802.3 style arp

!
interface Vlan1
ip address 10.10.10.100 255.255.255.0
no arp arpa
arp snap
end

switch(config)#do sh int vlan 1
Vlan1 is up, line protocol is up
Hardware is EtherSVI, address is 0009.b754.3900 (bia 0009.b754.3900)
Internet address is 10.10.10.100/24
MTU 1546 bytes, BW 1000000 Kbit, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
ARP type: SNAP, ARP Timeout 04:00:00


ということで暇つぶしでした。。

10 Hottest Certifications for 2005

CCIEという資格はどういう意味をもつか?
このテーマについてはこのBlogでも書いていければと思うが、カリフォルニアにあるCertCities.comの独自調査によるとCCIEは2005年の最もHotな資格、という結果を出している。

CertCities.com

Holderにはちょっと嬉しいことだし、Candidateにとっては励みになるのではないだろうか?

Parity Error

さてちょっと話題が変わるが今自分の足元にCisco2500がある。こいつのIOSを入れ替えようとしたのだがどうやらflashのParity Errorが発生してしまい、IOSをDown loadできずbootモードで立ち上がってしまう。

Router(boot)#cop tftp flas

System flash directory:
No files in System flash
[0 bytes used, 16777216 available, 16777216 total]
Address or name of remote host [255.255.255.255]?
Source file name? c2500-js-l.122-26.bin
Destination file name [c2500-js-l.122-26.bin]?
Accessing file 'c2500-js-l.122-26.bin' on 255.255.255.255...
Loading c2500-js-l.122-26.bin from 10.10.10.2 (via Ethernet0): ! [OK]

Device needs erasure before copying new file
Erase flash device before writing? [confirm]

Copy 'c2500-js-l.122-26.bin' from server
as 'c2500-js-l.122-26.bin' into Flash WITH erase? [yes/no]y
Erasing device... eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ...eras ed
Loading c2500-js-l.122-26.bin from 10.10.10.2 (via Ethernet0): !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Parity (control reg=0x8318) Error, ad dress: 0xE07FDC at 0x1098CFC (PC)


まぁ数回実施しても同じだったのでもしかしてBoot romを換えれば直るかもという考えで別のC2500にFlashメモリを移してiOSを落としてみたところうまくいった。この辺りはBoot romのバージョンとFlashメモリのメーカー(AMDやINTELが有名)が関係しているのかもしれない。