MPLS
Multiprotocol Label Protocol (MPLS)
2005年9月16日更新
MPLS
- 昔はtag-switchingといっていた。tag-switchingとのコンフィグ下位互換性のため、mpls ...と設定してもrunning(startup)-config上tag-switchingと表示されるところもあり。びっくりしないこと。
Label Distribution Protocol (LDP)
IOS12.3 LDP Configuration Guide
- LDPはTDP(Tag Distribution Protocol : シスコ独自のプロトコル)にかわる標準のラベル配布プロトコル
- UDP/TCP 646を使用。(TDPはport 711)
設定
まずMPLSを動作させるため、CEF(Cisco Express Forwarding)を動作させる必要がある。(必須)
Router(config)# ip cef
インターフェースでLDP/TDPを動かし、MPLSを動作させる。(必須)
Router(config-if)# mpls ip
上記では、デフォルトではTDPが動作するため、LDPを使用するように設定必要。
すべてのインターフェースでLDPを使用する(または使用するプロトコルを選択する)ときには、Global Configuration Modeで設定。
Router(config)# mpls label protocol { tdp | ldp | both } インターフェース毎で使用するプロトコルを選ぶときは、Interface Configuration Modeで設定。
Router(config-if)# mpls label protocol { tdp | ldp | both } LDP Router ID
LDP Router IDは、
- ldp router-id で指定したインターフェースアドレス
- Loopbackアドレスで一番大きいもの
- UPしているインターフェースで一番大きなアドレス
の順で選択される。LDPはこのLDP Router IDをつかってTCPセッションをはるので、このアドレスは到達可能でなければならない。
Router(config)# mpls ldp router-id interface [ force ]
forceオプションをつけると、設定した時にすぐLDP router-idがかわる。このときLDPセッションは一度落ちる。ラベルもすべて割り当て直し。
注)ここで指定するLoopbackアドレスは/32であり、かつ/32でIGPでアドバタイズされねばならぬとあるが、本当?
Label Pool
使用するラベルの範囲の設定
Router(config)# mpls label range min max
デフォルトでは、min=16, max=1048575
MTUの調整
MPLSラベルは複数スタックできることができるので、特にLAN環境ではMTUサイズを超えてしまい問題となるケースがある。そのMTUの調整。
Router(config-if)# mpls mtu mtu-size
1ラベルあたり4byte(32bit)。2枚スタックしたら8byte大きくなる。LAN switchでjumbo frame設定しないといけないかも。
IP TTL Propagation
デフォルトでIPパケットのTTLをMPLSタグのTTLへ(または逆も)コピーする。たとえばtracerouteするとMPLS網のトポロジがわかるため、このTTLをコピーしないようにしたい。
Router(config)# no mpls ip propagate-ttl [ forwarded | local ]
オプションなしでは、すべてのパケットに対しコピーを行わない、つまりどこからトレースしてもMPLS網内では返さない。forwardedオプションつけると、転送するパケットのみコピーを行わない、つまり外部からのトレースには返さないが、自ルータからのトレースには返ってくる。localオプションではその逆。
Conditional Label Distribution
デフォルトでは、すべてのネットワークに対しラベルわりあて、すべてのネイバに対しアドバタイズされる。どのネットワークに対し、またどのネイバに対しラベルをアドバタイズするか、をコントロール。
Router(config)# mpls ldp advertise-labels [ interface interface | for prefix-access-list [ to peer-access-list ] ]
for prefix-access-list オプションで指定したネットワークに対しラベルを割り当てる。また、to peer-access-listオプションで指定したネイバに対しアドバタイズを行う。
show mpls ip binding detail で確認できる。
Cell Mode MPLS
ATMセルヘッダのVPI/VCIにラベル情報をわりつける方式をCell Modeという。ちなみに、L2とL3ヘッダの間にMPLSラベル(shimヘッダ)を挿入する方法はフレームモード。
Router(config)# interface ATMx/x.x mpls Router(config-if)# ip unnumbered interface Router(config-if)# mpls ip Router(config-if)# mpls label protocol [ ldp | tdp | both ]
ATMインターフェースに、MPLSサブインターフェースを作成。ip unnumbered推奨。あとはフレームモードと同じ。
VC merge
デフォルトでVC mergeは有効になっている。VC mergeとは、あるパケットがATM cellに分断されて、その間に他のパケットのcellが割り込まないようにすること。別のネットワークに対し、同じラベルを割り当ててしまうと、cellモードの場合はVPI/VCIにラベルいれるので区別できなくなってしまう。従って、cell間に他のパケットのcellが入り込むのを防ぐ。これを無効にする。
Router(config)# no mpls ldp atm vc-merge
この場合、他のパケットのcellを区別するために別のラベルを割り当てる必要あり。
LC-ATMパラメータ
LC-ATM (cell modeのこと)のいろいろなパラメータ設定。
Router(config-if)# mpls atm control-vc vpi vci
コントロールVCの設定。デフォルトは3/32。
Router(config-if)# mpls atm vpi vpi [ - vpi ] [ vci-range low - high ]
ラベルに使用するVPI/VCIの範囲。
確認
MPLSの動作しているインターフェースを確認
Router# show mpls interfaces
LDPの隣接関係の確認
Router# show mpls ldp neighbor [ detail ]
LFIBの確認
Router# show mpls forwarding-table
TIPS
トラックバック(0)
トラックバックURL: http://blog.kslabs.net/mt/mt-tb.cgi/249

コントロールVCの設定。デフォルトは0/32。