ciscoスイッチ・ルーターの基本設定2(IPv4)

ただのメモなので適当なところはあしからず。
最低限に近いことのみ書きます。

##VLAN

###VLANの作成
valn10を作成して、HOGEという名前をつける時
`(config)# vlan 10`
`(config-vlan)# name HOGE`

###VLANへの参加
インターフェースひとつにVLAN10を設定する場合
`(config-if)# switchport mode access`
`(config-if)# switchport access vlan 10`

一括で設定する場合
`(config)# int range fa 0/1 -12`
`(config-if-range)# switchport mode access`
`(config-if-range)# switchport access vlan 10`

###VLANの消去
インターフェースでvlanの参加を止める場合
`(config-if)# no switchport access vlan 10`

vlan自体を消去する場合
`(config)# no vlan 10`

vlan databaseの消去
`# vlan database`
`(vlan)# no vlan 10`

vlan設定全体の消去
`# delete vlan.dat`

###VLANの確認
設定されているvlanの一覧
`# show vlan`
`# show vlan brief`

そのインターフェースが参加しているvlanの表示
`# show interface fa switchport`

###トランクの設定
インターフェース個別に設定する場合
`(config)# interface fa 0/1`
`(config-if)# switchport mode trunk`
`(config-if)# speed 100`
`(config-if)# duplex full`

###vlan間ルーティング
vlanでとランキングを利用し、物理if一つで複数のvlanを収容する時に便利。以下ではvlan10に192.168.1.1のアドレスを振る

まずはifをonに
`(config)# int fa 0/0`
`(config-if)# no shutdown`

サブifの設定
`(config)# int fa 0/0.10`

カプセル化方式(dot1q)とvlan番号(10)の指定
`(config-subif)# encapsulation dot1q 10`

ディスクリプション
`(config-subif)# description hogeVLAN10`

アドレスの割り振り
`(config-subif)# ip address 192.168.1.1 255.255.255.0`
`(config-subif)# no shutdown`


##ルーティング

###スタティックルート
ネクストホップ(パケットを投げる相手)を指定する方法
`(config)# ip route [宛先NW] [マスク] [ネクストホップアドレス]`

発信インターフェース(自分の)を指定する方法
`(config)# ip route [宛先NW] [マスク] [IF名]`

消去する時は、
`(config)# no ip route [宛先NW] [マスク] [ネクストホップアドレス]`
`(config)# no ip route [宛先NW] [マスク] [IF名]`

###デフォルトルート
未知のパケットをどこに投げるかを指定

アドレスを指定する方法
`(config)# ip route 0.0.0.0 0.0.0.0 [ネクストホップアドレス]`
ifを指定する方法
`(config)# ip route 0.0.0.0 0.0.0.0 [IF名]`



##RIP
###RIPの設定
RIPの設定でやることは2つだけ
`(config)# router rip`
`(config-router)# network [クラスフルアドレス]`

例:
`(config)# router rip`
`(config-router)# network 192.168.0.0`
`(config-router)# network 192.168.1.0`

クラスフルアドレスとは、オクテットごとに切り分けられたネットワークアドレスのこと。ネットマスクの情報は流さない。

###version2
デフォルトではversion1なので、RIPversion2を使うときは
`(config-router)# version2`

###デフォルトルートの伝搬
デフォルトルートを設定したルーターが他のルーターへもその情報を伝播する際に使用。

デフォルトルートの設定
`(config)# ip route 0.0.0.0 0.0.0.0 [ネクストホップアドレス]`
または
`(config)# ip route 0.0.0.0 0.0.0.0 [IF名]`

`(config)# router rip`
`(config-roouter)# default-information originate`


###RIPの確認
ルーティングプロトコル
`# show ip protocols`
`# show ip rip database`

ルーティングテーブル
`# show  ip route`

###RIPのデバッグ
`# debug ip rip`

・止めるときは
`# no debug ip rip`


