zMPLS的安装与配置
1、zmpls的安装
1.1安装环境
ubuntu 12.04 kernel 2.6.35 (对原来的内核进行了替换)
1.2 下载链接
文件zMPLS-0.95-alpha.tar.gz的下载地址为:
http://sourceforge.net/projects/zmpls/files/latest/download?source=files
1.3安装过程
$ cd zMPLS-0.95-alpha/
$ ./configure
$ sudo make
$ sudo make install
1.4 清理配置信息
$ sudo make clean $ sudo make distclean
2、安装过程中遇到的问题及解决方案
2.1 问题1
提示错误:sockunion.c 244:22 error struct sockaddr_in6 has no member named sin_port
解决方案:
打开文件lib/sockunion.c文件,定位到244行,将sin_port改成sin6_port
2.1 问题2
提示错误:stream.c 383:34 error: request for member 'ipv6_host' in something not a structure or union.
Stream.c 391:34 error: request for member 'ipv6_prefix' in something not a structure or union
…..........392—393
解决方案:
打开文件lib/stream.c文件,然后分别进行如下修改:
1)383行: fec_rule.ipv6_host → fec_rule->rule.ipv6_host
2)391行的fec_rule.ipv6_prefix → fec_rule->rule.ipv6_prefix
3)392-393行的ipv6_prefix → prefix_ipv6
解决此问题之后,清除配置信息重新配置编译,接着可能会出现下面问题
2.3 问题3
提示错误:rtadv.c: 123:18: error: dereferencing pointer to incomplete type
….......124, 130 …
rtadv.c: 149:49: error: invalid application of 'sizeof' to incomplete type 'struct in6_pktinfo'
rtadv.c: 268:15: error: dereferencing pointer to incomplete type
解决方案:
在lib/zebra.h中第103行添加如下代码:
#ifdef GNU_LINUX #define __USE_GNU #endif
2.4 问题4
提示错误:rsvp_packet.c: 644:15: error: label at end of compound statement
解决方案:
打开文件rsvpd/rsvp_packet.c文件。定位到644行,在每个缺少break的case后面加上一个break语句,并且在最后加上default: break;
case: RSVP_CALSS_RESV_CONF:
break;
case: RSVP_CLASS_SCOPE:
break;
case: RSVP_CLASS_POLICY_DATA:
break;
case: RSVP_CLASS_STYLE:
break;
default:
break;
2.5 问题5
提示错误:ospfd.h 510:23: error: array type has incomplete element type
ospfd.h 511:23: error: array type has incomplete element type
….............
ospfd.h 515:23: error: array type has incomplete element type
解决方案:
打开文件ospfd/ospfd.h文件,加上头文件:#include “log.h”。
2.6 问题6
提示错误:在make install时,出现下面错误:
/bin/bash: -c: line 7: syntax error: unexpected end of file
解决方案:
打开ldpd/Makefile文件,定位到文件的一段代码,将此段代码替换成文件zmpls/Makefile文件的最后一段代码。保持退出即可。
即使用如下代码替换掉ldpd/Makefile文件的最后的与此一样的代码
install-sysconfDATA: $(sysconf_DATA)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sysconfdir)
@list='$(sysconf_DATA)'; for p in $$list; do \
if test -f $(srcdir)/$$p; then \
echo " $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \
$(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \
else if test -f $$p; then \
echo " $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \
$(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \
done
注意:Makefile文件在make的时候自动生成的,所以在修改Makefile文件之后不要进行make。
3、ZMPLS的配置
首先获得配置文件所在的目录,默认放置在目录/usr/local/etc/目录下面。还有一些文件放置在其相应的目录下面,比如zebra.conf文件放置在zmpls/目录下,ldpd.conf放置在ldpd/目录下,rsvpd.conf放置在rsvpd/目录下。
在目录/usr/local/etc/目录下面的一些.conf.sample文件或者.conf文件,需要的时候将.conf.sample文件拷贝成.conf文件。
3.1、zmpls usage
Start zmplsd as :
$ zmpls -f /tmp/zebra.conf
Connect to zmpls as :
$ telnet 127.0.0.1
default password: zmpls
3.2、ldpd usage
Start ldpd as :
$ ldpd -f /tmp/ldpd.conf
Connect to ldpd as :
$ telnet 127.0.0.1
default password: zmpls
3.3、rsvpd usage
Start rsvpd as :
$ rsvpd -f /tmp/rsvpd.conf
Connect to rsvpd as :
$ telnet 127.0.0.1
default password: zebra
zMPLS的安装与配置的更多相关文章
- JDK安装与配置
JDK安装与配置 一.下载 JDK是ORACLE提供免费下载使用的,官网地址:https://www.oracle.com/index.html 一般选择Java SE版本即可,企业版的选择Java ...
- Node.js 教程 01 - 简介、安装及配置
系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...
- 烂泥:redis3.2.3安装与配置
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前一段时间写过一篇codis集群的文章,写那篇文章主要是因为当时的项目不支持redis自 ...
- mysql源码包手动安装、配置以及测试(亲测可行)
笔记编者:小波/qq463431476博客首页:http://www.cnblogs.com/xiaobo-Linux/ 记下这篇mysql笔记,望日后有用! redhat6采用centos yum源 ...
- 环境搭建系列-系统安装之centos 6.5安装与配置
按照国际惯例,系列目录先奉上: 系列一:系统安装之centos 6.5安装与配置 系列二:准备工作之Java环境安装 系列三:数据为先之MySQL读写集群搭建 系列四:谈分布式之RabbitMQ集群搭 ...
- ZooKeeper安装与配置
一. 单机安装.配置: 1. 下载zookeeper二进制安装包下载地址:http://apache.dataguru.cn/zookeeper/zookeeper-3.4.3/zookeeper-3 ...
- mac 下JDK 与 tomcat 的安装与配置
一.Mac下JDK的安装 1.先检测Mac是否已经安装过JDK,在终端中输入java 或者 javac 显示说明,表明已经安装过JDK,JDK版本查询终端键入java -version,终端会返回JD ...
- 烂泥:zabbix3.0安装与配置
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 这个月又快过完了,最近也比较忙,没时间写文章,今天挤点时间把zabbix3.0安装与配置 ...
- Jenkins入门系列之——02第二章 Jenkins安装与配置
2014-12-08:已不再担任SCM和CI的职位,Jenkins的文章如无必要不会再维护. 写的我想吐血,累死了. 网页看着不爽的,自己去下载PDF.有问题请留言! Jenkins入门系列之——03 ...
随机推荐
- python中uuid来生成机器唯一标识
摘要: 我们可以使用uuid1的后16位来标识一个机器. # use machine specific uuid, last 16 char will be the same if machine ...
- 最新最全的html5标签集合
最新最全的html5标签集合,按字母顺序排列的标签列表 4:指示在HTML4.01中定义了该元素 5:指示在HTML5中定义了该元素 标签 描述 <!--...--> 定义注释 <! ...
- struts1.x中web.xml文件的配置
1.配置欢迎文件清单 当客户访问Web应用时,如果仅仅给出Web应用的Root URL,没有指定具体的文件名.Web容器会自动调用Web应用的欢迎文件.<welcome-file-li ...
- char*赋值在常量区,不可以修改
char*赋值在常量区,不可以修改,要想修改,用数组. char* = "abc";*(pCh+1) = 'k';//编译正常,运行报错. char pCh[] = "a ...
- PAT (Advanced Level) 1068. Find More Coins (30)
01背包路径输出. 保证字典序最小:从大到小做背包. #include<cstdio> #include<cstring> #include<cmath> #inc ...
- git log 查看 当前分支的 提交历史
git log 查看 当前分支的 提交历史 在提交了若干更新之后,想回顾下提交历史,可以使用 git log 命令查看 默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排 ...
- sqlDataAdapter的FillSchema用法
摘自于网络:http://blog.csdn.net/bupt_zoucq/article/details/6653385 FillSchema是用来向DataTable中填入详细的元数据信息的,例如 ...
- switch条件语句规则
- mysql 触发器学习
1. 一个简单的例子 1.1. 创建表: create table t(s1 integer); 1.2. 触发器: delimiter | create trigger t_trigger befo ...
- CSS——京东首页实战总结
第一天成果 1.浮动的盒子不要给宽,内容撑起盒子的宽 在前端设计中,一般不给浮动的盒子设置宽,让其用内容撑起一个高度. 2.小三角的表示 ◇用一个盒子(盒子宽为字的宽,高度为字高度的一半)去截取这个菱 ...