管理者/Ciscoルータ800Mの設定 のバックアップ(No.14)

更新


公開メモ

とてもわかりにくいと評判のルータを設定してみます

Cisco はその道では昔から有名なので、 研究室のルータを新調するときに「せっかくだからいいものを」と Cisco 800M というのを買ったのですが、 蓋を開けてみると当たり前の設定をするにも非常に苦労するという 使い勝手としてはあまり評判のよくないものだったようで、

誰のための日本語GUIなのか? 中小企業向け低価格ルーター「Cisco 841M J」
http://internet.watch.impress.co.jp/docs/column/shimizu/723163.html

ちゃんと設定できてしまえば性能はさすが、と思えることを信じて、 設定をしてみます。

ようやくうまく行った設定はこちら

ようやくなんとかなりました

接続

設定中にも Internet につながらないと、Google 先生のお世話になれないので、 WIFI と有線と、両方備えたノートPCを使い、WIFI は既存のネットワークに、 有線は 800M の LAN 側につないで、設定を始めます。

&uml( cloud Internet node 設定済み storage 自分のPC node 800M Internet -- 設定済み :  WAN (130.158.0.0) 設定済み -- 自分のPC: LAN (10.225.225.0) 800M -- 自分のPC: LAN (10.10.10.0) Internet .. 800M: WAN (130.158.0.0) );

初期画面

半分設定済みの 800M の背面 LAN ポート 0 番に PC からの LAN ケーブルを繋いで、 http://10.10.10.1/ へブラウザでアクセスすると、 ID とパスワードを聞かれてこんな画面が出ました。

cisco-configuration-professional-express.png

CCP Express

Cisco Configuration Professional Express は Cisco Configuration Professional の軽量版、 のようなことも書かれていましたが、

http://www.cisco.com/c/en/us/products/cloud-systems-management/eos-eol-listing.html

によると、Cisco Configuration Professional (Cisco CP) はすでに廃盤のようです?

http://www.cisco.com/c/en/us/support/cloud-systems-management/configuration-professional/products-release-notes-list.html

を見ると

  • CCP Express は 2015/9/24 に出た 3.3 が最新
  • Cisco CP は 2014/5/20 に出た 2.8 が最新

なので、確かにそうなのかもしれない。

しかしこのリリースノートのソート順はどうなってるんだろう?

ユーザーのことを少しでも気にかけていたらこうはならないように思えてしまう。

バージョンを確認

[ルータの診断] のアイコンを押したところ、

  • デバイスのタイプ: C841M-4X-JSEC/K9
  • IOSバージョン: 15.5(3)M,

となっていて、

CCP Express のバージョンは確認できません。。。

CLI インターフェイスで show version として Exec したところ、

LANG:console
Exec$ show version
 Cisco IOS Software, C800M Software (C800M-UNIVERSALK9-M), Version 15.5(3)M, RELEASE SOFTWARE (fc1)
 Technical Support: http://www.cisco.com/techsupport
 Copyright (c) 1986-2015 by Cisco Systems, Inc.
 Compiled Thu 23-Jul-15 03:45 by prod_rel_team
 
 ROM: System Bootstrap, Version 15.5(1r)T1, RELEASE SOFTWARE (fc1)
 
 10.225.225.4 uptime is 2 hours, 41 minutes
 System returned to ROM by reload at 11:09:57 GMT Fri Mar 3 2017
 System image file is "flash:c800m-universalk9-mz.SPA.155-3.M.bin"
 Last reload type: Normal Reload
 Last reload reason: Load customer configuration
 
 
 
 This product contains cryptographic features and is subject to United
 States and local country laws governing import, export, transfer and
 use. Delivery of Cisco cryptographic products does not imply
 third-party authority to import, export, distribute or use encryption.
 Importers, exporters, distributors and users are responsible for
 compliance with U.S. and local country laws. By using this product you
 agree to comply with applicable laws and regulations. If you are unable
 to comply with U.S. and local laws, return this product immediately.
 
 A summary of U.S. laws governing Cisco cryptographic products may be found at:
 http://www.cisco.com/wwl/export/crypto/tool/stqrg.html
 
 If you require further assistance please contact us by sending email to
 export@cisco.com.
 
 Cisco C841M-4X-JSEC/K9 (revision 1.0) with 496716K/27571K bytes of memory.
 Processor board ID FGL193721W4
 6 Gigabit Ethernet interfaces
 1 Virtual Private Network (VPN) Module
 DRAM configuration is 32 bits wide
 255K bytes of non-volatile configuration memory.
 255984K bytes of USB Flash usbflash0 (Read/Write)
 1916928K bytes of SD Flash sdflash (Read/Write)
 
 
 License Info:
 
 License UDI:
 
 -------------------------------------------------
 Device#	  PID			SN
 -------------------------------------------------
 *1  	  C841M-4X-JSEC/K9      FGL193721W4     
 
 
 
 License Information for 'c800m'
     License Level: advsecurity   Type: Permanent
     Next reboot license Level: advsecurity
 
 
 Configuration register is 0x2102

でしたので、、、やっぱりわかりません???

ああ、右上の ? アイコンをクリックしたら
http://www.cisco.com/c/en/us/td/docs/net_mgmt/cisco_configuration_professional_express/v3_1/guides/featureguide/ccp_express_Feature_Guide.html
へ飛んだので、どうやら CCP Express 3.1 のようです。

設定のバックアップ

すでに1人目の犠牲者がいろいろ設定を試した後だったので、 まずは設定をバックアップします。

Google:バックアップ "Cisco Configuration Professional Express"

から、

CCP Express 3.1 リカバリ&初期化ガイド
https://supportforums.cisco.com/ja/document/12603681

というのを見つけました。

CCP Express は Cisco Configuration Professional Express であるのはよいとして、 手元の 800M の CCP Express のバージョンがいくつなのか、[ルータの診断] に現れないのは不親切。

上記ページのプレゼン画面も、いちいちページをめくらないと進めないし、 画面の文字をコピーできないし、使いづらいことこの上ない。 日本語もとても変。なんとか読み解くと、

ルータに USB メモリを指して、[CLI の構成] で

copy running-config usbflash0:customer-config

を実行。

とのこと。

バックアップからのリカバリ方法が書かれていないのも片手落ち。

たぶん、

copy usbflash0:customer-config running-config

かな?

やってみる

800M の後ろの USB ポートに San Disk の 「250MB の USB メモリ(!)」 を挿して、 トップページから [任意のコマンド] を押すと、サブページでは同じ項目が [CLIの設定] と呼ばれています。しかもこれは [CLI による設定] が正しい訳語のはずです。 まあいろいろと、GUI 設計のやる気のなさが感じられます。。。

アドレスはこれ。

http://10.10.10.1/sdflash:ccpexp/html/frames.html?feature=anycli

copy running-config usbflash0:customer-config を入れて Exec を押すと、

LANG:console
exec$ copy running-config usbflash0:customer-config
 Destination filename [customer-config]? 
   
 8250 bytes copied in 1.524 secs (5413 bytes/sec)

となった。

途中でファイル名を聞かれているみたいなのだけれど、 この Web インターフェースからでは入力できないようで、 コマンドラインで指定した通り customer-config が使われたみたい。

PC から USB の中身を見ると customer-config というテキストファイルができていて、 中にいろいろ設定が書かれていた。

気になるのは、このファイルの冒頭が

!
! Last configuration change at 09:37:42 GMT Fri Mar 3 2017 by admin
!
version 15.5
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
...

となっていたこと。

ここにあるのはどうみても、最終変更時刻ではなく、バックアップ時刻のはず。 正しくは、Last configuration saved at ... とすべきです。

全然意味が違うのだからこんな基本的なところで間違えないでほしい。

書き戻してみる

エラーが出ることはあっても、設定が変わってしまうことはないだろうと信じて、

LANG:console
$ copy usbflash0:customer-config running-config
 Destination filename [running-config]? 
   3082022B 30820194 A0030201 02020101 300D0609 2A864886 F70D0101 05050030 
   ^
 % Invalid input detected at '^' marker.
 
   31312F30 2D060355 04031326 494F532D 53656C66 2D536967 6E65642D 43657274 
   ^
 % Invalid input detected at '^' marker.
 
   69666963 6174652D 31383735 39393038 3634301E 170D3135 31313132 31333536 
   ^
 % Invalid input detected at '^' marker.
 
   34305A17 0D323030 31303130 30303030 305A3031 312F302D 06035504 03132649 
   ^
 % Invalid input detected at '^' marker.
 
   4F532D53 656C662D 5369676E 65642D43 65727469 66696361 74652D31 38373539 
   ^
 % Invalid input detected at '^' marker.
 
   39303836 3430819F 300D0609 2A864886 F70D0101 01050003 818D0030 81890281 
   ^
 % Invalid input detected at '^' marker.
 
   8100B835 29B8FC09 F45304CA 0022F6A6 B5D771F2 62C6E389 8E697DDD 80F74102 
   ^
 % Invalid input detected at '^' marker.
 
   6681FC17 ED981D16 8C772C0D 99214362 7B3B0A23 AC16A8B6 D4D248AB 97343FD7 
   ^
 % Invalid input detected at '^' marker.
 
   B3091964 0DB00B3C F780B630 A4D3DFEF 15485DD8 03F7F4B4 226148F2 86D340E1 
   ^
 % Invalid input detected at '^' marker.
 
   95989225 9C3C689C DE061781 5B7FC58E B12E0657 3385B6B0 693CACC7 74788EB8 
   ^
 % Invalid input detected at '^' marker.
 
   D48D0203 010001A3 53305130 0F060355 1D130101 FF040530 030101FF 301F0603 
    ^
 % Invalid input detected at '^' marker.
 
   551D2304 18301680 1483B927 45C21729 715DF8F8 4E8A4A1D 8FA1372C CD301D06 
   ^
 % Invalid input detected at '^' marker.
 
   03551D0E 04160414 83B92745 C2172971 5DF8F84E 8A4A1D8F A1372CCD 300D0609 
   ^
 % Invalid input detected at '^' marker.
 
   2A864886 F70D0101 05050003 8181002F C79D5492 320119E6 97EFE0EA FFE94E59 
   ^
 % Invalid input detected at '^' marker.
 
   9F662309 F58A8C16 B991AE4E 4774523D FAC38EDE A23B24EC 261CDABA 25612338 
   ^
 % Invalid input detected at '^' marker.
 
   E0CAF1E3 9A470564 E268F075 0ABC8A99 91323CFC CBF4DE36 4E579C30 9FCC4B0B 
    ^
 % Invalid input detected at '^' marker.
 
   B34C3E94 CE2ED318 68A5C723 9B1A3F18 9E705175 9C385449 1237FA9A 64718110 
   ^
 % Invalid input detected at '^' marker.
 
   786C8985 2477A839 D58E401F 8D6210
   ^
 % Invalid input detected at '^' marker.
 
   	quit
    ^
 % Invalid input detected at '^' marker.
 % Interface is already member of zone WAN
 % Interface is already member of zone LAN
 
 8250 bytes copied in 0.172 secs (47965 bytes/sec)

いやいやいやいや、なにそれ、ありえないでしょ。

今書き出したばかりのファイルを読もうとして文法エラーっぽいのが出るとか。

設定が書き換わってしまっていないことを確かめる

先のファイルを customer-config_initial と書き換えて、 もう一度

LANG:console
$ copy running-config usbflash0:customer-config
 Destination filename [customer-config]? 
 
 8250 bytes copied in 1.784 secs (4624 bytes/sec)

ふむファイルサイズは変わっていない。
できたファイルと元のファイルとの diff を取ったところ、 日付以外は変わっていませんでした。

正しい書き戻し方は?

「CCP Express バックアップ」 で検索をかけようとすると、Google の検索ワード候補から 「CCP Express バックアップからのリカバリ方法」 が出てくるあたり、みんな困ってる。

しかも、残念ながらバックアップはリカバリするんじゃなくてリストアするものらしい???

http://www.networld.co.jp/files/7814/5448/1356/Cisco_CiscoStartRouter_Manual_BuckupAndRestoreConfiguration_Cisco841MJ_1.0_20160202.pdf

バックアップとリストアという基本的な操作を説明するのにこれだけの文書が必要になるものなのか?!

で、書かれていたのは上記のうまくいかなかった方法と同じ、

copy usbflash0:<backup file name> running-config

エラー行の直前まではちゃんと読まれている

[CLI の設定] で "hostname testtest" を入れて configure すると、

LANG:console
exec$ show running-config | include hostname
  hostname G225
configure$ hostname testtest
 コマンドは正常に完了しました。
exec$ show running-config | include hostname
 hostname testtest
exec$ copy usbflash0:customer-config running-config
 ...
 (上記エラー)
 ...
 8250 bytes copied in 0.160 secs (51563 bytes/sec)
exec$ show running-config | include hostname
  hostname G225

そうなると、うまく行ってなさそうなのは、

 crypto pki certificate chain TP-self-signed-1875990864
  certificate self-signed 01
   3082022B 30820194 A0030201 02020101 300D0609 2A864886 F70D0101 05050030 
   31312F30 2D060355 04031326 494F532D 53656C66 2D536967 6E65642D 43657274 
   69666963 6174652D 31383735 39393038 3634301E 170D3135 31313132 31333536 
   34305A17 0D323030 31303130 30303030 305A3031 312F302D 06035504 03132649 
   4F532D53 656C662D 5369676E 65642D43 65727469 66696361 74652D31 38373539 
   39303836 3430819F 300D0609 2A864886 F70D0101 01050003 818D0030 81890281 
   8100B835 29B8FC09 F45304CA 0022F6A6 B5D771F2 62C6E389 8E697DDD 80F74102 
   6681FC17 ED981D16 8C772C0D 99214362 7B3B0A23 AC16A8B6 D4D248AB 97343FD7 
   B3091964 0DB00B3C F780B630 A4D3DFEF 15485DD8 03F7F4B4 226148F2 86D340E1 
   95989225 9C3C689C DE061781 5B7FC58E B12E0657 3385B6B0 693CACC7 74788EB8 
   D48D0203 010001A3 53305130 0F060355 1D130101 FF040530 030101FF 301F0603 
   551D2304 18301680 1483B927 45C21729 715DF8F8 4E8A4A1D 8FA1372C CD301D06 
   03551D0E 04160414 83B92745 C2172971 5DF8F84E 8A4A1D8F A1372CCD 300D0609 
   2A864886 F70D0101 05050003 8181002F C79D5492 320119E6 97EFE0EA FFE94E59 
   9F662309 F58A8C16 B991AE4E 4774523D FAC38EDE A23B24EC 261CDABA 25612338 
   E0CAF1E3 9A470564 E268F075 0ABC8A99 91323CFC CBF4DE36 4E579C30 9FCC4B0B 
   B34C3E94 CE2ED318 68A5C723 9B1A3F18 9E705175 9C385449 1237FA9A 64718110 
   786C8985 2477A839 D58E401F 8D6210
   	quit

の部分いこうということになる。

startup-config に書き込まないとリセットで元に戻っちゃう?

http://www.cisco.com/cisco/web/support/JP/docs/CIAN/IOS/IOS15_1S/CG/019/cf_cli-basics.html?bid=0900e4b1825ae639

EXEC モードで copy running-config startup-config コマンドを発行しない限り、スタートアップ コンフィギュレーション ファイルに保存されません。

設定をリストアしたりも含めて、何か変えたら copy running-config startup-config を忘れないようにしないと。

running-config じゃなくて startup-config を書き出すべきでは?

そうすれば上記のエラーが出た部分は書き出されないっぽい。

さらに、読み込むときも startup-config へ読み込むのがよさそう。

「現在ルータに保存されている設定」を USB に書き出すには、

LANG:console
Exec$ copy startup-config usbflash0:(ファイル名)

USB に保存した設定を、「ルータに保存されている設定」に書き戻すには、

LANG:console
Exec$ copy usbflash0:(ファイル名) startup-config 

ただし、「ルータに保存されている設定」を書き換えても、 今現在のルータの動作が変化するわけでは無いので、 読み込んだ設定を動作に反映させるにはリブートする必要がある。

一旦、工場出荷状態に戻す

今後のこともあるので、一旦工場出荷状態に戻してから始めます。

で、とても見にくいこの資料によると、
https://supportforums.cisco.com/ja/document/12603681

工場出荷時の設定ファイルをダウンロードして書き戻せ、ということみたいです。

recovery.png

あ、バックアップのリカバリ方法はここに書いてあったのか!

赤矢印から USB のルートフォルダへ customer-config という名前でダウンロードして、 背面のリセットを5秒以上押したところ、前面の SYS が点滅し始めて、いったん消え、 また点滅し始めて、ずいぶん待たされてから点灯して、さらにずいぶん待たされてから USB メモリの LED と LAN の CONNECTION インジケータが光りました。

この間、USB メモリの LED を見る限り、アクセスしている感じがなくて心配するのですが、、、

ちゃんとリセットされたみたいで、 起動後は初期アカウントの cisco/cisco でログインすることになりました。

startup-config への copy コマンドでもできるようです

上記の通り、startup-config へ書き戻してリブートする、つまり

LANG:console
Exec$ copy usbflash0:customer-config startup-config
Exec$ reload

とすると初期化されて再起動しました。

この方法の良いところは、読み込む設定ファイル名を任意に選べるところです。 また、800M 本邸に物理的に手が届かなくてもできるのもいいですね。

工場出荷時の設定ファイル名は usbflash0:factory-config などとしておくとわかりやすいはず。

初期画面

初期パスワードを聞かれるので cisco/cisco を入れると、

管理者IDとパスワードの設定があります。

その後表示される初期画面は以下のようなものでした。

initial-screen.png

高度なセットアップを選ぶと、先ほどと同じ画面が出ました。

一旦保存

config を保存しておきます。

LANG:console
Exec$ copy startup-config usbflash0:config-history1

この時点で、ダウンロードした factory-config とは似ても似つかない内容になっていますので、 これを元に、今後の GUI 設定がどのように config ファイルに反映されるかを見ていきます。

なぜこれが重要かというと・・・ GUI で設定していると、頻繁に config ファイルにゴミが残るためです。

GUI で設定して、書き換えると、元の設定が完全には消えずに残ってしまうのです。

履歴を取りながら慎重に勧めます。

(このあたりからして難易度は最初からナイトメアと思って間違いないです)

クイックセットアップウィザードから設定する

クイックセットアップウィザードを選択して、基本的な設定を済ませてしまおうと思います。

  • ルータ名 G225
  • ドメインネーム bk.tsukuba.ac.jp
  • タイムゾーン (GMT+09:00) Osaka, Sapporo, Tokyo
  • WAN接続タイプ Ethernet(Direct/PPPOE)
    • インターフェース GigaEthernet0/4 (下側コネクタ)
    • DNS/IPアドレス
      • [ ] ISPから直接DNSサーバ情報を取得する
      • プライマリ DNS 130.158.68.21
      • セカンダリ DNS 8.8.8.8 (Google Public DNS)
    • IPV4
      • [ ] ISPから自動的に取得する
      • IP アドレス 130.158.130.211
      • サブネットマスク 255.255.255.0
      • ゲートウェイの指定方法は???
      • [*] NATを有効にする
    • IPV6
      • [ ] IPv6 を有効にする
    • [ ] PPPoE を有効化
  • バックアップ WAN
    • [ ] バックアップWANを有効化
  • LAN
    • ここでは変更不可
    • LANネットワーク 10.10.10.0
    • サブネットマスク 255.255.255.128 (256個 ではなく 128個 しか確保されていない)
    • 利用可能なIPサイズ ルータを含む 126 のホスト
      • これはアドレス範囲の 128個 から ネットワークアドレス=0 と ブロードキャストアドレス=127 を除いた 126個
    • LAN Interface [GigabitEthernet0/0, GigabitEthernet0/1, GigabitEthernet0/2, GigabitEthernet0/3, Vlan1]
      • 背面の4つのポートと・・・Vlan1 とは何だろう???
  • セキュリティの設定
    • [*] ファイアウォール機能を有効化 (これ、やめた方がいいかも)
      • [*] ルータは、セキュリティ機能を有することができます (推奨と書かれているが強制チェック)

CLI スクリプトは

hostname G225
ip domain name bk.tsukuba.ac.jp
clock timezone GMT 9

ip name-server 130.158.68.21 8.8.8.8
ip domain lookup
ip dhcp pool ccp-pool
dns-server  130.158.68.21  8.8.8.8

zone security LAN
zone security WAN

flow record nbar-appmon
match ipv4 source address
match ipv4 destination address
match application name
collect interface output
collect counter bytes
collect counter packets
collect timestamp absolute first
collect timestamp absolute last
exit
flow monitor application-mon
cache timeout active 60
record nbar-appmon
exit

parameter-map type inspect global
nbar-classify

object-group network vpn_remote_subnets
any

object-group network local_cws_net
interface Vlan1
zone-member security LAN
ip nbar protocol-discovery
load-interval 30
ip flow monitor application-mon input
ip flow ingress
ip flow egress

