2011年12月4日日曜日

IPv6 2.IPv6ルーティングプロトコル


IPv6②

・ EUI-64について

EUI-64とは、
MACアドレスを利用して、デバイスに一意に識別するインターフェースIDを自動生成する機能の事。


例> ネットワークアドレス 2000::/64   PCのMACアドレス 00:17:42:09:B9:38 

1.PCのMACアドレスを先頭24ビット(ベンダーID)と後半24ビット(シリアル番号)に分ける。

ベンダーID : 00:17:42
シリアルID : 09:B9:38

2.ベンダーIDの先頭7ビット目をビット変換する。

ベンダーID : 00:17:42 → 02:17:42

3.ベンダーIDとシリアルIDの間に 「 FF:FE 」を追加する。

00:17:42 + FF:FE + 09:B9:38
インターフェースID : 00:17:42:FF:FE:09:B9:38

4.ネットワークアドレスを追加する。

EUI-64のIPv6アドレス体系 : 2000::00:17:42:FF:FE:09:B9:38/64




・ IPv6ルーティングプロトコル

IPv6のルーティングプロトコルは、IPv4のルーティングプロトコルを基に設計されています。
例えば、RIPは、RIPngにOSPFはOSPFv3になります。

・ RIPng(RIP next generation)

RIPngでは、IPv4のRIPv2の機能を基に作られております。

■ 特徴
・ディスタンスベクター型ルーティングプロトコル
・メトリックは、ホップ数。最大値は15。
・スプリットホライズンやポリズンリバースによるループ回避
・30秒ごとにマルチキャストアドレスを使用して、情報(ネクストホップ、リンクローカルアドレスなど)をアドバタイズする。(FF02::9) 


■ 基本設定

①ルーティングプロセスを有効にする。

Router(config)# ipv6 unicast-routing
Router(config)# ipv6 router rip { 識別子 }



②インターフェースでRIPngを有効にする。


Router(config)# interface fastethernet 0/0
Router(config-if)# ipv6 enable
Router(config-if)# ipv6 rip { 識別子 } enable



③IPv6アドレスの設定


Router(config-if)# ipv6 address { IPv6アドレス } 



・ OSPFv3

RIPngでは、IPv4のOSPFv2の機能を基に作られて居るためOSPFv2と特徴がたいだい同じです。

■ 特徴
・OSPFv2の基本的な特徴
・手動でルータIDを設定する。
・ネクストホップアドレスが、リンクローカルドレスになる。


■ 基本設定

①ルーティングプロセスを有効にする。

Router(config)# ipv6 unicast-routing
Router(config)# ipv6 router ospf { プロセス番号 }
Router(config-rtr)# router-id { ルータID(32ビット) }


②インターフェースでOSPFv3を有効にする。

Router(config)# interface fastethernet 0/0
Router(config-if)# ipv6 enable
Router(config-if)# ipv6 ospf { プロセス番号 } area { エリア番号 }


③IPv6アドレスの設定

Router(config-if)# ipv6 address { IPv6アドレス } 



2011年12月2日金曜日

IPv6 1.IPv6のアドレス構成

IPv6①

・IPv6とは、


IPv4アドレスの枯渇を解決する為に開発されたIPプロトコルです。

■ 特徴
①広大なアドレス空間  
IPv6では3.4 x 1038のアドレスが使用できます。それにより,多くのデバイスにグローバルIPアドレスを割り振ることができるようになる。
  柔軟なアドレス集約や,NATなしでのエンド間接続をサポートが可能。

②シンプルなヘッダ
  ルーティングの際の効率が上がる。

③セキュリティやモバイルの対応
  モバイルIPとIpsecを使用する事が可能。

④IPv4からIPv6への変換方法を複数使用する事が可能

など!!


・IPv6アドレスの種類


① ユニキャスト
通常の1 対 1の通信に使われるアドレス。グローバルユニキャスト(グローバル集約)とリンクローカル、ユニークローカルアドレスの3つのアドレスがある。

② エニーキャスト
IPv6からの新しいアドレスタイプで,異なるインタフェースに同一のアドレスを割り振ることができる。エニーキャストあてで送信すると最も近いインタフェースが受信します。負荷分散などで使用することができる。

③ マルチキャスト
異なるインタフェースに同一のアドレスを割り振り,マルチキャストアドレスあてに送信すると,そのすべてのインタフェースが受信します。IPv4のマルチキャストと同等です。



※IPv4で存在したブロードキャストアドレスはなくなっており,マルチキャスト,またはエニーキャストがその代替として使われます。





① ユニキャスト

1.グローバルユニキャストアドレス (::/128)

