Michael Stapelberg
225c8e6abd
radvd: ignore requests from other interfaces than the configured one
...
Announcing networks into uplinks is never a good idea 🙈
2022-06-08 17:42:55 +02:00
Michael Stapelberg
f4dd972e54
netconfig: WireGuard: set up host routes instead of DHCP default
...
related to https://github.com/rtr7/router7/issues/52
2022-06-07 23:22:08 +02:00
Michael Stapelberg
7d936f4844
allow configuring extra routes
...
Useful for routing IPv6 subnets through a WireGuard tunnel.
related to https://github.com/rtr7/router7/issues/52
2022-06-06 14:25:25 +02:00
Michael Stapelberg
f52deeed03
allow configuring extra addresses on interfaces
...
Useful when you need IPv6 and IPv4 addresses on a WireGuard tunnel.
2022-06-06 14:25:25 +02:00
Michael Stapelberg
40f8eb5b1b
fix wireguard availability test
2022-06-06 14:25:25 +02:00
insanitywholesale
2ee2a943a7
remove line about hairpinning not being supported ( #72 )
2022-04-22 17:04:28 +02:00
Michael Stapelberg
e8a78c2eaa
GitHub Actions: switch to Go 1.18
2022-03-25 09:12:16 +01:00
Michael Stapelberg
d747f1db5f
go mod tidy
2022-03-25 09:11:08 +01:00
Michael Stapelberg
ef7089dc61
radvd: switch to netip package for mdlayher/ndp
2022-03-25 09:09:26 +01:00
Michael Stapelberg
2014da4ca3
dhcp4d: display active devices based on LastACK
...
This has the advantage that it also works for static DHCP leases,
provided the device obtains a DHCP lease at all (and isn’t configured with a
static IP address, like the shelly motion sensors for example).
2022-03-12 17:38:16 +01:00
Michael Stapelberg
593cd8c12d
export input/output nftables counters as well as forwarded
...
Thus far, we have only had forwarded bytes metrics.
Notably, forwarded bytes does not include bytes that were sent by the router
itself, e.g. by the webserver or rsync server running on the machine.
fixes https://github.com/rtr7/router7/issues/71
2022-03-08 22:47:18 +01:00
Michael Stapelberg
8dc93c66c4
netconfig: enable NAT hairpinning for port forwardings
...
fixes https://github.com/rtr7/router7/issues/53
2022-03-08 09:32:09 +01:00
Matt Layher
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
Chris K
406c6015c4
go mod tidy ( #69 )
...
To explicitly remove the u-root/u-root dependency.
Signed-off-by: Chris Koch <chrisko@google.com>
2021-12-22 09:00:47 +01:00
Michael Stapelberg
d57b44ab51
README: swap travis badge with GitHub Actions badge
2021-09-19 11:47:51 +02:00
Michael Stapelberg
3ad9d03460
gofmt for go:build
2021-09-19 11:46:57 +02:00
Michael Stapelberg
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
Michael Stapelberg
a5a012dd96
dhcp4: increase number of unhealthy cycles
2021-09-19 11:45:04 +02:00
Michael Stapelberg
575a14c394
dyndns: add zone to record name
...
Otherwise, already existing records are not recognized correctly.
2021-09-01 09:37:12 +02:00
Michael Stapelberg
20dd872fbe
backup: skip “nobackup” and “srv” directories
2021-09-01 09:27:49 +02:00
sseering
5869922efb
fix CONTRIBUTING.md link on the website ( #66 )
2021-07-11 09:52:11 +02:00
Michael Stapelberg
b88ddd41c3
netconfig: don’t try to add bridge to itself
2021-06-12 22:24:38 +02:00
Michael Stapelberg
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
Michael Stapelberg
cffd872346
netconfig: implement bridge configuration
...
fixes https://github.com/rtr7/router7/issues/65
2021-06-06 15:43:55 +02:00
Michael Stapelberg
d0f963def3
fix integration test: explicitly install iproute2 in container
2021-06-03 21:18:51 +02:00
Michael Stapelberg
e34a5ae0f3
update go.mod and go.sum
2021-06-03 21:12:13 +02:00
Michael Stapelberg
cbadfe5128
dhcp4: ensure MQTT topic names are printable (for mosquitto_sub)
2021-06-03 21:06:03 +02: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
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