object-group network Web_src_net
any
object-group network Web_dst_net
any
object-group network Others_src_net
any
object-group network Others_dst_net
any
object-group service Web_svc
ip
object-group service Others_svc
ip

ip access-list extended Web_acl
permit object-group Web_svc object-group Web_src_net object-group Web_dst_net

ip access-list extended Others_acl
permit object-group Others_svc object-group Others_src_net object-group Others_dst_net

class-map type inspect match-any Others_app
match protocol https
match protocol smtp
match protocol pop3
match protocol imap
match protocol sip
match protocol ftp
match protocol dns
match protocol icmp

class-map type inspect match-any Web_app
match protocol http

class-map type inspect match-all Web
match class-map Web_app
match access-group name Web_acl

class-map type inspect match-all Others
match class-map Others_app
match access-group name Others_acl

policy-map type inspect LAN-WAN-POLICY
class type inspect Web
inspect
class type inspect Others
inspect
class class-default
drop log

zone-pair security LAN-WAN source LAN destination WAN
service-policy type inspect LAN-WAN-POLICY

interface Vlan1
ip nat inside
exit

object-group network local_lan_subnets
10.10.10.0 255.255.255.128

ip access-list extended nat-list
permit ip object-group local_lan_subnets any
deny ip any any

interface GigabitEthernet0/4
no shutdown
description PrimaryWANDesc_
zone-member security WAN
ip address 130.158.130.211 255.255.255.0
ip nat outside
exit

access-list 23 permit 10.10.10.0 0.0.0.127
ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/4
ip nat inside source list nat-list interface GigabitEthernet0/4 overload

であることを確認して、[設定] を押しました。

時間がかかると言われたけれど、30秒もかからなかった。

ここでも保存

LANG:console
Exec$ copy startup-config usbflash0:config-history2

dhcp の変更

工場出荷状態で ccp-pool という dhcp pool ができているのだけれど、 これを変えてしまうと CCP Express に繋がらなくなるので、 これは変更してはダメ、なのかな???

念のため、ここでは別に dhcp pool を作ってそれを使う。

ダッシュボードの上のメニューから [DHCP/DNS/ホスト名] をクリックして、

DHCP プール一覧の [追加] を押す。

  • プール名 g225-pool
  • プールネットワーク 10.225.225.0
  • サブネットマスク 255.255.255.0
  • デフォルトルート 10.225.225.1
  • この DHCP プールにある DNS 値を含める [ ]
  • DHCP サーバデータベースに全ての DHCP オプションをインポートする [*]

[OK] して "% Option 6, instance 0 is not in the database." という エラーが出たときは、

  • この DHCP プールにある DNS 値を含める [*]

としたら無事追加される場合もあるみたい。なんのこっちゃ???

で、この設定を使うためにはインターフェイスの設定が必要になる。

ここでも保存

LANG:console
Exec$ copy startup-config usbflash0:config-history3

インターフェイスの設定

https://supportforums.cisco.com/sites/default/files/initial-setting_guide_v05.pdf

の28ページあたりによると、cpp-pool が使えないと CCP Express へアクセスできなくなったりするので、4つしかない LAN ポートのうち1つを Configuration 用に開けておいて、通常用途には3つしか使えないようです??? マジデカ?!

dhcp pool は Vlan ごとに指定するようで、 まず g225-pool を使うポートをまとめるための Vlan を作成して、 そこで指定する dhcp に g225-pool を指定します。

[ダッシュボード] の上のメニューから [インターフェイス] を選び、[VLANの追加] をします。

  • VLAN
    • VLAN ID: 2
    • ポートの関連づけ: GigabitEthernet0/[1,2,3]
  • IPv4 アドレス
    • タイプ DHCPから選択 ← これ、間違いでした
    • DHCP一覧 g225-pool ← これ、間違いでした
    • NATの有効化 [*]

これで、Vlan1 からは GigabitEthernet0/[1,2,3] の指定が抜けて、 GigabitEthernet0/0 だけが残ります。

後からわかったことには、この IPv4 アドレス指定は間違いでした。

正しくは静的 IP で dhcp で指定したゲートウェイを提供する必要があります。

  • タイプ 静的 IP
  • IP アドレス 10.225.225.1
  • サブネットマスク 255.255.255.0
  • NATの有効化 [*]

が正しいです。

うまくいったかを確認する

PC からの有線接続を LAN ポート 1 に差し替える。

かなーり時間がかかって、PC のアドレスは正しく 10.225.225.2 が割り当てられた。

そこから 10.10.10.1 へアクセスしたところ、繋がらなかった。

10.225.225.1 へアクセスしても、繋がらなかった

管理者権限付きのコマンドプロンプトから

route add 10.10.10.1 MASK 255.255.255.255 0.0.0.0 if 10
としてルーティングを設定し、ゲートウェイを通さず直接 10.10.10.1 へアクセスしても 繋がらなかった。

これは本当に、設定用に1ポート開けとかなきゃだめってこと?!!!

しかたがないので、とりあえずそのまま進む。

ここでも保存

LANG:console
Exec$ copy startup-config usbflash0:config-history4

dhcp 除外範囲を設定

http://www.cisco.com/cisco/web/support/JP/docs/CIAN/IOS/IOSSWRels15_1/CG/001/iad_dhcp_svr_cfg.html?bid=0900e4b1825ae5ce を見ながら。

特定のマシンに dhcp で割り当てる IP アドレスを固定したいので、 まずは dhcp で自動割り当てする IP アドレス範囲を制限する。

これには CLI が必須になる。

LANG:console
Configure$ ip dhcp excluded-address 10.225.225.1 10.225.225.31
 コマンドは正常に完了しました。

ここでも保存

これ、今まで通り copy startup-config usbflash0:config-history5 とだけしたら変更が反映されていなかった。 copy running-config startup-config が必要みたい。

LANG:console
Exec$ copy running-config startup-config
Exec$ copy startup-config usbflash0:config-history5

ああ、どうして GUI から作業すると CLI からするよりもずっと時間がかかるのか 不思議だったのだけれどこれでわかった。 copy running-config startup-config に時間がかかるのか。

CLI でちょちょっと変更した内容は startup-config には書かれないので、 ちゃんと保存しておかなければならない。

IP アドレスの固定

自分の PC の MAC アドレスを指定して、10.225.225.4 へ固定してみる。

MAC アドレスが C8-5B-76-53-6D-5C なので、
hardware-address には C85B.7653.6D5C を指定する。

LANG:console
Configure$ ip dhcp pool g225-pool
Configure> host 10.225.225.4
Configure> hardware-address C85B.7653.6D5C ethernet
Configure> client-name takeuchi-t460s
 % This command may not be used with network, origin, vrf, or relay pools.

あ、どうも違うみたい。

1つのアドレスを固定するためには、新たにアドレスプールを作る必要があるらしい。

LANG:console
Configure$ ip dhcp pool g225-takeuchi-t460s
Configure> host 10.225.225.4
Configure> hardware-address hardware-address C85B.7653.6D5C ethernet
 Invalid input detected.
Configure$ ip dhcp pool g225-takeuchi-t460s
Configure> host 10.225.225.4 255.255.255.0
Configure> hardware-address C85B.7653.6D5C ethernet
 % A binding already exists for 10.225.225.4.
Exec$ show running-config
 ...
 ip dhcp pool g225-takeuchi-t460s
 host 10.225.225.4 255.255.255.0
 ...
Configure$ no ip dhcp pool g225-takeuchi-t460s
 コマンドは正常に完了しました。
Configure$ ip dhcp pool g225-takeuchi-t460s
Configure> host 10.225.225.4 255.255.255.0
Configure> hardware-address C85B.7653.6D5C ethernet
 コマンドは正常に完了しました。

始め、hardware-address の行をミスタイプしていたために Configure に失敗したのだけれど、中途半端に書き込まれてしまったようで、 no ip dhcp pool で消さないと上書きできませんでした。

でも、これで設定できたっぽい。

試す → 失敗

LAN ポートの1につなぎ替えると、、、あれれ?
10.225.225.4 ではなく 10.225.225.2 が割り当てられていました orz

古い設定を消す

LAN ポート 0 に戻して CLI から、

$ show ip dhcp binding
 Bindings from all pools not associated with VRF:
 IP address          Client-ID/	 	    Lease expiration        Type
 		    Hardware address/
 		    User name
 10.10.10.2          01c8.5b76.536d.5c       Mar 03 2017 03:29 PM    Automatic
 10.225.225.2        01c8.5b76.536d.5c       Mar 04 2017 12:34 PM    Automatic
 10.225.225.4        c85b.7653.6d5c          Infinite                Manual
$ clear ip dhcp binding 10.225.225.2
 コマンドは正常に完了しました。
$ show ip dhcp binding
 Bindings from all pools not associated with VRF:
 IP address          Client-ID/	 	    Lease expiration        Type
 		    Hardware address/
 		    User name
 10.10.10.2          01c8.5b76.536d.5c       Mar 03 2017 03:29 PM    Automatic
 10.225.225.4        c85b.7653.6d5c          Infinite                Manual

試す → 惜しい

LAN ポート 1 へ挿し変えると、、、惜しい! (のか?)
10.225.225.4 ではなく 10.225.225.11 が割り当てられていました

少なくとも excluded の設定は効いたことになります。

client-identifier も指定してみる

LANG:console
Exec$ show ip dhcp binding
 Bindings from all pools not associated with VRF:
 IP address          Client-ID/	 	    Lease expiration        Type
 		    Hardware address/
 		    User name
 10.10.10.2          01c8.5b76.536d.5c       Mar 03 2017 03:29 PM    Automatic
 10.225.225.4        c85b.7653.6d5c          Infinite                Manual
 10.225.225.11       01c8.5b76.536d.5c       Mar 04 2017 12:34 PM    Automatic
Configure$ no ip dhcp pool g225-takeuchi-t460s
 コマンドは正常に完了しました。
Configure$ ip dhcp pool g225-takeuchi-t460s
Configure> host 10.225.225.4
Configure> client-identifier 01c8.5b76.536d.5c
Configure> hardware-address c85b.7653.6d5c ethernet
 % A binding for this client already exists.
Exec$ clear ip dhcp binding
 コマンドは正常に完了しました。
Configure$ ip dhcp pool g225-takeuchi-t460s
Configure> host 10.225.225.4
Configure> client-identifier 01c8.5b76.536d.5c
Configure> hardware-address c85b.7653.6d5c ethernet
 コマンドは正常に完了しました。
Exec$ show ip dhcp binding
 Bindings from all pools not associated with VRF:
 IP address          Client-ID/	 	    Lease expiration        Type
 		    Hardware address/
 		    User name
 10.10.10.2          01c8.5b76.536d.5c       Mar 03 2017 03:40 PM    Automatic
 10.225.225.4        c85b.7653.6d5c          Infinite                Manual

試す → ダメ

LAN ポート 1 へ挿し変えると、、、むむう
10.225.225.4 ではなく 10.225.225.12 が割り当てられた

どうして 11 じゃないんだろう???

client-identifier のみ指定する

LANG:console
Exec$ clear ip dhcp binding
 Invalid input detected.
Exec$ clear ip dhcp binding 10.225.225.12
 コマンドは正常に完了しました。
Configure$ no ip dhcp pool g225-takeuchi-t460s
 コマンドは正常に完了しました。
Exec$ show ip dhcp binding
 Bindings from all pools not associated with VRF:
 IP address          Client-ID/	 	    Lease expiration        Type
 		    Hardware address/
 		    User name
 10.10.10.2          01c8.5b76.536d.5c       Mar 03 2017 03:51 PM    Automatic
Configure$ ip dhcp pool g225-takeuchi-t460s
Configure> host 10.225.225.4
Configure> client-identifier 01c8.5b76.536d.5c
 コマンドは正常に完了しました。
Exec$ show ip dhcp binding
 Bindings from all pools not associated with VRF:
 IP address          Client-ID/	 	    Lease expiration        Type
 		    Hardware address/
 		    User name
 10.10.10.2          01c8.5b76.536d.5c       Mar 03 2017 03:51 PM    Automatic
 10.225.225.4        01c8.5b76.536d.5c       Infinite                Manual

試す → ようやく成功

http://www.cisco.com/cisco/web/support/JP/docs/CIAN/IOS/IOSSWRels15_1/CG/001/iad_dhcp_svr_cfg.html?bid=0900e4b1825ae5ce#45310

をよく読むと、

DHCP パケットでクライアント ID を送信するクライアントと、
DHCP パケットでクライアント ID を送信しないクライアントがいて、
前者には client-identifier を、後者には hardware-address を指定せよとなっていました。

私の PC は MAC アドレスの頭に 01 をつけたクライアント ID を送信しているので、 それに合わせた client-identifier を指定しないと正しく認識されない、ということなのだと思います。

普通は MAC アドレスを入れれば大丈夫なのに、どうしてこんなに頑固なんだろう???

ここでも保存

LANG:console
Exec$ copy running-config startup-config
Exec$ copy startup-config usbflash0:config-history6

ポートフォワードの設定

外部からのアクセスを内部のサーバーマシン (10.225.225.2 とする) に届けるため、ポートフォワード設定をします。

https://supportforums.cisco.com/ja/document/12984096

GUI から [セキュリティ] を選んで、[スタティックNAT] を [追加]

  • 内部 IP 10.225.225.2
  • 外部IP/インタフェース 130.158.130.211
  • [*] ポートフォワーディングを有効にする
    • [*] TCP
    • 内部ポート 80
    • 外部ポート 80

[OK] すると項目が作られましたが・・・

え?ポート番号ごとにエントリーを作らなきゃならないの???

しかも、作ったエントリー一覧にポート番号が表示されていないから、 いくつか作るとどれがどれだかわからない。

まともに GUI 作る気ないってことですか???

結局 CUI からやった方が楽ってこと・・・

CUI から確認&設定する

http://www.cisco.com/cisco/web/support/JP/102/1022/1022277_827spat-j.html

を見てもさっぱりなので、上で作った設定を確認して、 まねすることにします。

LANG:console
Exec$ show running-config
 ...
 ip nat inside source list nat-list interface GigabitEthernet0/4 overload
 ip nat inside source static tcp 10.225.225.2 80 130.158.130.211 80 extendable
 ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/4
 ...
