CCN-lite的安裝及場景實現

CCN-lite是CCN的一個輕量實現。git

網站:http://www.ccn-lite.net/github

最新源碼:https://github.com/cn-uofbasel/ccn-lite/releases/tag/0.3.0網站


Ubuntu下的安裝:.net

1.須要openssl的庫支持:rest

sudo apt-get install libssl-dev

2.設置環境變量

export CCNL_HOME="`pwd`/ccn-lite"
export PATH=$PATH:"$CCNL_HOME/bin"

其中pwd是ccn-lite的上層目錄。


這裏利用export設置的環境變量是臨時的,一旦關機重啓失效,能夠利用修改profile文件永久保存該環境變量,具體方法自行百度。code


3.編譯安裝xml

cd $CCNL_HOME/src
    make clean all



CCN-lite實際運行:blog

場景:內存



場景分析:ssl

須要三臺pc,分別做爲client, relayA,relayB。content store存在relayB的內存中。其中relayA須要雙網卡支持,分別鏈接client和relay
B,能夠看出relayA做爲路由轉發。


client配置:設置靜態IP,修改interfaces文件便可。假設IP爲192.168.0.6

relayB配置:設置靜態IP: 192.168.0.10

relayA配置:兩個網口設置dhcp而不是靜態IP,而後利用brctl命令創建網橋,將eth0和eth2鏈接在一塊兒,並設置網橋的IP:192.168.0.100


relayA interfaces文件配置:

auto eth0
iface eth0 inet dhcp
auto eth2
iface eth2 inet dhcp

網橋搭建:

sudo brctl addbr br0
sudo brctl addif br0 eth0
sudo brctl addif br0 eth2
sudo ifconfig br0 192.168.0.100 netmask 255.255.255.0 up


以上就是準備工做。


接下來是利用ccn命令實現數據傳輸:

relayB:

1.創建content store:

$CCNL_HOME/bin/ccn-lite-mkC -s ndn2013 "/ndn/test/mycontent" > $CCNL_HOME/test/ndntlv/mycontent.ndntlv

2.開啓relay模式:

$CCNL_HOME/bin/ccn-lite-relay -v trace -s ndn2013 -u 9999 -x /tmp/mgmt-relay-b.sock \
  -d $CCNL_HOME/test/ndntlv

這裏的-u 9999表示9999端口做爲UDP監聽端口,也就是A發送interest給B時要輸入9999端口號。

relayA:

1.開啓relay模式:

$CCNL_HOME/bin/ccn-lite-relay -v trace -s ndn2013 -u 9998 -x /tmp/mgmt-relay-a.sock


這裏的-u 9998表示9998端口做爲UDP監聽端口,也就是client發送interest給A時要輸入9998端口號。


2.添加轉發規則

FACEID=`$CCNL_HOME/bin/ccn-lite-ctrl -x /tmp/mgmt-relay-a.sock newUDPface any 192.168.0.10 9999 \
  | $CCNL_HOME/bin/ccn-lite-ccnb2xml | grep FACEID | sed -e 's/^[^0-9]*\([0-9]\+\).*/\1/'`

這裏的newUDPface是 要發往下一跳的IP和端口,也就是relayB的IP和端口號9999.


$CCNL_HOME/bin/ccn-lite-ctrl -x /tmp/mgmt-relay-a.sock prefixreg /ndn $FACEID ndn2013 \
  | $CCNL_HOME/bin/ccn-lite-ccnb2xml


client:

1.發送interest to A

$CCNL_HOME/bin/ccn-lite-peek -s ndn2013 -u 192.168.0.100/9998 "/ndn/test/mycontent" \
  | $CCNL_HOME/bin/ccn-lite-pktdump
這裏的-u就是A的IP和端口。與上面的相似。




以上就是本人對於CCN的場景的實現,轉載請說明出處。

相關文章
相關標籤/搜索