IPv4のグローバルユニキャストアドレスと同等の,インターネットで一意に管理されるアドレス
IPv6のアドレス空間のうち,2000::/3(先頭3ビットが「001」)からE000::/3(先頭3ビットが「111」)までを使用します。

※FF00::/8(先頭8ビットが「1111 1111」)はマルチキャストアドレスのため除きます。::1/128はループバックアドレス


2.リンクローカルユニキャストアドレス (fe80::/10)

ローカルのリンク(ルータを超えない)に範囲(スコープ)が限定されている。そして,リンクローカルアドレスはFE80::/10を使用してIPv6インタフェースに動的に設定されます。
リンクローカルアドレスは,自動設定,ネイバの発見,ルータの発見,ルーティングプロトコルなどに利用されます。

3.ユニークローカルアドレス  (fc00::/7)

サイトローカルアドレスでは、IPv4のプライベートアドレスで問題点を解決的ない為、廃止されました。その代わりに出来てたのが、ユニークローカルアドレスです。
ユニークローカルアドレスでは、グローバルIDと呼ばれる乱数を使用する事により、IPv4プライベートアドレスおよびリンクローカルアドレスの問題点だったアドレスの重複問題を解説している。(100%一意ではない。)




② エニーキャスト

エニーキャストアドレスは特にIPv6アドレス空間の中で決められた範囲ではなく,グローバルユニキャストアドレスと同じ空間を使用する事が可能。又、ひとつのアドレスを複数のインタフェースで共有する事が可能です。
エニーキャストアドレスを送信先アドレスとして指定すると、送信元から最も近いインタフェースにパケットが送信されることになります。

※「近い」という判断は、ネットワーク上で利用しているルーティングプロトコルのメトリックによって判断されます。

③マルチキャスト (FF00::/8)

マルチキャストはIPv6の機能のいくつかの中心的役割を担い,またブロードキャストの代替として使用される。又、マルチキャストアドレスはFF00::/8のプレフィックスを持ち,2オクテット目はフラグと範囲を決定します。残りの112ビットがグループのIDとなります。

FF02::1/128 … リンク上のすべてのノード
FF02::1:ff00:0/104 … リンク上の要請ノードマルチキャストアドレス
FF02::2/128 … リンク上のすべてのルータ
FF02::9/128 … リンク上のすべてのRIPルータ
FF05::101/128 … サイト上のすべてのNTPサーバ






2011年12月1日木曜日

OSPF マルチエリア 3.主要なOSPF設定一覧


主要なOSPF設定一覧



・OSPFの基本設定


1.OSPFのメトリックは「コスト」なので、帯域幅の設定は不可欠です。

Router(config)# interface serial 0
Router(config-if)# bandwidth { 帯域幅 }


2.各ネットワークをOSPFに参加される。

Router(config)# router ospf { プロセス番号 }
Router(config)# network { ネットワークアドレス } { ワイルドマスク } area { エリア番号 }




・スタブエリアの設定

スタブエリアとは、タイプ4,5を流さないエリア。

Router(config)# router ospf { プロセス番号 }
Router(config-router)# area { エリア番号  } stub 


・トータリースタブエリアの設定

トータリースタブエリアとは、タイプ3,4,5を流さないエリア。

Router(config)# router ospf { プロセス番号 }
Router(config-router)# area { エリア番号  } stub no-summary


・NSSAエリアの設定

NSSAエリアとは、スタブエリア内にASBRが存在する事が出来るエリア。

Router(config)# router ospf { プロセス番号 }
Router(config-router)# area { エリア番号 } nssa 


・トータリーNSSAエリアの設定

トータリーNSSAエリアとは、トータリースタブエリアにASBRが存在する事が出来るエリア。

Router(config)# router ospf { プロセス番号 }
Router(config-router)# area { エリア番号 } nssa no-summary


・集約ルートの設定


Router(config)# router ospf { プロセス番号 }
Router(config-router)# area { 集約ルート先のエリア番号 } range { IPアドレス} {サブネットマスク}


・外部ルートのルート集約


Router(config)# router ospf { プロセス番号 }
Router(config-router)# summary-address { IPアドレス} {サブネットマスク}



・バーチャルリンクの設定


1.ルータIDを設定する。

Router(config)# router ospf { プロセス番号 }
Router(config-router)# router-id { IPアドレス}

2.仮想リンクを確立する。

Router(config)# router ospf { プロセス番号 }
Router(config-router)# area { 透過するエリア番号 } virtual-link { ルータID }


・helloタイマーとdeadタイマーの変更



Router(config)# interface {インターフェース名}
Router (config-if )# ip ospf hello-interval {時間}

