Post

Turris - The Open Enterprise Wi-Fi Router

Turris - The Open Enterprise Wi-Fi Router

Turris - The Open Enterprise Wi-Fi Router

Original post from linux.xvx.cz

A few months ago I joined the Turris project (turris.cz) which is a not-for-profit research project of CZ.NIC. I don’t want to describe the details of the project, because you can find it on its web page. In short the company standing behind the project takes care of Internet security and their idea was to measure the number of attacks / suspicious traffic by giving the wifi routers to the participants.

The wifi router was designed by the company and it’s quite a powerful machine that costs $600. In the first “round” some project members got the wifi router for free so I would like to share here the details about it, because it’s open hardware/software platform.

Hardware

The details about the hardware including design and manufacture data is published under the terms of the CERN Open Hardware License and can be found here: Hardware documentation. These details are really nice, because everybody can look at it and improve…

Here are some pictures of how the router looks:

Turris router front view in metal enclosure

The well-designed metal box looks much better than any cheap routers I worked with before.

Another photo showing it from the back side:

Turris router back view showing ports

Let’s see the hardware side - which is really interesting:

  • Processor Freescale P2020 running at 1200 MHz
  • 2 GB of DDR3 RAM in a SO-DIMM slot
  • 16 MB NOR and 256 MB NAND flash
  • Dedicated gigabit WAN and 5 gigabit LAN ports (using the QCA8337N switch chip)
  • Wifi 802.11a/b/g/n with 3x3 MIMO and removable external antennas
  • 2x USB 2.0 port
  • 1 free miniPCIe slot
  • UART, SPI and I2C connected to a pin-header for easy customization
  • Power consumption is 9.5 W without load, 12.5 W with CPU load and 14 W with maximum wired and Wifi network load. Measured power consumption includes the supplied power adapter.

Software - OpenWrt

The most important part (at least for me) is - the router is delivered with preinstalled OpenWrt. The router itself was designed to “fit” to this Linux distribution. Again all software used can be found in git repositories: https://gitlab.labs.nic.cz/public/projects?search=turris

The details about used software are here: https://www.turris.cz/en/software

Once you turn on the router you have to finish the wizard which will help you do the basic configuration and register the router.

After the registration you can see these stats, collected by router and sent to the NIC.cz.

Screenshots from wizard are in the photo gallery at the end.

Here are some outputs of the commands executed on the fresh router, which may be interesting:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
root@turris:~# ifconfig -a
br-lan    Link encap:Ethernet  HWaddr D8:58:D7:00:02:DC
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::da58:d7ff:fe00:2dc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:475 errors:0 dropped:0 overruns:0 frame:0
          TX packets:389 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:41385 (40.4 KiB)  TX bytes:155374 (151.7 KiB)

eth0      Link encap:Ethernet  HWaddr D8:58:D7:00:02:DC
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:892 (892.0 B)
          Base address:0xa000

eth1      Link encap:Ethernet  HWaddr D8:58:D7:00:02:DD
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:742 (742.0 B)
          Base address:0xc000

eth2      Link encap:Ethernet  HWaddr D8:58:D7:00:02:DE
          inet addr:89.102.175.10  Bcast:89.102.175.255  Mask:255.255.255.0
          inet6 addr: fe80::da58:d7ff:fe00:2de/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:648 errors:0 dropped:0 overruns:0 frame:0
          TX packets:346 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:194087 (189.5 KiB)  TX bytes:35119 (34.2 KiB)
          Base address:0xe000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:104 errors:0 dropped:0 overruns:0 frame:0
          TX packets:104 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:8610 (8.4 KiB)  TX bytes:8610 (8.4 KiB)

teql0     Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 60:02:B4:7D:85:CD
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:474 errors:0 dropped:0 overruns:0 frame:0
          TX packets:393 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:48015 (46.8 KiB)  TX bytes:163832 (159.9 KiB)

Compared to the cheap routers there is much more disk space:

1
2
3
4
5
6
root@turris:~# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                  249.0M     31.6M    217.4M  13% /
/dev/root               249.0M     31.6M    217.4M  13% /
tmpfs                  1013.9M    312.0K   1013.6M   0% /tmp
tmpfs                   512.0K      4.0K    508.0K   1% /dev

The same applies to the memory used by applications:

1
2
3
4
5
root@turris:~# free
             total         used         free       shared      buffers
Mem:       2076428        67700      2008728            0            0
-/+ buffers:              67700      2008728
Swap:            0            0            0

A two-core processor can be handy as well:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
root@turris:~# cat /proc/cpuinfo
processor       : 0
cpu             : e500v2
clock           : 1200.000000MHz
revision        : 5.1 (pvr 8021 1051)
bogomips        : 150.00

processor       : 1
cpu             : e500v2
clock           : 1200.000000MHz
revision        : 5.1 (pvr 8021 1051)
bogomips        : 150.00

total bogomips  : 300.00
timebase        : 75000000
platform        : P2020 RDB
model           : Turris
Memory          : 2048 MB

The rest of the commands can be seen in my GitHub repository. On the same page you can see the “original” /etc directory compressed right after I finished the “connection wizard”.

Next pictures are showing the original package, t-shirt, invoice, etc:

Turris package contents with t-shirt

Turris shipping box

Turris package opening

Turris router in packaging

Turris router unboxing

Turris router with accessories

Turris router antennas

Turris router power adapter

Turris router enclosure detail

Turris router side view

Turris router top view

Turris router bottom view

Turris router label and specifications

Turris router ports closeup

Turris router LED indicators

Turris router assembled front view

Turris router assembled back view

Turris router with antennas attached

Turris router running

Turris setup wizard screenshot 1

Turris setup wizard screenshot 2

Turris web interface screenshot 1

Turris web interface screenshot 2

Turris web interface screenshot 3

Next time I’ll describe the additional OpenWrt configuration which I did to make the router work better.

This post is licensed under CC BY 4.0 by the author.