1行目: |
1行目: |
| + | タイトルは Catalyst3850 ですが、同じ系統の ASIC であるため Catalyst9000 でもほぼ同じ内容が通用します。 |
| + | |
| + | UADP 3.0 から変更がある機能もあるため、全く同じでは無いです。 |
| | | |
| == 目的 == | | == 目的 == |
44行目: |
47行目: |
| | | |
| == サンプル要件 == | | == サンプル要件 == |
− | QoS で差別化するトラフィックを、以下の通り定義します。 | + | QoS を正確に設計・検証・設定するには、設定対象のネットワークの使用状況を元にした要件定義が必要です。 |
| + | |
| + | ここでは QoS で差別化するトラフィックを、以下の通り定義します。 |
| | | |
| === 通常ユーザ : NET === | | === 通常ユーザ : NET === |
51行目: |
56行目: |
| * 優先度は最低とする | | * 優先度は最低とする |
| * バッファリングを行い、TCP 再送が起きにくくする | | * バッファリングを行い、TCP 再送が起きにくくする |
| + | * IP セグメントは 10.0.0.0/8 を持つ |
| | | |
| === 管理トラフィック : MGMT === | | === 管理トラフィック : MGMT === |
| | | |
− | * ルーティング プロトコルやプロビジョニング用プロトコルの DHCP や ARP を優先する | + | * ルーティング プロトコルや、プロビジョニング用プロトコルの DHCP と ARP を優先する |
| * Internetwork Control として、NET よりも優先して転送させる | | * Internetwork Control として、NET よりも優先して転送させる |
| * NET でパケットが埋まっていても、優先して処理されること | | * NET でパケットが埋まっていても、優先して処理されること |
62行目: |
68行目: |
| * 音声を 200ms 以内の遅延で転送するため、絶対優先させる | | * 音声を 200ms 以内の遅延で転送するため、絶対優先させる |
| * 他の ToS / DSCP で帯域幅が埋まっていても、パケットドロップが起きないこと | | * 他の ToS / DSCP で帯域幅が埋まっていても、パケットドロップが起きないこと |
| + | * IP セグメントは 192.168.0.0/16 を持つ |
| | | |
| === その他 : class-default === | | === その他 : class-default === |
79行目: |
86行目: |
| ! | | ! |
| ip access-list extended ACL_MGMT | | ip access-list extended ACL_MGMT |
− | permit ip 172.16.0.0 0.15.255.255 any | + | 10 permit udp any eq bootpc any |
| + | 20 permit udp any eq bootps any |
| + | 30 permit udp any any eq bootpc |
| + | 40 permit udp any any eq bootps |
| + | 50 permit ospf any any |
| + | ! |
| + | mac access-list extended ACL_L2MGMT |
| + | permit any any 0x806 0x0 |
| ! | | ! |
| ip access-list extended ACL_VoIP | | ip access-list extended ACL_VoIP |
− | permit ip 192.16.0.0 0.0.255.255 any | + | permit ip 192.168.0.0 0.0.255.255 any |
| ! | | ! |
− | class-map CMAP_NET_MARKING | + | class-map match-any CMAP_NET_MARKING |
| match access-group name ACL_NET | | match access-group name ACL_NET |
| ! | | ! |
− | class-map CMAP_MGMT_MARKING | + | class-map match-any CMAP_MGMT_MARKING |
| match access-group name ACL_MGMT | | match access-group name ACL_MGMT |
| + | match access-group name ACL_L2MGMT |
| ! | | ! |
− | class-map CMAP_VoIP_MARKING | + | class-map match-any CMAP_VoIP_MARKING |
| match access-group name ACL_VoIP | | match access-group name ACL_VoIP |
| ! | | ! |
106行目: |
121行目: |
| end | | end |
| </syntaxhighlight> | | </syntaxhighlight> |
| + | |
| + | ==== ARP ==== |
| + | ARP は L2 フレームで IP ヘッダが存在しないため、MAC ACL で定義する必要があります。 |
| + | |
| + | ==== OSPF ==== |
| + | Cisco IOS ではデフォルトで OSPF に ToS がついているため、上記のようにあえてマーキングする必要はありません。 |
| | | |
| == トラフィック生成 == | | == トラフィック生成 == |
| | | |
| + | 色々な機器やアプリケーションが存在しますが、おすすめは以下です。 |
| + | |
| + | === トラフィックジェネレータ === |
| + | |
| + | ==== IXIA ==== |
| + | |
| + | * IxNetwork だと尚良し、4 ポートはほしい |
| + | ** 例) DSCP=0 でワイヤレートを双方向印加中に、DSCP=46 で PQ に双方向印加した時、DSCP=46 でドロップ無し・DSCP=0 でドロップが発生するか |
| + | |
| + | ==== Ciscoi Trex ==== |
| + | |
| + | * 負荷を印加する分には困らない |
| + | * 安定性やショートパケット時の送信間隔の精度などはいまいち |
| + | |
| + | ==== iperf ==== |
| + | |
| + | * PC が 2 台あればとりあえず動かせる気軽さが良き |
| + | |
| + | === ping 系 === |
| + | |
| + | ==== Cisco IOS / IOS-XE ==== |
| + | |
| + | * ping でもそれなりの pps が出る |
| + | * ToS を指定して連続実施できるのはレア |
| | | |
| == TIPS == | | == TIPS == |
121行目: |
166行目: |
| end | | end |
| </syntaxhighlight> | | </syntaxhighlight> |
| + | |
| + | === オーバーサブ (帯域超過) させるには === |
| + | LAG のメンバーを 2 -> 1 にするなど、帯域幅を減らしてトラフィックを印加しましょう。 |
| + | |
| + | === ラクなマーキング方法ってある ? === |
| + | ACL よりも Vlan で match させるとラクな場合が多いです。 |
| + | |
| + | * IP アドレスを変更しても QoS 用 ACL のメンテナンスが必要ない |
| + | * Catalyst3850 から対応、3750 / 4500 / 6500 系は対応しません |
| + | |
| + | 拠点ごとに Vlan が共通化されている場合は、特に効果が高いです。 |
| + | |
| + | dot1q タグが付いていないフレームでも、マーキングの対象になります。 |
| + | |
| + | * access ポートでも設定した Vlan に match できる |
| + | |
| + | === 絶対優先キューはポリシングとセットで設定する === |
| + | PQ は絶対優先されるため、L2 ループでトラフィックが溢れる、意図せず大量にパケットが流れる、といった事象が発生するとネットワークが完全に停止してしまいます。 |
| + | |
| + | 使用する VoIP プロトコルの 1 ユーザあたりの帯域幅 x ユーザ数などからサイジングして、適切な帯域幅でポリシングを設定するのを推奨します。 |
| | | |
| == ハマりポイント == | | == ハマりポイント == |
| | | |
| === QoS を設定したら、ToS=0 のパケットドロップが多くなったんだけど ? === | | === QoS を設定したら、ToS=0 のパケットドロップが多くなったんだけど ? === |
| + | 正常な動作です。QoS そのものはパケット ドロップを減らす機能ではありません。 |
| + | * ToS=0 のパケットは、重みが低いため他の ToS を持つパケットの犠牲になります |
| + | * キューの数が 2 -> 8 つに増えるため、キューあたりのパケットバッファも割当量が減少します |
| + | |
| + | === Catalyst3850 に ToS=5 のトラフィックを転送しても、絶対優先されないぞ ? 3750 の頃はできたのに・・・ === |
| + | 正常な動作です。 |
| + | * Catalyst3850 以降は DSCP ベースで動作するため、DSCP=46(EF) が絶対優先されます。 |
| + | ** EF = Expedited Forwarding |
| | | |
− | * 正常な動作です。ToS=0 のパケットは他の ToS を持つパケットの犠牲になります。
| + | === Windows の ping で ToS を指定しても反映されないんだけど・・・ === |
| + | 仕様です。 |
| | | |
− | === Catalyst3850 に ToS=5 のトラフィックを転送しても、絶対優先されないぞ ? ===
| + | * Cisco IOS は指定できるので、ルータかスイッチを用意して ToS 指定 ping を打つのがおすすめです ただし hex で指定する必要があります |
| | | |
− | * 正常な動作です。Catalyst3850 以降は DSCP ベースで動作するため、DSCP=46(EF) が絶対優先されます。
| + | ==== Windows ping ==== |
− | * EF = Expedited Forwarding
| + | <syntaxhighlight lang="diff"> |
| + | C:\Windows\System32>ping /? |
| + | <snip> |
| + | Options: |
| + | -v TOS Type Of Service (IPv4-only. This setting has been deprecated |
| + | and has no effect on the type of service field in the IP |
| + | Header). |
| + | </syntaxhighlight> |
| + | |
| + | ==== Cisco IOS ping ==== |
| + | <syntaxhighlight lang="diff"> |
| + | ping 1.1.1.1 tos ? |
| + | <1-255> Type of |
| + | </syntaxhighlight> |
| | | |
| == 参考 URL == | | == 参考 URL == |
139行目: |
226行目: |
| | | |
| [https://www.cisco.com/c/ja_jp/support/docs/switches/catalyst-3850-series-switches/118629-technote-qos-00.html QoSの3750 MLSから3850 MQCへの変換の設定] | | [https://www.cisco.com/c/ja_jp/support/docs/switches/catalyst-3850-series-switches/118629-technote-qos-00.html QoSの3750 MLSから3850 MQCへの変換の設定] |
| + | [[カテゴリ:Catalyst]] |