20dd872fbe
backup: skip “nobackup” and “srv” directories
2021-09-01 09:27:49 +02:00
b88ddd41c3
netconfig: don’t try to add bridge to itself
2021-06-12 22:24:38 +02:00
bfb94377f4
netconfig: move bridge creation into its own function
...
also don’t short-circuit the rest of the configuration if bridge config fails
2021-06-12 18:25:37 +02:00
cffd872346
netconfig: implement bridge configuration
...
fixes https://github.com/rtr7/router7/issues/65
2021-06-06 15:43:55 +02:00
f8d1b4c8f2
internal/dhcp4: make persistent errors actally persistent ( #62 )
...
Previously, a permanent error would not be persisted for future
invocations of ObtainOrRenew. In practice, the daemon immediately
exited, so this made no difference.
2020-11-23 09:35:00 +01:00
8de4eb7ba1
internal/dns: prevent upstreams from being lost during reordering ( #63 )
...
If upstreams were reordered between start of an upstream request and its
conclusion, the move-to-front operation would likely incorrectly reorder
upstreams: duplicate one and remove another. Instead, we abandon the
move-to-front operation if that was about to happen.
2020-11-23 09:34:04 +01:00
0507d93b3d
dhcp4d: ensure that SetHostname operates on the correct lease ( #64 )
...
Previously SetHostname could operate on an expired lease, or even on a
lease for a different hwaddr, if the lease for the correct hwaddr
expired and the same lease ID was given away to someone else.
That's though mostly a theoretical concern, given the actual usage of
SetHostname and the time scales involved.
2020-11-23 09:32:42 +01:00
7f135438b8
dhcp4d: mention apple-suggested lease time of 1 hour
2020-11-01 19:24:24 +01:00
a8fce3cbbc
diag: drain ping reply channel to avoid goroutine leak
2020-09-14 22:10:09 +02:00
416c1a58f6
diag: plug socket leak by adding missing Close()
2020-09-14 22:10:07 +02:00
876f8e320f
netconfig: de-configure old DHCPv4 addresses from uplink0
...
It is generally not a good idea to have multiple IP addresses on the same
interface unless managing their relative priorities via metrics etc.
During an outage, I noticed that with multiple IP addresses,
Linux was using the old obsolete one to send out packets,
which does not work with the ISP.
With this change,
we still hold on to IP addresses for as long as possible,
but no longer.
fixes issue #57
2020-09-12 19:58:47 +02:00
ae8cfee616
dhcp6: inspect server advertisment IAPD and report error, if any
...
The fiber7 DHCPv6 servers (sometimes?) use this field for reporting errors.
2020-07-02 22:06:55 +02:00
aa14d119e6
dyndns: add log message when records are updated
...
Now both cases are covered.
2020-05-28 17:24:51 +02:00
decb0978d7
dyndns: update to newer libdns/cloudflare, remove workaround
2020-05-28 17:22:24 +02:00
7950291db6
dyndns: tweak up-to-date message output
2020-05-28 09:42:55 +02:00
4a5f55a5de
defense in depth: verify hex.DecodeString length
...
related to #49
2020-05-27 09:50:04 +02:00
ead58ad72c
cmd/dyndns: prototype for dynamic DNS daemon ( #50 )
...
Updates #46 .
Signed-off-by: Matt Layher <mdlayher@gmail.com >
2020-05-23 23:06:21 +02:00
7aeb51e9ec
internal/dhcp4d: handle DHCPDECLINE and fix bug regarding MacBook declining leases ( #48 )
...
Fixes #40
Signed-off-by: Matt Layher <mdlayher@gmail.com >
2020-05-23 20:53:13 +02:00
fe68c2dd52
internal/radvd: add support for DNSSL ( #47 )
...
Signed-off-by: Matt Layher <mdlayher@gmail.com >
2020-05-23 19:52:52 +02:00
53c495091e
quirk: enforce minimum lease time of 1 hour for Nintendo devices
...
The Nintendo Switch has been observed to hold on to IP addresses even after
their expiration. My guess is that this is an oversight: likely the device
enters power saving mode with a configured IP address and just sleeps through
the expiration time.
As the device seems to wake up once every hour, we enforce a minimum lease time
of 1 hour, but only for affected devices. The rest of the network gets short
lease times.
https://twitter.com/zekjur/status/1263949112036282374
2020-05-23 09:07:17 +02:00
61174cde06
internal/netconfig: add missing error check
...
Signed-off-by: Matt Layher <mdlayher@gmail.com >
2020-05-09 17:04:31 -04:00
9f6257b046
internal/dns: fix staticcheck issues
...
Signed-off-by: Matt Layher <mdlayher@gmail.com >
2020-05-09 17:02:33 -04:00
b8c40958e8
internal/dhcp6: fix error case
...
Signed-off-by: Matt Layher <mdlayher@gmail.com >
2020-05-09 17:00:43 -04:00
411780cd8e
internal/dhcp4: fix error case
...
Signed-off-by: Matt Layher <mdlayher@gmail.com >
2020-05-09 17:00:07 -04:00
dd7c3a8a5f
internal/testing/dnsmasq: panic in goroutine instead of fatal
...
Signed-off-by: Matt Layher <mdlayher@gmail.com >
2020-05-09 16:55:46 -04:00
8efea22943
internal/radvd: remove dead types
...
Signed-off-by: Matt Layher <mdlayher@gmail.com >
2020-05-09 16:52:52 -04:00
e1f2b975a1
internal/dhcp4d: fix staticcheck issues
...
Signed-off-by: Matt Layher <mdlayher@gmail.com >
2020-05-09 16:51:32 -04:00
107a8f0425
internal/radvd: switch to github.com/mdlayher/ndp types ( #43 )
...
Signed-off-by: Matt Layher <mdlayher@gmail.com >
2020-05-09 22:50:44 +02:00
2b6ab5b2bd
dhcp4d: make hostname override settable from status page
2020-04-12 10:33:11 +02:00
4f0efc7b18
dhcp6: use new IAPD & Prefix getters ( #41 )
...
Signed-off-by: Chris Koch <chrisko@google.com >
2020-03-13 08:47:38 +01:00
e67fb4dd71
diagd: make output look good in a terminal, too
...
curl diagd.router7/
2020-03-11 22:12:00 +01:00
ffc4c21bcd
dhcp6: use new getters ( #37 )
...
Signed-off-by: Chris Koch <chrisko@google.com >
2020-03-07 09:35:59 +01:00
dba1dad718
wireguard: switch to wgctrl package
...
related to #14
2020-02-16 00:15:23 +01:00
bfba9f17af
netconfigd: collect all errors but keep going
2020-02-15 23:38:37 +01:00
96b626897a
netconfigd: work not only with uplink0, but also eth0 and ens3
...
This makes it possible to use netconfigd on gokrazy Raspberry Pi installations.
2020-02-15 23:37:29 +01:00
ef60a01f3f
netconfigd: continue if interfaces.json does not exist
2020-02-15 23:35:51 +01:00
a543cb9a34
dhcp4d: add header describing whether lease is active
...
Should be interpreted by the DHCP server so that other programs don’t need to
hard-code the lease time.
2020-01-31 19:11:08 +01:00
41985d6378
dhcp4d: reduce lease period to 20 minutes
...
This forces devices to renew the lease more often, which is nice when you want
to tie home automation behavior to DHCP lease validity.
2020-01-31 18:23:50 +01:00
73bd5c6a50
dhcp6: T1 is now already a time.Duration
...
see https://github.com/insomniacslk/dhcp/pull/347
2020-01-03 08:06:17 +01:00
3b5cf99b29
dhcp6_test: add new DHCPv6 infra packet capture
2019-12-02 10:43:39 +01:00
70edcab16b
dns: return NXDOMAIN for DHCP leases once they expire
2019-09-07 19:27:12 +02:00
fa82132962
dhcp4d: add HostnameOverride field
...
This can be used to permanently override a hostname, regardless of whether the
lease is static or not. We use a separate field because we want devices to be
able to change their hostname themselves, until we override it.
2019-08-30 09:06:21 +02:00
4cde5ec6fc
dns: fix resolution of uppercase host names, add test
2019-08-07 18:18:51 +02:00
8fb81f90b1
dns: make more recent DHCP leases overwrite older ones
...
fixes #20
2019-07-20 12:23:48 +02:00
36995097b9
make local name resolution case-insensitive
...
fixes #34
2019-07-20 12:07:30 +02:00
975f05d7ac
fix dhcp4d_test.go
2019-07-20 11:30:52 +02:00
c602f1d6b6
dhcp4d: introduce -interface flag
2019-07-20 10:50:30 +02:00
c0067c5aa5
change diff order to -want +got
...
This is easier to read and consistent with how we do things at work.
2019-07-11 08:42:21 +02:00
54843950dd
dhcp6: allow overriding hardwareaddr in test
...
This fixes the breakage introduced by commit
8166b9a9db
2019-04-29 19:16:19 +02:00
ea8efe1978
log hardwareAddr for debugging travis
2019-04-29 19:02:39 +02:00