##OSPF
エリア番号はルーター同士で合わせる。プロセス番号は合わせなくてもよい。
`(config)# router ospf [プロセス番号]`
`(config-router)# network [ネットワーク・アドレス] [ワイルドカードマスク] area [エリア番号]`

例:
`R1(config)# router ospf 10`
`R1(config-router)# network 192.168.1.0 0.0.0.255 area 0`

`R2(config)# router ospf 20`
`R2(config-router)# network 192.168.1.0 0.0.0.255 area 0`

###passive-interface
Helloパケット(ルーティング情報の更新)の送信を停止(受信はできる)
`config-router)#passive-interface [IF]`

例:
`(config)# router ospf 10`
`(config-router)# passive-interface fa 0/0`

###タイマーの設定
Helloパケットの送信間隔を設定
`(config-if)# ip ospf hello-interval [秒数]`

ダウンと判断するまでの時間
`(config-if)# ip ospf dead-interval`


###デフォルトルートの伝搬
デフォルトルートの設定
`(config)# ip route 0.0.0.0 0.0.0.0 [ネクストホップアドレス]`
または
`(config)# ip route 0.0.0.0 0.0.0.0 [IF名]`

`(config)# router ospf [プロセス番号]`
`(config-router)# default-information originate [always]`

###設定の確認
`# show ip ospf interface`
`# show ip ospf neighbor`
`# show ip ospf neighbor detail`
`# show ip ospf database`

##ACL
ACLには以下の4つがある
・番号付き標準ACL
・名前付き標準ACL
・番号付き拡張ACL
・名前付き拡張ACL

共通のルール
・最後には「暗黙のdeny」が存在
・特定のIPのみの場合は「host [ip_add]」
・すべてのIPに適応「any」


###番号付き標準ACL

・番号は1~99、1300~1999

禁止する時
`(config)# access-list [番号] deny [送信元アドレス] [ワイルドカードマスク]`

許可する時
`(config)# access-list [番号] permit [送信元アドレス] [ワイルドカードマスク]`

例:
`(config)# access-list 1 deny host 192.168.1.1`
`(config)# access-list 1 permit 192.168.2.0 0.0.0.255`

###番号付き拡張ACL

・拡張ACLの番号は100~199、2000~2699で指定する

`(config)# access-list [番号] deny/permit {tcp/udp/icmp} [送信元アドレス] [ワイルドカードマスク] [送信先アドレス] [ワイルドカードマスク]　[eq ポート]`

例:
`(config)# access-list 101 permit icmp 172.16.0.0 0.0.0.127 any echo`
`(config)# access-list 101 permit tcp 172.16.0.0 0.0.0.127 any eq ssh`


###名前付き標準ACL

`(config)# ip access-list standard [名前]`
`(config-std-nacl)# deny/permit [送信元アドレス] [ワイルドカードマスク]`

例:
`(config)# ip access-list standard ACL1`
`(config-atd-nacl)# deny host 192.168.1.1`
`(config-atd-nacl)# permit 192.168.1.0 0.0.0.255`

###名前付き拡張ACL

`(config)# ip access-list extend [名前]`
`(config-ext-nacl)# deny/permit {tcp/udp/icmp} host [送信元IP] host [送信先IP] [eq ポート]`

例:
`(config)# ip access-list extend ACL1`
`(config-ext-nacl)# deny tcp host 192.168.0.1 host 10.1.1.1 eq 23`


###共通設定

####IFへの設定
`(config-if)# ip access-group [番号] in/out`

####コンソールへの設定
`(config-if)# ip access-class [番号] in/out`

####リストの削除
`(config)# no access-list [番号]`

####リストの確認
`# show access-lists`


##DHCP
###設定
####アドレスの配布を制限
`(config)# ip dhcp excluded-address [アドレス]`

例:
`(config)# ip dhcp excluded-address 192.168.1.0 192.168.1.127`
とすると192.168.1.0~192.168.1.127のアドレスを配布しないようになる。

####プールの作成
`(config)# ip dhcp pool [プール名]`

