do you really need to fork openwrt? - wordpress.comdo you really need to fork openwrt? sharing our...

46
Do you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware

Upload: others

Post on 26-Mar-2020

47 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Do you really need to fork OpenWRT?

Sharing our experience with

OpenWISP Firmware

Page 2: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Introducing myself

Federico CapoanoDeveloper

CINECA consortium (Italy)R&D division

OpenWiFi subdivision

Lead developer of openwisp.org,Contributor of ninux.org and battlemesh.org

Page 3: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Introducing the OpenWIFI service

Municipal WiFi for cities and regions

With 1st and 2nd level support 5 days a week

Based entirely on FLOSS solutions

Affordable cost

Page 4: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Widely deployed

Widely used in the Italian peninsula

Rome, Turin, Bari, and many more cities

Page 5: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

opendata.publicwifi.it

Page 6: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

The OpenWISP Project

Free software project (GPLv3)

offering a complete municipal wifi solution

(firmware, controller, monitoring, captive portal)

Page 7: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

OpenWISP users & contributors

Cineca

Unidata (ISP)

Other local ISPs

Page 8: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

OpenWISP Firmware

Based on OpenWRT

Deployed on over 3000 devices

Located in public places

Page 9: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Most common locations

● public squares● libraries● parks● metro stations● buses● shopping centers

Page 10: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Firmware main features

Remotely controlled from OpenWISP Manager

Layer 2 VPN to Captive Portal

Layer 3 Management VPN

3G/4G support

Page 11: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Development stage 1

Beginning of 2008

Brutal OpenWRT Fork

Kamikaze (7.09) version

Page 12: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Development stage 2

Beginning 2011Separate repository

Custom script for compilationNot a standard openwrt package

Very high customizationWorked with Backfire (10.03) only

Page 13: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Development stage 3

mid 2014

3 proper OpenWRT Packages:

(base, umts, mesh)

Still highly customized

Works with multiple OpenWRT versions

Page 14: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Packages for da win

Why packages are

the BEST choice for us?

Page 15: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Easy & Fast upgrades

Upgrading to new OpenWRT

releases is VERY easy

Page 16: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Easier maintainance

Less development time spent

on messing with forking issues

Money saved, developers happy!

Page 17: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer
Page 18: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Already deploying Chaos Calmer

OpenWISP Firmware 1.3.1 works with

Chaos Calmer (September)

and we are deploying it

in the real world right now

Page 19: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Without packages

2 (frigging) years to upgrade to

Attitude Adjustment

Page 20: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

With packages

In less than 1 month we started

deploying Chaos Calmer!

Page 21: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer
Page 22: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Let's talk about customizations

Custom UI

Bridging and VLANs not managed through UCI

Layer 3 VPN not managed through UCI

Configuration applied with custom scripts

Page 23: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Good things about customizations

We got what we wanted

and we got it fast!

Very good for the short term

Page 24: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Bad things about customizations

Page 25: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Most of our customizations are

dirty hacks

Page 26: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

When the initial developers left

New developers arrived and went crazy

Page 27: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Hard to maintain

Hard to add new features

Page 28: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Prevented us benefiting from

improvements to OpenWRT

(in the areas we customized)

Page 29: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer
Page 30: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Paying the price of customization

All these customizations are slowing us down!

We want to gradually get rid of them

and use the standard OpenWRT tools

Page 31: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Maintaining softwarerequires testing

let's talk about continous integration testing

Page 32: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Automated compilation stage 1

Jenkins CI setup for automatic compilation

each git commit triggers a build

A bit cumbersome to maintain over time

Page 33: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Automated compilation stage 2

Travis-CI for disposable test builds

Easier for development

https://github.com/claudyus/owrt-package-test

Still using Jenkins-CI for our own builds

Page 34: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Automated hardware testing?

Page 35: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Automated hardware testing?

Very hard, we had to put this task on hold

We'd be very happy to know more

about this topic!

Page 36: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Recap!

if you don't have a lot of resources

to maintain, secure and upgrade

your own customizations

you should definitely...

Page 37: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Do more packages

Compared to forks packages are:

Easier to maintain

Easier to document

Easier to use and contribute to

Page 38: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Do more packages

Reusable by the rest of the

OpenWRT community

Page 39: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Do more packages

Which means more people

will contribute to fix bugs

and security issues

Page 40: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Do one package for each problem

1 solution for each package

The Unix Philosophy:

Do one thing and do it well!

Page 41: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Avoid the “giant ball of mud”

Avoid solving too many problems

in one package

Or else you are headed for trouble

Page 42: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Stay close to OpenWRT

Upgrade easily

Benefit from new features in OpenWRT

Benefit from security upgrades

Easier to get support (IRC, mailing-list)

Easier to contribute back

Page 43: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Do automatic compilation testing

Check out

https://github.com/claudyus/owrt-package-test

Tell us more about your own solutions

Page 44: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Let's collaborate!

We would like to collaborate with

other research groups

or companies who share our values:

Free software, freedom of communication

Page 45: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer
Page 46: Do you really need to fork OpenWRT? - WordPress.comDo you really need to fork OpenWRT? Sharing our experience with OpenWISP Firmware. Introducing myself Federico Capoano Developer

Thank you!

Twitter:

@nemesisdesign

@OpenWISP

Github: github.com/openwisp