Router (config-if )# ip ospf dead-interval {時間}

2011年11月29日火曜日

OSPF マルチエリア 2.LSAタイプとエリア



OSPF マルチエリア  




・マルチエリアの必要性


OSPFネットワークが大きくなると、


①LSAの情報が膨大になる。
②リンクステートデータベースが大きくなる。
③ネットワークの変更時、コンバージェンス(収束)に時間がかかる
④ルーティングテーブルが大きくなる。

ルータの負荷が大きくなる。

そこで、OSPFでは、ネットワークをエリアに分割して他のエリアのLSA情報のアドバタイズに制限をかける。

>>オススメ記事:LSA Type 5とは? 基礎〜LSDBの確認方法を図解解説

■ LSAのタイプ




LSAタイプ1(ルータLSA)

アジャセンシーに送られる詳細情報(ルータIDやコスト情報など)。
全ルータが全OSPFルータがルータLSAを生成する。

>>オススメ記事:LSA Type 1とは? 基礎〜LSDBの確認方法を図解解説


LSAタイプ2(ネットワークLSA)

他の接続情報(DRのアドレスなど)
DRがネットワークLSAを生成する。


LSAタイプ3(ネットワークサマリーLSA)

各エリアの情報(エリア毎の経路情報など)
ABRがネットワークサマリーLSAを生成する。

>>オススメ記事:LSA Type 3とは? 基礎〜LSDBの確認方法を図解解説

LSAタイプ4(ASBRサマリーLSA)

ASBRの情報(ルータIDやコスト情報など)
ABRがASBRサマリーLSAを生成する。

※ネットワークサマリーLSAとASBRサマリーLSAは、各エリア内にはフラッディングされるが、完全スタブエリアや完全NSSAにはフラッディングされない。

>>オススメ記事:LSA Type 4とは? 基礎〜LSDBの確認方法を図解解説

LSAタイプ5(AS外部LSA)

非OSPFドメインの情報(再配布された経路情報、コスト情報など)
ASBRがAS外部LSAを生成し、AS内にフラッディングする。

>>オススメ記事:LSA Type 5とは? 基礎〜LSDBの確認方法を図解解説

LSAタイプ7(NSSA外部LSA)

非OSPFドメインの情報(再配布された経路情報、コスト情報など)
NSSAのASBRがNSSA外部LSAを生成し、NSSA内にフラッディングする。

>>オススメ記事:LSA Type 7とは? 基礎〜LSDBの確認方法を図解解説




■ エリアタイプ


バックボーンエリア[ LSAタイプ 1,2,3,4,5 ]

複数のエリアと相互接続しているエリア。


標準エリア[ LSAタイプ 1,2,3,4,5 ] 

バックボーン以外のOSPFエリア

スタブエリア[ LSAタイプ 1,2,3 ] 

タイプ4,5を流さないエリア。

トータリースタブエリア[ LSAタイプ 1,2 ]

タイプ3,4,5を流さないエリア。


※スタブエリアとトータリースタブエリアでは、ASBRやバーチャルリンクのトランジットエリアにはなれない。


NSSAエリア[ LSAタイプ 1,2,3,7 ]

スタブエリア内にASBRが存在する事が出来るエリア。


トータリーNSSA[ LSAタイプ 1,2,7 ]

トータリースタブエリアにASBRが存在する事が出来るエリア。

※NSSAエリアとトータリーNSSAで発生したLSAタイプ7(NSSA外部エリア)が他のエリアに流れる際は、LSA5(AS外部LSA)をフラッディングする




■ バーチャルリンク


OSPFでは、全てのエリアはバックボーンエリアに属していなければなりません。
しかし、地理的や物理的に難しい時などやむを得ない時にバーチャルリンクという手法がある。
バーチャルリンクとは、ABR間で論理的に仮想リンクを確立させる手法です。
又、ABR間で仮想リンクを確立されているエリアをトランジットエリアをいいます。


2011年11月27日日曜日

OSPF マルチエリア 1.DRとBDR



マルチエリア OSPF


ネットワーク規模が大きくなると、ネットワーク障害などによる最短パスの再計算時にルータに強大な負荷がかかります。
又、OSPFでは、SPFアルゴリズムというルータに高い負荷がかかるルーティングプロトコルを使用しています。

マルチエリアのOSPFでは、ネットワークを複数のエリアに分割して、リンクステート情報(LSA)が届く範囲を分割しております。このようなエリア体系をとる事によって、ネットワーク障害などのネットワークの変更の際にLSAをエリア内にとどめる事が出来、ルータの負荷を最小限にする事が出来ます。

>>オススメ記事:OSPFのエリア分割の必要性! シングルエリアとマルチエリアを解説

