165 Commits

Author SHA1 Message Date
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
7a46d077ee dhcp4/dhcp6: notify dyndns if present 2018-06-17 19:30:30 +02:00
Michael Stapelberg
bb6b901b90 captured: implement a packet ring buffer
So that when you connect with Wireshark, you’ll see the most recent
packets (takes up to 7 MB of RAM).
2018-06-17 17:47:26 +02:00
Michael Stapelberg
2c302d976d captured: plug goroutine leak from closed SSH connections 2018-06-17 16:49:37 +02:00
Michael Stapelberg
bb563e0798 add captured: sends packets to Wireshark SSH remote capture
Just point your wireshark to 10.0.0.1:5022.
2018-06-17 15:19:49 +02:00
Michael Stapelberg
8b85084429 dhcp4: persist DHCPACK to renew existing lease after reboot 2018-06-15 17:30:57 +02:00
Michael Stapelberg
4f4f286a43 radvd: better error message 2018-06-15 09:59:01 +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
48fcf2d0ea dhcp6: notify radvd when obtaining a lease
Otherwise, no networks are announced
2018-06-15 09:28:41 +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
Michael Stapelberg
589e2ae43d netconfig: replace routes, not add 2018-06-12 09:29:53 +02:00
Michael Stapelberg
4c69109db5 dhcp4d: implement permanent leases (no expiration) 2018-06-12 08:21:07 +02:00
Michael Stapelberg
d21822f531 dhcp4d: implement loading leases files from persistent storage 2018-06-09 15:18:01 +02:00
Michael Stapelberg
f9c3c23b16 dhcp4d: implement lease expiration 2018-06-09 15:04:54 +02:00
Michael Stapelberg
ea476bbb04 remove accidentally committed router7.test binaries 2018-06-08 16:51:50 +02:00
Michael Stapelberg
c37ddf4f6e integrationradvd: unflake test 2018-06-08 16:51:33 +02:00
Michael Stapelberg
4baac19e13 radvd: skip advertisments when no prefixes are configured 2018-06-08 16:50:27 +02:00
Michael Stapelberg
6782668f23 integrationnetconfig: deal with whitespace and “dnat to” of older nft(8) 2018-06-08 15:41:33 +02:00
Michael Stapelberg
424d5cc07f dhcpv4: fail test on temporary errors, too 2018-06-08 15:18:24 +02:00
Michael Stapelberg
3561ec3708 dhcp4d: offer requested address if available 2018-06-07 08:39:47 +02:00
Michael Stapelberg
0152ef3601 netconfig: implement port forwardings 2018-06-05 08:51:51 +02:00
Michael Stapelberg
320ca04a2f netconfig: use oifname instead of oif 2018-06-05 08:48:30 +02:00
Michael Stapelberg
21ca224281 netconfig: switch from iptables to nft 2018-06-04 10:01:09 +02:00
Michael Stapelberg
1b004597c1 netconfig: implement spoof_hardware_addr for easier testing 2018-06-04 08:30:57 +02:00
Michael Stapelberg
2ef8bf6ea0 dnsd/dhcp4d: listen on configured address (not hard-coded) 2018-06-04 08:22:45 +02:00
Michael Stapelberg
763aa18a74 netconfig: write /etc/resolv.conf 2018-06-04 07:59:25 +02:00
Michael Stapelberg
48ddf81147 netconfig: apply IPv6 address to lan0, not uplink0 2018-06-03 20:35:41 +02:00
Michael Stapelberg
518b9f843c add the diagnostics daemon 2018-06-03 20:05:13 +02:00
Michael Stapelberg
7164b27041 dhcp6: specify the prefix delegation option 2018-06-03 20:03:07 +02:00
Michael Stapelberg
3cadbdd7aa dhcp6: hook up SIGUSR2 to DHCPRELEASE 2018-06-02 21:00:56 +02:00
Michael Stapelberg
1e62de50bd factor dnsmasq code into testing helper, verify dhcp6 client id 2018-06-02 18:05:09 +02:00
Michael Stapelberg
7d2205c295 dhcp6: implement support for client identifier 2018-06-02 18:01:44 +02:00