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
5b34daeb4e
no-op cleanup: switch to dhcp4.LeaseFromACK
2018-11-21 08:23:57 +01:00
8c55c5ba44
dhcp4: switch to github.com/rtr7/dhcp4
...
All existing DHCPv4 packages I looked at were unappealing for one reason or
another, so we’re now using a little helper to glue github.com/google/gopacket
and github.com/mdlayher/raw together, which suffices for our use-case and gives
us more control.
2018-11-21 08:18:58 +01:00
30e9a6677b
integration/dhcpv4: print unified line-wise diff
...
This is much more readable than the go-cmp Diff() output when dealing with
[]string lines.
2018-11-18 14:29:30 +01:00
fac1bf231e
netconfigd: notify dhcp4d to update its listeners
2018-10-29 18:14:01 +01:00
7d278289f0
captured: directly call NextPacket() to prevent hanging reads
...
Using Packets() spawns off a separate goroutine which calls NextPacket in a loop
until io.EOF is returned. This goroutine will stick around after Close()
returned, resulting in only the first wireshark connection working.
2018-10-23 09:56:07 +02:00
d9f5d95812
dhcp4d: export number of non-expired DHCP leases
2018-10-23 08:49:29 +02:00
4288adec69
dns: don’t let clients override the hostname
...
fixes #11
2018-10-22 21:43:41 +02:00
0bbc1d923d
refactor replayer code into pcapreplayer package
2018-10-22 21:04:35 +02:00
e01a38ff78
commit debug statements
2018-10-22 18:58:40 +02:00
817fdc81f8
README: recommend to install all rtr7 tools
2018-10-22 18:58:40 +02:00
2e8e0daa0a
implement TCP MSS clamping (for non-ethernet uplinks)
...
We didn’t have a need to clamp the TCP Maximum Segment Size (MSS) up until now,
because fiber7 uses an MTU of 1500.
Because Path MTU discovery is often broken on the internet, it’s best practice
to limit the Maximum Segment Size (MSS) of each TCP connection, achieving the
same effect (but only for TCP connections).
This change is beneficial when running router7 behind a non-ethernet uplink,
such as a Fritz!Box cable modem.
This has no adverse effect on fiber7: after clamping, the MSS is still 1440, as
without clamping.
2018-10-22 18:54:25 +02:00
c037bf9c5f
dhcp4d: fix panic when receiving unsupported requests
2018-10-22 18:39:25 +02:00
cfbf52db6e
dhcp6: update after changes in insomniacslk/dhcp ( #10 )
2018-10-16 08:03:45 +02:00
81894ba0b3
dhcp6: simplify PD obtention ( #9 )
2018-10-11 14:29:22 +02:00
672134080f
README: reference prometheus config + dashboard
2018-10-10 16:52:42 +02:00
b725100d9c
add prometheus configuration examples
2018-10-10 16:49:45 +02:00
f606e70250
dhcp4d: respect broadcast bit
...
Mac’s Internet Recovery DHCP client requires broadcast responses and will ignore
unicast responses outright.
2018-10-07 17:36:00 +02:00
f7638dfeaa
netconfig_test: test updating port forwardings after installation
...
This uncovered an nftables issue:
695079ebff
2018-10-03 18:24:54 +02:00
ea4ffa7bec
OpenEthernet → NewEthernetHandle, remove kludge
2018-09-07 00:50:41 +02:00
aa404c3c54
Request nameserver, router and netmask as it might not be automatically returned by dhcp server. ( #7 )
2018-09-05 10:06:31 -06:00
447f1779e2
dhcp6: update for breaking upstream changes
...
see https://github.com/insomniacslk/dhcp/pull/81
2018-09-05 08:39:35 +02:00
4c4032d469
README: add radvd as consumer of dhcp6 lease file
2018-08-20 22:59:22 +02:00
14f1636bc0
travis: upgrade to xenial (Ubuntu 16.04)
...
Perhaps this will use a newer kernel with support for nftables stateful objects?
2018-08-10 09:37:25 +02:00
b03596f1c5
nftables: use stateful object counters
...
This way, we can atomically get and reset them.
fixes https://github.com/rtr7/router7/issues/3
2018-08-08 23:15:21 +02:00
ad779c3665
dhcp6: update for breaking upstream changes
2018-08-05 11:45:03 +02:00
5a5a748b9f
dnsd: don’t serve expired leases
...
fixes #6
2018-08-05 11:30:58 +02:00
daa14845ab
netconfig: plug fd leak by closing the netlink handle
...
fixes #4
2018-07-22 23:07:23 +02:00
c5e5a0eee0
radvd: gather details about the interface on SIGUSR1
...
The interface might have a new MAC address (if radvd was started before netconfigd).
2018-07-16 22:46:49 +02:00
49a59779f5
dhcp4d: don’t offer expired leases
2018-07-15 18:33:11 +02:00
a9c7585eac
README: add travis badge
2018-07-14 20:57:27 +02:00
4a85c51b9f
add travis config
2018-07-14 20:53:24 +02:00
3282dc5675
netconfig: GetRule filtering is not supported by Linux 4.4.0 (trusty)
2018-07-14 20:53:15 +02:00
ea10307b5d
dhcpv4: replace hard-coded midna → os.Hostname()
2018-07-14 17:35:25 +02:00
bfa16c559f
dnsmasq: gracefully handle temporarily not existing ready files
2018-07-14 16:42:50 +02:00