2015年6月8日月曜日

サーバー側でLLDPを有効にしてSWから情報を見てみる

■目的
 LLDPを利用してSWの先に繋がったサーバーの情報を確認することが出来るか試してみる。

■前提
 SW:お馴染みArista
 SV:ESXi6.0、KVM(CentOS7.0)

ESXi:6.0でLLDPを有効にしてみる。



操作でアドバタイズを指定する。
この状況でSW側からLLDPコマンドでどのように見えるか確認してみる。


Arista#sh lldp neighbors
Last table change time   : 11:56:10 ago
Number of table inserts  : 7
Number of table deletes  : 0
Number of table drops    : 0
Number of table age-outs : 0

Port       Neighbor Device ID             Neighbor Port ID           TTL
Et2        esx2.test.local          0050.565c.2f11             180

上記のように接続ポート先にSV側のホスト名が確認出来るようになった。

■KVM(CentOS7)でLLDPを有効にしてみる。
まずはLLDPをインストールする。
#yum install lldpad
================================================================================
 Package            Arch            Version                 Repository     Size
================================================================================
Installing:
 lldpad             x86_64          0.9.46-10.el7           base          256 k
Installing for dependencies:
 libconfig          x86_64          1.4.9-5.el7             base           59 k

Transaction Summary

================================================================================

②LLDPサービスをスタートさせて、再起動時も有効にしておく
 #systemctl start lldpad
 #systemctl enable lldpad

lldptool を使って設定を見てみる
 以下のようにサーバーのNICの先にいる接続先の「SW名」「SW-IP」「SW型番」等を確認することが出来る

# lldptool get-tlv -i ens1f0 -n
Chassis ID TLV
        MAC: XXXXXXXXXXX
Port ID TLV
        Ifname: Ethernet3
Time to Live TLV
        120
System Name TLV
        接続先SW名
System Description TLV
        Arista Networks EOS version 4.12.5.1 running on an Arista Networks DCS-7050T-52
System Capabilities TLV
        System capabilities:  Bridge, Router
        Enabled capabilities: Bridge, Router
Management Address TLV
        IPv4: 接続先SWIP
        Ifindex: 5000000
Port VLAN ID TLV
        PVID: 102
Link Aggregation TLV
        Aggregation capable
        Currently aggregated
        Aggregated Port ID: 1000003
Maximum Frame Size TLV
        9236
End of LLDPDU TLV

今回SVを2台用意し、一台は以下の設定を行う。
# lldptool set-tlv -i ens1f0 -V sysName enableTx=yes
 sysNameを有効にする。


Arista#sh lldp neighbors
Last table change time   : 11:56:10 ago
Number of table inserts  : 7
Number of table deletes  : 0
Number of table drops    : 0
Number of table age-outs : 0

Port       Neighbor Device ID             Neighbor Port ID           TTL
Et2       esx2.test.local             0050.565c.2f11            180
Et3        kvm1.test.local             2c76.8a5c.3780             120
Et4        2c76.8a5c.4041                 2c76.8a5c.4041             120

Et3はsysNameを有効にしたSVの為、SWtから見ると対向先のホスト名を確認することが出来る。
Et4はsysNameを有効にせずに単純にLLDPを有効にしただけである。

このようにSV側でLLDPを有効にすれば、SW側から対向先のSV情報を確認することが出来る。

■終わり
Ciscoの場合であればCDPと専用のプロトコルだが、LLDPはSVでも使うことが出来るので
自動構成図作成等で利用する事が可能である。

私の体験が誰かの生産性向上に役立っていただけることを祈って