NFD-C基本使用
NFD-C,netmgmt网络管理功能及程序使用说明
netmgmt主要起网络管理作用,独立于NFD-C转发模块,工作模式为“客户端——服务器”,客户端可以理解为网管节点,服务器为网络内其他节点,两者通过“兴趣包——数据包”的端到端通信模式实现对网络的管理:客户端向服务器发送兴趣包,服务器返回相应的数据包以获取网内各节点的网络状况(cs、route、face、发包等)。
故障管理(Fault Management)
故障管理是网络管理中最基本的功能之一。当网络中某个组成失效时,网络管理器必须迅速查找到故障并及时排除。
网络故障管理包括故障检测、隔离和纠正三方面,包括以下典型功能:
●维护并检查错误日志
●接受错误检测报告并做出响应
●跟踪、辨认错误
●执行诊断测试
●纠正错误
\在NFD-C程序中,这些功能包括:**
log日志信息读取:
NFD-C 中有关转发的log日志可以通过main.c中zf_log_set_output_level(ZF_LOG_WARN)
语句实现。若转发过程中没有错误,则程序不会输出信息。括号内的参数可以更改,不同的参数对应不同的输出log日志等级。
\路由跟踪(traceroute):**
主要功能是记录兴趣包经过的结点。
在两端运行NFD-C程序(执行命令 sudo nfd-c -n node_name
,其中node_name
为手动输入的节点名称,完成创建face和建立路由之后,服务器执行
sudo traceroute-server -p ndn
客户端执行
sudo traceroute -p ndn
其中ndn 为建立路由时-p后面的名称前缀。
\应用举例:**
如图所示,兴趣包经过3个节点,每经过一个节点则将节点信息存入兴趣包里的param字段,服务器端将这些存于兴趣包中的节点信息放入数据包的value字段后发给客户端,最终由客户端完成解析提取出所经过的节点信息,服务端则显示接收到兴趣包。
\配置管理(Configuration Management)**
配置管理负责初始化网络、并配置网络,以使其提供网络服务。配置管理是一组对辨别、定义、控制和监视组成一个通信网络的对象所必要的相关功能,目的是为了实现某个特定功能或使网络性能达到最优。这包括:
●设置开放系统中有关路由操作的参数
●被管对象和被管对象组名字的管理
●初始化或关闭被管对象
●根据要求收集系统当前状态的有关信息
●获取系统重要变化的信息
●更改系统的配置
\在NFD-C程序中,这些功能主要体现在对节点的配置上,具体内容如下:**
\首先需要在各个网络节点启动NFD-C服务**
创建face:
sudo nfdc-face create -r ether://b4:2e:99:f7:f0:0f -l dev://enp5s0
\说明**:sudo 为运行程序所需要的权限,nfdc-face为程序名,create为输入的参数(可更改参数以实现不同功能,此处为创建face),-r 后面接 ether/udp(协议,二选一即可)://(此处内容由之前协议类型确定,udp对应远端ip端口号,ether对应远端MAC地址),-l 后面接 dev://本机网卡号,若创建成功,则会返回一个faceID。
根据faceID建立路由:
sudo nfdc-route add -p :ndn -f 263
注意这里的循环前缀-p :ndn生成/ndn的前缀,-p ndn生成ndn前缀。
\说明**:sudo 为运行程序所需要的权限,nfdc-face为程序名,add为输入的参数(可更改参数以实现不同功能,此处为添加路由),-p 后面接发送兴趣包的名称前缀,-f 后面接上一步获得的faceID。
接口删除:
sudo nfdc-face destroy -f face_id
\说明**:执行上述命令可以删除对应的face,-f 后的face_id即所需删除的接口号。
² \接口状态启用/禁用:**
sudo nfdc-face up/down -p :ndn
\说明:**执行上述命令可以使所需要的face禁用/启用,-p 后面跟的是名称前缀,up/down完成对-p前缀下fib(转发信息库)查找到的全部face接口进行操作。
(down和destroy的区别在于,执行down操作,face仍存在,但是转发不了数据,相当于禁用,而执行完destroy操作后face将不存在)
\路由删除:**
sudo nfdc-route destroy -p :ndn -f face_id
\说明:**执行上述命令可以删除face_id对应的路由路径,-p 后面跟的是名称前缀, -f 后面跟的是端口号。
\计费管理(Accounting Management)**
计费管理记录网络资源的使用,目的是控制和监测网络操作的费用和代价。包括以下功能:
●通过计费管理功能可以估算出用户使用网络资源可能需要的费用和代价,以及已经使用的资源。
●网络管理员可以规定用户可使用的最大费用,从而控制用户过多占用和使用网络资源。
●当用户为了一个通信目的需要使用多个网络中的资源时,通过计费管理功能可以计算总费用。
\性能管理(Performance Management)**
性能管理用于估价系统资源的运行状况及通信效率等系统性能。其能力包括监视和分析被管网络及其所提供服务的性能机制。性能分析的结果可能会触发某个诊断测试过程或重新配置网络以维持网络的性能。性能管理收集分析有关被管网络当前状况的数据信息,并维持和分析性能日志。
典型的功能包括:
●收集统计信息
●维护并检查系统状态日志
●确定自然和人工状况下系统的性能
●改变系统操作模式以进行系统性能管理的操作
\在NFD-C程序中,这些功能主要体现在对节点状态的查看和转发率的计算:**
\cs显示:**
sudo nfdc-cs show
\说明:**执行命令可以显示出cs条目中的容量、命中数、未命中数。
路由表显示:
sudo nfdc-route show
\说明:**执行命令可以显示出当前的路由信息,包括接口号和远端MAC地址。
\face显示:**
sudo nfdc-face show
\说明:**执行命令可以显示当前的接口信息,包括face_id、接口状态、本地地址和远端地址。
\status****处理:**
sudo nfdc-status show
\说明:**nfdc-status提供了网络状态相关的处理方法,执行命令可以显示当前的face、route、cs信息,若添加参数 -f xml,则可以将数据以xml语言格式显示。
对于转发率的计算,NDN-C通过在一定时间内持续发送数据包来实现,用转发的数据包数目除以花费的时间,就可以得到转发率。在NFD-C程序中,发包程序包括peek,chunk,batch,
ping这四种,具体使用方法如下(以ping为例):
在两端运行NFD-C程序,并完成创建face和建立路由之后,服务器执行
sudo ping-server -p ndn
客户端端执行
sudo ping -p ndn
其中,应先执行服务器端的程序再执行客户端的程序,ndn 为建立路由时-p后面的名称前缀。
peek, chunk, batch 运行方式均与ping相似,只是结果有所不同。peek每次只发送一个兴趣包,服务器根据兴趣包名称前缀发送相应的数据包;batch每次可以发送多个数据包,每次发送的数目可以在sudo batch -p ndn 后添加 -c count来确定,count为一次发送数据包的个数,如果不添加,则默认为10000,即一次发送10000个兴趣包(不等待返回的数据包);ping则为持续发送兴趣包,可以通过在sudo ping -p ndn 后添加 -i interval来控制间隔时长(单位为毫秒),若不添加,则默认等待时间为1000毫秒;chunk用于获取相应目录下的文件,首先服务器端执行sudo chunk-server -p ndn -d /home/folder进入到相应文件目录下,客户端执行sudo chunk -p ndn -f filename 发送一个兴趣包,ndn为名称前缀,filename为文件名,服务器找到相应目录下的文件后返回文件大小,客户端计算获得整个文件所需的数据包个数并发送相同个数的兴趣包。
转发率的计算使用batch函数,执行上述操作,令发包数目(count)为7000,执行结果如下:
通过计算可以得到转发率 > 10000 packets/s。
\安全管理(Security Management)**
网络安全管理包括对授权机制、访问控制、加密和加密关键字的管理,另外还要维护和检查安全日志。包括以下功能:
●创建、删除、控制安全服务和机制
●与安全相关信息的分布
●与安全相关事件的报告
在ndfc中,对数据包的签名加密目前仅采用哈希摘要作为签名手段,暂且并未涉及到对数据包加密的方法。另外,对于原生NDN中访问控制、信任管理部分,由于还未完全看懂功能流程,nfdc暂且没有添加。