[{"data":1,"prerenderedAt":485},["ShallowReactive",2],{"project-17530086":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":44,"post_text":46,"what":47,"said":90,"maker_in_thread":192,"shape":205,"grid":209,"attempts":449,"same_week":450,"maker_shows":18,"maker_hidden":477,"reader_version":478,"card":479},"17530086","Router7","A pure-Go implementation of a small home internet router","title","Show HN: Router7 – A pure-Go implementation of a small home internet router","https:\u002F\u002Fgithub.com\u002Frtr7\u002Frouter7","github.com","secure",1531571716,2018,461,102,30,2155,2,"legend","infrastructure","home router software","other",[24,25,26,27,28],"go router","home router","gokrazy","dhcp server","pure go networking","curious",0.181,{"positive":32,"neutral":33,"mixed":34,"critical":35},11,24,0,3,38,{"idea":38,"design":40,"performance":41,"docs":43},{"positive":39,"critical":18},5,{"positive":34,"critical":34},{"positive":34,"critical":42},1,{"positive":34,"critical":34},[39,34,39,34,35,35,42,35,35,35,35,35,39,39,42,35,39,35,39,35,34,34,34,34,34,39,34,39,35,35,34,34,34,35,35,35,45,35,39,35],4,null,{"problem":48,"audience":46,"pricing":46,"motivation":58,"time_to_build":65,"stack":71,"openness":87,"stage":88,"team_size":89},{"value":49,"source":50,"evidence":51},"Running a home internet router with custom software that is easy to update and maintain","maker",[52,55],{"id":53,"by":11,"text":54},"17530389","When considering the total time spent, yes. However, I had previously run dnsmasq instead of the default kresd so that the Omnia would resolve hostnames in my local network from…",{"id":56,"by":11,"text":57},"17530559","The apu does have a hardware watchdog, and router7 uses it. I don’t see any stability issues with the apu at all. The external rebooter isn’t used as part of a watchdog setup.…",{"value":59,"source":50,"evidence":60},"Maker wanted custom router software that is easier to maintain than the Turris Omnia",[61,64],{"id":62,"by":11,"text":63},"17530285","I considered the Turris Omnia, but ultimately decided in favor of the apu2c4. Here’s the comparison I made back then: Turris Omnia: 209 € (-), built-in SFP (+), UART (-),…",{"id":53,"by":11,"text":54},{"value":66,"source":50,"evidence":67},"About a month of part-time work before publishing",[68],{"id":69,"by":11,"text":70},"17530896","I decided to work on the idea at 2018-05-18. The first milestone of obtaining a DHCPv4 and DHCPv6 lease from my ISP and successfully pinging google from my laptop through router7…",[72,77,83],{"value":73,"source":50,"evidence":74},"Go",[75,76],{"id":53,"by":11,"text":54},{"id":69,"by":11,"text":70},{"value":26,"source":50,"evidence":78},[79,80],{"id":62,"by":11,"text":63},{"id":81,"by":11,"text":82},"17531061","The HAL is Linux in this case, but you might need to send pull requests to enable additional drivers, depending on the hardware. The currently supported platforms are the…",{"value":84,"source":50,"evidence":85},"Linux",[86],{"id":81,"by":11,"text":82},"open_source","launched","unknown",{"praise":91,"objections":110,"requests":125,"questions":147,"alternatives":162},[92,98],{"value":93,"source":50,"evidence":94},"Achieves full gigabit speed on IPv4 and IPv6",[95],{"id":96,"by":11,"text":97},"17531243","Thanks! The router setup achieves the full Gigabit on my line, both on IPv4 and IPv6. Regarding DHCP, DNS and router solicitations: don’t worry about it. In my network I get…",{"value":99,"source":100,"evidence":101},"Impressive project and discipline","commenter",[102,106],{"id":103,"by":104,"text":105},"17534568","jscholes","I find this single comment alone quite inspiring, let alone the project itself and its scope. You took a complex project from idea to working prototype in less than a month,…",{"id":107,"by":108,"text":109},"17535476","iamgopal","You are really good on discipline.",[111,118],{"value":112,"source":100,"evidence":113},"Go is not preferred by some commenters",[114],{"id":115,"by":116,"text":117},"17534948","iforgotpassword","> Updates would frequently break the dnsmasq setup That's surprising to hear. Dnsmasq has been my go-to solution for almost 10 years. Dhcp hostnames via DNS just works out of the…",{"value":119,"source":100,"evidence":120},"Performance at small packet sizes on an APU2 is a concern",[121],{"id":122,"by":123,"text":124},"17533901","gonzo","> Thanks! The router setup achieves the full Gigabit on my line, both on IPv4 and IPv6. This only requires [1,000,000,000 b\u002Fs \u002F (1,538 B * 8 b\u002FB)] == 81,274 f\u002Fs for full-sized…",[126,133,140],{"value":127,"source":100,"evidence":128},"Support for split-horizon DNS",[129],{"id":130,"by":131,"text":132},"17530164","grizzles","Any chance for split horizon dns? The ability to perma-name all my home computers is something I've always wanted in a home router.",{"value":134,"source":100,"evidence":135},"Support for cake SQM",[136],{"id":137,"by":138,"text":139},"17535539","0xQSL","It would be interesting to add cake sqm as that is the only reason i'd currently prefer openwrt\u002Flede over this. Cake should be in mainline linux soon.…",{"value":141,"source":100,"evidence":142},"Support for other hardware platforms",[143],{"id":144,"by":145,"text":146},"17530995","Drdrdrq","Would it be difficult to port this to other hardware? I would assume there is some HAL? (genuinly curious, have no experience with router sw\u002Ffw)",[148,155],{"value":149,"source":100,"evidence":150},"How does performance compare to dedicated hardware routers",[151],{"id":152,"by":153,"text":154},"17532980","vagab0nd","I've always wondered, how does this compare to a dedicated hardware router (some kind of ASIC maybe. I'm not sure if what routers on the market use), in terms of performance.…",{"value":156,"source":100,"evidence":157},"Can it run on Raspberry Pi 3 and non-fiber ISPs",[158],{"id":159,"by":160,"text":161},"17530175","ejanus","I am currently reading some source codes on tap-based IP\u002FTCP stack and Babel. I have not wrapped my head around some of the concepts because I need to first understand some RFCs…",[163,171,178,185],{"value":164,"source":100,"evidence":165},"OpenWrt\u002FLEDE",[166,167],{"id":137,"by":138,"text":139},{"id":168,"by":169,"text":170},"17533099","voltagex_","I struggled with the auto updates on the Omnia as well. I wish they'd upstreamed their code so I could run vanilla OpenWRT. I'd say the Turris Omnia will slowly die in favour of…",{"value":172,"source":100,"evidence":173},"pfSense",[174],{"id":175,"by":176,"text":177},"17531916","chrissnell","I want to look into adding support for sniffing and forwarding the 802.1x packets that the AT&T fiber modem\u002Fgateways use to authenticate. This is done to bypass the crappy…",{"value":179,"source":100,"evidence":180},"Turris Omnia",[181],{"id":182,"by":183,"text":184},"17530252","rebolek","Why did you not implement it on your Turris Omnia? If the only problem was software update, you still have great HW platform.",{"value":186,"source":100,"evidence":187},"dnsmasq and dhcpcd",[188],{"id":189,"by":190,"text":191},"17530365","Hello71","wouldn't it have been easier to just install dhcpcd?",{"comments":193,"answered":194,"key":195},26,17,[196,199,202],{"id":197,"text":198},"17531948","Definitely give it a shot! If it doesn’t work for you as-is, maybe you can hack on it until it does. Let me know if you get stuck, maybe I can give a pointer.",{"id":200,"text":201},"17532194","Neat! In case anyone wants to use this on router7, where CGO_ENABLED=0, you’d need something like https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fgopacket\u002Fpull\u002F470",{"id":203,"text":204},"17530089","Author here. Happy to answer any questions you might have :)",{"commenters":206,"max_depth":207,"maker_replies":193,"first_comment_mins":34,"lifespan_hours":208},50,9,82,[210,212,214,218,221,223,226,230,232,234,236,237,239,240,241,244,246,248,249,251,253,256,259,262,264,267,268,272,274,277,279,281,282,283,285,286,290,292,294,297,299,302,304,305,306,308,310,312,316,319,321,323,325,327,330,332,335,337,340,342,345,348,350,352,355,358,361,363,366,367,369,371,373,375,378,380,383,385,388,390,393,396,399,401,404,407,409,411,413,415,417,420,422,425,429,431,433,436,440,442,445,447],[175,34,39,211,176,34],"project\u002Fpositive\u002Fidea",[197,34,34,213,11,42],"maker\u002Fpositive\u002Fnone",[215,34,34,216,217,34],"17532023","commenter\u002Fneutral\u002Fnone","ryan-c",[219,34,34,216,220,34],"17532225","MertsA",[222,34,34,216,217,34],"17543077",[224,34,39,211,225,34],"17532048","dev_dull",[227,34,34,228,229,34],"17532165","other\u002Fneutral\u002Fnone","jokamoto",[200,34,34,231,11,42],"project\u002Fneutral\u002Fexecution",[233,34,34,228,176,34],"17534045",[203,42,34,235,11,42],"maker\u002Fneutral\u002Fnone",[182,42,35,235,183,34],[62,42,34,238,11,42],"project\u002Fneutral\u002Fdesign",[144,42,35,238,145,34],[81,42,34,238,11,42],[242,42,34,228,243,34],"17530293","oneplane",[189,42,42,245,190,34],"project\u002Fcritical\u002Fidea",[53,42,34,247,11,42],"project\u002Fpositive\u002Fnone",[168,42,34,228,169,34],[115,42,35,250,116,34],"project\u002Fneutral\u002Fnone",[252,42,34,216,11,42],"17534984",[254,42,35,235,255,34],"17530499","init-as",[257,42,34,258,11,42],"17530533","maker\u002Fneutral\u002Fdocs",[260,42,34,228,261,34],"17531904","accatyyc",[263,42,34,228,160,34],"17534677",[265,42,35,250,266,34],"17530545","q3k",[56,42,34,231,11,42],[269,42,35,270,271,34],"17530694","project\u002Fneutral\u002Fidea","taf2",[273,42,34,270,11,42],"17530725",[275,42,35,270,276,34],"17530981","antpls",[278,42,34,231,11,42],"17531038",[280,42,35,235,108,34],"17530862",[69,42,34,235,11,42],[103,42,39,213,104,34],[284,42,34,216,11,42],"17534578",[107,42,39,213,108,34],[287,42,35,288,289,34],"17531203","project\u002Fneutral\u002Fperformance","rdl",[96,42,34,291,11,42],"project\u002Fpositive\u002Fperformance",[122,42,42,293,123,34],"project\u002Fcritical\u002Fperformance",[295,42,35,250,296,34],"17531533","nickik",[298,42,34,250,11,42],"17531557",[300,42,39,211,301,34],"17531572","Aissen",[303,42,34,238,11,42],"17531719",[152,42,35,288,153,34],[137,42,35,270,138,34],[307,42,34,231,11,42],"17535581",[309,18,39,247,123,34],"17533320",[311,18,34,228,176,34],"17534051",[313,18,34,314,315,34],"17535135","other\u002Fneutral\u002Fpricing","Fnoord",[317,18,34,314,318,34],"17535449","JustSomeNobody",[320,18,35,250,123,34],"17535645",[322,18,34,235,11,42],"17535724",[324,18,34,216,123,34],"17536506",[326,18,34,314,315,34],"17536375",[328,18,34,216,329,34],"17550750","15155",[331,18,34,228,315,34],"17551454",[333,18,34,334,329,34],"17553418","other\u002Fneutral\u002Fperformance",[336,18,34,334,315,34],"17554160",[338,35,34,228,339,34],"17531309","blattimwind",[341,35,34,228,11,42],"17531353",[343,35,34,228,344,34],"17531645","ValleZ",[346,35,34,216,347,34],"17531662","jhabdas",[349,35,34,216,344,34],"17531724",[351,35,34,216,347,34],"17533662",[353,35,34,216,354,34],"17532234","dang",[356,35,39,213,357,34],"17531663","kyrra",[359,35,34,216,360,34],"17531787","singron",[362,35,34,216,344,34],"17531849",[364,35,34,216,365,34],"17531863","eikenberry",[130,45,35,270,131,34],[368,45,34,235,11,42],"17530180",[370,45,39,247,131,34],"17530291",[372,45,35,270,176,34],"17534059",[374,45,34,235,11,42],"17534068",[376,45,35,270,377,34],"17530187","zamadatix",[379,45,35,270,131,34],"17530288",[381,45,34,216,382,34],"17530354","chatmasta",[384,45,34,216,339,34],"17530456",[386,45,34,216,387,34],"17530630","greenleafjacob",[389,45,34,216,339,34],"17530699",[391,45,34,216,392,34],"17532620","elcritch",[394,45,34,216,395,34],"17531084","mindslight",[397,45,34,216,398,34],"17531623","fulafel",[400,45,34,216,377,34],"17530391",[402,45,34,216,403,34],"17530706","jethro_tell",[405,45,35,270,406,34],"17530468","Mister_Snuggles",[408,45,34,235,11,42],"17530541",[410,45,34,216,403,34],"17530692",[412,45,35,235,169,34],"17533146",[414,45,34,235,11,42],"17534020",[416,45,34,216,169,34],"17533181",[418,39,35,250,419,34],"17531286","voidmain0001",[421,39,35,250,339,34],"17531312",[423,39,35,235,424,34],"17533439","arminiusreturns",[426,427,39,211,428,34],"17530669",6,"tedchs",[159,430,35,250,160,34],7,[432,430,34,235,11,42],"17530184",[434,430,39,211,435,34],"17530709","pjmlp",[437,430,35,438,439,34],"17532340","project\u002Fneutral\u002Fdocs","avip",[441,430,34,258,11,42],"17532381",[443,444,39,213,435,34],"17530695",8,[446,207,42,245,347,34],"17531650",[448,207,34,211,11,42],"17531734",[],[451,455,460,464,469,473],{"id":452,"name":453,"points":454,"category":20},"17540263","Hasura",382,{"id":456,"name":457,"points":458,"category":459},"17538770","Font Playground",131,"creative",{"id":461,"name":462,"points":463,"category":20},"17551796","CloudForecast.io",125,{"id":465,"name":466,"points":467,"category":468},"17559213","Ansible Kernel",123,"dev_tools",{"id":470,"name":471,"points":472,"category":468},"17557384","Bo",104,{"id":474,"name":475,"points":476,"category":468},"17556805","Pinpointer",91,false,"v2",{"id":480,"name":5,"line":6,"ai":477,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":481,"top":18,"kw":482,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":483,"url":9,"mix":484,"praise":93,"objection":112,"sub":21},17530086,0.18,[24,25,26,27,28],"5050331333335513535300000505330003334353",[32,33,34,35],1794036567776]