Configure$ ip nat inside source static tcp 10.225.225.2 22 130.158.130.211 22 extendable
  コマンドは正常に完了しました。
Exec$ show running-config
 ...
 ip nat inside source list nat-list interface GigabitEthernet0/4 overload
 ip nat inside source static tcp 10.225.225.2 22 130.158.130.211 22 extendable
 ip nat inside source static tcp 10.225.225.2 80 130.158.130.211 80 extendable
 ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/4
 ...
Configure $ ip nat inside source static tcp 10.225.225.2  25 130.158.130.211  25 extendable
Configure > ip nat inside source static tcp 10.225.225.2 110 130.158.130.211 110 extendable
Configure > ip nat inside source static tcp 10.225.225.2 143 130.158.130.211 143 extendable
Configure > ip nat inside source static tcp 10.225.225.2 443 130.158.130.211 443 extendable
Configure > ip nat inside source static tcp 10.225.225.2 465 130.158.130.211 465 extendable
Configure > ip nat inside source static tcp 10.225.225.2 587 130.158.130.211 587 extendable
Configure > ip nat inside source static tcp 10.225.225.2 993 130.158.130.211 993 extendable
Configure > ip nat inside source static tcp 10.225.225.2 995 130.158.130.211 995 extendable

うん、この感じで項目は追加できるっぽい。

  • http = 80
  • ssh = 22
  • smtp = 25
  • pop3 = 110
  • imap = 143
  • https = 443
  • smtps = 465
  • smtp = 587
  • imaps = 993
  • pop3s = 995

で、上記設定をしてから GUI で確認すると、

static-nat-gui.png

これをどうしろっていうんだろう?

ここでも保存

LANG:console
Exec$ copy running-config startup-config
Exec$ copy startup-config usbflash0:config-history7

ファイアーウォールの設定

[セキュリティ] - [ポリシー] から確認すると、

  • ポリシー名 Web (変更なし)
    • アクション 許可
    • 送信元ゾーン LAN
    • 宛先ゾーン WAN
    • 送信元ネットワーク Any
    • 宛先ネットワーク Any
    • 選択されたアプリケーション http
    • 送信元ポート Any
    • 宛先ポート Any
    • ドメインフィルタリング なし
    • ユーザグループ 選択なし
  • ポリシー名 Others (選択されたアプリケーションに追加)
    • アクション 許可
    • 送信元 LAN
    • 宛先 WAN
    • 送信元ネットワーク Any
    • 宛先ネットワーク Any
    • 選択されたアプリケーション https, smtp, pop3, imap, sip, ftp, dns, icmp, imaps, pop3s, ntp, ssh, irc
    • 送信元ポート Any
    • 宛先ポート Any
    • ドメインフィルタリング なし
    • ユーザグループ 選択なし

基本、これらは内側から外側へのパケットなので、 ここで指定した以外のポートを使うアプリケーションは動かなくなる。

必要か?これ???

あれ??? [OK] を押したら 「ポリシーは設定されていません」 になってしまった。

なんだ、それ?!

保存しておく

LANG:console
Exec$ copy running-config startup-config
Exec$ copy startup-config usbflash0:config-history8

config ファイルを見ると上で追加したプロトコルが追加されていない。

あと、Others だったところが others 担っている部分がいくつかあり、

さらに、

class type inspect Others
 inspect 

が無くなっていて、

service-policy type inspect LAN-WAN-POLICY

も無くなっていた。

えーと、こんなに分かりやすいバグが残っているのですか?

手動で設定する

config-history7 に以下のように項目を加えて、 config-history8b として保存した。

 class-map type inspect match-any Others_app
  match protocol https
  match protocol smtp
  match protocol pop3
  match protocol imap
  match protocol sip
  match protocol ftp
  match protocol dns
  match protocol icmp
+ match protocol imaps
+ match protocol pop3s
+ match protocol ntp
+ match protocol ssh
+ match protocol irc
LANG:console
Exec$ copy usbflash0:config-history8b startup-config
Exec$ reload

としてリブートしたところ設定が更新された。

ちゃんと項目が増えている:
policy-added-application.png

ファイアーウォールの設定は off にした方が良いのかも

なんかうっかり設定壊しそうなのと、 そもそも中から外へのパケットを落とす意味がそれほどあるとも思えない???

内部からサーバーにアクセスする

以上の設定で、

  • 内部のマシン同士(サブネット内は直接やりとり)
  • 内部から外部へ(NAT)
  • 外部から内部サーバーへ (sNAT によるフォワーディング)

は可能になったはずですが、

  • 内部から内部サーバーへ

はうまくいきません。

内部から、130.158.130.211 へアクセスすると、 このアドレスはサブネット外なので、 ゲートウェイであるルーターを通じて外へ出て行ってしまい、 ルーターへ戻ってくることはないので、行方不明になってしまいます。

この問題を解決するには、

  1. 内部から 130.158.130.211 へのアクセスを snat を通して内向きに送り返す
  2. 内部にはサーバーのアドレスとして内部アドレスである 10.225.225.2 を教えておく (内部用の DNS サーバーを立てる)

の2つがあります。

ルーティングでなんとかならないか

http://www.merges.co.jp/archives/874

この感じ、たぶんなんとかはならないみたい?

DNS でなんとかする

調べてもよくわからない・・・

http://www.cisco.com/cisco/web/support/JP/docs/CIAN/IOS/IOSSWRels15_1/CG/001/iad_config_dns.html?bid=0900e4b1825ae5ce#pgfId-1049340

http://blog.redbox.ne.jp/cisco-pppoe-setting.html

http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/257-cisco-router-dns-server.html

LANG:console
Exec$ ping dora.bk.tsukuba.ac.jp
 Translating "dora.bk.tsukuba.ac.jp"...domain server (130.158.68.21) (8.8.8.8)
 % Unrecognized host or address, or protocol not running.
Config$ ip host dora.bk.tsukuba.ac.jp 10.225.225.2
 コマンドは正常に完了しました。
Exec$ ping dora
 Type escape sequence to abort.
 Sending 5, 100-byte ICMP Echos to 10.225.225.2, timeout is 2 seconds:
 .....
 Success rate is 0 percent (0/5)
Exec$ ping dora.bk.tsukuba.ac.jp
 Type escape sequence to abort.
 Sending 5, 100-byte ICMP Echos to 10.225.225.2, timeout is 2 seconds:
 .....
 Success rate is 0 percent (0/5)
Config$ ip dns server
 コマンドは正常に完了しました。

一応、dora や dora.bk.tsukuba.ac.jp を 10.225.225.2 に変換してくれているみたい。

これだけで良いのだろうか???

外から引けるかどうかはよくわからない。

どのインターフェース向けに dns を提供するとか、指定できないと困るのだけれど。

とりあえず保存

LANG:console
Exec$ copy running-config startup-config
Exec$ copy startup-config usbflash0:config-history9

実際に動かしてみる

既存のルータと取り替えてみます

  • できたこと
  • できないこと
    • 外へ出られない
    • 外からサーバーに繋がらない

