{"id":1166,"date":"2023-01-16T12:00:00","date_gmt":"2023-01-16T20:00:00","guid":{"rendered":"https:\/\/letsbuildroboticswithshadow8472.com\/?p=1166"},"modified":"2023-01-16T00:13:45","modified_gmt":"2023-01-16T08:13:45","slug":"networking-is-magic","status":"publish","type":"post","link":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2023\/01\/16\/networking-is-magic\/","title":{"rendered":"Networking Is Magic"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Good Morning from my Robotics Lab! This is Shadow_8472, and if you missed last week\u2019s post, feel free to check it out. It\u2026 was a minor disaster. I tried setting up PiHole network adblocker, but my home router unexpectedly moved its local IP address in the process. I cleaned up what I could really quickly and noticed my little hackjob of a subnet router was running an end-of-life operating system. Today, I am fixing that oversight. Let\u2019s get started!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Replacing My Hackjob Router<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hackjob Router was my consolation prize after a failed quest to implement the open source router firmware, OpenWRT, onto my Raspberry Pi 4B in early 2020 and another in 2021. Both times, the exact version I needed was still under development. Dealing with testing versions was too advanced of a magic spell for me. I did, however, find an easy tutorial within my reach, but it did little to advance me beyond an aspiring networking mage with smoke and mirrors, but no fire or glass. When I looked this week, the beta warning was lifted.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I downloaded OpenWRT and flashed it over Hackjob Router\u2019s SD card. Sure enough, the web interface was complete. I\u2019ve used at least half a dozen ranging from limited config options to full access. OpenWRT\u2019s \u201cLu-Ci\u201d web interface puts everything on display with a helpful tool tip. It is comparable to other network devices I\u2019ve worked with, but is simpler to look at, and has slightly more functionality.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My final configuration was surprisingly easy for a project that\u2019s been hanging for almost three years now. At no point did I gain a key insight directly from an online search. But mistakes were made, and background information was researched and shelved for later.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My first mistake was a wrong Wi-Fi password. When I finally located and corrected it, my connection to OpenWRT died. I quickly learned how to assign a static IP in KDE\u2019s settings thanks to intuitive interface design. I researched br-lan, a virtual network interface used for assigning one IP to multiple physical interfaces, thinking I needed to add the physical Wi-Fi radio to the one automatically generated to host all of the one Ethernet port and \u201cbridge\u201d the two sides that way.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The problem was actually a bad netmask. IPv4 network addresses come in four eight-bit numbers between 0 and 255. Local networks mask off leading bits \u2013 typically in multiples of 8 (for example: 10.0.0.1\/8). Routers can use DHCP to dynamically assign local IP addresses with in their assigned subnet. My subnet ranges between 192.168.1.0 and 192.168.1.255 \u2013 properly denoted 192.168.1.1\/24. Originally, my trailing mask was \/16, allowing DHCP to assign my workstation to 192.168.0.200. Correcting the mask made it behave.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An unanchored memory I have regarding this week\u2019s research is that some devices can route packets directly between network interfaces as opposed to routing them manually. I doubt the Raspberry Pi 4 has this ability, but it would be nice to know for sure.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Takeaway<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Networking is magic at times. I still have a long way to go before I understand enough to do everything I want to, but I\u2019ve cleared a large and long-standing burrier toward that goal this week. This is in part thanks to OpenWRT\u2019s Lu-Ci with its educational help tips about every drop-down menu, text field, and tick box.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Final Question<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Do you ever study a known science and everything inside you insists it\u2019s magic?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I look forward hearing your answers on in the comments below or on my <a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/discord-invite\/\" target=\"_blank\" rel=\"noreferrer noopener\">Socials<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Good Morning from my Robotics Lab! This is Shadow_8472, and if you missed last week\u2019s post, feel free to check it out. It\u2026 was a minor disaster. I tried setting up PiHole network adblocker, but my home router unexpectedly moved its local IP address in the process. I cleaned up what I could really quickly &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2023\/01\/16\/networking-is-magic\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Networking Is Magic&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[14,26,60],"tags":[193,194,59,33],"class_list":["post-1166","post","type-post","status-publish","format-standard","hentry","category-networking","category-raspberry-pi","category-router","tag-home-networking","tag-netmask","tag-openwrt","tag-raspberry-pi-4"],"_links":{"self":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/comments?post=1166"}],"version-history":[{"count":1,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1166\/revisions"}],"predecessor-version":[{"id":1167,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1166\/revisions\/1167"}],"wp:attachment":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/media?parent=1166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/categories?post=1166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/tags?post=1166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}