现在的IP网络的问题已经暴露的很多了,各种改进的网络架构与设想非常多,但其中以基于内容为中心的网络发展最为迅速,其中,NDN的架构最为完整,代码也比较成熟。OSPFN是基于CCNX的,所以之前要安装CCNX,简单的./configure  make   make install 就可以安装完成,自带很多例子可以跑跑。接下来安装OSPFN,由于还要配置,所以把过程记录在下面。

1.OSPFN安装

首先新建一个用户,并在/usr/local/etc下建两个目录:

$ sudo useradd quagga
$ cd /usr/local/etc/
$ sudo mkdir quagga
$ sudo chown quagga:quagga quagga
$ sudo chmod 775 quagga
$ sudo mkdir quagga-state
$ sudo chown quagga:quagga quagga-state
$ sudo chmod 775 quagga-state

之后,运行./configure,这里要注意,ubuntu12.04下,/var/run路径每次重启里面新建的quagga-state文件夹会消失,费了好长时间才发现这个问题,修改的./configure如下:

./configure --enable-opaque-lsa --disable-ipv6 --disable-ripd --disable-ripngd --disable-ospf6d --disable-bgpd --disable-bgp-announce --sysconfdir=/usr/local/etc/quagga --localstatedir=/usr/local/etc/quagga-state

然后,执行make 和install:

make
make install

至此,OSPFN安装完毕。

2.OSPFN配置

首先要得到GRE隧道的IP,由于没有加入到他们的testbed中,所以自己设置一个就好了。

Public IP: 141.225.11.150                    Public IP:150.135.82.77
________________________ 10.0.1.10 10.0.1.9 ___________________
|netlogic.cs.memphis.edu |___________________|hobo.cs.arizona.edu|
------------------------ -------------------

上图是官网配的图,NDN testbed使用的是10.x.x.x的私有IP地址,因为没有加入进去,所以就还使用它们就好了。Public IP就是本机的IP,由于本地路由器,IP也是10.x.x.x的。。。但还是可以区分出来的~

sudo modprobe ip_gre

之后,在/etc/network/interfaces文件中添加如下:

auto lo
iface lo inet loopback auto netlogic
iface netlogic inet static
address 10.0.1.9
netmask 255.255.255.0
broadcast 10.0.1.255
up ifconfig netlogic multicast
pre-up iptunnel add netlogic mode gre local 10.0.0.104 remote 10.0.0.108 ttl 255
pointopoint 10.0.1.10
post-down iptunnel del netlogic

这里,本机IP是10.0.0.104,另一台机子IP是10.0.0.108,相应的两个隧道IP是10.0.1.9和10.0.1.10。现在ifconfig一下:

lo        Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 跃点数:1
接收数据包:134812 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:134812 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0
接收字节:7722612 (7.7 MB) 发送字节:7722612 (7.7 MB) netlogic Link encap:未指定 硬件地址 C0-A8-00-66-30-30-30-30-00-00-00-00-00-00-00-00
inet 地址:10.0.0.10 点对点:10.0.0.9 掩码:255.255.255.255
inet6 地址: fe80::5efe:c0a8:66/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1476 跃点数:1
接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:0 错误:20 丢弃:0 过载:0 载波:20
碰撞:0 发送队列长度:0
接收字节:0 (0.0 B) 发送字节:0 (0.0 B) wlan0 Link encap:以太网 硬件地址 00:1f:3a:28:df:41
inet 地址:10.0.0.104 广播:10.0.0.255 掩码:255.255.255.0
inet6 地址: fe80::21f:3aff:fe28:df41/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:715225 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:474374 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:785890455 (785.8 MB) 发送字节:60896981 (60.8 MB)

发现有了netlogic。然后配置ospfd.conf文件。内容如下:

hostname netlogic_kl
password pwd
enable password pwd
log file /var/log/quagga/ospfd.log
!
!
!
interface netlogic
description link to netlogic_zero
!
access-list ospfn permit 10.0.0.0/8
access-list ospfn deny any
!
router ospf
ospf router-id 10.0.0.104
redistribute connected
distribute-list ospfn out connected
network 10.0.1.8/30 area 0.0.0.0
capability opaque
!
line vty
!
!end of configuration file hereog stdout

