I’ve been slowly working my way though a list of skills to learn, both to put on my resume and as personal growth. Networking is the next thing on this list. I am not sure what I am looking for, but I want to start another project. I have built many a personal computer, but the world of networking is a pretty foreign concept to me.

I have experience with building computers and a minor glance at the network-side of things. I’ve set up a Pi-Hole or two and set a basic CUPS server up on a RPi0w, but beyond that, I have no idea what I’m doing, or even what the possibilities are. I just see posts like this and think that it’s a pretty cool hardware project.

Is there any resources you recommend to start learning, maybe what the hardware does? From my outsider’s perspective, I see a lot of people’s racks have at least a router, switch, and firewall, along with various other machines.

E: thank you all for the suggestions! I’ll have to take some time to figure out what to do first

  • Snot Flickerman@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    30
    ·
    edit-2
    1 year ago

    Not necessarily in this order:


    1. Learn the OSI and TCP/IP layer models.

    2. Learn the fundamentals of IPv4 and IPv6. (Absolutely learn to count bits for IPv4)

    3. Learn and understand the use-cases for routers, switches, and firewalls.

    4. Learn about DNS. (Domain Name System)

    5. Learn about DHCP. (Dynamic Host Configuration Protocol)

    6. Learn important Port Numbers for important Services. (SSH is Port 22, for example. The range of port numbers from 1024 to 49151 are “registered ports” that are generally always the same)

    7. Learn about address classes. (A, B, C are the main ones)

    8. Learn about hardware addresses (MAC address) and how to use ARP to find them.


    And more! This is just off the top of my head. Until you’ve studied a lot more, please, for your own sake, don’t open your selfhosted ervices to the wider internet and just keep them local.


    And just for fun, a poem:

    The inventor of the spanning tree protocol, Radia Perlman, wrote a poem to describe how it works. When reading the poem it helps to know that in math terms, a network can be represented as a type of graph called a mesh, and that the goal of the spanning tree protocol is to turn any given network mesh into a tree structure with no loops that spans the entire set of network segments.

    I think that I shall never see

    A graph more lovely than a tree.

    A tree whose crucial property

    Is loop-free connectivity.

    A tree that must be sure to span

    So packets can reach every LAN.

    First, the root must be selected.

    By ID, it is elected.

    Least cost paths from root are traced.

    In the tree, these paths are placed.

    A mesh is made by folks like me,

    Then bridges find a spanning tree.

    — Radia Perlman Algorhyme

    • gramathy@lemmy.ml
      link
      fedilink
      English
      arrow-up
      6
      ·
      1 year ago

      Classful networking is well past dead, that’s kinda pointless. Learn VLSM and general subnetting basics instead.

      • Snot Flickerman@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        1 year ago

        I mean, isn’t it important to understand the fundamentals so you can understand VLSM better?

        Like math, a lot of this knowledge works better when you know the fundamentals and basics, which help you conceptualize the bigger ideas.

        On a personal level, I would have had a lot harder time understanding VLSM if I hadn’t had the basic fundamentals of traditional subnetting and classful networking under my belt.

        • gramathy@lemmy.ml
          link
          fedilink
          English
          arrow-up
          4
          ·
          1 year ago

          There’s nothing inherently important to classful networking you learn that’s necessary for VLSM. They amount to common convention based on subnet size, and even then nearly nobody actually uses A or B sized subnets except as summary routes, which again, is not inherent to classful networking.

          Classful networking has been obsolete for thirty years for good reason, you gain nothing from restricting yourself in that way.

          • Snot Flickerman@lemmy.blahaj.zone
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 year ago

            How are you “restricting” yourself by learning that it exists? Nobody is saying “learn about it and use it and never consider anything else.” They asked what fundamentals they should know for networking, and I dumped what I considered the “fundamentals.”

            • gramathy@lemmy.ml
              link
              fedilink
              English
              arrow-up
              1
              ·
              1 year ago

              Nothing actually uses classful networking anymore. Any situation where classful network concepts are implemented is necessarily limiting the capabilities of the network. As such it’s completely useless to bother spending time learning it.

    • PatrickYaa
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      1 year ago

      So, firstly, thank you for that list. That is a lot of theoretical skills you just mentioned that one should learn/master before one opens up any service to the internet.

      I see a bit of a disconnect here though. Services like nextcloud offer/promise ease of setup and access from anywhere. Some people may want to open that up to include their close family and friends to also use that service. Those family and friends might not be as technically literate as the person setting up that service and might not want/know how to use a VPN/proxy/whatever to access that service. How can it be so hard or rather why must it be so technical and require such a vast amount of knowledge to setup that (semi) public service, when there are so many tools available that offer/promise ease of access for the (relatively) inexperienced user? Why must I know how to count bits on IPv4 for that?

      How deep does my understanding for DNS have to go for that? What is the depth of knowledge required?