Más contenido relacionado
La actualidad más candente (10)
LLDP機能の概要
- 1. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
LLDP機能の概要LLDP機能の概要
木本雅彦 <kimoto@soum.co.jp>
<kimoto@ohnolab.org>
株式会社創夢 第三開発部 シニアプロジェクトマネージャ
初版:2005年7月作成、改定版:2015年3月作成
- 2. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
スイッチネットワークというもの
スイッチを用いたネットワーク構築
LAN/WANでEthernetが中心に
L2で冗長性, 仮想LAN, 帯域制御, リンク集約を実現する
単純な機器を用いるので故障しにくい
L2スイッチの高機能化とL3スイッチの登場
レイヤーごとの差異があいまいになりつつある
1/13
- 3. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
L2トポロジーを把握する方法
SNMP
ping, traceroute
CDP(Cisco Discovery Protocol)
LLDP(Link Layer Discovery Protocol)
2/13
- 4. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
Link Layer Discovery Protocol
スイッチ同士での情報交換のためのプロトコル
現状ではベンダ独自で類似機能を持つ
IEEE 802.1abで標準化される予定
3/13
- 5. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
Link Layer Discovery Protocol
隣接したスイッチ間で情報を教え合う
4/13
- 6. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
Link Layer Discovery Protocol
SNMPでトポロジー情報などを収集する
5/13
- 7. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
LLDPの機能
隣接装置識別情報の収集
隣接ポート識別 ・ 構成情報の収集
隣接装置systemMIBの一部の収集
隣接装置のIPアドレスの収集
ベンダ独自情報の収集
6/13
- 8. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
LLDPの動作
隣接装置に情報を送るだけ(要求はできない)
送信側 :
一定間隔(30秒)で情報を送信する
インタフェースが落ちる時に情報を送信する
一定間隔以上(2秒)では送らない
受信側 :
ポート単位で隣接機器の情報を格納する
一定時間(120秒)過ぎた情報は破棄する
得られた情報はSNMP経由で参照できるようにする
7/13
- 9. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
LLDPDU
リンク層のパケットである
8/13
- 10. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
TLV (Type & Length & Value)
LLDPで使うTypeの例
シャーシID (必須)
ポートID (必須)
TTL (必須)
ポートの説明
システム名
システムの説明
管理アドレス
End of LLDPDU(必須)
9/13
- 11. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
実装の際の注意点
L2パケットなので、BPFとかPACKET socketを使う
リンクアップ・ダウンのイベントを効率よく検知する必要
がある
ポートごとに複数の対向ノードのデータを管理する必要
があるかどうかで、実装の面倒さが変わる
組込プログラミングは、なるべく動作中にmallocしたくない
最初に固定バッファを確保したほうがよい
snmpdに対してMIBを追加する方法
net-snmpだと外部プロセスで追加MIBを処理する方法があるのだ
が、当時まともなドキュメントとサンプルコードがなかった
ASN.1でMIBを記述し、コンバータが生成したコードをベースにして頑
張った
10/13
- 12. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
現在のLLDPの使われかた
CISCOの場合はいまだにCDPが一般的なようだ
OpenFlowでLLDPを使うので、そこそこ実装は普及し
ている
Linuxだとlldpdかopenlldp(lldpad)が多いようだ
11/13
- 13. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
実装状況
http://www.kempgen.net/voip/lldp-
agents.html
lldpd
http://vincentbernat.github.io/lldpd/
Linux, OpenBSD, NetBSD, FreeBSD, Mac OS X
ISC Licence
openlldp (lldpad)
http://openlldp.sourceforge.net/
Linux, NetBSD, FreeBSD, Mac OS X
BSD style Licence
12/13
- 14. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
おわりに
LLDPのプロトコル仕様と機能について概説した
実装上の注意点をちょっとだけ触れた
その昔はLinuxなどで動く実装がなかったのですが、最
近は結構実装があるんですね
でもスクラッチから作れと言われたら作りますよ
13/13