Cisco Switch

(更新:2013/11)ACL
(作成:2011/08)

言わずと知れたNetworkベンダーの大御所。これまで仕事で使ってきた我思うに、Cisco製品は以下のような特徴がある。

  • 専門なだけあって抜群の安定感
  • Small Businessなるラインナップも増えて小規模〜大規模まで賄える
  • 保守費用が良心的
  • 初期費用は若干高め
  • CiscoのWebサイトが見辛い
  • ヘタレWeb設定画面

まあ得手不得手というかね。それでもウチはCisco好き。それはもうカタログ眺めてにやにやするくらい。

L2/L3 Switch

Initialize

パスワードが判らない場合はスイッチの mode ボタンを押しながら電源を投入。

switch: flash_init
...
switch: delete flash:config.text
Are you sure you want to delete "flash:config.text" (y/n)?y
File "flash:config.text" deleted
switch: delete flash:vlan.dat
Are you sure you want to delete "flash:vlan.dat" (y/n)?y
File "flash:vlan.dat" deleted
switch: boot
...

パスワードが判る場合は以下の手順で設定を削除。

Switch>en
Switch#write erase
Erasing the nvram filesystem will remove all configuration files! Continue? [confirm]
[OK]
Erase of nvram: complete
Switch#delete flash:vlan.dat
Delete filename [vlan.dat]?
Delete flash:vlan.dat? [confirm]
Switch#reload
Proceed with reload? [confirm]

再起動時、手動で設定するために以下の質問にはnoと答える。

--- System Configuration Dialog ---
Would you like to enter the initial configuration dialog? [yes/no]: no
Would you like to terminate autoinstall? [yes]: no
Switch>

IOS version up

IOSはソフトウェア ダウンロード - テクニカルサポート - Cisco SystemsよりDL(要アカウント)。
作業は以下の順で実施する。

  1. IP通信ポート作成
  2. バックアップ
  3. IOSコピー
  4. bootイメージ変更

IP通信ポート作成

IOSアップデートは tftp を利用するため、一時的にIP通信できるポートを作成する必要がある。まずIP通信用にVLANを作成。

vlan 2
name local
interface vlan 2
ip address 192.168.1.200 255.255.255.0

作成したVLANをGi1/0/1に適用。

interface GigabitEthernet1/0/1
switchport access vlan 2
switchport mode access

バックアップ

既存のIOSをバックアップしておく。コピーするファイルは show flash: にて確認。

copy flash: tftp:
Source filename: c3750-ipservices-mz.122-35.SE5/c3750-ipservices-mz.122-35.SE5.bin
Address or name of remote host: 192.168.1.1
Destination filename: c3750-ipservices-mz.122-35.SE5.bin

IOSコピー

copy tftp: flash:
Address or name of remote host: 192.168.1.1
Source filename: c3750-ipservices-mz.122-53.SE.bin
Destination filename: c3750-ipservices-mz.122-53.SE.bin

Stack接続中の場合は、スイッチの数だけIOSをコピーする。

copy tftp: flash1:
Address or name of remote host: 192.168.1.1
Source filename: c3750-ipservices-mz.122-53.SE.bin
Destination filename: c3750-ipservices-mz.122-53.SE.bin
copy tftp: flash2:
Address or name of remote host: 192.168.1.1
Source filename: c3750-ipservices-mz.122-53.SE.bin
Destination filename: c3750-ipservices-mz.122-53.SE.bin

bootイメージ変更

configure terminal
boot system switch all flash:/c3750-ipservices-mz.122-53.SE.bin
exit
write memory
reload

起動後 show version にてバージョンアップ確認。

Stack

Stackモジュールがスイッチに付いている場合は、冗長化に使うととても便利。

スタック順序の固定

show switch にて現状のスタックSWのPriorityを確認。デフォルトでは全て priority 1 になっており、起動順でプライマリSWが決まってしまうのであまりよくない。

configure terminal
switch 1 priority 10
switch 2 priority 8

スイッチ番号の変更

以前Stackで使っていたスイッチを外した時、スイッチ番号が初期化されないままの場合( show running-config をした場合に GigabitEthernet 2/0/X と出る)がある。
以下のようにしていスイッチ番号を手動で変更すれば良い。

configure terminal
switch 2 renumber 1
exit
reload slot 2

再起動後、 show switch で不要なスイッチスタックが残っている場合は以下のコマンドで削除。

no switch 2 provision

Common settings

アカウント

telnet ログインパスワードの設定は以下の通り。バーチャルターミナルも多くは不要なので、0〜4くらいに絞っておく。

