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ができなかった設定ミスをまとめたものが次の図です。