Michael Stapelberg
4c4032d469
README: add radvd as consumer of dhcp6 lease file
2018-08-20 22:59:22 +02:00
Michael Stapelberg
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
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
a9c7585eac
README: add travis badge
2018-07-14 20:57:27 +02:00
Michael Stapelberg
4a85c51b9f
add travis config
2018-07-14 20:53:24 +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
ea10307b5d
dhcpv4: replace hard-coded midna → os.Hostname()
2018-07-14 17:35:25 +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
9e0f83a7cf
integration tests: send ip netns add errors to stderr, too
2018-07-14 15:43:47 +02:00
Michael Stapelberg
9131e7a99c
dhcp6: add missing err parameter
2018-07-14 15:17:12 +02:00
Michael Stapelberg
8da684cc8f
README: add godoc badge
2018-07-14 15:14:42 +02:00
Michael Stapelberg
b08f872a65
add go report card
2018-07-14 14:55:30 +02:00
Michael Stapelberg
25ceda02ec
README: get router7 repo explicitly
2018-07-14 14:34:08 +02:00
Michael Stapelberg
6b73254a72
write README.md
2018-07-14 14:03:02 +02:00
Michael Stapelberg
9153805e69
randomd moved to github.com/gokrazy/gokrazy/cmd/randomd
2018-07-14 12:51:28 +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
88bf7d90eb
dhcp6: delay at least 10s before attempts
...
Otherwise we might exceed fiber7’s firewall rules and get blacklisted.
2018-07-03 17:36:46 +02:00
Michael Stapelberg
86f5433cbb
dhcp6: correctly clear previous error
2018-06-29 12:02:16 +02:00
Michael Stapelberg
8615c40fac
netconfig_test: reset DefaultCounter to catch preservation issues
2018-06-28 20:08:23 +02:00
Michael Stapelberg
c1de25f18b
add skeletal README.md
2018-06-28 20:08:23 +02:00
Michael Stapelberg
b4912a5a93
add CONTRIBUTING.md
2018-06-28 20:08:23 +02:00
Michael Stapelberg
c0cac8d746
add LICENSE
2018-06-28 20:08:23 +02:00
Michael Stapelberg
ff7aa8f2cb
add copyright notices
2018-06-28 20:08:23 +02:00
Michael Stapelberg
ab75e4a1b5
check for updateListeners errors
2018-06-28 20:08:23 +02:00
Michael Stapelberg
2b3cf0bf61
captured: use multilisten
2018-06-28 20:08:23 +02:00
Michael Stapelberg
c24eefbb51
diagd: expose machine-readable healthiness
2018-06-26 21:52:29 +02:00
Michael Stapelberg
72661b13ec
dnsd: listen on 8053 (metrics) on ipv6-net::1
2018-06-26 21:15:14 +02:00
Michael Stapelberg
4c7741a337
add backupd
2018-06-26 18:01:50 +02:00
Michael Stapelberg
36282e7cea
add placeholder
2018-06-26 18:00:48 +02:00
Michael Stapelberg
86c9436e98
diagd: only listen on private addresses
2018-06-26 09:47:55 +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
57564e15d0
captured: increase ring buffer
...
5000 packets translated to just about 2 hours, which is not long enough.
2018-06-24 11:52:07 +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
6705108481
add randomd: carries entropy across system restarts
...
As practiced by Debian (and others) and recommended in the urandom(4) manpage:
https://manpages.debian.org/stretch/manpages/urandom.4.en.html#Configuration
2018-06-23 17:46:55 +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
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