Commit Graph

195 Commits

Author SHA1 Message Date
c5a72342f2 Add time and vendor information to leases 2022-03-04 13:49:50 -08:00
67711ee2c7 Merge branch 'master' of https://github.com/rtr7/router7 2022-03-04 13:30:38 -08:00
6d41b077a9 internal/dhcp*: switch to github.com/mdlayher/packet (#70)
* internal/dhcp*: switch to github.com/mdlayher/packet
* internal/dhcp4d: update test constructor name to avoid packet conflict

Signed-off-by: Matt Layher <mdlayher@gmail.com>
2022-02-21 23:39:06 +01:00
e07002721d teelogger: make writes to /dev/console non-blocking
fixes https://github.com/rtr7/router7/issues/68
2021-09-19 11:45:19 +02:00
575a14c394 dyndns: add zone to record name
Otherwise, already existing records are not recognized correctly.
2021-09-01 09:37:12 +02:00
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
61b59517fc Act as the authority even though were not
letsencrypt needs to talk to the authoritative name server, but
I have all dns traffic redirected to here so we get the SOA using the
same request (probably only works by accident) and then make a request
to the address listed in the SOA

Fix typos in IPv6 addresses
2021-05-26 23:04:33 -07:00
b801bf699f Re-Add DHCP discover fallback for ISPs that don't advertise DHCP 2021-05-23 19:38:38 -07:00
e34b880a55 Final fix
Add the domain as it is needed (multiple domains on a home net is niche)
Only replace the record if a local one was found
Use proper slice updating
2021-05-23 19:34:59 -07:00
ac0ef71d9f Fix null check 2021-05-23 18:54:09 -07:00
9533787aac Fix err check
go mod tidy
2021-05-23 18:31:30 -07:00
29eaa11052 Update parameters for clarity
Hijack the final A record in a CNAME chain if it is in our records
2021-05-23 17:49:15 -07:00
ef50f7c2e4 Merge remote-tracking branch 'origin/master' 2021-03-15 22:44:39 -07:00
a592bbc76a Revert "Fallback to DHCPDISCOVER after 4 failed timeouts"
This reverts commit 68105841c6.
2021-03-15 22:34:17 -07:00
9f4380a4a3 Fix the fallback to DHCP Discover
Log the IP Address of the server in each failed timeout
Update gokrazy
2021-01-09 15:32:30 -08: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
68105841c6 Fallback to DHCPDISCOVER after 4 failed timeouts 2020-09-01 22:16:14 -07:00
04ee69ce02 go mod tidy
Update deps
2020-08-10 18:26:07 -07:00
7923e58428 dhcp4d: add an options argument for the dhcp server 2020-08-10 18:12:35 -07:00
2dc11ce1e3 Add additional test cases and fix some failing tests 2020-08-10 18:12:34 -07:00
e421cff225 Fix the implicit lan domain
Includes test for setting a custom domain
2020-08-10 18:12:34 -07:00
fbd2facfa1 Set the recursion available flag 2020-08-10 18:12:34 -07:00
fbbfa568a8 Add JSON tags 2020-08-10 18:12:34 -07:00
169bc5c3e7 DNS changes
go mod tidy
2020-08-10 18:12:34 -07:00
3c451f06ca Add the ability to run router7 on a normal Linux distribution 2020-08-10 18:12:34 -07: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