line vty 0 4
 password (パスワード)
 login
line vty 5 15
 no login

enable パスワードの設定は以下の通り。

enable secret (パスワード)

ネットワーク設定

hostname corel3-00
ip default-gateway 192.168.1.254
no ip domain-lookup

時刻合わせ(NTP)

clock timezone JST 9
ntp server 192.168.1.254

ログのタイムスタンプなどにローカルタイムを使う。

service timestamps debug datetime msec localtime
service timestamps log datetime msec localtime

SNMP

NagiosやCactiで監視するために必ず設定すること。

snmp-server community private RO
snmp-server enable traps license
snmp-server host 192.168.1.1 private

VTP設定

VLAN情報をネットワーク内で共有してくれるらしい。使うならコアL3スイッチをServerにするのが良い。

vtp domain private
vtp pruning

……まあでも実際に運用してみると解るんだが、結構問題が発生する原因でもあるので十分に検討したうえで使う事をお勧めする。

その他もろもろ

かつてのクラスフル/クラスレスアドレス時代の名残。まあおまじないだと思って。

ip subnet-zero

別ホスト経由のパケットは破棄する。

no ip source-route

不要サービス停止。

no ip finger
no ip http server

Network

VLAN管理

例えば、以下のVLANを作る場合のコマンド。

VLAN ID VLAN Name Network Etc
10 server 10.0.64.0/24 DHCP: 10.0.64.1
11 client 10.0.0.0/24 DHCP: 10.0.64.1
12 ipcomm 10.0.128.0/24 DHCP: 10.0.128.1
100 gw 10.0.255.0/30
101 vpn 10.0.255.4/30
vlan 10
 name server
vlan 11
 name client
vlan 12
 name ipcomm
vlan 100
 name gw
vlan 101
 name vpn
interface Vlan1
 no ip address
 shutdown
interface Vlan10
 description server
 ip address 10.0.64.0 255.255.255.0
 ip helper-address 10.0.64.1
interface Vlan11
 description client
 ip address 10.0.0.0 255.255.255.0
 ip helper-address 10.16.64.1
interface Vlan12
 description ipcomm
 ip address 10.0.128.0 255.255.255.0
 ip helper-address 10.0.128.1
interface Vlan100
 description gw
 ip address 10.0.255.0 255.255.255.252
interface Vlan101
 description vpn
 ip address 10.0.255.4 255.255.255.252

ACL

一番単純で間違いの無いACLの書き方はこんな感じ。

ip access-list extended acl_lan
 permit tcp any any established
 remark === from LAN ===
 permit ip 192.168.1.0 0.0.0.255 10.0.0.0 0.0.0.255
 remark === from LAN2 ===
 permit ip 192.168.2.0 0.0.0.255 10.0.0.0 0.0.0.255

interface Port-channel1
 ip access-group acl_lan in

10.0.0.0/24 というネットワークに対して 192.168.1.0/24 および 192.168.2.0/24 からのアクセスを許可、それ以外のアクセスは暗黙のdeny。TCPアクセスに関しては最初の permit tcp any any established によりコネクションの確立したアクセスを許可するので、ステートフルな感じで利用できる。
ACLはこれくらいの大雑把な形から作っていくと、動きが分かり易くて良いと思う。許可/禁止設定は結構自由度高く設定できるので、後は試しつつ適用すると良い。

QoS

帯域制限

あるポートの帯域を絞り込みたい場合。 例えばテストルームを作る場合など、ネットワークを集約するポートなんかは絞っておいた方が無難。
例として、 GigabitEthernet1/0/47 - 48 の全てのinbound通信を40Mbpsに絞り込む(それ以上のパケットはdrop)。

mls qos
class-map match-all TestRoom
 match access-group 100
policy-map TestRoom
 class TestRoom
  police 40m 8000 exceed-action drop
access-list 100 permit ip any any
interface range GigabitEthernet1/0/47 - 48
 service-policy input TestRoom

Wireless AP

Tuning

利用チャネル設定

以下のコマンドを実行して再起動することで、起動時に空いているチャネルを自動で検索して利用するようになる。

configure terminal
interface Dot11Raid0
channel least-congested
exit
exit
reload

NVRAM増設

特にMACアドレスフィルタをやっていると startup-config の容量増加が半端ない。
デフォルトの32768byteなんて余裕で尽きるので、より大きなサイズをNVRAMとして利用する。要再起動。

configure terminal
boot buffersize 131072
exit
reload