・OSPFルータの種類

・内部ルータ・・・・・・・・・・・・・・・・・ルータのインターフェースすべてが他のエリアに属していないOSPFルータ。
・ABR(エリア境界ルータ)・・・・・・・他のエリアに属している異なるエリア間の境界OSPFルータ。
・ASBR(AS境界ルータ)・・・・・・・・OSPF以外のルーティングプロトコルや異なるASに属している境界OSPFルータ。

>>オススメ記事:DR・BDRの選定基準〜設定方法・障害時の動作を解説

●DRとBDR


OSPFでは、ネイバー関係を保つためにアジャセンシー(隣接関係)を確立しています。
しかし、OSPFルータが増える程アジャセンシーを確立する数が増えます。

公式 ルータの数 ×(ルータの数 -1)÷2

例>
ルータが5台の時、
5 × ( 5 -1 ) /2 = 10 -> 10個のアジャセンシーが必要

ルータが10台の時
10 × ( 10 - 1 ) /2 = 45 -> 45個のアジャセンシーが必要


このように、ルータの数が増えるほど隣接関係が増加します。

その為に、
ブロードキャストマルチアクセスや非ブロードキャストマルチアクセス(NBMA)では、DRとBDRという概念があります。

※ポイントツーポイントネットワークでは、お互いに1対1で構成されている為選出されません。



DRとは、(代表ルータ)

同じネットワーク内の全OSPFルータをアジャセンシーを確立します。
他のルータは、自ルータのLSAをDRに送ります。
DRは、ネットワークの代表として、他のネットワークのルータとLSAの交換したりします。
又、DRが障害などによりdownした場合は、BDRが替わりとなってDRを引き継ぎます。



BDRとは、(バックアップDR)

DRと同様に同じネットワーク内の全OSPFルータをアジャセンシーを確立します。
他のルータは、自ルータのLSAをDRに送ります。
DRが障害によってdownした場合、BDRが代わりとなってDRの機能を引き継ぎます。


DROTHERとは


DRとBDR以外のルータ。DROTHERはDRとBDRとアジャセンシーを確率しますが、DROTHERとDROTHER同士はアジャセンシーを確立する必要がありません。






DR、BDRの選出


DRとBDRとは、基本的に以下の順番に数字の大きい値又は、アドレスが優先されます。


①最優先するのは、Priority値による選出(デフォルトでは[1]が設定されている)

Router(config)# interface serial0/0/0
Router(config-if)# ip ospf priority { プロパティー値 }

②ルータIDが大きいルータが選出。

Router(config)# router ospf { プロセス番号 }
Router(config-ospf)# router-id { アドレス }

Router(config)# interface loopback { 番号 }
Router(config-if)# ip ospf priority { アドレス }

※手動で、router-idが設定されていない時は、ループバックのアドレスを使用します。
又、clear ip ospf process を実行しないと反映されません。

Router# clear ip ospf process

③物理インターフェースのIPアドレス




---- 確認コマンド -----

RouterA#show ip ospf neighbor

Neighbor ID   Pri     State        Dead Time   Address    Interface
2.2.2.2       0     FULL/DROTHER  00:00:36    172.16.0.10  intarface 0/0/0
3.3.3.3       2     FULL/BDR     00:00:29    172.16.0.20  intarface 0/0/0
4.4.4.4       1     FULL/DROTHER  00:00:32    172.16.0.30  intarface 0/0/0


State の代表的な種類



down   ・・・・ downしている状態。
attempt ・・・・ アジャセンシーと確立する為に、helloパケットを送信し続けている状態
init    ・・・・ 互いのルータはhelloパケットの受信に成功しているが、アジャセンシーまだ確立されていない状態
2way    ・・・・ お互いのルータがアジャセンシーを確立した状態。
full    ・・・・ お互いのルータがアジャセンシーを確立した状態。[DRとBDR選出も含めた]

>>オススメ記事:OSPFの状態遷移(Down〜Full)とパケットの種類を解説


Router#show ip ospf interface intarface 0/0/0
serial0/0/0 is up, line protocol is up
  Internet Address 172.16.0.1/24, Area 0
  Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 100
  Transmit Delay is 1 sec, State DR, Priority 100



以下省略






2011年11月25日金曜日

QOS 6.QOS設定 LLQ


■MQCによるQoSの設定(LLQ)


④LLQ(Low Latency queue)