肝心なルータ機能 (NAT, static NAT) が働いてない orz

Firewall を off にして設定し直してみたけでやはりだめ。

NAT は GUI 一発で設定しているはずなので動かないのは納得いかないところ。

しかたがないのでもう一度始めから

さらに一歩一歩、慎重に進めてみる。

LANG:console
Exec$ copy usbflash0:factory-config startup-config
Exec$ reload

で初期状態に戻して、cisco/cisco の入力から管理者アカウントを設定。

http://www.cisco.com/c/en/us/td/docs/net_mgmt/cisco_configuration_professional_express/v3_1/guides/featureguide/ccp_express_Feature_Guide.html#pgfId-392941

の通りに1つ1つやってみようと思うのだけれど、 スクリーンキャプチャの解像度が荒すぎて、 画面内容が読めないという悲惨なマニュアルであることにやる気を削がれる。。。

で、事細かに読んでみても上での設定に間違っているところはなさそう。

でも最後に Submit ボタンを押した後に Congratulation の画面や WAN チェックの画面が出ない。CCP Express 画面の ? ボタンから飛んだ v3.1 のヘルプなのに・・・本当はバージョンが違う? 上でも書いたように CCP Express のバージョンの確認方法が ヘルプを見る以外にわからないので、これでバージョンが違うなら詰んでる。 ヘルプ内容が異なるバージョンに関する内容を含んでるならユーザーを馬鹿にしてる。
→ これ、Congratulation の画面は5秒しか出ないので、 時間のかかる設定に耐えられずによそ見をしていると気づかずに次へ進んでしまうようでした。

この時点で WAN 側ポートにケーブルを挿して GigabitEthernet0/4 が

[トラブルシューティング] から
  • 送信元 130.158.130.211
  • 宛先 8.8.8.8

で Ping を送っても、

LANG:console
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds:
Packet sent with a source address of 130.158.130.211 
.....
Success rate is 0 percent (0/5)

のエラーになる。

マジですか。こっから躓いてるの???

当然、これまで使っていたルータに挿し直して自分のPCから ping 8.8.8.8 すれば、

LANG:console
C:\Windows\System32>ping 8.8.8.8

8.8.8.8 に ping を送信しています 32 バイトのデータ:
8.8.8.8 からの応答: バイト数 =32 時間 =5ms TTL=56
8.8.8.8 からの応答: バイト数 =32 時間 =4ms TTL=56
8.8.8.8 からの応答: バイト数 =32 時間 =5ms TTL=56
8.8.8.8 からの応答: バイト数 =32 時間 =4ms TTL=56

8.8.8.8 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 4ms、最大 = 5ms、平均 = 4ms

C:\Windows\System32>

信じられない。。。

→ config-after-quecksetup-wo-firewall として保存

しかたがないのでもう一度始めから

さらに一歩一歩、慎重に進めてみる。

LANG:console
Exec$ copy usbflash0:factory-config startup-config
Exec$ reload

で初期状態に戻して、cisco/cisco の入力から管理者アカウントを設定。

→ history1 として保存

今度はこちらを見ながら
http://www.cisco.com/c/en/us/td/docs/net_mgmt/cisco_configuration_professional_express/v3_1/guides/featureguide/ccp_express_Feature_Guide.html#pgfId-402212

[高度な設定] から [インターフェイスと接続] を選び、GigabitEthernet0/4 の [編集]

  • [プライマリセカンダリインターフェイス] で [プライマリ WAN] を選択
  • セキュリティの機能を使うために [WAN ゾーンへ移動] をチェックできるが、ここではしない
    • 「このインターフェイスは、WANゾーンに追加されます。適切なファイアウォールポリシーが設定されていることを確認して下さい。CWSとIPSが設定されていれば、インターフェイスに適用されます。続行しますか?」とメッセージが出るので、[WAN ゾーンへ移動] してしまうとファイアーウォールを設定しない限りいろいろ繋がらなくなるということだと思う
  • [接続] に [PPPoE を有効にする] があるが、静的なグローバル IP アドレスがある場合にはこれは必要ないはず。
  • IPv4アドレス
    • タイプ 静的IPアドレス
    • アドレス 130.158.130.211
    • ネットマスク 255.255.255.0
    • NAT の有効化 [*]

これで OK

→ history2 として保存

[トラブルシューティング] から、

  • 130.158.130.211 から 8.8.8.8 へ ping を試す
    → Success rate is 0 percent.
  • GigabitEthernet0/4 から 8.8.8.8 へ ping を試す
    → Success rate is 0 percent.
  • 130.158.130.211 から 8.8.8.8 へ traceroute を試す
    → ものすごく長く待たされたあげく、1から30まですべて * * * * が返された

全然だめだ。

どうやらルーティングテーブルが設定されていないせいみたい

http://www.cisco.com/cisco/web/support/JP/docs/SN/MDS9000MultilayerDirectorsFabricSWT/MDS9000NX-OSSAN-OSSW/CG/004/8222_08_45.html?bid=0900e4b182529621#62765 このあたりを見ていて何やらひらめいた。

静的ルーティングで

  • プレフィックス 0.0.0.0
  • プレフィックスマスク 0.0.0.0
  • IP 130.158.130.254

というデフォルトルートを用意したところ、ping が通るようになった。

#ひらめきが重要?! ← たぶんちゃんと読めばマニュアルに書いてあったんだと思う orz
← いやいやいやいや、全然まともには書かれてない気がしてきました。。。

もう一度始めから

https://supportforums.cisco.com/ja/document/12603681

の customer-config.txt を USB メモリ に factory-config という名前で保存して、

recovery.png

背面の USB ポートへ挿した状態から、

LANG:console
Exec$ copy usbflash0:factory-config startup-config
Exec$ reload

で工場出荷時の状態に戻る。

クイックセットアップ

  • 基本設定
    • ルータ名 g225
    • ドメインネーム bk.tsukuba.ac.jp
    • タイムゾーン (GMT+9) Osaka, Sapporo, Tokyo
  • WANの設定
    • WAN 接続タイプ Ethernet
    • インターフェイス GigabitEthernet0/4
    • DNS
      • [ ] ISP から直接DNSサーバ情報を取得する
      • プライマリDNS 130.158.68.21
      • セカンダリDNS 8.8.8.8
    • IPV4
      • [ ] ISPから自動的に取得する
      • IPアドレス 130.158.130.211
      • サブネットマスク 255.255.255.0
      • [*] NATを有効にする
    • IPV6
      • [ ] IPv6 を有効にする
    • [ ] PPPoE を有効化
  • バックアップWAN
    • [ ] バックアップWANを有効化
  • LAN設定
    • (設定可能項目なし)
  • セキュリティの設定
    • [ ] ファイアウォール機能を有効化

[CLIプレビュー]

hostname g225
ip domain name bk.tsukuba.ac.jp
clock timezone GMT 9

ip name-server 130.158.68.21 8.8.8.8
ip domain lookup
ip dhcp pool ccp-pool
dns-server  130.158.68.21  8.8.8.8

interface Vlan1
ip nat inside
exit

object-group network local_lan_subnets
10.10.10.0 255.255.255.128

