Updated readme to include KISS over TCP

This commit is contained in:
Mark Qvist 2020-06-24 14:13:40 +02:00
parent b996f38689
commit eae91f349b
1 changed files with 17 additions and 10 deletions

View File

@ -2,9 +2,6 @@ TNC Attach
==========
Attach KISS TNC devices as network interfaces in Linux. This program allows you to attach TNCs or any KISS-compatible device as a network interface. This program does not need any kernel modules, and has no external dependencies outside the standard Linux and GNU C libraries.
## Version edited
Add capability of using TCP Kiss.
## Installation
Currently it is recommended to compile and install __tncattach__ from source with the below commands.
@ -33,19 +30,21 @@ sudo make install
Using __tncattach__ is simple. Run the program from the command line, specifying which serial port the TNC is connected to, and the serial port baud-rate, and __tncattach__ takes care of the rest. In most cases, depending on what you intend to do, you probably want to use some of the options, though. See the examples section below for usage examples.
```
Usage: tncattach [OPTION...] (serial_port|host) (baudrate|port)
Usage: tncattach [OPTION...] port baudrate
Attach TNC devices as system network interfaces
-o, --kisstcp Use TCP Kiss (such as Direwolf port 8001)
-d, --daemon Run tncattach as a daemon
-m, --mtu=MTU Specify interface MTU
-e, --ethernet Create a full ethernet device
-i, --ipv4=IP_ADDRESS Configure an IPv4 address on interface
-m, --mtu=MTU Specify interface MTU
-n, --noipv6 Filter IPv6 traffic from reaching TNC
--noup Only create interface, don't bring it up
-s, --id=CALLSIGN Station identification data
-T, --kisstcp Use KISS over TCP instead of serial port
-H, --tcphost=TCP_HOST Host to connect to when using KISS over TCP
-P, --tcpport=TCP_PORT TCP port when using KISS over TCP
-t, --interval=SECONDS Maximum interval between station identifications
-s, --id=CALLSIGN Station identification data
-d, --daemon Run tncattach as a daemon
-v, --verbose Enable verbose output
-?, --help Give this help list
--usage Give a short usage message
@ -54,6 +53,8 @@ Attach TNC devices as system network interfaces
The program supports attaching TNCs as point-to-point tunnel devices, or generic ethernet devices. The ethernet mode is suitable for point-to-multipoint setups, and can be enabled with the corresponding command line switch. If you only need point-to-point links, it is advisable to just use the standard point-to-point mode, since it doesn't incur the ethernet header overhead on each packet.
If you want to connect to a virtual KISS TNC over a TCP connection, you can use the -T option, along with the -H and -P options to specify the host and port.
Additionally, it is worth noting that __tncattach__ can filter out IPv6 packets from reaching the TNC. Most operating systems attempts to autoconfigure IPv6 when an interface is brought up, which results in a substantial amount of IPv6 traffic generated by router solicitations and similar, which is usually unwanted for packet radio links and similar.
If you intend to use __tncattach__ on a system with mDNS services enabled (avahi-daemon, for example), you may want to consider modifying your mDNS setup to exclude TNC interfaces, or turning it off entirely, since it will generate a lot of traffic that might be unwanted.
@ -77,7 +78,13 @@ Create an ethernet device with a USB-connected TNC, set the MTU, filter IPv6 tra
```sh
# Attach interface
sudo tncattach /dev/ttyUSB0 115200 --ethernet --mtu 576 --noipv6 --ipv4 10.92.0.10/24
sudo tncattach localhost 8001 -o --ethernet --mtu 576 --noipv6 --ipv4 10.92.0.10/24
```
Create an ethernet device with a TCP-connected TNC, set the MTU, filter IPv6 traffic, and set an IPv4 address:
```sh
# Attach interface
sudo tncattach -T -H localhost -P 8001 --ethernet --mtu 576 --noipv6 --ipv4 10.92.0.10/24
```
You can interact with the interface like any other using the __ip__ or __ifconfig__ utilities:
@ -100,7 +107,6 @@ Create a point-to-point link:
```sh
# Attach interface
sudo tncattach /dev/ttyUSB0 115200 --mtu 400 --noipv6 --noup
sudo tncattach localhost 8001 -o --mtu 400 --noipv6 --noup
# Configure IP addresses for point-to-point link
sudo ifconfig tnc0 10.93.0.1 pointopoint 10.93.0.2
@ -117,6 +123,7 @@ tnc0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 400
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
```
## Worth Knowing on Raspbian
On some versions of Raspbian (and probably other operating systems), the DHCP client daemon _dhcpcd_ interferes with TNC interfaces, by overriding their MTU and trying to auto-configure link-local addresses. You probably don't want this, and it can be disabled by editing the __/etc/dhcpcd.conf__ file, adding a statement telling _dhcpcd_ to ignore your TNC interface: