diff --git a/docs/index.html b/docs/index.html index 2eb3be7..49673b3 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,6 +1,6 @@
- + @@ -44,7 +44,7 @@router7 is a pure-Go implementation of a small home internet router. It comes with all the services required to make a fiber7 internet connection work (DHCPv4, DHCPv6, DNS, etc.).
-Note that this project should be considered a (working!) tech demo. Feature requests will likely not be implemented, and see CONTRIBUTING.md for details about which contributions are welcome.
+Note that this project should be considered a (working!) tech demo. Feature requests will likely not be implemented, and see CONTRIBUTING.md for details about which contributions are welcome.
Before starting router7, I was using the Turris Omnia router running OpenWrt. That worked fine up until May 2018, when an automated update pulled in a new version of odhcp6c, OpenWrt’s DHCPv6 client. That version is incompatible with fiber7’s DHCP server setup (I think there are shortcomings on both sides).
It was not only quicker to develop my own router than to wait for either side to resolve the issue, but it was also a lot of fun and allowed me to really tailor my router to my needs, experimenting with a bunch of interesting ideas I had.
diff --git a/docs/installation/index.html b/docs/installation/index.html index 04f324f..fa498cd 100644 --- a/docs/installation/index.html +++ b/docs/installation/index.html @@ -55,21 +55,21 @@Next, build a router7 image:
-go get -u github.com/gokrazy/tools/cmd/gokr-packer github.com/rtr7/tools/cmd/...
-go get -u -d github.com/rtr7/router7
-mkdir /tmp/recovery
-GOARCH=amd64 gokr-packer \
- -hostname=router7 \
- -overwrite_boot=/tmp/recovery/boot.img \
- -overwrite_mbr=/tmp/recovery/mbr.img \
- -overwrite_root=/tmp/recovery/root.img \
- -eeprom_package= \
- -kernel_package=github.com/rtr7/kernel \
- -firmware_package=github.com/rtr7/kernel \
- -gokrazy_pkgs=github.com/gokrazy/gokrazy/cmd/ntp \
- -serial_console=ttyS0,115200n8 \
- github.com/rtr7/router7/cmd/...
-
Run rtr7-recover -boot=/tmp/recovery/boot.img -mbr=/tmp/recovery/mbr.img -root=/tmp/recovery/root.img
to:
go get -u github.com/gokrazy/tools/cmd/gokr-packer github.com/rtr7/tools/cmd/...
+go get -u -d github.com/rtr7/router7
+mkdir /tmp/recovery
+GOARCH=amd64 gokr-packer \
+ -hostname=router7 \
+ -overwrite_boot=/tmp/recovery/boot.img \
+ -overwrite_mbr=/tmp/recovery/mbr.img \
+ -overwrite_root=/tmp/recovery/root.img \
+ -eeprom_package= \
+ -kernel_package=github.com/rtr7/kernel \
+ -firmware_package=github.com/rtr7/kernel \
+ -gokrazy_pkgs=github.com/gokrazy/gokrazy/cmd/ntp \
+ -serial_console=ttyS0,115200n8 \
+ github.com/rtr7/router7/cmd/...
+
Run rtr7-recover -boot=/tmp/recovery/boot.img -mbr=/tmp/recovery/mbr.img -root=/tmp/recovery/root.img
to:
The /perm/interfaces.json
configuration file will be automatically created if it is not present when you run the first recovery.
Example:
-{
- "interfaces": [
- {
- "hardware_addr": "12:34:56:78:9a:b0",
- "name": "lan0",
- "addr": "192.168.0.1/24"
- },
- {
- "hardware_addr": "12:34:56:78:9a:b2",
- "name": "uplink0"
- }
- ]
-}
-
Schema: see InterfaceConfig
{
+ "interfaces": [
+ {
+ "hardware_addr": "12:34:56:78:9a:b0",
+ "name": "lan0",
+ "addr": "192.168.0.1/24"
+ },
+ {
+ "hardware_addr": "12:34:56:78:9a:b2",
+ "name": "uplink0"
+ }
+ ]
+}
+
Schema: see InterfaceConfig
The /perm/portforwardings.json
configuration file can be created to define port forwarding rules.
Example:
-{
- "forwardings": [
- {
- "proto": "tcp",
- "port": "22",
- "dest_addr": "10.0.0.10",
- "dest_port": "22"
- },
- {
- "proto": "tcp",
- "port": "80",
- "dest_addr": "10.0.0.10",
- "dest_port": "80"
- }
- ]
-}
-
Schema: see portForwardings
Please be aware that Hairpinning is currently not supported (see issue #53 Support for Hairpinning)
+{
+ "forwardings": [
+ {
+ "proto": "tcp",
+ "port": "22",
+ "dest_addr": "10.0.0.10",
+ "dest_port": "22"
+ },
+ {
+ "proto": "tcp",
+ "port": "80",
+ "dest_addr": "10.0.0.10",
+ "dest_port": "80"
+ }
+ ]
+}
+
Schema: see portForwardings
Run e.g. rtr7-safe-update -updates_dir=$HOME/router7/updates
to:
% cd ~/router7/updates/2018-07-03T17:33:52+02:00
-% ./recover.bash
-
% cd ~/router7/updates/2018-07-03T17:33:52+02:00
+% ./recover.bash
+
The cheap and widely-available Teensy++ USB development board comes with a firmware called rebootor, which is used by the teensy_loader_cli
program to perform hard resets.
This setup can be used to programmatically reset the apu2c4 (from rtr7-recover
) by connecting the Teensy++ to the apu2c4’s reset pins: