===========================
Appendix C - Miscellaneous
===========================

The following commands are useful for troubleshooting any Unix/Linux
system.

bwm-ng
-------

Shows current bandwidth utilization on each interface.

conntrack -F
-------------

Flushes connection tracking records for NAT.

htop
-----

Graphically shows CPU and memory utilization, load averages, and
processes.

ip link
--------

Shows network interface configurations.

ip addr
--------

Shows IP addresses and the interfaces where they have been assigned.

ip route show table <table ID>
-------------------------------
Shows routing tables.

ip rule
--------

Shows routing rules. Bonders use policy routing to send traffic from
specific IP addresses through specific interfaces.

kill \`cat /var/run/tun<bond ID>.pid\`
---------------------------------------
Kills the tunnel for the given bond. It will be restarted immediately by
Bonding.

kill \`cat /var/run/openvpn.mtun0.pid\`
----------------------------------------
Kills the OpenVPN client on a node. It will be restarted by Bonding.

mtr  -a <source IP address> --report <target IP or hostname>
-------------------------------------------------------------
Run a series of tests that show the latency and packet loss to each node
on the route between the source and target IPs. This is useful to
determine where packet loss is occurring. MTR is not installed by
default—to install it, run apt-get install mtr-tiny.

openssl x509 -in /var/lib/bonding/ca/node-client.cert.pem -text -noout
-----------------------------------------------------------------------
Shows details of the SSL certificate.

ping <host>ping <tunnel peer IP> or ping -I <local interface> <host>ping -I <IP address> <host>
------------------------------------------------------------------------------------------------
Ping a remote system, optionally binding to a specified network
interface or IP address. Use `legids <../nodes/node-applications.html#legids>`__
to list available interfaces and IP addresses. If you ping a host on the
Internet without specifying a source interface, ping will use the bonded
tunnel interface.

The address of the tunnel peer can be shown with ifconfig tun<bond ID>.
Pinging this address shows if there is connectivity between the bonder
and aggregator.

ps aux \| grep tunnel
----------------------
Shows tunnel processes and the arguments they were started with.

reboot
-------

Reboots the system.

bondlog [node\|bridge\|tunnel]
-------------------------------

View logging information from the bonding, tunnel, or bridge
applications.

journalctl /sbin/udhcpc
------------------------

Shows logging information from bonder DHCP clients.

journalctl  /usr/sbin/openvpn
------------------------------

Shows logging information from node OpenVPN clients.

journalctl -u bondingadmin-uwsgi
---------------------------------

Shows logging information from bondingadmin applications.

journalctl -u aggfail
----------------------

Shows logging information from the aggregator failover monitor on the
management server.

journalctl -u huey
-------------------

Shows logging information from huey, the application that pushes
configuration updates to bonders and performs periodic tasks.

journalctl  /usr/sbin/openvpn
------------------------------
Shows logging information from the management OpenVPN server.

traceroute -s <source IP address> <target IP address or hostname>
------------------------------------------------------------------
Shows the route packets take between the source and target IP addresses.
Used to troubleshoot routing problems.

wget <URL> -O /dev/null or wget <URL> -O /dev/null --bind-address=<IP address>
-------------------------------------------------------------------------------
Downloads a file over HTTP for simple speed tests. --bind-address makes
wget use the specified IP address, as with ping except it accepts only
an IP address, not an interface. Omit --bind-address to test bonded
speeds. -O /dev/null sends the file to nowhere-land instead of saving it
to disk.
