パケットマーキングのトラブル 解答と解説

解答

  • なぜホスト1からTOS128を指定したパケットがホスト3までルーティングされないのですか。

R2でホスト1からのパケットが正しく再マーキングされずに、ドロップされているから

  • ホスト1からホスト3へ正常に通信できるようにするためには、どのように設定を修正すればよいですか。

R1

――――――――――――――――――――――――――――――――――
policy-map CRITICAL
class SILVER
police 8000 conform-action set-prec-transmit 5 exceed-action drop
!
no access-list 1
access-list 1 permit 10.1.1.1
――――――――――――――――――――――――――――――――――

ワンポイント

  • MQC、PBR、CARなどによってパケットに再マーキングできる
  • show plicy-map interfaceコマンドでMQCで行うQoS制御を確認できる

解説

パケットをグループ化して、QoS制御を行うためにIP PrecedenceやDSCPを利用してマーキングします。パケットに行ったマーキングの値は、以下のような方法で書き換えることができます。

  • ルートマップによるPBR
  • MQC
  • CAR

今回の問題はMQCによるパケットの再マーキングの設定ミスです。
ホスト1からホスト3までToS=128を指定したパケットを送信した場合のR2でのshow policy-map interfaceを確認します。

R2

――――――――――――――――――――――――――――――――――
R2#show policy-map interface
Ethernet0/0
Service-policy input: CRITICAL
Class-map: SILVER (match-all)
0 packets, 0 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: access-group 1
Match:  precedence 4
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)
313 packets, 29594 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any
――――――――――――――――――――――――――――――――――

R2ではポリシーマップ「CRITICAL」がE0/0に適用されています。クラス「SILVER」がありますが、そのクラスにはマッチせずに「class-default」に分類され、再マーキングされずにそのまま転送されていることがわかります。正しくパケットの分類が行われていないので、クラス「SILVER」を定義しているクラスマップにミスがあると考えられます。クラスマップを確認すると、次のようにな
っています。

R2

――――――――――――――――――――――――――――――――――
R2#show access-list
Standard IP access list 1
10 permit 10.1.1.10
R2#show class-map
Class Map match-all SILVER (id 1)
Match access-group  1
Match   precedence 4
Class Map match-any class-default (id 0)
Match any
――――――――――――――――――――――――――――――――――

クラスマップ「SILVER」は、送信元IPアドレス10.1.1.10でIP Precedence=4のパケットを分類していることがわかります。ホスト1のIPアドレスは10.1.1.1なので、クラスマップに関連付けているアクセスリスト1の設定が間違っています。次のようにR2でアクセスリストを正しく設定しなおします。

R2

――――――――――――――――――――――――――――――――――
no access-list 1
access-list 1 permit 10.1.1.1
――――――――――――――――――――――――――――――――――

その後、再びホスト1からホスト3までToS=128を指定してパケットを送信します。

R1

――――――――――――――――――――――――――――――――――
R1#ping
Protocol [ip]:
Target IP address: 10.3.3.3
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 10.1.1.1
Type of service [0]: 128
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 10.1.1.1
.....
Success rate is 0 percent (0/5)
――――――――――――――――――――――――――――――――――

やはり、まだ通信することができていません。原因を調べるために、再度R2でポリシーマップを確認します。

R2

――――――――――――――――――――――――――――――――――
R2#show policy-map interface
Ethernet0/0
Service-policy input: CRITICAL
Class-map: SILVER (match-all)
20 packets, 2280 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: access-group 1
Match:  precedence 4
police:
cir 8000 bps, bc 1500 bytes
conformed 20 packets, 2280 bytes; actions:
drop
exceeded 0 packets, 0 bytes; actions:
drop
conformed 0 bps, exceed 0 bps
Class-map: class-default (match-any)
760 packets, 71524 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any
――――――――――――――――――――――――――――――――――

クラス「SILVER」のパケット数が増加しているので、パケットの分類は正しくできています。しかし、conform-actionがdropの指定なのでパケットがドロップされてしまっています。クラス「SILVER」に対するポリシングの設定でconform-actionをPrecedence=5に再マーキングして転送するようにしなければいけません。

R2

――――――――――――――――――――――――――――――――――
policy-map CRITICAL
class SILVER
police 8000 conform-action set-prec-transmit 5 exceed-action drop
――――――――――――――――――――――――――――――――――

ポリシーマップ「CRITICAL」内のクラス「SILVER」のポリシングの設定を修正したあと、再びホスト1からホスト3までToS=128を指定してパケットを送信します。

R1

――――――――――――――――――――――――――――――――――
R1#ping
Protocol [ip]:
Target IP address: 10.3.3.3
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 10.1.1.1
Type of service [0]: 128
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 10.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/29/76 ms
――――――――――――――――――――――――――――――――――

正しくパケットの再マーキングができたので、Pingが成功したことがわかりま
す。

次の図は、今回の設定ミスの内容をまとめたものです。

marking02.jpg
図 パケットマーキングのトラブル 設定ミスのまとめ