NDN路由--OSPFN安裝與配置

       現在的IP網絡的問題已經暴露的很多了,各種改進的網絡架構與設想非常多,但其中以基於內容爲中心的網絡發展最爲迅速,其中,NDN的架構最爲完整,代碼也比較成熟。OSPFN是基於CCNX的,所以之前要安裝CCNX,簡單的./configure  make   make install 就可以安裝完成,自帶很多例子可以跑跑。接下來安裝OSPFN,由於還要配置,所以把過程記錄在下面。

        1.OSPFN安裝

        最開始需要安裝一些必備軟件:
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install m4
sudo apt-get install libssl-dev
sudo apt-get install libexpat-dev
sudo apt-get install libpcap-dev
sudo apt-get install ant
sudo apt-get install openjdk-7-jdk
sudo apt-get install gawk
sudo apt-get install dia
sudo apt-get install texinfo


        首先新建一個用戶,並在/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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章