c602f1d6b6
dhcp4d: introduce -interface flag
2019-07-20 10:50:30 +02:00
c211763b5d
dhcp4d: indent leases.json for easier human editing
2019-07-20 10:49:53 +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
414a7c025b
use nft’s --numeric flag for stable output across 0.9.0 and 0.9.1
...
nftables 0.9.1 started printing e.g. “priority 0” as “priority filter”.
2019-07-11 08:39:08 +02:00
554d7fa8bf
netconfig_test: fix goldens after nftables change
...
The nftables package started honoring the rule position (insert vs. append), and
it turns out our goldens have been wrong all along. Now the configured order
matches the golden order.
2019-07-11 08:28:33 +02:00
fa91770b09
integration/dns: 8.8.8.8’s RDNS changed to dns.google.
2019-07-01 08:55:10 +02:00
373c83196d
dhcp4: make interface and state directory configurable
...
This is useful for manual testing on separate interfaces.
2019-06-06 07:52:08 +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
02741e8d28
travis: remove debugging statements
2019-04-29 19:09:08 +02:00
4a1d06f5f8
travis: list links/addresses for debugging
2019-04-29 19:02:39 +02:00
ea8efe1978
log hardwareAddr for debugging travis
2019-04-29 19:02:39 +02:00
0f9027bcfe
Merge pull request #30 from insomniacslk/fix_build_constant_moved
...
Fix build after insomniacslk/dhcp constant moved
2019-04-29 18:49:26 +02:00
82b41d1cc3
travis: switch to go vet
2019-04-29 18:42:29 +02:00
844f528ed8
travis: enable IPv6 before running tests
2019-04-29 18:42:15 +02:00
4b3cbd556f
Fix build after insomniacslk/dhcp constant moved
...
The AllDHCPRelayAgentsAndServers constant has moved from client6 to
dhcpv6 in insomniacslk/dhcp . This PR fixes the build after
https://github.com/insomniacslk/dhcp/pull/278
Signed-off-by: Andrea Barberio <insomniac@slackware.it >
2019-04-29 15:43:30 +01:00
1a65f972c6
dhcp6: only call net.InterfaceByName when client is constructed
2019-04-16 08:36:06 +02:00
26075c4957
dhcp6: use NewSolicit instead of removed NewSolicitForInterface
...
In https://github.com/insomniacslk/dhcp/pull/256 NewSolicitForInterface
was removed in favour of NewSolicit. This PR fixes the build failure due
to that change.
2019-04-10 09:54:16 +02:00
3765287e97
dhcp4: use SetReadDeadline, not SetDeadline
...
fixes https://github.com/rtr7/router7/issues/25
related to https://github.com/mdlayher/raw/issues/42
2019-03-21 09:18:32 +01:00
33348e1f0d
dhcp6: use updated DHCPv6 stuff
2019-03-13 20:31:36 +01:00
7b1fcc9017
travis: use go1.12
...
https://github.com/mdlayher/raw/pull/40 requires go1.12
2019-03-03 16:36:25 +01:00
8906854211
fix compilation after https://github.com/mdlayher/netlink/pull/127
2019-03-03 16:09:20 +01:00
3dad1e9a23
dhcp4: use the configured (not the current) MAC address
...
This fixes a race where dhcp4 started before netconfigd had a chance to change
the hardware address on the uplink0 interface.
fiber7’s port security feature may result in an about hour-long internet outage
without this commit.
2019-02-19 09:39:16 +01:00
66942bd4f7
dns: steer traffic toward the most response upstream
...
There is not much of a difference between IPv4 and IPv6 on my fiber7 link, but
in other networks, there might well be.
For my connection, this commit results in hitting different upstreams all the
time because the list isn’t stable. But, this is the opposite of a problem: we
are spreading the DNS query load over all configured IPs, as good netizen do.
2019-02-19 09:37:38 +01:00
a05f027765
dns: fallback only once, i.e. prefer the working server next time
2019-02-19 08:49:40 +01:00
ccaf6ad452
dns: fallback to next upstream upon failure
2019-02-19 08:38:52 +01:00
abeddabbb7
dhcp4d: restrict lease details page to internal IPs
2019-02-19 07:50:39 +01:00
cbff6a2541
internal/dhcp6: fix build after DHCP library API change ( #23 )
2019-01-28 22:06:10 +01:00
ea50066bad
dhcpv6: use new TransactionID type ( #21 )
2019-01-27 11:47:19 +01:00
a3799c4ec5
dhcp6: use changed type name. ( #19 )
2019-01-15 08:02:56 +01:00
13926217d9
oui_test: fix data race when overriding ouiURL
2019-01-06 18:07:59 +01:00
6320b6c3a7
dhcp4d: display MAC vendor of each lease’s HardwareAddr
2019-01-06 18:02:01 +01:00
8df6329209
use renameio to write files atomically
2019-01-06 15:25:33 +01:00
f67d4ec93f
radvd: load extra prefixes from /perm/radvd/prefixes.json
2019-01-06 15:12:22 +01:00
bd8fc63b0e
dns: implement per-DHCP-lease dyndns
...
The HTTP API is easy to use from the command line or from Go:
% curl --data "host=sub&ip=192.168.33.44" -4 http://router7:8053/dyndns
ok
% host sub.$(hostname)
sub.midna has address 192.168.33.44
This can be used in combination with https://github.com/gokrazy/gdns
2019-01-06 14:41:26 +01:00
92d995bf79
dns: return empty reply for non-A queries for DNS hostnames
...
instead of NXDOMAIN, which is incorrect
2019-01-01 17:21:50 +01:00
c7be96ac2e
dhcp4d: fix IP address comparison
...
AFAICT, this wasn’t actually a bug: canLease performs the correct check.
2019-01-01 10:45:03 +01:00
0d2e89cebf
dhcp4d_test: fix message to match comparison
2019-01-01 10:44:03 +01:00
b923f145a5
dhcp4d: don’t incorrectly _offer_ reused addresses
...
Turns out a5d9e03dd3
was not entirely sufficient:
even though reused addresses would not be handed out anymore, they would still
be offered, which results in the client not being able to obtain an address.
2019-01-01 10:41:29 +01:00
ddcdd39737
dhcp4: drop last ack to restart with DISCOVER upon receiving NAK
...
fixes #13
2018-12-25 14:10:21 +01:00
725262d376
netconfig: use sysctl format for easier copy&paste
2018-12-25 14:08:14 +01:00
9012520052
diag: more informative error messages
2018-12-15 13:36:21 +01:00
5eaba2aa4d
travis: switch to go 1.11
2018-12-15 12:49:34 +01:00
a5d9e03dd3
dhcp4d: don’t incorrectly hand out reused addresses
...
fixes #18
2018-12-15 12:44:09 +01:00
badee1eef8
netconfig_test: skip test if WireGuard is unavailable
2018-11-26 18:43:04 +01:00
ec4f1f4dc5
netconfig: implement WireGuard support
...
To set up a tunnel, create a /perm/wireguard.json as illustrated in
netconfig_test.go, and don’t forget to adjust your /perm/interfaces.json with
the address configuration for the WireGuard tunnel.
Note that static routes cannot currently be configured, so the usefulness is
limited. If you have a use-case you’d like to see covered, please explain it in
https://github.com/rtr7/router7/issues/14
2018-11-26 18:29:03 +01:00
b6a5227d49
netconfig_test: better diffs, refactor for clarity/brevity
2018-11-26 08:46:59 +01:00
127bdc466e
netconfig_test: use ip -netns instead of ip netns exec ip
2018-11-26 08:32:38 +01:00
ac883da6a5
dns_test: xps → testtarget
...
This fixes running the tests on xps, where the entry derived from os.Hostname
would clash with the xps entries the testcase tries to install.
2018-11-22 17:03:51 +01:00
df9a40557c
dhcp4: correctly check errors from c.once
2018-11-21 08:41:24 +01:00
bef7168112
dhcp4: resolve TODOs in comments
2018-11-21 08:41:07 +01:00