ip access-list extended nat-list
permit ip object-group local_lan_subnets any
deny ip any any

interface GigabitEthernet0/4
no shutdown
description PrimaryWANDesc_
ip address 130.158.130.211 255.255.255.0
ip nat outside
exit

access-list 23 permit 10.10.10.0 0.0.0.127
ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/4
ip nat inside source list nat-list interface GigabitEthernet0/4 overload

で [設定]

デフォルトルートの編集

このままだと WAN 側へ出られないので、 デフォルトルートを設定する必要がある。

[静的ルーティング] で

ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/4

ip route 0.0.0.0 0.0.0.0 130.158.130.254

に書き換えます。このアドレスは WAN 側のグローバル IP です。

default-routing.png

これで ping が通るようになりました。

successful-ping.png

DHCP の設定

cpp-pool という既存の DHCP プールは設定用に必要となるため、 別に新しく DHCP の設定を作って使います。

DHCP の [追加] から、

  • プール名 g225-pool
  • プールネットワーク 10.225.225.0
  • サブネットマスク 255.255.255.0
  • デフォルトルート 10.225.225.1
  • この DHCP プールにある DNS 値を含める [*]
  • DHCP サーバデータベースに全ての DHCP オプションをインポートする [*]

インターフェイスの設定

上記 dhcp をどのインターフェースで働かせるかを決める手順。

dhcp を使う VLAN を作り、そこに物理ポートを割り当てる。

[VLAN の追加] から

  • VLAN
    • VLAN ID 2
    • ポートの関連づけ GigaEthernet0/1-3
  • IPv4 アドレス
    • タイプ 静的 IP アドレス
    • 静的IPアドレス 10.225.225.1
    • サブネットマスク 255.255.255.0
    • NATの有効化 [*]
  • IPv6 アドレス
    • タイプ IP アドレスなし

dhcp 除外範囲を設定

いくつかの機器に固定 IP を割り当てるため、 自動割り当てから除外する番号を指定する。

LANG:console
Configure$ ip dhcp excluded-address 10.225.225.1 10.225.225.31

IP アドレスの固定

MAC アドレス 00:1f:d0:a5:cf:98 の機器に 10.225.225.2 を割り当てる設定。

LANG:console
Configure$ ip dhcp pool g225-dora
Configure> host 10.225.225.2
Configure> client-identifier 0100.1fd0.a5cf.98

ポートフォワードの設定

外部から内部サーバーへアクセスできるように、 外から特定ポートへのアクセスを内部サーバー 10.225.225.2 へ転送する。

LANG: console
Configure$ ip nat inside source static tcp 10.225.225.2  22 130.158.130.211  22 extendable
Configure> ip nat inside source static tcp 10.225.225.2  25 130.158.130.211  25 extendable
Configure> ip nat inside source static tcp 10.225.225.2  80 130.158.130.211  80 extendable
Configure> ip nat inside source static tcp 10.225.225.2 110 130.158.130.211 110 extendable
Configure> ip nat inside source static tcp 10.225.225.2 143 130.158.130.211 143 extendable
Configure> ip nat inside source static tcp 10.225.225.2 443 130.158.130.211 443 extendable
Configure> ip nat inside source static tcp 10.225.225.2 465 130.158.130.211 465 extendable
Configure> ip nat inside source static tcp 10.225.225.2 587 130.158.130.211 587 extendable
Configure> ip nat inside source static tcp 10.225.225.2 993 130.158.130.211 993 extendable
Configure> ip nat inside source static tcp 10.225.225.2 995 130.158.130.211 995 extendable

保存

ここで一旦保存した。

LANG:console
Exec$ copy running-config startup-config
Exec$ copy startup-config usbflash0:config-wo-dns

ここまでで、10.225.225.? の IP アドレスの配給を受けることと、 そこから NAT で外に行くこと、サーバーに固定 IP を割り当てることが できるようになりました。

DNS の設定

LAN 内にあるサーバーへ LAN 内の機器からアクセスするには、 サーバーのグローバル IP ではなくローカル IP へ繋ぎに行かなければならないので、 内部向けに特別な DNS サーバーを立てて、サーバーの名前を引いたときに ローカル IP を返すように設定する。

LANG:console
Config$ ip host dora.bk.tsukuba.ac.jp 10.225.225.2
Config$ ip host dora.ims.tsukuba.ac.jp 10.225.225.2
Config$ ip dns server

としたところ、

LANG:console
C:\> nslookup dora.bk.tsukuba.ac.jp 10.225.225.1
 サーバー:  UnKnown
 Address:  10.225.225.1
 
 権限のない回答:
 名前:    dora.bk.tsukuba.ac.jp
 Address:  10.225.225.2
C:\> nslookup www.tsukuba.ac.jp 10.225.225.1
 サーバー:  UnKnown
 Address:  10.225.225.1
 
 名前:    www.tsukuba.ac.jp
 Address:  130.158.69.233

のように名前を引けることを確認できた。

[DHCP] の設定で [g225-pool] の [編集] から、 プライマリ DNS を 10.225.225.1 に変更したところ、 正しく 10.225.225.1 から名前を引けるようになった。

これでようやく設定完了。

保存

設定を保存した。

LANG:console
Exec$ copy running-config startup-config
Exec$ copy startup-config usbflash0:config-w-dns

設定画面に繋がるようにする

10.225.225.1 へのアクセスで設定画面に繋がるようにするには、

LANG:console
Config$ access-list 23 permit 10.225.225.0 0.0.0.255

でいいようです。

実は内側から 130.158.130.211 へのアクセスでも設定画面が出るみたいです。

IP アドレス固定設定の追加

ネットワークプリンタを繋いだら 10.225.225.40 が割り当てられた。

これを 10.225.225.30 に固定したい。

LANG:console
Exec$ clear ip dhcp binding 10.225.225.40
Config$ ip dhcp pool g225-printer
Config> host 10.225.225.30
Config> client-identifier 01FC.15B4.3486.C7
Exec$ copy running-config startup-config

clear ip dhcp binding で一旦、現在の割り当てをクリアしないと

LANG:console
  % A binding for this client already exists.

というエラーが出る。

しかもこのとき、

LANG:console
Config$ ip dhcp pool g225-printer
Config> host 10.225.225.30

までが中途半端に成功して、設定にゴミが残ってしまうという cisco クオリティ

そのおかげで、もう一度同じコマンドを繰り返すと今度は

LANG:console
  % A binding already exists for 10.225.225.30.

となって、2行目でエラーが出る。

こうなってしまった場合には、

LANG:console
Config$ no ip dhcp pool g225-printer

のようにして、一旦設定を消す必要があります。。。

そして当然、

LANG:console
Exec$ copy running-config startup-config

を忘れると、「ず~っと動いてたのに、停電後に動かなくなった」とかなるわけですorz

しかしこれ

わざと情報を小出しにしてるんじゃなきゃ、よっぽどダメダメですよ。

わざとわかりにくくしてサポートで稼ごうとか、そういう仕組みを疑ってしまうほどの 情報の細切れさだと思います。

間違ってもこれを人には勧められない。。。


Counter: 83223 (from 2010/06/03), today: 4, yesterday: 0