PQとCBWFQの2つを組み合わせたキューイング方式。
絶対優先されたいパケット(VoIPなど)をPQ(FIFO)を使用して転送し、その他は、WFQを使用して転送されます。
又、PQの欠点であった優先度の高いキュー(完全優先キュー)が空にならない限り優先度の低いパケットを転送できない部分は、ポリシングを使用する事で回避しております。(完全優先キューで帯域幅の許容値を超えた場合は、ドロップされる。)



1.class-mapを使用して、トラフィッククラスを定義する。


Router(config)# class-map { クラス名 }
Router(config-cmap)# match access-group { アクセスリスト番号 } //上記のポリシーに分類するアクセスリスト


2.policy-mapを使用して、1で定義したトラフィッククラスに対してトラフィックポリシーを定義する。


Router(config)# policy-map { ポリシー名 }
Router(config-pmap)# class { クラス名 }

①完全優先キューを使用する場合はpriorityを使用する。
Router(config-pmap-c)# priority { 帯域幅(kbps) }
Router(config-pmap-c)# priority percent{ 割り当てる帯域幅の割合(%) }

②bandwidthを使用する場合
Router(config-pmap-c)# bandwidth { 帯域幅(kbps) }
Router(config-pmap-c)# bandwidth percent{ 割り当てる帯域幅の割合(%) }


3.service-policyを使用して、トラフィックポリシーを定義するインターフェースを定義する。


Router(config)# interface { インターフェース名 }
Router(config-if)# service-policy { output | input } {ポリシー名}




例>

1.class-mapを使用して、トラフィッククラスを定義する。



Router(config)# class-map rtp
Router(config-cmap)# match access-group 100
Router(config-cmap)# exit
Router(config)# class-map http
Router(config-cmap)# match access-group 110
Router(config-cmap)# exit
Router(config)# class-map com-traffic
Router(config-cmap)# match access-group 120
Router(config-cmap)# exit

※ACLでは各トラフィッククラスに分類するトラフィックを定義する
例>
Router(config)# access-list 110 permit tcp any any eq 80


2.policy-mapを使用して、1で定義したトラフィッククラスに対してトラフィックポリシーを定義する。

Router(config)# policy-map inter_net
Router(config-pmap)# class rtp
Router(config-pmap-c)# priority 100 //100kbpsを保証する
Router(config-pmap-c)#exit
Router(config-pmap)# class http
Router(config-pmap-c)# bandwidth 80
Router(config-pmap-c)#exit
Router(config-pmap)# class com-traffic
Router(config-pmap-c)# bandwidth 70
Router(config-pmap-c)#exit
Router(config-pmap)# class class-default
Router(config-pmap-c)#fair-queue 
Router(config-pmap-c)#exit



3.service-policyを使用して、トラフィックポリシーを定義するインターフェースを定義する。

Router(config)# interface serial0/0/0
Router(config-if)# service-policy input inter_net



・show run で一部内容確認

1.確認
class-map rtp
  match access-group 100
!
class-map http
  match access-group 110
!
class-map com-traffic
  match access-group 120
!

2.確認

policy-map inter_net
  class rtp
   priority 100
  class http
   bandwidth 80
  class com-traffic
   bandwidth 70
  class class-default
   fair-queue
!

3.確認

interface serial 0/0/1
  service-policy input inter_net


>>オススメ記事:CCIEが語る!ネットワークエンジニアにオススメな本・参考書!
>>オススメ記事:ITエンジニア必見!失敗しない転職エージェントの選び方はこれだ!


2011年11月23日水曜日

QOS 5.QOS設定 CBWFQ


■MQCによるQoSの設定(CBWFQ)



CBWFQ(Class-based Weighted Fair queue)

WFQに定義されたクラスというグループ(最大64個)を使用して優先制御する方式。又、CBWFQは各キューに最低保証帯域幅を指定する事が出来、それ以上の帯域幅を利用可能であれば、利用することも可能。
問題点 : WFQと同様に帯域などの保証がない。(上限に達した場合、VoIPなどの優先度が高いアプリケーションをテールドロップする可能性がある。)



1.class-mapを使用して、トラフィッククラスを定義する。


Router(config)# class-map { クラス名 }
Router(config-cmap)# match access-group { アクセスリスト番号 } //上記のポリシーに分類するアクセスリスト


2.policy-mapを使用して、1で定義したトラフィッククラスに対してトラフィックポリシーを定義する。


Router(config)# policy-map { ポリシー名 }
Router(config-pmap)# class { クラス名 }
Router(config-pmap-c)# bandwidth { 帯域幅(kbps) }
又は、
Router(config-pmap-c)# bandwidth percent{ 割り当てる帯域幅の割合(%) }
Router(config-pmap-c)# queue-limit { キューの上限 }
Router(config-pmap-c)#fair-queue [ ダイナミックキュー]


