Commit Graph

81 Commits

Author SHA1 Message Date
Michael Stapelberg 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
Michael Stapelberg ad779c3665 dhcp6: update for breaking upstream changes 2018-08-05 11:45:03 +02:00
Michael Stapelberg 5a5a748b9f dnsd: don’t serve expired leases
fixes #6
2018-08-05 11:30:58 +02:00
Michael Stapelberg daa14845ab netconfig: plug fd leak by closing the netlink handle
fixes #4
2018-07-22 23:07:23 +02:00
Michael Stapelberg 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
Michael Stapelberg 49a59779f5 dhcp4d: don’t offer expired leases 2018-07-15 18:33:11 +02:00
Michael Stapelberg 3282dc5675 netconfig: GetRule filtering is not supported by Linux 4.4.0 (trusty) 2018-07-14 20:53:15 +02:00
Michael Stapelberg bfa16c559f dnsmasq: gracefully handle temporarily not existing ready files 2018-07-14 16:42:50 +02:00
Michael Stapelberg 3afe757a34 notify: gracefully handle vanishing processes 2018-07-14 16:36:51 +02:00
Michael Stapelberg b347ed74c5 update import paths 2018-07-09 08:54:04 +02:00
Michael Stapelberg 984e8802f7 dhcp6: log XIDs when they differ
Encountering this message can be perfectly normal, e.g. in a high-availability
setup, where two DHCP servers answer to your requests.
2018-07-03 17:37:25 +02:00
Michael Stapelberg b05fd74006 dhcp4: increase timeout to 10s 2018-07-03 17:37:17 +02:00
Michael Stapelberg 86f5433cbb dhcp6: correctly clear previous error 2018-06-29 12:02:16 +02:00
Michael Stapelberg ff7aa8f2cb add copyright notices 2018-06-28 20:08:23 +02:00
Michael Stapelberg 2b3cf0bf61 captured: use multilisten 2018-06-28 20:08:23 +02:00
Michael Stapelberg 4c7741a337 add backupd 2018-06-26 18:01:50 +02:00
Michael Stapelberg 89e1276ad4 dns: simplify resolving code 2018-06-26 09:33:23 +02:00
Michael Stapelberg 8e95e25442 radvd: announce link-local ipv6 address for DNS 2018-06-26 09:04:05 +02:00
Michael Stapelberg 10df129c1f dns: listen on all private IP addresses 2018-06-26 08:53:20 +02:00
Michael Stapelberg 08249aec6a dns: resolve localhost locally 2018-06-25 20:24:02 +02:00
Michael Stapelberg 60de127991 Describe all packages and binaries. 2018-06-25 20:12:51 +02:00
Michael Stapelberg a881f6b61e cut down on test noise 2018-06-24 12:06:40 +02:00
Michael Stapelberg ae15230da3 dhcp4d: log in leases callback 2018-06-24 11:56:39 +02:00
Michael Stapelberg 5a07d6696d split integration tests into multiple packages
This makes them complete more quickly (because they are run in parallel) and
invalidates only the cache for the integration test I’m working on, not for all
of them.
2018-06-24 11:46:49 +02:00
Michael Stapelberg 2ff269bf67 unflake integration: use different interface name in DHCPv6 test 2018-06-24 08:33:39 +02:00
Michael Stapelberg c96c683e43 dns: send NXDOMAIN for non-existant local names 2018-06-23 22:15:35 +02:00
Michael Stapelberg 3886367a32 remove TODOs: the sysctls have reasonable defaults 2018-06-23 20:34:42 +02:00
Michael Stapelberg bf2c12a69d netconfigd: export ipv4/ipv6 packet/bytes counters on :8066 2018-06-23 19:56:34 +02:00
Michael Stapelberg 3ba84074c7 dhcp4d: send replies as unicast using raw sockets
Preferring unicast over multicast (which hogs a lot of airtime on WiFi networks)
is a best practice.

Some device/access point vendor combinations even seem to entirely eat (some?)
broadcast traffic (sometimes), e.g. my Apple iPhone SE/Ubiquiti UAP-AC-HD, so
that using unicast is required for reliable WiFi.
2018-06-23 17:46:53 +02:00
Michael Stapelberg 301d4c0d00 dhcp4d: always set broadcast flag for DHCPOFFERs
We always broadcast them, so we should signal that.
2018-06-22 18:35:23 +02:00
Michael Stapelberg 37bf17e1b7 make binaries cope with Squashfs root 2018-06-22 17:59:23 +02:00
Michael Stapelberg 5e11eae951 fix dhcp4d_test for larger pool 2018-06-19 09:46:29 +02:00
Michael Stapelberg 957e4de03a no-op: only one branch results in DHCPNAK 2018-06-18 19:29:58 +02:00
Michael Stapelberg 34d494b85c dhcp4d: increase lease range to cover existing leases 2018-06-18 19:29:42 +02:00
Michael Stapelberg 4b6b5196b0 dns: correctly resolve PTR for hostname 2018-06-18 09:44:46 +02:00
Michael Stapelberg c743091929 dns: track number of questions and which upstream was used 2018-06-18 09:35:14 +02:00
Michael Stapelberg 24e2d5de00 dnsd: serve prometheus metrics on port 8053 2018-06-18 08:04:56 +02:00
Michael Stapelberg 0e6add220c notify dyndns from netconfigd, i.e. _after_ applying addresses 2018-06-17 20:44:25 +02:00
Michael Stapelberg ffc18ec527 diag: display ICMP echo source address (for ff02::2%uplink0) 2018-06-17 20:24:56 +02:00
Michael Stapelberg 8b85084429 dhcp4: persist DHCPACK to renew existing lease after reboot 2018-06-15 17:30:57 +02:00
Michael Stapelberg d2ecb190ac dhcp4: skip DHCPDISCOVER when renewing 2018-06-15 09:58:51 +02:00
Michael Stapelberg 32dd03c7f2 dhcp4d: copy reqIP, its backing storage gets reused 2018-06-15 09:56:07 +02:00
Michael Stapelberg a1c4d60666 netconfig: implement support for port ranges 2018-06-14 22:25:39 +02:00
Michael Stapelberg 390c2af7db netconfig: implement UDP port forwardings 2018-06-14 21:05:43 +02:00
Michael Stapelberg 93eaab99cb dns: resolve own hostname, lock for concurrency 2018-06-14 20:42:53 +02:00
Michael Stapelberg 02c7fa7e0d dns: serve reverse lookup queries for all RFC 1918 reserved networks 2018-06-14 20:24:44 +02:00
Michael Stapelberg fdd2201ef5 netconfig: prevent duplicate error messages 2018-06-14 18:28:40 +02:00
Michael Stapelberg 03b2345eb2 netconfig: flush nftables ruleset, replace DHCPv6 address 2018-06-14 08:27:08 +02:00
Michael Stapelberg 19aa03bf58 dhcp4: specify previous IP address when renewing 2018-06-13 19:32:20 +02:00
Michael Stapelberg 43e1b2eaae radvd: also set hop limit to 255 for multicast packets 2018-06-12 09:30:01 +02:00