I encountered an unexpected error while attempting private/customer router registration. The error prevented the registration command from completing firewall setup.
ziggy@netfoundry-vm:~$ sudo router-registration --edge 192.168.1.249 SPQCMQUJEH
Starting Registration
Tunning Network parameters via sysctl
Checking communication with controller
Starting Ziti Router Setup
Downloading bundle
100% [........................................................................] 91665397 / 91665397
Configuring for Tunnel Mode
Setup DNS
Adding firewall rule to allow inbound 53 from local network
-Running command: ufw allow from 192.168.1.0/24 to any port 53 proto udp
Adding firewall rule to allow inbound 53 from local network
-Running command: ufw allow from 192.168.1.0/24 to any port 53 proto tcp
Adding firewall rule to allow inbound 8081 from local network
-Running command: ufw allow from 192.168.1.0/24 to any port 8081 proto tcp
!! You have more then one interface, unable to determine what FW to open
!! Please run the following command for which ever subnets you would
!! like to allow inbound access.
- command: sudo ufw allow from {{ network_address }} to any port 443 proto tcp
Installing Systemd Service
Ziti Router Setup Complete
Starting Salt Minion Setup
Applying Salt Minion State, this might take a minute...
Salt state was successful
Registration complete
Before registration, I followed these instructions to configure a static IPv4 with netplan: https://support.netfoundry.io/hc/en-us/articles/360016129312-Run-the-Edge-Router-VM-on-Your-Own-Equipment
This is a virtual machine with one interface, and for some reason it happens to also have a second interface address on enp1s0, presumably from DHCP. How to remove the second address and where it came from is another matter, but the registration command did not complete the firewall setup because it was present.
ziggy@netfoundry-vm:/opt/netfoundry/ziti/ziti-router$ ip addr sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:c3:06:c7 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.249/24 brd 192.168.1.255 scope global enp1s0
valid_lft forever preferred_lft forever
inet 192.168.1.177/24 brd 192.168.1.255 scope global secondary dynamic enp1s0
valid_lft 6597sec preferred_lft 6597sec
inet6 2600:1700:5eb2:e60:5054:ff:fec3:6c7/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 3489sec preferred_lft 3489sec
inet6 fe80::5054:ff:fec3:6c7/64 scope link
valid_lft forever preferred_lft forever
v: 3
identity:
cert: certs/client.cert.pem
server_cert: certs/server.cert.pem
key: certs/client.key.pem
ca: certs/intermediate-chain.pem
ctrl:
endpoint: tls:17ba74fe-afff-4d4d-aa69-c915c4d3aecf.production.netfoundry.io:80
link:
dialers:
- binding: transport
healthChecks:
ctrlPingCheck:
interval: 30s
timeout: 15s
initialDelay: 15s
edge:
csr:
country: US
province: NC
locality: Charlotte
organization: NetFoundry
organizationalUnit: Ziti
sans:
ip:
- 127.0.0.1
- 192.168.1.249
listeners:
- binding: edge
address: tls:0.0.0.0:443
options:
advertise: 192.168.1.249:443
- binding: proxy
address: tcp:127.0.0.1:4505
service: salt4505
- binding: proxy
address: tcp:127.0.0.1:4506
service: salt4506
- binding: tunnel
options:
resolver: udp://192.168.1.249:53
lanIf: enp1s0
web:
- name: health-check
bindPoints:
- interface: 0.0.0.0:8081
address: 0.0.0.0:8081
apis:
- binding: health-checks
I completed the firewall setup by running
sudo ufw allow from 192.168.1.0/24 to any port 443 proto tcp