296 Commits

Author SHA1 Message Date
lordwelch
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
lordwelch
ac0ef71d9f Fix null check v0.0.20 2021-05-23 18:54:09 -07:00
lordwelch
9533787aac Fix err check
go mod tidy
v0.0.19
2021-05-23 18:31:30 -07:00
lordwelch
29eaa11052 Update parameters for clarity
Hijack the final A record in a CNAME chain if it is in our records
v0.0.18
2021-05-23 17:49:15 -07:00
lordwelch
9ee285e139 fix build v0.0.17 2021-03-15 23:50:19 -07:00
lordwelch
ef50f7c2e4 Merge remote-tracking branch 'origin/master' v0.0.16 2021-03-15 22:44:39 -07:00
lordwelch
a592bbc76a Revert "Fallback to DHCPDISCOVER after 4 failed timeouts"
This reverts commit 68105841c6566eca72f039120e9a01e886a42041.
2021-03-15 22:34:17 -07:00
lordwelch
9f4380a4a3 Fix the fallback to DHCP Discover
Log the IP Address of the server in each failed timeout
Update gokrazy
v0.0.15
2021-01-09 15:32:30 -08:00
Michael Stapelberg
3834acfa2b dhcp4d: ensure MQTT topic names are valid UTF-8
https://twitter.com/zekjur/status/1347295676909158400
2021-01-07 22:52:58 +01:00
Michael Stapelberg
c30bf38438 bump dependencies 2020-12-31 22:13:25 +01:00
Michael Stapelberg
5f25043b94 dhcp4d: only publish to MQTT when channel is ready to prevent deadlocks 2020-12-31 16:42:12 +01:00
Michael Stapelberg
c3c531931c retry MQTT connections, even if initial connection attempt fails 2020-12-31 16:42:01 +01:00
Michael Stapelberg
32b0dc7d59 Makefile: Go 1.16’s go install wants the @latest suffix 2020-12-19 13:52:03 +01:00
Michael Stapelberg
04f2be01d9 dhcp4d: optionally publish DHCP leases to MQTT
Enable using:

  mkdir -p /perm/dhcp4d
  echo 'tcp://10.0.0.54:1883' > /perm/dhcp4d/mqtt-broker.txt
2020-12-19 13:34:46 +01:00
Michael Stapelberg
e5ea79aef8 update go.{mod,sum} with Go 1.16beta1 2020-12-18 10:10:17 +01:00
Robert Obryk
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
Robert Obryk
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
Robert Obryk
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
Michael Stapelberg
7f135438b8 dhcp4d: mention apple-suggested lease time of 1 hour 2020-11-01 19:24:24 +01:00
Michael Stapelberg
a8fce3cbbc diag: drain ping reply channel to avoid goroutine leak 2020-09-14 22:10:09 +02:00
Michael Stapelberg
99c4046ebf diagd: import net/http/pprof 2020-09-14 22:10:07 +02:00
Michael Stapelberg
efbe826a4e diagd: -interface flag for easier testing 2020-09-14 22:10:07 +02:00
Michael Stapelberg
416c1a58f6 diag: plug socket leak by adding missing Close() 2020-09-14 22:10:07 +02:00
Michael Stapelberg
f8d79d0ecc dhcp4: close healthiness checking connection 2020-09-14 12:54:14 +02:00
Michael Stapelberg
fddfe80222 dhcp4: start from scratch after 5 minutes of continued unhealthiness
fixes #58
2020-09-14 09:06:05 +02:00
Michael Stapelberg
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
Michael Stapelberg
93fe6457b3 dnsd: serve DNS on tcp/53 as well (DNS must work over TCP)
fixes #59
2020-09-12 19:21:58 +02:00
lordwelch
a34a03e036 Update gokrazy v0.0.14 2020-09-02 00:04:04 -07:00
lordwelch
68105841c6 Fallback to DHCPDISCOVER after 4 failed timeouts v0.0.13 2020-09-01 22:16:14 -07:00
lordwelch
1789f1e94c Replace gokrazy v0.0.12 2020-08-22 10:53:05 -07:00
lordwelch
55ac682d36 Fix flag.parse v0.0.11 2020-08-17 23:13:26 -07:00
lordwelch
5f01503df6 Use the correct NTP dhcp4 option v0.0.10 2020-08-16 18:19:34 -07:00
lordwelch
ce29a6f436 fix ip length v0.0.9 2020-08-10 22:05:40 -07:00
lordwelch
04ee69ce02 go mod tidy
Update deps
v0.0.8 v0.0.7
2020-08-10 18:26:07 -07:00
lordwelch
7923e58428 dhcp4d: add an options argument for the dhcp server 2020-08-10 18:12:35 -07:00
lordwelch
2dc11ce1e3 Add additional test cases and fix some failing tests 2020-08-10 18:12:34 -07:00
lordwelch
e421cff225 Fix the implicit lan domain
Includes test for setting a custom domain
2020-08-10 18:12:34 -07:00
lordwelch
fbd2facfa1 Set the recursion available flag 2020-08-10 18:12:34 -07:00
lordwelch
fbbfa568a8 Add JSON tags 2020-08-10 18:12:34 -07:00
lordwelch
169bc5c3e7 DNS changes
go mod tidy
2020-08-10 18:12:34 -07:00
lordwelch
3c451f06ca Add the ability to run router7 on a normal Linux distribution 2020-08-10 18:12:34 -07:00
Michael Stapelberg
ee17db29b6 GitHub actions: also exit early if gofmt reports syntax errors 2020-08-01 09:46:19 +02:00
Michael Stapelberg
5573c4dde7 GitHub actions: fix gofmt check 2020-08-01 09:28:02 +02:00
Michael Stapelberg
cf1e1dd480 re-generate website to pick up previous commit 2020-07-06 09:50:52 +02:00
CodeZombieCH
30b160ee55
website: added configuration section (#55)
Added configuration section to the installation page, including
examples of configuration files.
2020-07-06 09:50:37 +02:00
Michael Stapelberg
f86e20be53 dhcp6: port dhcp4 backoff logic 2020-07-02 22:07:26 +02:00
Michael Stapelberg
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
Michael Stapelberg
281f876834 integration/netconfig: verify wg(8) is available
The kernel used on GitHub actions now allows creating wireguard interfaces
apparently.
2020-07-02 21:14:35 +02:00
Michael Stapelberg
8c1b3676ab gokr-packer invocations: set empty -eeprom_package=
We don’t need Raspberry Pi 4 EEPROM files on router7 on amd64,
and this makes the build easier.

fixes #54
2020-07-02 21:06:22 +02:00
Michael Stapelberg
dff392e558 website: bundle assets for faster loading/privacy 2020-06-21 10:06:18 +02:00