* [Cerowrt-devel] cerowrt-3.10.32-12 released @ 2014-03-21 17:47 Dave Taht 2014-03-21 18:51 ` Toke Høiland-Jørgensen ` (3 more replies) 0 siblings, 4 replies; 17+ messages in thread From: Dave Taht @ 2014-03-21 17:47 UTC (permalink / raw) To: cerowrt-devel - currently untested (but a really small delta from -10 and -11) + Resync with openwrt head + dnsmasq 2.69rc1 (close approximation thereof) + This is the first release with toke's bcp38 code installed (and enabled by default). I am hoping people simply don't even notice it's there... (it's off the firewall web page) The only problems I foresee happening are 1) some devices are dependent on double-nat to be configurable - notably most cable modems depend on 192.168.100.1 to get configured the first time. I thought about adding that in as a default exception, and still may. 2) People using this on an interior gateway on a complex network will need to either disable bcp38 or (preferably) add their rfc1918 network(s) to the exception list on the interior gateway (not on the external gateway). For example, the yurtlab lives on subnets 172.21.0.0/20. 3) I am not prescient, however, and the only way to find out what problems will be created is to inflict it on^H^H^H^H^H^H^H kindly ask the cerowrt userbase to try it. - Jim Gettys tells me that after a day or so of heavy use of 3.10.32-9, the 2.4ghz radio gets thoroughly wedged after a succession of DMA tx errors and only a reboot can clear it. I am in the process of rebuilding the yurtlab and can get back into heavy wifi testing over the next week or so. In the interim, please beat up wifi any way you can... I would really like to get to a stable beta release by the end of the month. -- Dave Täht Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-21 17:47 [Cerowrt-devel] cerowrt-3.10.32-12 released Dave Taht @ 2014-03-21 18:51 ` Toke Høiland-Jørgensen 2014-03-21 22:00 ` Sebastian Moeller ` (2 subsequent siblings) 3 siblings, 0 replies; 17+ messages in thread From: Toke Høiland-Jørgensen @ 2014-03-21 18:51 UTC (permalink / raw) To: Dave Taht; +Cc: cerowrt-devel [-- Attachment #1: Type: text/plain, Size: 794 bytes --] Dave Taht <dave.taht@gmail.com> writes: > 2) People using this on an interior gateway on a complex network will > need to either disable bcp38 or (preferably) add their rfc1918 > network(s) to the exception list on the interior gateway (not on the > external gateway). For example, the yurtlab lives on subnets > 172.21.0.0/20. Well, depending on the topology it might not be needed. There's an auto-detection mechanism built-in which tries to auto-detect the upstream network settings. So as long as you only need to access one upstream subnet, no configuration change is needed. If it does *not* work, I'd appreciate seeing the output of the following commands to try to improve the auto-detection feature: ipset list ip route ip addr along with the network that's being blocked. -Toke [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 489 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-21 17:47 [Cerowrt-devel] cerowrt-3.10.32-12 released Dave Taht 2014-03-21 18:51 ` Toke Høiland-Jørgensen @ 2014-03-21 22:00 ` Sebastian Moeller 2014-03-21 22:53 ` Toke Høiland-Jørgensen 2014-03-24 0:56 ` Valdis.Kletnieks 2014-03-24 16:32 ` [Cerowrt-devel] upnp oddness (was " Valdis.Kletnieks 3 siblings, 1 reply; 17+ messages in thread From: Sebastian Moeller @ 2014-03-21 22:00 UTC (permalink / raw) To: Dave Taht; +Cc: cerowrt-devel Hi Dave, wow, after enabling NDP-Proxy 'hybrid mode' (on sw10), for the first time, my macbook got working ipv6 through cerowrt. (My setup is a bit peculiar as the primary router gets a /56 from the ISP but only hands out /64s, don't ask me why). Now I need to understand why this does not work for SW00 or SE00, but these are peanuts now :) On Mar 21, 2014, at 18:47 , Dave Taht <dave.taht@gmail.com> wrote: > - currently untested (but a really small delta from -10 and -11) > + Resync with openwrt head > + dnsmasq 2.69rc1 (close approximation thereof) > + This is the first release with toke's bcp38 code installed (and > enabled by default). I am hoping people simply don't even notice it's > there... (it's off the firewall web page) I did not notice this even though my primary router furnishes cerowrt with 192.168.2.104 (but no additional subnets in there), the internet works and I can reach machines in the primary subnet just fine, so nothing to see here ;) Greart work Dave and Toke. > > The only problems I foresee happening are > > 1) some devices are dependent on double-nat to be configurable - > notably most cable modems depend on 192.168.100.1 to get configured > the first time. I thought about adding that in as a default exception, > and still may. I seem to recall that there is a page in the openwrt wiki about how to enable that access, which is quite involved (for a layman), so having cerowrt solve this problem in a better fashion would be much appreciated. > > 2) People using this on an interior gateway on a complex network will > need to either disable bcp38 or (preferably) add their rfc1918 > network(s) to the exception list on the interior gateway (not on the > external gateway). For example, the yurtlab lives on subnets > 172.21.0.0/20. I guess having an easy way to set exceptions is really a good solution. > > 3) I am not prescient, however, and the only way to find out what > problems will be created is to inflict it on^H^H^H^H^H^H^H kindly ask > the cerowrt userbase to try it. Tried it, seems to work. > > - Jim Gettys tells me that after a day or so of heavy use of > 3.10.32-9, the 2.4ghz radio gets thoroughly wedged after a succession > of DMA tx errors and only a reboot can clear it. With 3.10.32-9 I could het the usual TX hangs on both radio0 and radio1 by running RRUL against cerowrt (on a wndr3700v2), I did not manage to actually wedge either radio so I had to reboot though. From (on the 5GHz radio): bash-3.2$ date ; ./netperf-wrapper --ipv4 -l 300 -H gw.home.lan rrul -p all_scaled --disable-log -t noAQM_noLLA_16M2M_hms-beagle_2_nacktmulle Fri Mar 21 22:50:17 CET 2014 root@nacktmulle:~#dmesg [...] [ 3466.207031] ath: phy1: Failed to stop TX DMA, queues=0x00e! [ 3485.308593] ath: phy1: Failed to stop TX DMA, queues=0x00e! [ 3511.449218] ath: phy1: Failed to stop TX DMA, queues=0x00e! [ 3513.500000] ath: phy1: Failed to stop TX DMA, queues=0x00e! [ 3545.664062] ath: phy1: Failed to stop TX DMA, queues=0x00e! [ 3561.769531] ath: phy1: Failed to stop TX DMA, queues=0x00e! [ 3591.925781] ath: phy1: Failed to stop TX DMA, queues=0x00e! [ 3615.042968] ath: phy1: Failed to stop TX DMA, queues=0x00a! [ 3630.140625] ath: phy1: Failed to stop TX DMA, queues=0x00e! [ 3663.308593] ath: phy1: Failed to stop TX DMA, queues=0x00e! [ 3666.351562] ath: phy1: Failed to stop TX DMA, queues=0x00e! [ 3688.468750] ath: phy1: Failed to stop TX DMA, queues=0x00e! [ 3701.585937] ath: phy1: Failed to stop TX DMA, queues=0x00e! root@nacktmulle:~# cat /sys/kernel/debug/ieee80211/phy1/ath9k/reset Baseband Hang: 0 Baseband Watchdog: 0 Fatal HW Error: 0 TX HW error: 0 TX Path Hang: 25 PLL RX Hang: 0 MAC Hang: 0 Stuck Beacon: 0 MCI Reset: 0 But that is not any different from earlier cerowrt versions... > > I am in the process of rebuilding the yurtlab and can get back into > heavy wifi testing over the next week or so. In the interim, > please beat up wifi any way you can… Ah, okay so now I will switch to the 2,4GHz radio to see whether I can wedge that… best regards & many thanks Sebastian > > I would really like to get to a stable beta release by the end of the month. > > > > > > > -- > Dave Täht > > Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html > _______________________________________________ > Cerowrt-devel mailing list > Cerowrt-devel@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/cerowrt-devel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-21 22:00 ` Sebastian Moeller @ 2014-03-21 22:53 ` Toke Høiland-Jørgensen 2014-03-21 23:04 ` Sebastian Moeller 0 siblings, 1 reply; 17+ messages in thread From: Toke Høiland-Jørgensen @ 2014-03-21 22:53 UTC (permalink / raw) To: Sebastian Moeller; +Cc: cerowrt-devel [-- Attachment #1: Type: text/plain, Size: 722 bytes --] Sebastian Moeller <moeller0@gmx.de> writes: > I did not notice this even though my primary router furnishes > cerowrt with 192.168.2.104 (but no additional subnets in there), the > internet works and I can reach machines in the primary subnet just > fine, so nothing to see here ;) Greart work Dave and Toke. Yay! Just to confirm: 1. What is the output of `ipset list` on the router? 2. What happens if you ping 192.168.1.1 (or some other address in a private subnet, but not configured on any of your interfaces)? > I guess having an easy way to set exceptions is really a good > solution. There's a BCP38 tab in the firewall config that allows you to input subnet exceptions manually if needed. :) -Toke [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 489 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-21 22:53 ` Toke Høiland-Jørgensen @ 2014-03-21 23:04 ` Sebastian Moeller 2014-03-21 23:26 ` Toke Høiland-Jørgensen 0 siblings, 1 reply; 17+ messages in thread From: Sebastian Moeller @ 2014-03-21 23:04 UTC (permalink / raw) To: Toke Høiland-Jørgensen; +Cc: cerowrt-devel On Mar 21, 2014, at 23:53 , Toke Høiland-Jørgensen <toke@toke.dk> wrote: > Sebastian Moeller <moeller0@gmx.de> writes: > >> I did not notice this even though my primary router furnishes >> cerowrt with 192.168.2.104 (but no additional subnets in there), the >> internet works and I can reach machines in the primary subnet just >> fine, so nothing to see here ;) Greart work Dave and Toke. > > Yay! > > Just to confirm: > > 1. What is the output of `ipset list` on the router? root@nacktmulle:~# ipset list Name: bcp38-ipv4 Type: hash:net Revision: 4 Header: family inet hashsize 1024 maxelem 65536 Size in memory: 8856 References: 2 Members: 127.0.0.0/8 192.168.2.0/24 nomatch 172.16.0.0/12 10.0.0.0/8 192.0.2.0/24 169.254.0.0/16 240.0.0.0/4 198.51.100.0/24 203.0.113.0/24 0.0.0.0/8 192.168.0.0/16 root@nacktmulle:~# > > 2. What happens if you ping 192.168.1.1 (or some other address in a > private subnet, but not configured on any of your interfaces)? root@nacktmulle:~# ping -c 1 192.168.1.1 PING 192.168.1.1 (192.168.1.1): 56 data bytes ping: sendto: Operation not permitted For comparison the primary router: root@nacktmulle:~# ping -c 1 192.168.2.1 PING 192.168.2.1 (192.168.2.1): 56 data bytes 64 bytes from 192.168.2.1: seq=0 ttl=64 time=0.849 ms --- 192.168.2.1 ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.849/0.849/0.849 ms root@nacktmulle:~# And from my macbook on SW00: hms-beagle:~ moeller$ ping -c 1 192.168.1.1 PING 192.168.1.1 (192.168.1.1): 56 data bytes 92 bytes from 172.30.42.65: Destination Net Unreachable Vr HL TOS Len ID Flg off TTL Pro cks Src Dst 4 5 00 5400 d987 0 0000 3f 01 0a0a 172.30.42.80 192.168.1.1 --- 192.168.1.1 ping statistics --- 1 packets transmitted, 0 packets received, 100.0% packet loss hms-beagle:~ moeller$ ping -c 1 192.168.2.1 PING 192.168.2.1 (192.168.2.1): 56 data bytes 64 bytes from 192.168.2.1: icmp_seq=0 ttl=63 time=3.993 ms --- 192.168.2.1 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 3.993/3.993/3.993/0.000 ms hms-beagle:~ moeller$ After white-listing 192.168.1.0/24 hms-beagle:~ moeller$ ping -c 1 192.168.1.1 PING 192.168.1.1 (192.168.1.1): 56 data bytes --- 192.168.1.1 ping statistics --- 1 packets transmitted, 0 packets received, 100.0% packet loss hms-beagle:~ moeller$ After deletion of the exemption it is back again to "Destination Net Unreachable" It just seems to work, and well at that. > >> I guess having an easy way to set exceptions is really a good >> solution. > > There's a BCP38 tab in the firewall config that allows you to input > subnet exceptions manually if needed. :) I guess I should have been clearer in my comment; what I wanted to say is that it is great that you actually offer this ;). (Tiny note: if there is only one member in the white-list the GUI only shows the add button and no delete button, just deleting the contents does work though) Best Regards Sebastian > > -Toke ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-21 23:04 ` Sebastian Moeller @ 2014-03-21 23:26 ` Toke Høiland-Jørgensen [not found] ` <608F3E46-3D81-48A3-B60C-E90661DD3AB2@gmx.de> 0 siblings, 1 reply; 17+ messages in thread From: Toke Høiland-Jørgensen @ 2014-03-21 23:26 UTC (permalink / raw) To: Sebastian Moeller; +Cc: cerowrt-devel [-- Attachment #1: Type: text/plain, Size: 820 bytes --] Sebastian Moeller <moeller0@gmx.de> writes: > It just seems to work, and well at that. Wow, great! I expected it to break in horrible ways I had not thought of... Thanks for testing! :) > I guess I should have been clearer in my comment; what I wanted to say > is that it is great that you actually offer this ;). Ah, I see :) > (Tiny note: if there is only one member in the white-list the GUI only > shows the add button and no delete button, just deleting the contents > does work though) Yeah, that seems to be an idiosyncrasy of the luci gui that I'm declaring it firmly out of scope for this to fix. ;) A general fix might be useful, though. Should probably be fixed in the Luci javascript (/www/luci-static/resources/cbi.js on the router) -- not really sure what the right behaviour is, though...? -Toke [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 489 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
[parent not found: <608F3E46-3D81-48A3-B60C-E90661DD3AB2@gmx.de>]
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released [not found] ` <608F3E46-3D81-48A3-B60C-E90661DD3AB2@gmx.de> @ 2014-03-22 11:08 ` Toke Høiland-Jørgensen 2014-03-22 17:09 ` Dave Taht 2014-03-22 19:23 ` Sebastian Moeller 0 siblings, 2 replies; 17+ messages in thread From: Toke Høiland-Jørgensen @ 2014-03-22 11:08 UTC (permalink / raw) To: Sebastian Moeller; +Cc: cerowrt-devel [-- Attachment #1: Type: text/plain, Size: 4114 bytes --] Sebastian Moeller <moeller0@gmx.de> writes: > I have a question about the reasoning behind the whole thing though. I > can see that not permitting source addresses that do not belong to > cerowrt's subnets makes a ton of sense. But what precisely is the > reasoning to not route the private addresses? Well, for IPv6, not permitting valid source addresses is exactly how this is implemented -- by having source-based routing for the assigned prefixes (I suppose you could do a similar private address blocking thing for IPv6, but I punted on that for now; and don't think it's as important). However, for IPv4 the question of "which addresses are valid" becomes harder to answer in anything but the simple case of "one network behind the router". I.e. for mesh networks etc. At the same time, in general, egress traffic from the home network could conceivably go anywhere, so blocking on destination is not viable either. Except, basically, for the networks being blocked by the current implementation; these are all defined by various RFCs (most well-known probably RFC1918) to be invalid on the internet, and so can be safely dropped. And since all sorts of equipment probe the default addresses (think users on a new net trying to find their home gateway at 192.168.1.1, devices that think they are on a VPN but are really not, etc), so packets leaking onto the internet can be quite common, and they can go a surprisingly long way before being dropped, I'm told. > Or, asked differently, what harm does it to route those except wasting > a bit of bandwidth; but since the src is correct it will be relatively > easy to pinpoint malicious sources that way? Well, a DDOS is just a lot of people "wasting a bit of bandwidth"... ;) Really, though, BCP38 (which, btw, is a Best Current Practice document From the IETF: http://tools.ietf.org/html/bcp38) should be implemented by ISPs to be really effective in DOS mitigation. I think implementing it in cerowrt (apart from the "be secure by default" goal) is to demonstrate that it's possible to do a workable solution (trough ipsets) that doesn't involve traversing a bunch of slow firewall rules, and so doesn't impact performance noticeably. You know, the old clue-bat ;) > The point I wanted to make is that following > http://wiki.openwrt.org/doc/howto/access.modem.through.nat is a bit > more involved than what should be required from the typical home user. Yeah, I can see that. It would probably be possible to do some autodetection (perhaps by crowdsourcing a database of likely modem addresses), but I fear the implementation would be annoyingly complex. In the perfect world, you could just arping each of the addresses and see if they reply, but I have this nagging feeling that the kind of equipment we want to talk to will do things like refuse to reply to ARP unless the request comes from within its own (probably hard-coded) subnet. In which case we would have to assign a bunch of addresses on the upstream interface to do the probing, then remove them again, leaving to all sorts of annoying potential failure modes... :( > Your implementation is so straight forward I could talk my siblings > though over the phone, so it passes my ad-hoc tests for viability in > the real world ;) Haha, great! Sometimes I think someone should write up a formal document on the "non-technical family member" test... > So on several other pages (like > https://gw.home.lan:81/cgi-bin/luci/;stok=e2041363b170e62aa756a4ee3e525f72/admin/network/hosts) > the GUI is used slightly different, there is one fixed add button and > each entry always comes with its own delete button. I have not looked > at the luci code for that though. Well I didn't do a lot of research on luci primitives for this, but did come across that one. That widget is a different one that mirrors a different configuration primitive (adding config *sections* rather than a list of config *entries*). I don't *think* there's a better widget for the lists, but would be happy to be proved wrong :) -Toke [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 489 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-22 11:08 ` Toke Høiland-Jørgensen @ 2014-03-22 17:09 ` Dave Taht 2014-03-22 18:18 ` Toke Høiland-Jørgensen 2014-03-22 20:20 ` Sebastian Moeller 2014-03-22 19:23 ` Sebastian Moeller 1 sibling, 2 replies; 17+ messages in thread From: Dave Taht @ 2014-03-22 17:09 UTC (permalink / raw) To: Toke Høiland-Jørgensen; +Cc: cerowrt-devel On Sat, Mar 22, 2014 at 11:08 AM, Toke Høiland-Jørgensen <toke@toke.dk> wrote: > Sebastian Moeller <moeller0@gmx.de> writes: > >> I have a question about the reasoning behind the whole thing though. I >> can see that not permitting source addresses that do not belong to >> cerowrt's subnets makes a ton of sense. But what precisely is the >> reasoning to not route the private addresses? > > Well, for IPv6, not permitting valid source addresses is exactly how > this is implemented -- by having source-based routing for the assigned > prefixes (I suppose you could do a similar private address blocking > thing for IPv6, but I punted on that for now; and don't think it's as > important). However, for IPv4 the question of "which addresses are > valid" becomes harder to answer in anything but the simple case of "one > network behind the router". I.e. for mesh networks etc. > > At the same time, in general, egress traffic from the home network could > conceivably go anywhere, so blocking on destination is not viable > either. Except, basically, for the networks being blocked by the current > implementation; these are all defined by various RFCs (most well-known > probably RFC1918) to be invalid on the internet, and so can be safely > dropped. And since all sorts of equipment probe the default addresses > (think users on a new net trying to find their home gateway at > 192.168.1.1, devices that think they are on a VPN but are really not, > etc), so packets leaking onto the internet can be quite common, and they > can go a surprisingly long way before being dropped, I'm told. 0) I've seen 5 hops or more before they die. I have observed 3 use cases in the last couple years personally. 1) In the campground I have a primary dns server that frequently drops off the (routed) network. 2 minutes later, all queries directed at that dns server start going out the default gateway, with no reply. with this code in place, they get stopped at the edge, with an appropriate reply, and when the server comes back online they are responded to normally. win. 2) I have seen many worms banging away at everything in every subnet they can find, and several that just arbitrarily bang away at 192.168.x.y. in cero's case these not only eat external bandwidth but interact badly with the "fast queue" concept - as being sparse, they are optimized to go out the router first, and never return.... 3) In a data center I have seen multiple attempts by sources with invalid return addresses to leverage dns reflection attacks. Dropping totally invalid addresses is a win... That said, the primary purpose of this code is to supply a tool and clue to places that could do this sort of filtering better inside their network. small corporate campuses, isps, etc. >> Or, asked differently what harm does it to route those except wasting >> a bit of bandwidth; but since the src is correct it will be relatively >> easy to pinpoint malicious sources that way? > > Well, a DDOS is just a lot of people "wasting a bit of bandwidth"... ;) Lack of universal BCP38 has cost a lot of dns managers a lot of hair, and more recently the ntp ddos was pretty bad. > Really, though, BCP38 (which, btw, is a Best Current Practice document > From the IETF: http://tools.ietf.org/html/bcp38) should be implemented > by ISPs to be really effective in DOS mitigation. I think implementing > it in cerowrt (apart from the "be secure by default" goal) is to > demonstrate that it's possible to do a workable solution (trough ipsets) > that doesn't involve traversing a bunch of slow firewall rules, and so > doesn't impact performance noticeably. You know, the old clue-bat ;) Perhaps this is a new logo idea for cero: A giant clue-bat. > >> The point I wanted to make is that following >> http://wiki.openwrt.org/doc/howto/access.modem.through.nat is a bit >> more involved than what should be required from the typical home user. > > Yeah, I can see that. It would probably be possible to do some > autodetection (perhaps by crowdsourcing a database of likely modem > addresses), but I fear the implementation would be annoyingly complex. > In the perfect world, you could just arping each of the addresses and > see if they reply, but I have this nagging feeling that the kind of > equipment we want to talk to will do things like refuse to reply to ARP > unless the request comes from within its own (probably hard-coded) > subnet. In which case we would have to assign a bunch of addresses on > the upstream interface to do the probing, then remove them again, > leaving to all sorts of annoying potential failure modes... :( Well, a brute force way would be to insert all these addresses with say a one hour timeout to expire on a cold boot. >> Your implementation is so straight forward I could talk my siblings >> though over the phone, so it passes my ad-hoc tests for viability in >> the real world ;) > > Haha, great! Sometimes I think someone should write up a formal document > on the "non-technical family member" test... +1 >> So on several other pages (like >> https://gw.home.lan:81/cgi-bin/luci/;stok=e2041363b170e62aa756a4ee3e525f72/admin/network/hosts) >> the GUI is used slightly different, there is one fixed add button and >> each entry always comes with its own delete button. I have not looked >> at the luci code for that though. > > Well I didn't do a lot of research on luci primitives for this, but did > come across that one. That widget is a different one that mirrors a > different configuration primitive (adding config *sections* rather than > a list of config *entries*). I don't *think* there's a better widget for > the lists, but would be happy to be proved wrong :) In terms of featureitus it might be nice to have a comment field shown in the gui and in the config file. > > -Toke > > _______________________________________________ > Cerowrt-devel mailing list > Cerowrt-devel@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/cerowrt-devel > -- Dave Täht Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-22 17:09 ` Dave Taht @ 2014-03-22 18:18 ` Toke Høiland-Jørgensen 2014-03-22 20:20 ` Sebastian Moeller 1 sibling, 0 replies; 17+ messages in thread From: Toke Høiland-Jørgensen @ 2014-03-22 18:18 UTC (permalink / raw) To: Dave Taht; +Cc: cerowrt-devel [-- Attachment #1: Type: text/plain, Size: 1231 bytes --] Dave Taht <dave.taht@gmail.com> writes: > Perhaps this is a new logo idea for cero: A giant clue-bat. That'd be cool. I've always wondered what a clue-bat would actually look like... :) > Well, a brute force way would be to insert all these addresses with > say a one hour timeout to expire on a cold boot. Yeah, but then you'd have to handle collisions with subnets configured on the internal interface and all sorts of weird edge cases, I'm sure... Perhaps some sort of feasibility study on the arping approach could be conducted? Someone with a cable modem who can check if `arping <addr>` with its configuration address returns anything when no corresponding address is configured on the router? Or am I completely off base in thinking that would work? > In terms of featureitus it might be nice to have a comment field shown > in the gui and in the config file. Right, well if you don't mind restructuring the config file completely in a non-backwards-compatible way, it would be pretty easy to give it a section for each subnet, with an associated comment / name field, and use the same widget as the hostname setup. Would make the config file significantly more verbose, though, and also harder to read IMO... -Toke [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 489 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-22 17:09 ` Dave Taht 2014-03-22 18:18 ` Toke Høiland-Jørgensen @ 2014-03-22 20:20 ` Sebastian Moeller 1 sibling, 0 replies; 17+ messages in thread From: Sebastian Moeller @ 2014-03-22 20:20 UTC (permalink / raw) To: Dave Taht; +Cc: cerowrt-devel Hi Dave, On Mar 22, 2014, at 18:09 , Dave Taht <dave.taht@gmail.com> wrote: > On Sat, Mar 22, 2014 at 11:08 AM, Toke Høiland-Jørgensen <toke@toke.dk> wrote: >> Sebastian Moeller <moeller0@gmx.de> writes: >> >>> I have a question about the reasoning behind the whole thing though. I >>> can see that not permitting source addresses that do not belong to >>> cerowrt's subnets makes a ton of sense. But what precisely is the >>> reasoning to not route the private addresses? >> >> Well, for IPv6, not permitting valid source addresses is exactly how >> this is implemented -- by having source-based routing for the assigned >> prefixes (I suppose you could do a similar private address blocking >> thing for IPv6, but I punted on that for now; and don't think it's as >> important). However, for IPv4 the question of "which addresses are >> valid" becomes harder to answer in anything but the simple case of "one >> network behind the router". I.e. for mesh networks etc. >> >> At the same time, in general, egress traffic from the home network could >> conceivably go anywhere, so blocking on destination is not viable >> either. Except, basically, for the networks being blocked by the current >> implementation; these are all defined by various RFCs (most well-known >> probably RFC1918) to be invalid on the internet, and so can be safely >> dropped. And since all sorts of equipment probe the default addresses >> (think users on a new net trying to find their home gateway at >> 192.168.1.1, devices that think they are on a VPN but are really not, >> etc), so packets leaking onto the internet can be quite common, and they >> can go a surprisingly long way before being dropped, I'm told. > > 0) I've seen 5 hops or more before they die. > > I have observed 3 use cases in the last couple years personally. > > 1) In the campground I have a primary dns server that frequently drops > off the (routed) network. 2 minutes later, all queries directed at that dns > server start going out the default gateway, with no reply. with this code > in place, they get stopped at the edge, with an appropriate reply, and when > the server comes back online they are responded to normally. win. This makes a lot of sense, thanks. > > 2) I have seen many worms banging away at everything in every subnet > they can find, and several that just arbitrarily bang away at 192.168.x.y. > in cero's case these not only eat external bandwidth but interact badly with the > "fast queue" concept - as being sparse, they are optimized to go out the > router first, and never return…. "Automatic worm deprioritization", we should pass this onto the marketing department ;) Kidding aside, again makes a ton of sense. > > 3) In a data center I have seen multiple attempts by sources with > invalid return addresses to leverage dns reflection attacks. Dropping > totally invalid addresses is a win… And even more sense. I guess I am glad I posed the question, since I learned a lot... > > That said, the primary purpose of this code is to supply a tool and clue > to places that could do this sort of filtering better inside their network. > small corporate campuses, isps, etc. > >>> Or, asked differently what harm does it to route those except wasting >>> a bit of bandwidth; but since the src is correct it will be relatively >>> easy to pinpoint malicious sources that way? >> >> Well, a DDOS is just a lot of people "wasting a bit of bandwidth"... ;) > > Lack of universal BCP38 has cost a lot of dns managers a lot of hair, > and more recently the ntp ddos was pretty bad. > >> Really, though, BCP38 (which, btw, is a Best Current Practice document >> From the IETF: http://tools.ietf.org/html/bcp38) should be implemented >> by ISPs to be really effective in DOS mitigation. I think implementing >> it in cerowrt (apart from the "be secure by default" goal) is to >> demonstrate that it's possible to do a workable solution (trough ipsets) >> that doesn't involve traversing a bunch of slow firewall rules, and so >> doesn't impact performance noticeably. You know, the old clue-bat ;) > > Perhaps this is a new logo idea for cero: A giant clue-bat. Is that bat as in micro/macrochiroptera ( http://en.wikipedia.org/wiki/Bat ) or as in http://en.wikipedia.org/wiki/Baseball_bat, I assume the latter but the former would allow more leeway for the potential logo ;) > >> >>> The point I wanted to make is that following >>> http://wiki.openwrt.org/doc/howto/access.modem.through.nat is a bit >>> more involved than what should be required from the typical home user. >> >> Yeah, I can see that. It would probably be possible to do some >> autodetection (perhaps by crowdsourcing a database of likely modem >> addresses), but I fear the implementation would be annoyingly complex. >> In the perfect world, you could just arping each of the addresses and >> see if they reply, but I have this nagging feeling that the kind of >> equipment we want to talk to will do things like refuse to reply to ARP >> unless the request comes from within its own (probably hard-coded) >> subnet. In which case we would have to assign a bunch of addresses on >> the upstream interface to do the probing, then remove them again, >> leaving to all sorts of annoying potential failure modes... :( > > Well, a brute force way would be to insert all these addresses with > say a one hour timeout to expire on a cold boot. I think requiring the user to add the specific address in the white-list is not a bad way, as long as it is prominently documented. I assume most users will not care anyway and those that are should not mind following simple easy instructions. Best Regards Sebastian > >>> Your implementation is so straight forward I could talk my siblings >>> though over the phone, so it passes my ad-hoc tests for viability in >>> the real world ;) >> >> Haha, great! Sometimes I think someone should write up a formal document >> on the "non-technical family member" test... > > +1 > >>> So on several other pages (like >>> https://gw.home.lan:81/cgi-bin/luci/;stok=e2041363b170e62aa756a4ee3e525f72/admin/network/hosts) >>> the GUI is used slightly different, there is one fixed add button and >>> each entry always comes with its own delete button. I have not looked >>> at the luci code for that though. >> >> Well I didn't do a lot of research on luci primitives for this, but did >> come across that one. That widget is a different one that mirrors a >> different configuration primitive (adding config *sections* rather than >> a list of config *entries*). I don't *think* there's a better widget for >> the lists, but would be happy to be proved wrong :) > > In terms of featureitus it might be nice to have a comment field shown > in the gui and in the config file. >> >> -Toke >> >> _______________________________________________ >> Cerowrt-devel mailing list >> Cerowrt-devel@lists.bufferbloat.net >> https://lists.bufferbloat.net/listinfo/cerowrt-devel >> > > > > -- > Dave Täht > > Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-22 11:08 ` Toke Høiland-Jørgensen 2014-03-22 17:09 ` Dave Taht @ 2014-03-22 19:23 ` Sebastian Moeller 2014-03-22 19:36 ` Toke Høiland-Jørgensen 1 sibling, 1 reply; 17+ messages in thread From: Sebastian Moeller @ 2014-03-22 19:23 UTC (permalink / raw) To: Toke Høiland-Jørgensen; +Cc: cerowrt-devel Hi Toke, On Mar 22, 2014, at 12:08 , Toke Høiland-Jørgensen <toke@toke.dk> wrote: > Sebastian Moeller <moeller0@gmx.de> writes: > >> I have a question about the reasoning behind the whole thing though. I >> can see that not permitting source addresses that do not belong to >> cerowrt's subnets makes a ton of sense. But what precisely is the >> reasoning to not route the private addresses? > > Well, for IPv6, not permitting valid source addresses is exactly how > this is implemented -- by having source-based routing for the assigned > prefixes (I suppose you could do a similar private address blocking > thing for IPv6, but I punted on that for now; and don't think it's as > important). However, for IPv4 the question of "which addresses are > valid" becomes harder to answer in anything but the simple case of "one > network behind the router". I.e. for mesh networks etc. > > At the same time, in general, egress traffic from the home network could > conceivably go anywhere, so blocking on destination is not viable > either. Except, basically, for the networks being blocked by the current > implementation; these are all defined by various RFCs (most well-known > probably RFC1918) to be invalid on the internet, and so can be safely > dropped. And since all sorts of equipment probe the default addresses > (think users on a new net trying to find their home gateway at > 192.168.1.1, devices that think they are on a VPN but are really not, > etc), so packets leaking onto the internet can be quite common, and they > can go a surprisingly long way before being dropped, I'm told. Ah, thanks for the information. > >> Or, asked differently, what harm does it to route those except wasting >> a bit of bandwidth; but since the src is correct it will be relatively >> easy to pinpoint malicious sources that way? > > Well, a DDOS is just a lot of people "wasting a bit of bandwidth"... ;) I had not looked at it from that perspective, makes a lot of sense... > > Really, though, BCP38 (which, btw, is a Best Current Practice document > From the IETF: http://tools.ietf.org/html/bcp38) should be implemented > by ISPs to be really effective in DOS mitigation. I think implementing > it in cerowrt (apart from the "be secure by default" goal) is to > demonstrate that it's possible to do a workable solution (trough ipsets) > that doesn't involve traversing a bunch of slow firewall rules, and so > doesn't impact performance noticeably. You know, the old clue-bat ;) > > >> The point I wanted to make is that following >> http://wiki.openwrt.org/doc/howto/access.modem.through.nat is a bit >> more involved than what should be required from the typical home user. > > Yeah, I can see that. It would probably be possible to do some > autodetection (perhaps by crowdsourcing a database of likely modem > addresses), but I fear the implementation would be annoyingly complex. > In the perfect world, you could just arping each of the addresses and > see if they reply, but I have this nagging feeling that the kind of > equipment we want to talk to will do things like refuse to reply to ARP > unless the request comes from within its own (probably hard-coded) > subnet. In which case we would have to assign a bunch of addresses on > the upstream interface to do the probing, then remove them again, > leaving to all sorts of annoying potential failure modes... :( > >> Your implementation is so straight forward I could talk my siblings >> though over the phone, so it passes my ad-hoc tests for viability in >> the real world ;) > > Haha, great! Sometimes I think someone should write up a formal document > on the "non-technical family member" test... > >> So on several other pages (like >> https://gw.home.lan:81/cgi-bin/luci/;stok=e2041363b170e62aa756a4ee3e525f72/admin/network/hosts) >> the GUI is used slightly different, there is one fixed add button and >> each entry always comes with its own delete button. I have not looked >> at the luci code for that though. > > Well I didn't do a lot of research on luci primitives for this, but did > come across that one. That widget is a different one that mirrors a > different configuration primitive (adding config *sections* rather than > a list of config *entries*). I don't *think* there's a better widget for > the lists, but would be happy to be proved wrong :) I thought a bit about this, and I think there might be a way to use the available widgets in a way that emulates consistency ;) (well at least in theory) If the first entry would not hog the singleton entry field with the add button, but would spawn a new empty field with an add button, while the just entered (and saved & applied) entry would be followed by the delete button, he whole thing would be consistent enough to not confuse the user. I will see whether I can implement that in the luci code. Best Regards Sebastian > > -Toke ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-22 19:23 ` Sebastian Moeller @ 2014-03-22 19:36 ` Toke Høiland-Jørgensen 2014-03-22 20:24 ` Sebastian Moeller 0 siblings, 1 reply; 17+ messages in thread From: Toke Høiland-Jørgensen @ 2014-03-22 19:36 UTC (permalink / raw) To: Sebastian Moeller; +Cc: cerowrt-devel [-- Attachment #1: Type: text/plain, Size: 636 bytes --] Sebastian Moeller <moeller0@gmx.de> writes: > I thought a bit about this, and I think there might be a way to use > the available widgets in a way that emulates consistency ;) (well at > least in theory) If the first entry would not hog the singleton entry > field with the add button, but would spawn a new empty field with an > add button, while the just entered (and saved & applied) entry would > be followed by the delete button, he whole thing would be consistent > enough to not confuse the user. I will see whether I can implement > that in the luci code. Cool; FWIW, I think it's the javascript you need to look at :) -Toke [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 489 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-22 19:36 ` Toke Høiland-Jørgensen @ 2014-03-22 20:24 ` Sebastian Moeller 0 siblings, 0 replies; 17+ messages in thread From: Sebastian Moeller @ 2014-03-22 20:24 UTC (permalink / raw) To: Toke Høiland-Jørgensen; +Cc: cerowrt-devel Hi Toke, On Mar 22, 2014, at 20:36 , Toke Høiland-Jørgensen <toke@toke.dk> wrote: > Sebastian Moeller <moeller0@gmx.de> writes: > >> I thought a bit about this, and I think there might be a way to use >> the available widgets in a way that emulates consistency ;) (well at >> least in theory) If the first entry would not hog the singleton entry >> field with the add button, but would spawn a new empty field with an >> add button, while the just entered (and saved & applied) entry would >> be followed by the delete button, he whole thing would be consistent >> enough to not confuse the user. I will see whether I can implement >> that in the luci code. > > Cool; FWIW, I think it's the javascript you need to look at :) I hope to avoid that, I have zero contact with javascript so far and if I can avoid the learning curve I happily do so ;) But eta see whether I can fake it in luci/lua… Best Regards Sebastian > > -Toke ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-21 17:47 [Cerowrt-devel] cerowrt-3.10.32-12 released Dave Taht 2014-03-21 18:51 ` Toke Høiland-Jørgensen 2014-03-21 22:00 ` Sebastian Moeller @ 2014-03-24 0:56 ` Valdis.Kletnieks 2014-03-24 14:35 ` Jim Reisert AD1C 2014-03-24 16:32 ` [Cerowrt-devel] upnp oddness (was " Valdis.Kletnieks 3 siblings, 1 reply; 17+ messages in thread From: Valdis.Kletnieks @ 2014-03-24 0:56 UTC (permalink / raw) To: Dave Taht; +Cc: cerowrt-devel [-- Attachment #1: Type: text/plain, Size: 575 bytes --] On Fri, 21 Mar 2014 17:47:42 -0000, Dave Taht said: > - currently untested (but a really small delta from -10 and -11) > + Resync with openwrt head > + dnsmasq 2.69rc1 (close approximation thereof) > + This is the first release with toke's bcp38 code installed (and > enabled by default). I am hoping people simply don't even notice it's > there... (it's off the firewall web page) Seems to be working for me on a 3800 on both IPv4 and IPv6 here in Comcast-land. Admittedly not stress-tested much, that will probably have to wait for some evening this week... [-- Attachment #2: Type: application/pgp-signature, Size: 848 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-24 0:56 ` Valdis.Kletnieks @ 2014-03-24 14:35 ` Jim Reisert AD1C 2014-03-26 4:37 ` Kai Yang 0 siblings, 1 reply; 17+ messages in thread From: Jim Reisert AD1C @ 2014-03-24 14:35 UTC (permalink / raw) To: Valdis.Kletnieks; +Cc: cerowrt-devel On Sun, Mar 23, 2014 at 6:56 PM, <Valdis.Kletnieks@vt.edu> wrote: > Seems to be working for me on a 3800 on both IPv4 and IPv6 here in > Comcast-land. Admittedly not stress-tested much, that will probably have > to wait for some evening this week... No problems to report here either. Incidentally my older Sony Blu-Ray player connected to the -guest network at 172.30.43.x (with subnet mask 255.255.255.0) with no problems at all reaching the Internet. So Sony must have the CIDR issue in more than one of their products. -- Jim Reisert AD1C, <jjreisert@alum.mit.edu>, http://www.ad1c.us ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Cerowrt-devel] cerowrt-3.10.32-12 released 2014-03-24 14:35 ` Jim Reisert AD1C @ 2014-03-26 4:37 ` Kai Yang 0 siblings, 0 replies; 17+ messages in thread From: Kai Yang @ 2014-03-26 4:37 UTC (permalink / raw) To: cerowrt-devel [-- Attachment #1: Type: text/plain, Size: 1040 bytes --] Was dlna ever working across wifi and wired? Tried this build and my readynas media server is not discoverable on wifi. Testing with Ubuntu and upnp-inspector. On Mon, Mar 24, 2014 at 10:35 AM, Jim Reisert AD1C <jjreisert@alum.mit.edu>wrote: > On Sun, Mar 23, 2014 at 6:56 PM, <Valdis.Kletnieks@vt.edu> wrote: > > > Seems to be working for me on a 3800 on both IPv4 and IPv6 here in > > Comcast-land. Admittedly not stress-tested much, that will probably have > > to wait for some evening this week... > > No problems to report here either. > > Incidentally my older Sony Blu-Ray player connected to the -guest > network at 172.30.43.x (with subnet mask 255.255.255.0) with no > problems at all reaching the Internet. So Sony must have the CIDR > issue in more than one of their products. > > -- > Jim Reisert AD1C, <jjreisert@alum.mit.edu>, http://www.ad1c.us > _______________________________________________ > Cerowrt-devel mailing list > Cerowrt-devel@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/cerowrt-devel > [-- Attachment #2: Type: text/html, Size: 1832 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Cerowrt-devel] upnp oddness (was Re: cerowrt-3.10.32-12 released 2014-03-21 17:47 [Cerowrt-devel] cerowrt-3.10.32-12 released Dave Taht ` (2 preceding siblings ...) 2014-03-24 0:56 ` Valdis.Kletnieks @ 2014-03-24 16:32 ` Valdis.Kletnieks 3 siblings, 0 replies; 17+ messages in thread From: Valdis.Kletnieks @ 2014-03-24 16:32 UTC (permalink / raw) To: Dave Taht; +Cc: cerowrt-devel [-- Attachment #1: Type: text/plain, Size: 694 bytes --] On Fri, 21 Mar 2014 17:47:42 -0000, Dave Taht said: > - currently untested (but a really small delta from -10 and -11) Not sure if it's a bug or pilot error, but.. after flashing -12, upnp didn't get restarted. I did a 'test network connection' from my PS3, which reported it wasn't available. Went to the page on the web admin, and sure enough the 'start upnp' button was off. Re-clicked it, hit 'save and apply' and it started working and the PS3 said it had UPNP and Type 2 NAT, so it was happy. I seem to recall doing this same tap-dance after installing -9. My first guess is that variable isn't flagged for whatever the "save config values" across an upgrade does... [-- Attachment #2: Type: application/pgp-signature, Size: 848 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2014-03-26 4:38 UTC | newest] Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-03-21 17:47 [Cerowrt-devel] cerowrt-3.10.32-12 released Dave Taht 2014-03-21 18:51 ` Toke Høiland-Jørgensen 2014-03-21 22:00 ` Sebastian Moeller 2014-03-21 22:53 ` Toke Høiland-Jørgensen 2014-03-21 23:04 ` Sebastian Moeller 2014-03-21 23:26 ` Toke Høiland-Jørgensen [not found] ` <608F3E46-3D81-48A3-B60C-E90661DD3AB2@gmx.de> 2014-03-22 11:08 ` Toke Høiland-Jørgensen 2014-03-22 17:09 ` Dave Taht 2014-03-22 18:18 ` Toke Høiland-Jørgensen 2014-03-22 20:20 ` Sebastian Moeller 2014-03-22 19:23 ` Sebastian Moeller 2014-03-22 19:36 ` Toke Høiland-Jørgensen 2014-03-22 20:24 ` Sebastian Moeller 2014-03-24 0:56 ` Valdis.Kletnieks 2014-03-24 14:35 ` Jim Reisert AD1C 2014-03-26 4:37 ` Kai Yang 2014-03-24 16:32 ` [Cerowrt-devel] upnp oddness (was " Valdis.Kletnieks
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox