美文网首页我爱编程
Contiki边界路由

Contiki边界路由

作者: happy1993 | 来源:发表于2016-06-28 14:36 被阅读830次
导语

边界路由器位于网络的边沿,可以通过使用其内建的网络接口与外界交流,这些网络接口如wifi,以太网,串口等。


Image.png

  在contiki中现在最常用的边界路由应用实现了基于串口的接口,叫做SLIP,它允许使用脚本(脚本如tools/tunslip6文件夹中的tunslip6),通过串口连接一个给定的节点到主机(host),创建一个隧道网络接口,这样就能获得IPv6前缀来设置全局网络IPv6地址了。

  1. 代码设置
      边界路由应用位于examples/ipv6/rpl-border-router,关键代码如下:
  /* Request prefix until it has been received */
  while(!prefix_set) {
    etimer_set(&et, CLOCK_SECOND);
    request_prefix();
    PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
  }
 dag = rpl_set_root(RPL_DEFAULT_INSTANCE, &ipaddr);
  if(dag != NULL) {
    rpl_set_prefix(dag, &prefix, 64);
    PRINTF("created a new RPL dag\n");
  }

一旦前缀被分配好了,节点就会设置前缀并将自己转换成根节点(DODAG)。
  一般把边界路由器配置成一个非睡眠设备,射频接收器一直打开,可以通过project-conf.h配置边界路由器。

#undef NETSTACK_CONF_RDC
#define NETSTACK_CONF_RDC nullrdc_driver

边界路由器默认包含一个内建的web server,显示关于网络的信息,如immediate neighbors(1-hop located)和已知的routes to nodes in their networks。
  为了打开web server,WITH_WEBSERVER标志位要被打开,这默认添加到httpd-simple.c

  1. 上手实验
      使用avr-atmega128rfa1平台,打开终端,输入
make TARGET=avr-atmega128rfa1 savetarget
make border-router
make border-router.hex

使用atmel studio自带的Device Programming工具,利用JTAGICE mkii将hex文件烧写到节点中。

烧写界面

然后将节点连接到ubuntu虚拟机,使用如下命令查看连接:

dmesg | grep ttyUSB
观察节点是否连接上虚拟机
  运行contiki/tool文件夹下的tunslip6工具,在这之前要先对它进行编译:
cd tools
cc tunslip6.c -o tunslip6

接着运行:

sudo ./tunslip6 aaaa::1/64 -s /dev/ttyUSB0 -B 38400

注:其中38400是串口通信的波特率,我尝试了一下将aaaa改为bbbb,在后面的试验中ping6 aaaa::1是ping不通的ping6 bbbb::1就可以ping通了,因此这个命令应该就是给地址加一个前缀。
  可以看到:


  此时可以输入如下命令:
ping6 aaaa::1

可以看到如下(按ctrl+c结束程序):

至此,试验结束。

相关文章

  • Contiki边界路由

    导语 边界路由器位于网络的边沿,可以通过使用其内建的网络接口与外界交流,这些网络接口如wifi,以太网,串口等。 ...

  • EIGRP 注入默认路由的三种方法

    1.静态重分布 在边界EIGRP边界路由器上添加默认路由,然后在EIGP中使用redistribute命令 2...

  • [CCNA图文笔记]-31-NAT协议实例详解

    0×1.NAT概述简单的来说,NAT是将私有IP地址通过边界路由转换成外网IP地址,在边界路由的NAT地址转换表中...

  • Contiki-NG中定制MODULE

    开发基于Contiki-NG的应用,通常需要编写特有的服务或者功能或者模块。 首先介绍一下Contiki-NG的基...

  • contiki--process详解

    Contiki内核结构 嵌入式系统可以看作是一个运行着死循环主函数系统,Contiki内核是基于事件驱动的,系统运...

  • 路由重分发(一)

    1. 路由重分发的概念: 重分发是指连接到不同路由域(自治系统)的边界路由器在它们之间交换和通告路由选择信息的能力...

  • contiki协议总结

    之前做传感网一直在tinyOS系统下,contiki只是稍微了解,近来实验室突然接到contiki下的一个项目,所...

  • Contiki memb

    Contiki提供了三种内存分配机制:memb机制、mmem机制和标准C语言库中的堆内存分配机制。memb最常使用...

  • 如何通过BGP发布默认路由?

    路由设备使用默认路由将数据包转发到路由表中不可用的目标网络。 这些是配置运行边界网关协议(BGP)的路由器以向其B...

  • 渗透测试之三层发现

    三层发现:优点:可路由,速度比较快 缺点:速度比二层慢,容易被边界防火墙过滤 路由追踪:1,tra...

网友评论

    本文标题:Contiki边界路由

    本文链接:https://www.haomeiwen.com/subject/gmrtjttx.html