3.service-policyを使用して、トラフィックポリシーを定義するインターフェースを定義する。


Router(config)# interface { インターフェース名 }
Router(config-if)# service-policy { output | input } {ポリシー名}




例>

1.class-mapを使用して、トラフィッククラスを定義する。



Router(config)# class-map rtp
Router(config-cmap)# match access-group 100
Router(config-cmap)# exit
Router(config)# class-map http
Router(config-cmap)# match access-group 110
Router(config-cmap)# exit
Router(config)# class-map com-traffic
Router(config-cmap)# match access-group 120
Router(config-cmap)# exit




2.policy-mapを使用して、1で定義したトラフィッククラスに対してトラフィックポリシーを定義する。

Router(config)# policy-map inter_net
Router(config-pmap)# class rtp
Router(config-pmap-c)# bandwidth 40
Router(config-pmap-c)# queue-limit 40
Router(config-pmap-c)#exit
Router(config-pmap)# class http
Router(config-pmap-c)# bandwidth 30
Router(config-pmap-c)# queue-limit 50
Router(config-pmap-c)#exit
Router(config-pmap)# class com-traffic
Router(config-pmap-c)# bandwidth 20
Router(config-pmap-c)#exit
Router(config-pmap)# class class-default
Router(config-pmap-c)#fair-queue 
Router(config-pmap-c)#exit



3.service-policyを使用して、トラフィックポリシーを定義するインターフェースを定義する。

Router(config)# interface serial0/0/0
Router(config-if)# service-policy input inter_net



・show run で一部内容確認

1.確認
class-map rtp
  match access-group 100
!
class-map http
  match access-group 110
!
class-map com-traffic
  match access-group 120
!

2.確認

policy-map inter_net
  class rtp
   bandwidth  40
 queue-limit 40
  class http
   bandwidth  30
 queue-limit 50
  class com-traffic
   bandwidth  20
  class class-default
   fair-queue
!

3.確認

interface serial 0/0/1
  service-policy input inter_net


■確認コマンド
・show policy-map interface コマンド


2011年11月22日火曜日

QOS 4.ポリシングとシェーピング


帯域制御、輻輳制御、輻輳回避の設定をやっていきます。


■帯域制御


ポリシング(Policing)

リミット帯域を事前に設定しておき、その帯域以上のトラフィックが来た場合超過分のパケットを破棄する技術。ユーザが実際のアクセスルートより小さなアクセスルートが割り当てられている場合、各プロバイダーはポリシングを使用し小さいアクセスルート値(サブレート値)を強制される事が出来る。

シェーピング(Shaping)

リミット帯域を事前に設定しておき、常にその設定された帯域を超過しないようにする機能。又、リミット帯域以上のパケットを処理する場合、バッファに格納しておき再転送する。(破棄されない)。主に、FRやWAN接続の際に使用されたり、プロバイダーが顧客を契約したSLAに応じて契約したレートに制限する時に使用される。


ポリシングとシェーピングでは、トークンバケット方式を採用しております。
トークンバケット方式

CIR・・・・・平均レート
Bc・・・・・ 定期的に入ってくるトークンの量の事。
Be・・・・・ トークンバケットに貯蓄する事が出来る最大トークン量の事。
Tc・・・・・ 定期的にトークンバケットに入ってくる補充間隔。


基本的に帯域制御しているルータにパケットが到達すると、トークンバケット内に、そのトラフィックを転送可能分のトークンがあるか確認し、あればその分のトークンをバケットから取り除きます。


・シングルトークンパケット方式

シングルトークンバケット方式では、使用するトークンバケットはBcバケットの1つです。
パケットを転送するする際に、Bcバケット分のトークンで転送できるパケットの際は使用したBc分のトークンを差し引き転送する事が出来ます。
しかし、Bcバケット分のトークンではパケット転送できない場合は破棄(ポリシング)又は、キュー(シェーピング)に蓄積されます。


例> [Bc=1000バイト CIR= 10000bps の場合]
※パケットは0.8秒後に到着すると仮定します。
トークンの補充数・・・0.8秒×10000bps÷8= 1000バイト


①0.2秒目で800バイトのパケットが転送されてきた時、Bcトークンバケットから800バイト分のトークンを使用してパケットを転送する事が出来る。
残り[200バイト]

②1秒経ったので、Bc= 1000バイト分のトークンが補充されるが、Bcバケットには200バイト分のトークンが残っており残り200バイト分のトークンは溢れてしまい格納できない。
残り[1000バイト]  ※Bcバケット値以上は格納する事が出来ない

