Telnetのトラブル 解答と解説 【CCNP/CCIEレベル】

解答

  • R1にTelnetできない理由は何ですか。

CoPPでTelnetパケットがドロップされている。また、VTYラインでTelnetが無効化されている。さらに、AAA認証が有効になっているが、有効なメソッドリストが定義されていない状態で、認証できない

  • R1にTelnetできるようにするためには、どのように設定を修正すればよいですか。

R1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
policy-map Telnet
class Telnet
police 8000 conform-action transmit
!
line vty 0 4
transport input telnet
!
aaa authentication login default line
!
line vty 0 4
password cisco
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ワンポイント

  • CoPPによってコントロールプレーンで処理するパケットを制御できる
  • VTYライン上でtransport inputコマンドによって、VTYラインで利用するプロトコルを指定できる
  • AAAを有効にすると、VTYアクセスに対して自動的にdefaultの認証メソッドリストが適用される

解説

通常のIP通信はできるますが、Telnetができないというトラブルです。今回の問題では、次の3点について設定ミスがあります。

  • CoPP
  • VTYラインのプロトコル
  • AAA認証

【CoPP】

CoPP(Control Plane Policing)によって、ルータのコントロールプレーンで処理するパケットを制御することができます。CoPPは、DoS攻撃の対策として利用することができます。ルータあての不正なICMPパケットをポリシングして、DoS攻撃の影響を限定することができます。R1では、Telnetパケットを制御するためのCoPPの設定が行われています。CoPPの設定を確認するために、show plolicy-map control-palneコマンドを利用します。また、関連してshow policy-map、
show class-map、show access-listを確認すると、以下のような出力になります。

R1 show policy-map control-plane/show policy-map/show class-map/show access-list

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R1#show policy-map control-plane
Control Plane
Service-policy input: Telnet
Class-map: Telnet (match-all)
0 packets, 0 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: access-group 100
police:
cir 8000 bps, bc 1500 bytes
conformed 0 packets, 0 bytes; actions:
drop
exceeded 0 packets, 0 bytes; actions:
drop
conformed 0 bps, exceed 0 bps
Class-map: class-default (match-any)
267 packets, 30071 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any
5 minute offered rate 0 bps, drop rate 0 bps
Match: any
R1#show policy-map
Policy Map Telnet
Class Telnet
police cir 8000 bc 1500
conform-action drop
exceed-action drop
R1#show class-map
Class Map match-all Telnet (id 1)
Match access-group  100
Class Map match-any class-default (id 0)
Match any
R1#show access-lists
Extended IP access list 100
10 permit tcp any any eq telnet
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

コントロールプレーンでTelnetパケットを8000pps(packet per second)に制限しようとしていますが、conform-action を drop にしています。これでは、すべてのTelnetパケットが drop されてしまいコントロールプレーンでTelnetパケットを処理することができません。これを解消するために、CoPPで適用しているポリシーマップ「Telnet」を以下のように変更します。

R1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
policy-map Telnet
class Telnet
police 8000 conform-action transmit
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【VTYラインのプロトコル】

CoPPの設定を修正したあと、R2からR1へTelnetすると、次のようなログになります。

R2 R1へTelnet

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R2#telnet 192.168.0.1
Trying 192.168.0.1 ...
% Connection refused by remote host
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

CoPPでTelnetパケットがdropされているときには、単純にタイムアウトしていました。CoPPの設定を修正すると、「% Connection refused by remote host」となり、R1でTelnetアクセスを拒絶していることがわかります。そこで、R1でline vtyの設定を確認すると、次のようになっています。

R1 show running-config | section line vty

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R1#show running-config | section line vty
line vty 0 4
transport input none
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

VTYラインにtransport input noneが設定されているため、VTYアクセスがすべて無効化されています。Telnetアクセスを受け入れるためには、次のように設定を修正します。

R1 VTYラインでTelnetを有効化

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
line vty 0 4
transport input telnet
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【AAA認証】

VTYラインでTelnetを有効化したあと、再びR2からR1へTelnetします。

R2 R1へTelnet

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R2#telnet 192.168.0.1
Trying 192.168.0.1 ... Open
User Access Verification
Username:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

すると、R2からR1へTelnetできていますが、認証が求められています。そこで、あらためてR1の設定を確認します。

R1 認証の設定確認

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R1#show running-config | include aaa
aaa new-model
aaa session-id common
line vty 0 4
transport input telnet
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R1では、AAAが有効化されています。VTYラインには特に認証メソッドリストが適用されていません。つまり、defaultの認証メソッドリストが有効です。ところがdefaultの認証メソッドリストが定義されていないため、Telnetアクセスの認証を行うことができません。VTYラインでのAAA認証ができるように設定しなければいけません。今回はdefaultの認証メソッドリストを定義します。認証メソッドはVTYラインのパスワードを利用するものとして、VTYラインパスワード「cisco」を設定します。

R1 VTYラインのAAA認証の設定

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
aaa authentication login default line
!
line vty 0 4
password cisco
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

そして、R2からR1へのTelnetを確認すると、次のようになります。

R2 R1へTelnet

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R2#telnet 192.168.0.1
Trying 192.168.0.1 ... Open
User Access Verification
Password:
R1>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【設定ミスのまとめ】

R1にTelnetができなかった設定ミスをまとめたものが次の図です。

telnet_trouble02.jpg
図 Telnetのトラブル 設定ミスのまとめ