パケットマーキングのトラブル 解答と解説
目次
解答
- なぜホスト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が成功したことがわかりま
す。
次の図は、今回の設定ミスの内容をまとめたものです。