③1.2秒目で1200バイトのパケットが転送されてきた時、Bcバケット内は1000バイト分のトークンしかなく200バイト分の不足している為、パケットは破棄(ポリシング)又は、キュー(シェーピング)に蓄積されます。
残り[1000バイト]


・デュアルトークンバケット方式

デュアルトークンバケット方式ではBcとBeのトークンバケットを使用する事が可能です。

例> [Bc=1000バイト Be=3000バイト[現在は,1000バイト入っている] CIR= 10000bps の場合]
※パケットは0.8秒後に到着すると仮定します。
トークンの補充数・・・0.8秒×10000bps÷8= 1000バイト


①0.2秒目で800バイトのパケットが転送されてきた時、Bcトークンバケットから800バイト分のトークンを使用してパケットを転送する事が出来る。
残り Bcバケット[200バイト] Beバケット[1000バイト]

②1秒経ったので、Bc= 1000バイト分のトークンが補充されるが、Bcバケットには200バイト分のトークンが残っており残り200バイト分のトークンは溢れてしまい格納できないので、
溢れた200バイト分のトークンをBeバケットに格納する。
残りBcバケット[1000バイト] Beバケット[1200バイト]

③1.2秒目で1200バイトのパケットが転送されてきた時、Bcバケット内は1000バイト分のトークンしかなく200バイト分の不足している為、超過した200バイト分のトークンをBeバケットから使用する事が出来る。
残り Bcバケット[0バイト] Beバケット[1000バイト]


------  公式  ----------

・CIR = Bc(ビット) ÷ Tc(秒)
・補充するトークン量 = パケット到達時刻(秒) × CIR ÷ 8(バイト変換)


>>オススメ記事:CCIEが語る!ネットワークエンジニアにオススメな本・参考書!
>>オススメ記事:ITエンジニア必見!失敗しない転職エージェントの選び方はこれだ!

2011年11月20日日曜日

QOS 3.キューイング

QoSの機能は大きく分けて3つあります。
輻輳回避
②輻輳制御
帯域制御


■輻輳制御(キューリング)

他のパケットを処理している間、残りの待ちパケットを一時的に保管する方式

・キューイングの種類

①PQ(Priority queueing)

パケットに4つの優先度(high,medium,normal,low)を設定して、キューイングされた際、high > medium > normal > low の順に転送する方式。
基本的にhigh > medium > normal > low の関係を基に転送される為、常に優先度の高いキューから参照されます。その為、優先度の高いキューが空にならない限り低い優先度に格納されているキューは転送されない。
問題点:優先度の低いキューが枯渇状態になる可能性が高い。

②WFQ(Weighted Fair queue)

IP Precedenceを基に優先度を付加し、各トラフィックごとにキューを動的に作成する事でキューイングする仕組み。
又、全て優先度が同じ場合は帯域幅を分け合う事になります。

WFQアグレッシブドロッピング・・ホールドキューが占有状態になった際、到着パケットがドロップされる事。
WFQアーリードロッピング・・・・CDT(輻輳破棄しきい値)に達した際、到着パケットをドロップされる事。

WFQでは、設定が簡単でかつ枯渇状態を回避できる長所があるが、トラフィックフローに対する帯域幅などの保証がない事や高速リンクに対応していないなどの欠点がある。

③CBWFQ(Class-based Weighted Fair queue)

WFQに定義されたクラスというグループ(最大64個)を使用して優先制御する方式。又、CBWFQは各キューに最低保証帯域幅を指定する事が出来、それ以上の帯域幅を利用可能であれば、利用することも可能。
問題点 : WFQと同様に帯域などの保証がない。(上限に達した場合、VoIPなどの優先度が高いアプリケーションをテールドロップする可能性がある。)

④LLQ(Low Latency queue)

PQとCBWFQの2つを組み合わせたキューイング方式。
絶対優先されたいパケット(VoIPなど)をPQ(FIFO)を使用して転送し、その他は、WFQを使用して転送されます。
又、PQの欠点であった優先度の高いキュー(完全優先キュー)が空にならない限り優先度の低いパケットを転送できない部分は、ポリシングを使用する事で回避しております。(完全優先キューで帯域幅の許容値を超えた場合は、ドロップされる。)



■輻輳回避


過度な輻輳が発生すると、キューに格納できないパケットがテールドロップによりドロップされてしまいます。
又、TCP通信は破棄された事を確認すると、再送処理が実行される為転送レートを一時的に落として通信しようとします。
テールドロップを回避する為に、キューが占有状態になる為に、破棄する技術がREDやWREDです。

①RED(Random Early Detection)

