Print

S12508G-AF交换机如何通过Netconf API获取聚合成员接口?

16小时前 发表

问题描述

如何通过Netconf API获取聚合成员接口信息?

Python脚本略,接口聚合情况如下:

过程分析

使用API为:

<LAGG>

<LAGGGroups>

<LAGGGroup>

<GroupId></GroupId>

<LinkMode></LinkMode>

<IfIndex></IfIndex>

<IfName></IfName>

<MemberList></MemberList>

  </LAGGGroup>

</LAGGGroups>

 

</LAGG>

结果为:'Route-Aggregation23': 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD'

 

 

解决方法

1、找个Linux系统(在线工具不行,可以找在线的Linux系统站或配置虚拟机),执行命令:

echo 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD' | base64 --decode | hexdump -C

结果为:

 

00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000040  00 03                                             |..|
00000042

 

 

这个位图均为16进制,转换时以16进制为基准

1. 最左00000040,16转10为64
2. 右侧\0 003(bash视图可以看到是00 03),16 转2进制为 0000 0000  0000 0011

根据API文档

二进制左边第一位最高,右边第一位最低,最高位代表最低端口,所以左边第一位是端口1,第二位端口2,以此类推

那么00 03 就代指15和16两个端口索引

所以成员端口索引为:

64 * 8 + 15 == 527
64 * 8 + 16 == 528

(由于位图每组都是两个16进制数,如03、00,所以是乘8)

进入probe视图,使用display system internal ifmgr list命令查看接口索引:

得出该聚合口中的成员端口是2/0/13、2/0/14