Hi all,
I want to build a router from scratch, chip by chip ... and program everything - just for fun.
Does anyone have any idea how can I get started? Is there any comprehensive guide for this ?
Thanks !
Old PC running Linux with a bunch of network cards can become a router... but if you want custom ASICs and stuff, maybe taking apart and reassembling an 1841ISR would do?
I want to build it from scratch.
To program all hardware and software from zero.
I know it is a lot of work, but I have a lot of free time now :-)
Well, for software, look at some of the FreeBSD router projects to get an idea of what code to use.
For hardware, you'll build out a PC, basically. If you want to actually get chips to burn ROMs into, I can't help you there. Too much hardware for me.
On the hardware side look at Raspberry Pi and if you want to look deeper than that look around for embedded systems. Also it would help tons if you are already an expert at programming; otherwise it will be a challenging project. :)
I'm not an expert at programming,
I took some curses in C/C++/assembly .. have written few codes in some other weird languages that worked quite well.. I'm basically OK with programming.
Not an expert on hardware part either, once I've build a robot which was controlled via a transmitter I attached to the RS-232 exit... it even worked - but it was quite a long time ago.
If there was some comprehensive guide on how to get started... It would be great.. it would give me the first push I need.
I'd start with a bloody switch first before graduating with a router :)
Perhaps get your feet wet with a stock standard openflow switch. go from there.
I've got an Intel NUC here running Linux for a router. Many possibilities and tools, much to learn. Custom encryption and the like.
But I suppose you want to go deeper than that, after all iptables is just another premade package.
Someone once told me that you can do it all from scratch on an Arduino. It does not have a lot of processing power, but the ability to play with the circuits directly would allow some ASIC-like behaviour.
If you want to use it for professional purposes eventually, I would follow wintermute and check Openflow.
I can say that you should absolutely NOT run your own encryption code in an environment exposed to the Internet. When you encrypt, use a standardly-available package that has been tried and tested by the mathematicians.
For data plan you might start with Broadcom as they provide most open hardware chipsets. This will give you your data plane.
For the control plane I would assume any x86 based system would work.
Now if you just throw em all in a toaster or glue them together with elmers is beyond me :)
Have fun and hope that gives you a start!
Pfsense boxes aren't too bad either.
guy here where I work is writing code for a router in Java.
Quote from: ristau5741 on August 24, 2015, 08:00:29 AM
guy here where I work is writing code for a router in Java.
For the love of mankind, don't do that.
Quote from: Reggle on August 24, 2015, 08:07:56 AM
Quote from: ristau5741 on August 24, 2015, 08:00:29 AM
guy here where I work is writing code for a router in Java.
For the love of mankind, don't do that.
+1 everyone knows you do this type of stuff in Visual Basic. Duh...
pfSense is to be installed on hardware on the software or firmware part of the router. pfSense is a free network firewall distribution which is based on the FreeBSD OS and has a custom kernel with third party software packages or "add-ons" to add more functionality and features to your high performance router.
Quote from: AnthonyC on August 22, 2015, 07:32:33 PM
On the hardware side look at Raspberry Pi and if you want to look deeper than that look around for embedded systems. Also it would help tons if you are already an expert at programming; otherwise it will be a challenging project. :)
Banana PI has a router board. RPI shares the Ethernet connection with the USB hub. Banana PI is using an A20 AW arm chip with dedicated connection, plus on-board lan (think it was realtek)
BTW, just updated my network to a dedicated security appliance using pfsense. So much better than using it in a VM. [emoji1]