这个基本上就是官方文档的例子,只是把IP给改成相应的IP。

最后就是最关键的ospfn.conf文件。这个官网的说明文档中没有详细说明,我就把它放在/usr/local/etc/quagga目录下,经测试完全可用。目前OSPFN支持两个命令:ccnname和logdir。说明如下:

1. ccnname name_prefix op_id

name_prefix : a name prefix, in URI format, to be advertised by this router.
op_id : the desired ID for this name LSA. The op_id must be unique among
the name prefixes advertised by the same router. 2. logdir dir dir : directory to write log files to

我的ospfn.conf内容如下:

ccnname /ndn/ustc.edu/1318/ 1
ccnname /ndn/ustc.edu/1316/ 2
logdir /usr/local/etc/

最后,开启应用:

$ sudo zebra -d

$ sudo ospfd -d -a

$ ccndstart   

$ ospfn

截图如下:

在/usr/local/etc里生成了log,log内容如下:

20130814220419:Connecting to OSPF daemon ............
20130814220419:Connection to OSPF established.
20130814220419:ccnname /ndn/ustc.edu/1318/ 1
20130814220419: OpaqueData:19/ndn/ustc.edu/1318/|||
20130814220419:Originating/updating LSA with counter=0...
20130814220419:done, return code is -7
20130814220419:ccnname /ndn/ustc.edu/1316/ 2
20130814220419: OpaqueData:19/ndn/ustc.edu/1316/|||
20130814220419:Originating/updating LSA with counter=1...
20130814220419:done, return code is -7
20130814220419:logdir /usr/local/etc/
20130814220419:lsa_read called
20130814220419:lsa_update_callback:
20130814220419:ifaddr: 0.0.0.0
20130814220419:area: 0.0.0.0
20130814220419:is_self_origin: 1
20130814220419: LSA Header
20130814220419: LS age 0
20130814220419: Options 2 (*|-|-|-|-|-|E|*)
20130814220419: LS type 1 (router-LSA)
20130814220419: Link State ID 10.0.0.104
20130814220419: Advertising Router 10.0.0.104
20130814220419: LS sequence number 0x80000001
20130814220419: LS checksum 0xd577
20130814220419: length 36
20130814220419: Router-LSA
20130814220419: # links 1
20130814220419: Link ID 10.0.1.10
20130814220419: Link Data 255.255.255.255
20130814220419: Type 3
20130814220419: TOS 0
20130814220419: metric 10
20130814220419:lsa_read called
20130814220419:lsa_update_callback:
20130814220419:ifaddr: 0.0.0.0
20130814220419:area: 0.0.0.0
20130814220419:is_self_origin: 1
20130814220419: LSA Header
20130814220419: LS age 0
20130814220419: Options 2 (*|-|-|-|-|-|E|*)
20130814220419: LS type 5 (AS-external-LSA)
20130814220419: Link State ID 10.0.0.0
20130814220419: Advertising Router 10.0.0.104
20130814220419: LS sequence number 0x80000002
20130814220419: LS checksum 0x5ae6
20130814220419: length 36
20130814220419:lsa_read called
20130814220419:lsa_update_callback:
20130814220419:ifaddr: 0.0.0.0
20130814220419:area: 0.0.0.0
20130814220419:is_self_origin: 1
20130814220419: LSA Header
20130814220419: LS age 0
20130814220419: Options 2 (*|-|-|-|-|-|E|*)
20130814220419: LS type 5 (AS-external-LSA)
20130814220419: Link State ID 10.0.1.10
20130814220419: Advertising Router 10.0.0.104
20130814220419: LS sequence number 0x80000002
20130814220419: LS checksum 0xea4b
20130814220419: length 36

转载请注明:转自:http://blog.csdn.net/littlethunder/article/details/9971469

