When should one build their own router?
- When you want to learn networking as @Zoredache says
- When you want to use any of Linux's advanced networking features on your own traffic in addition to routing/packet filtering/NAT, such as transparent bridging, Layer 2 filtering/frame mangling, QoS, SCTP, MPLS, Netflow, etc.
- If you want to host VPNs on your network such as OpenVPN or
pptp, doing that on the router makes things easy, especially if you want to bridge into your physical network.
What are some of the advantages/disadvantages in building your own?
- Advantages: you probably won't have a higher level of control over the traffic and what you can do with it without buying expensive networking equipment.
- Disadvantages: This is a critical machine that's the gateway to your network. So you need to invest in ways to keep it up constantly such as RAID, UPS, etc. It's also the same with anything that gives you more control, you have more responsibility - it's up to you to configure everything properly where you are secure, etc.
What are some of the knowledges you need to have before building it.
Basic knowledge of how TCP/IP works and how TCP/IP routing works, including the OSI model, and subnets. Know the format and meaning of each field in the IP header. Study the
ip command's syntax and capabilities. Tools like
tc are complex and will take you a long time to learn.
You'll likely be dealing with getting an IP from your ISP via DHCP, as well as handing them out to hosts on the rest of your network via DHCP, so knowing about Linux DHCP client and server tools is as must. You'll probably want to eventually do your own DNS so be prepared to get into that. Knowledge of routing protocols such as RIP, OSPF, BGP isn't needed unless you want to do multi-site setups with multiple routers in your LAN (really complex stuff).
What is your insight in building a router?
Never going back to a plastic router if I can help it. I have learned a lot and like the level of control I have.
Should one who is very interested in building their own web server look into building their own router?
Not unless you really want to get into lower-level stuff about how the Internet and TCP/IP works. It's convenient to run your webserver on your router but sort of bad from a security perspective.