キューが占有状態になる前に、ランダムにパケットを破棄する技術。
破棄モデルは3つあります。
no drop・・・・・平均キューサイズが最小しきい値より小さい場合は破棄しない。
random drop・・・平均キューサイズが採用しきい値~最大しきい値未満の場合はMP(破棄確率)によりランダムで破棄する。
tail drop・・・・平均キューサイズが最大しきい値以上に達成すると、以後届くパケットを破棄する。

②WRED(Weighted RED)

REDはパケットをランダムに破棄するのに対して、WREDではIP Precedence値やDSCP値によるパケットの優先度を考慮してパケットを破棄する方式。

③CBWRED (Class Based Weighted Random Early Detection)

CBWFQが使用されている場合、個々のキューは優先度の高いパケットもテールドロップしてしまう可能性があります。 その為、CBWFQにWREDを適用した技術でIP Precedence値やDSCP値を基に優先度に低いパケットから破棄する事が出来る。


>>オススメ記事:CCIEが語る!ネットワークエンジニアにオススメな本・参考書!
>>オススメ記事:ITエンジニア必見!失敗しない転職エージェントの選び方はこれだ!



2011年11月19日土曜日

QOS 2.DSCPについて


■diffservについて

・diffservの流れ


①トラフィックの種類や重要度を特定する。
②各ビジネス目標に合致するように、各トラフィックをトラフィッククラスに分類する。
③トラフィッククラスごとに、ポリシーを決定する。


IP Precedenceとは.......

QOSを提供する上で、各パケットを識別してどのように転送するか?優先度を与えるかを判断する為に使用されるマーカーの事。
IP Precedenceでは、3ビットを使用して、合計8クラス(0 ~7)に分けて優先度を設定します。



DSCP [Differentiated Services Code Point] とは.....

QOSを提供する上で、各パケットを識別してどのように転送するか?優先度を与えるかを判断する為に使用されるマーカーの事。
DSCPでは6ビットを使用します。その内、上位3ビットは優先度クラス、下位3ビットはパケット破棄度を設定します。又、IP Precedenceに比べて、より細かい優先度を付ける事が出来る。

各DSCPに応じた優先制御などの事をPHBと呼ぶ。

・PHBの種類


クラスセレクタPHB・・・・・・DSCPが非対応なデバイスと下位互換の為に使用する
 [xxx000] xxxには優先度が入る。 下位3ビットが 000 になるのが特徴。

デフォルトPHB・・・・・・・・BestEffortの為に使用される。
 [000000] DSCP値はすべて 0

AF (Assured Forwarding)・・・帯域保証に使用される。
 [001dd0 ~ 100dd0 ]DSCP値の上位が001~100(優先度)に設定され、ddは、01[低破棄] ~11[高破棄](破棄率)が設定される。


EF (Expedited Forwarding)・・最優先パケットに使用される。遅延を最小限に抑える事が出来ます。
 [101110]

2011年11月18日金曜日

QOS 1.基礎


QOSとは.....

ある特定の通信トラフィックに対して通信品質や信頼性を向上する為に、
優先度などをあげたりして、一定の通信速度を保証する技術。

なぜ、QOSが必要か?
最大の理由........輻湊
ネットワーク内は、日々音声通信やデータ通信、その他のアプリケーションの通信がやりとりされている。
その中でも音声や動画を扱う通信は非常に遅延に敏感なので、遅延を一定の範囲内に収める必要がある。


QOSは主に3つのステップを実行する。

①トラフィックの種類や重要度を特定する。
トラフィックが混雑する時間や各アプリケーションのトラフィックなど時間帯ごとの統計情報を
調査し、ビジネス目標を基にアプリケーションの優先度を決定する。

②各ビジネス目標に合致するように、各トラフィックをトラフィッククラスに分類する。
アプリケーションの優先度を把握した上で、各優先項目毎にトラフィックを分類する。

③トラフィッククラスごとに、ポリシーを決定する。

■QOSの種類


①IntServ (Intergrated Services)

RSVPというネットワーク資源予約プロトコルを使用し、送信元から宛先への帯域を予約して、優先制御する方式。


・問題点
RSVPの帯域予約が失敗した場合、アプリケーションの処理は実行されない。
送信元から宛先までの各ルータがRSVPをサポートしている必要がある。
場合によってはアプリケーションフローが膨大に増え、ルータの大きな負荷がかかる。

②DiffServ (Differentiated Services)

ネットワークを経由する際各ルータが、IPヘッダー内のTOS内のDSCPを再定義し、DSCP参照して輻輳制御や帯域制御を行う技術。
IntServに比べてスケーラビリティが高い。

※後日詳しくやります!!

③Best-effort 

全ての通信が同じ優先度で通信されます。ですので、基本的に先着順にキューイングされます。