HACKER Q&A
📣 fierro

Best way to learn networking fundamentals quickly


I have been tasked with getting traffic from AWS, to a colo, and out through a private link to a third party. I am a bit out of my depth here. How can I quickly learn to design and configure networks? I learned the basics of networking in university, and can work my way around all of the cloud provider networking primitives.

However, this seems like a different beast. I need to learn about cross-connects, DHCP, ARP, BGP/ASNs, firewalls, etc. The reason I have found this difficult so far is that educational content I am discovering falls roughly into two categories: 1) Network programming, i.e how to use Unix sockets and system calls 2) Virtual networking, i.e AWS/GCP networking primitives which are useful and important but I believe I need to go further.

I am not exactly sure where to start and am hoping for some direction. A Cisco certification course? An MIT OCW networking 101 course? I have limited time and am looking to become simply proficient and provisioning and configuring to get my team unblocked.

Thank you so much in advance.


  👤 jka Accepted Answer ✓
Beej's Guide to Network Programming is a classic: https://beej.us/guide/bgnet/

👤 mikem170
Maybe see if you can find a Cisco CCNA study guide to flip though? Here's a syllabus [0].

This will give you a good foundation in layers 1-4 and routing, but stops short of bgp. You can tackle bgp separately, afterwards. Routing with bgp can get tricky, it's a bit different in that it sits on top of other routing protocols, routing between separate routing/admin/policy domains, not devices. Routing can be a lot of fun. Keep it simple to avoid surprises!

For me it was a while ago, but the cisco material explained how things worked at a packet/protocol level, and that "clicked" for me, things like how a host finds a router, how routers find each other, how routing protocols build a map of the network, etc. There are well defined protocols for all of this. The cisco study material did a good job of explaining all of this stuff. The CCNA is the introduction, and there's other study guides going into greater depth on various networking topics.

The nice thing about networking is that once you know the concepts it's not difficult to move between implementations.

[0] https://www.nwexam.com/cisco/cisco-200-301-certification-exa...


👤 rahimnathwani
As others have said, CCNA study materials are probably a good start.

If you want to start understanding the point of of ASNs and BGP, this page isn't bad: https://www.cloudflare.com/en-gb/learning/network-layer/what...

Given what you've described about your task, you probably only need to learn TCP/IP, and don't need to learn about the lower layers (what the OSI model calls the physical and data link layer) or the upper ones (e.g. you probably don't care about whether your routers are carrying HTTP, SMTP or whatever).

Internet: collection of LANs

MAC address: the hardware address that uniquely identifies a network card, but is only visible to other devices on the same LAN

IP address: an address that uniquely identifies a device on the internet

Subnet: a subset of the IP address space, that's used for a LAN

DHCP: the protocol routers use to assign an IP address to each device on the LAN

ARP: the protocol used by a device on a LAN to find another device on the same LAN, when it knows the IP address but needs the MAC address. (You need the MAC address to send a packet to a device on your LAN)

Router: has more than one network interface, with each interface on a different network. At home, your router is connected to your LAN, and to your ISPs network.

ASN: A network that has a permanent allocation of part of the IP addr as space.

BGP: the protocol used for one router to tell another router what networks it can route traffic to.

How do you send traffic to devices when you aren't on the same LAN? You send them to your router (whose IP address you find out when you're assigned an IP address via DHCP, and whose MAC address you can find using ARP).


👤 brutus1213
Actually the Cisco course is what you need. CSIP or something? They have tons of videos and books. You should also seriously consider a home lab to play around with the network config ... i.e. get routers, switches, etc. People sell homelabs after they do the cisco exam. I never did the exam but found the homelab and videos quite useful when I was in a position similar to you. Be prepared for a firehose of info and it takes A LOT of time.

👤 mixmastamyk
Do you have money or time, or both?

If you have money, you could hire a network engineer on contract, and have them teach what they are doing while they set it up. Combined with some book learning, you could take over the job later. If the hire works out, make them an offer to stay.


👤 donnanorton

👤 misterioss
"What happens when you type google.com into your browser's address box and press enter?" https://github.com/alex/what-happens-when

👤 austincheney
Download the Packet Tracer application from Cisco.

https://en.m.wikipedia.org/wiki/Packet_Tracer

It won’t get you a CCNP it will really help you towards a CCNA.


👤 techjuice
I recommend getting a subscription to something like oreilly.com so you can get access to official books and videos from vendors to go through the following certification material. As what you are wanting to do is not covered in introductory courses or covered in depth enough with the free options and you will need the good stuff in order to be able to be confident and not mess things up very badly. https://www.oreilly.com/

Key here will be to go through the material and study it, and implement what you learned. You can sit for the actual exams if you want at a later time. These will give you an expert foundation as if you mess it up you could cause an outage and require someone else to come in and do the work for you. Though if you do find yourself overwhelmed it is probably best to have a consultant come in and do this for you instead as this could be outside your current capabilities and experience. It is best as a growing engineer to know when you don't know something or acknowledge something being out of your depth and asking for help vs taking on something too big for you at the time and failing hard for it. It is also easier to move forward and gain trust of your company to have someone else that is experienced in this type of work come in and take care of it quickly vs trying to learn all of this in a short time and increase the of risk factor of project failure. Either way this should be a great learning experience and the following should help you out with it.

Physical colocation hardware and networking:

CCNP

- Implementing and Operating Cisco Enterprise Network Core Technologies (ENCOR)

- Implementing Cisco Enterprise Advanced Routing and Services (ENARSI)

CCNP Security

- Implementing and Operating Cisco Security Core Technologies (SCOR)

- Implementing Secure Solutions with Virtual Private Networks (SVPN)

AWS Networking Connectivity and Administration Baseline

- AWS SysOps Administrator

- AWS DevOps Engineer

- AWS Advanced Networking Speciality

This will give you the strong baseline to understand how to: Properly setup a secure Point to Point VPN connection between AWS and your colocation or how to use VPC endpoint AWS PrivateLink and Direct connect setup between AWS and your colo along with setting up your colo to properly and securely router the desired traffic to the third party and be confident that it is actually secure and reliable.


👤 KiranRao0
Unfortunately not thick, but instead very thorough is the TCP/IP guide: http://www.tcpipguide.com/

Very good as a spot reference.


👤 dharmab
Read the RFCs- they're surprisingly accessible.

Start with the TCP and IP related ones in the 7XX range, then branch out into HTTP, DNS, DHCP and so on.