NDN路由--OSPFN安装与配置的更多相关文章

  1. PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置)

    目录 1. PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置) 1.1. 需要的软件 1.2. 启动 proxy dhcp 服务 1.3. 关键的几个配置文件 PXE 自动安装物理机 ( ...

  2. FreeBSD从零开始---安装后配置(二)

    系统优化及安全设置   上次说了FreeBSD基本的软件安装和配置,接下来会说系统的详细配置和安全性设置   一.系统优化设置   1.网络相关设置   网卡和IP地址设置: 如果在安装时没有设置IP ...

  3. LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  4. Centos6.5 Openvpn的安装与配置

    一.安装准备 ? 1 2 yum -y install openssl-devel openssl yum -y install gcc gcc-c++ 二.OpenVPN服务端安装过程1.lzo下载 ...

  5. [转]OpenVPN 安装与配置

    一.服务器端安装及配置 服务器环境:干净的CentOS6.3 64位系统 内网IP:10.143.80.116 外网IP:203.195.xxx.xxx OpenVPN版本:OpenVPN 2.3.2 ...

  6. ArchLinux安装与配置小结

    最近无意间发现一个基于ArchLinux的发行版--BlackArch,主题十分炫酷(中二).当然渗透类的Linux 发行版已经有BackTrack和Kali了,不过都是源于Debian的,使用者众多 ...

  7. 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  8. Sharepoint 2013 安装部署系列篇 第三篇 -- 安装和配置网络负载均衡在前端web服务器

    第一部分 系统集群安装 第二部分 SQL集群安装 第四部分 安装和配置sharepoint 场(三层拓扑部署) 接下来一步一步开始配置NLB吧, 以下开始讲解如何配置NLB集群作为sharepoint ...

  9. Asterisk 安装与配置

    如果用来管理 1.4 版本的 Asterisk ,可能会存在未知的问题.通过集成 CentOS . Asterisk 和 FreePBX , Fonality 公司提供了一个完全傻瓜式的 Asteri ...

随机推荐

  1. SGU 148.B-Station

    时间限制:0.25s 空间限制:4M  题目 在离著名的国家Berland不远的地方,有一个水下工作站.这个工作站有N层.已知:是第层装有Wi的水,最多可以容纳Li的水,恐怖分子炸毁第i的代价是Pi. ...

  2. Java多线程:Semaphore

    Semaphore为并发包中提供用于控制某资源同时可以被几个线程访问的类 实例代码: // 允许2个线程同时访问 final Semaphore semaphore = new Semaphore(2 ...

  3. 『重构--改善既有代码的设计』读书笔记----Inline Class

    如果某个类没有做太多的事情,你可以将这个类的所有特性搬移到另外一个类中,然后删除原类.可以看到,Inline Class正好和Extract Class相反,后者是将一个巨类分解成多个小类从而来分担责 ...

  4. 网页main中左边固定宽度,右边自适应。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 固定DIV样式

      <!doctype html>   <html>   <head>   <meta charset="UTF-8">   < ...

  6. 【Linux】常用命令

    一.文件结构     /:       根目录 /bin:    系统所需要的那些命令位于此目录. /boot:   Linux的内核及引导系统程序所需要的文件目录,GRUB或LILO系统引导管理器也 ...

  7. 那些年被我坑过的Python——一夫当关 第十三章(堡垒机初步设计)

      堡垒机架构 堡垒机的主要作用权限控制和用户行为审计,堡垒机就像一个城堡的大门,城堡里的所有建筑就是你不同的业务系统 , 每个想进入城堡的人都必须经过城堡大门并经过大门守卫的授权,每个进入城堡的人必 ...

  8. C++例题2:汉诺塔问题

    #include<iostream>#include<stdlib.h>using namespace std;void Hanoi(int n,char A,char B,c ...

  9. 我的HttpClients工具

    import java.io.IOException; import javax.ws.rs.core.MediaType; import org.apache.commons.httpclient. ...

  10. AES加密跨平台出现的问题

    javax.crypto.BadPaddingException: Given final block not properly padded at com.sun.crypto.provider.S ...