####アドレスを配布するネットワークを指定
`(dhcp-config)# network [NWアドレス] [サブネットマスク]` 

例:
`(dhcp-config)# network 192.168.1.0 255.255.255.0`

####デフォルトゲートウェイ(ルーター)の設定
`(dhcp-config)# default-router [IPアドレス]`

例:
`(dhcp-config)# default-router 192.168.1.1`

####DNSサーバーの指定
`(dhcp-config)#dns-server [IPアドレス]`

例:
`(dhcp-config)#dns-server 192.168.1.1`

####リースの設定
`(dhcp-config)# lease [日数]`

###DHCPリレー
アドレスの配布対象のセグメントの外にDHCPサーバーを置く際に使用。配布対象のIFで以下の設定行う。
`(config-if)#ip helper-address [DHCPサーバーのIPアドレス]`

###設定の確認
`# show running-config`
`# show ip dhcp binding`
`# show ip dhcp server statistics`
`# show ip dhcp server packet`


##NAT,PAT(NAPT)

###スタティックNAT
設定
`(config)# ip nat inside source static [ローカルアドレス] [グローバルアドレス]`

IFへの適応
外部:`(config-if)# ip nat outside`
内部:`(config-if)# ip nat inside`

###ダイナミックNAT
設定
`(config)# access-list [ACL番号] permit [変換対象のNWアドレス] [ワイルドカードマスク]`
`(config)# ip nat pool [プール名] [内部グローバルアドレスの開始] [内部グローバルアドレスの終了] netmask [サブネットマスク]`
`(config)# ip nat inside source list [ACL番号] pool [プール名]`

例:
`(config)# access-list 10 permit 192.168.1.0 0.0.0.255`
`(config)# ip nat pool POOL 200.2.2.1 200.2.2.3 netmask 255.255.255.0`
`(config)# ip nat inside source list 10 pool POOL`


IFへの適応
外部:`(config-if)#ip nat outside`
内部:`(config-if)#ip nat inside`

###PAT
NATとほぼ同じ。
最後にoverloadをつけるだけ

ACLの設定
`(config)# access-list [ACL番号] permit [変換対象のNWアドレス] [ワイルドカードマスク]`

・プールを使う方法
`(config)# ip nat pool [プール名] [内部グローバルアドレスの開始] [内部グローバルアドレスの終了] netmask [サブネットマスク]`
`(config)# ip nat inside source list [ACL番号] pool [プール名]　overload`

・または、インターフェースを指定して設定することもできる。
`(config)# ip nat inside source list [ACL番号] interface [IF名] overload`


IFへの適応
外部:`(config-if)#ip nat outside`
内部:`(config-if)#ip nat inside`

###ポート転送
`(config)#ip nat inside source static {tcp/udp} [内部ローカルアドレス] [内部のポート番号] [内部グローバルアドレス] [外部のポート番号]`

例:
`(config)#ip nat inside source static tcp 192.168.1.200 8000 200.1.1.2 80`
`(config)#int fa 0/0`
`(config-if)#ip nat inside`
`(config-if)#int fa 0/1`
`(config-if)#ip nat outside`

###設定の確認
`# show ip nat translations`
`# show ip nat statistics`
`# clear ip nat translation *`
`# clear ip nat translation inside`
`# debug ip nat` 




##おまけ
###万が一パスワードを忘れてしまった場合
・電源onにしてすぐにコンソール(Teraterm)にブレイク信号を送る
`ALT+B`

・設定ファイルを無視して、未設定状態で立ち上げる。コマンドが受け付けられるようになったら、下記のコマンドを入力
`rommon> confreg 0x2142`
`rommon> reset`

・未設定状態で起動する
`> enable`
`# copy startup-config running-config`

・新しいパスワードの設定
`# configure retminal`
`(config)# [新しいパスワード設定]`

・立ち上げモードを戻す
`(config)# config-register 0x2102`
`(config)# exit`

・最後に新しい設定を保存
`# copy startup-config running-config`