[riot-users] CoAP Servers + Border Routers on 6LoWPAN+RPL

Lennart Dührsen lennart.duehrsen at fu-berlin.de
Thu Mar 10 20:41:10 CET 2016

[putting you in CC because I don't know if you subscribed the mailing list]

Hi Bruno,

I'll give you a few hints:

> I've seen a lot of keywords out there (e.g.: desvirt, ethos/ethos_br,
> tun/tap devices, ZEP, marz, tunslip, ...), but I'm still unable to figure
> out the best way I could achieve the following scenario I want to build.

desvirt [0] is the virtualization framework for the DES-Testbed (=actual 
hardware) [1] at FU Berlin. You can use desvirt to simulate arbitrary network 
topologies of RIOT nodes on your computer. The virtual nodes will be instances 
of the native port [2]. These will communicate using virtual network 
interfaces, so called tun/tap devices. A tun interface works on layer 3 (i.e. 
it gives you IP packets), a tap interface, which is what the native port uses, 
works on layer 2. tunslip [3] enables you to send IP packets over a serial 
interface. The border router makes use of this; the RIOT node sends IP packets 
over a serial interface to a Linux host, on which you can retrieve said 
packets from a tun interface. Concerning ZEP and marz, I'd say those are not 
important for you (I can't speak for ZEP, but marz was just a quick hack and 
to my knowledge doesn't work anymore).

> Just to provide context/motivation, and to present a few limitations as
> well, I would like to say:
> - I want to build this because it seems to cover, on a very general way, a
> typical scenario of distributed CoAP nodes forming a LoWPAN using the IETF
> stack (CoAP+UDP+RPL+6LoWPAN+802.15.4);

RIOT supports 802.15.4, 6lowpan, IPv6, RPL, UDP, and CoAP. There's a tutorial 
for RPL in the wiki [4]. microcoap [5] is the CoAP library used by most RIOT 
folks, but I suggest you use this fork [6] instead, because microcoap is not 
being maintained anymore and lacks documentation.

> - For my master thesis I want to investigate security scenarios/issues on
> IoT, and at least initially, I would like to do that with RIOT (great open
> source project, congratz guys!).
> - *I believe this scenario would allow me to do this investigation over the
> whole stack of protocols, with nodes taking different roles and so on*;
> - I would really like a way to accomplish this --- or some closely-related
> form --- using only native, because we're very *limited on re$ource$*, but
> if needed we could try to buy some samr21-xpro (which seems to be the most
> developed in RIOT right now) or some cheaper hardware to use with XBee
> shields (or any other suggestion from you guys);

Can you further specify what exactly you want to investigate? Basically,
nothing in the IoT is secure in any way. You could start with the hardware
that doesn't provide MMU's, operating systems (or the lack thereof) and their
bugs, address spoofing, DDoS attacks, data integrity, encryption (DTLS) and
so on.

> ​Is that possible/feasible? What would be the best (or at least
> least-problematic) way to achieve that given my thoughts above?

Again, depends on what exactly you want to look at.

> Ps.: I was also able to run RIOT on Cooja, but as far as I understand I
> would have to develop a lot on Cooja to support the network interactions I
> would like to see (and also support a board to which I can compile CoAP
> server applications, since telosb doesn't even have netif nor memory, from
> what I understood). This could be a way to go, but not my preferred one.

I suggest you stick to RIOT OS on native and desvirt, then ;)

Hope this helps; best regards and good luck,

[0] https://github.com/des-testbed/desvirt
[1] http://des-testbed.net/node/4
[2] https://github.com/RIOT-OS/RIOT/wiki/Board%3A-native
[3] https://github.com/RIOT-OS/RIOT/tree/master/dist/tools/tunslip
[4] https://github.com/RIOT-OS/RIOT/wiki/Tutorial:-RIOT-and-Multi-Hop-Routing-with-RPL
[5] https://github.com/1248/microcoap
[6] https://github.com/i2ot/microcoap

More information about the users mailing list