packet:xrpi:manpages:section6
Differences
This shows you the differences between two versions of the page.
packet:xrpi:manpages:section6 [2025/04/19 11:53] – created m0mzf | packet:xrpi:manpages:section6 [2025/04/19 18:00] (current) – removed m0mzf | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | =======Section 6 - Installation and Configuration Topics======= | ||
- | =====AGWHOST.6.MAN===== | ||
- | < | ||
- | </ | ||
- | AGWHOST -- AGW Application Support. | ||
- | |||
- | </ | ||
- | XRouter provides an AGW TCP host mode interface, allowing apps | ||
- | such as UI-View, which would normally use AGW Packet Engine, | ||
- | (AGWPE) to use XRouter instead. | ||
- | |||
- | You should not confuse this with XRouter' | ||
- | which allows XRouter to interface with " | ||
- | following diagram attempts to explain the difference: | ||
- | |||
- | |||
- | UI-View etc < | ||
- | | ||
- | | (AGWHOST Emulator) | < | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | ' | ||
- | Soundcards etc. < | ||
- | |||
- | |||
- | There are two ways for an application to interact with AGW | ||
- | Packet Engine, one of which is TCP host mode, which normally | ||
- | uses TCP port 8000. This is the only mode which XRouter | ||
- | emulates. | ||
- | |||
- | Since " | ||
- | port also defaults to 8000. This can be changed using the | ||
- | AGWPORT directive in the GLOBAL section of XROUTER.CFG. You | ||
- | might need to do this if you are running AGWPE on the same | ||
- | machine. e.g. | ||
- | |||
- | AGWPORT=8001 | ||
- | |||
- | Whether or not XRouter requires the applications to send a | ||
- | password is controlled by entries in ACCESS.SYS. | ||
- | |||
- | The following entry allows computers on the LAN to access | ||
- | XRouter without a password: | ||
- | |||
- | 192.168.0.0/ | ||
- | |||
- | |||
- | AGW host support has so far been tested with: | ||
- | |||
- | - UIView | ||
- | - AGWTerminal | ||
- | |||
- | The emulator reports its version number as 2000.15 | ||
- | |||
- | </ | ||
- | ACCESS.SYS(8) | ||
- | AGW-IFACE(6) | ||
- | AGWPORT(7) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====AGW-IFACE.6.MAN===== | ||
- | < | ||
- | </ | ||
- | AGW-IFACE -- AGW Packet Engine Interface. | ||
- | |||
- | </ | ||
- | SV2AGW' | ||
- | program which manages packet radio hardware and provides AX25 | ||
- | services to other applications via a TCP/IP API (Application | ||
- | Programming Interface). | ||
- | |||
- | The API has been adopted by a number of other systems, some of | ||
- | which run on Linux, including Direwolf, and XRouter itself. | ||
- | |||
- | An AGW interface allows you to use any AGW compatible program | ||
- | " | ||
- | access to hardware not directly supported by XRouter (e.g. | ||
- | sound cards). | ||
- | |||
- | You should not confuse this with XRouter' | ||
- | which is provided to support apps which expect to see AGWPE. | ||
- | The following diagram attempts to explain the difference: | ||
- | |||
- | |||
- | UI-View etc < | ||
- | | ||
- | | (AGWHOST Emulator) | < | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | ' | ||
- | Soundcards etc. < | ||
- | |||
- | | ||
- | The AGW interface communicates with AGWPE' | ||
- | interface, normally using TCP port 8000. XRouter always uses | ||
- | the Linux TCP/IP stack for this connection. | ||
- | |||
- | The AGW Packet engine may be located on the same PC or on a | ||
- | different PC, which could be anywhere in the world. Thus you | ||
- | could for example have a node in your shack whose RF ports | ||
- | are remotely located on a nice hilltop! Or you could remotely | ||
- | locate one of your ports to prevent desense etc. | ||
- | |||
- | You may configure more than one AGW interface, provided that | ||
- | each copy of AGWPE uses a different IP address/TCP port pair. | ||
- | A possible use would be a node which has its RF ports located | ||
- | on several different hilltops. | ||
- | |||
- | |||
- | Configuring the INTERFACE | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | An AGW interface is specified like this: | ||
- | |||
- | INTERFACE=1 | ||
- | TYPE=AGW | ||
- | IOADDR=192.168.0.76 | ||
- | INTNUM=8001 | ||
- | MTU=256 | ||
- | CONFIG=MyAgwPass | ||
- | ENDINTERFACE | ||
- | |||
- | Note that IOADDR, INTNUM and CONFIG are all optional, and are | ||
- | only needed if you want to change the defaults. | ||
- | |||
- | IOADDR and INTNUM don't have the usual meaning. Instead they | ||
- | are used to specify the IP address and TCP port number used | ||
- | to communicate with AGWPE. | ||
- | |||
- | If you don't specify IOADDR, it defaults to 127.0.0.1, which | ||
- | is the same computer as XRouter is on. If AGWPE is on a | ||
- | different computer to XRouter, you need to enter its IP | ||
- | address here. | ||
- | |||
- | If you don't specify INTNUM, it defaults to 8000, which is the | ||
- | default AGW host port. Note that XRouter' | ||
- | also defaults to this TCP port, so if you wish to leave AGWPE | ||
- | on port 8000 you must disable or reassign AGWPORT in | ||
- | XROUTER.CFG. | ||
- | |||
- | If you don't specify CONFIG, XRouter won't " | ||
- | AGW. Authorisation is not usually required if you're using | ||
- | XRouter and AGWPE on the same computer. | ||
- | requirement for authorisation in AGWPE' | ||
- | |||
- | If CONFIG is used, the " | ||
- | NODECALL and the " | ||
- | |||
- | |||
- | Configuring the PORTs | ||
- | ~~~~~~~~~~~~~~~~~~~~~ | ||
- | An AGWPE interface can support 16 PORTs, which are declared | ||
- | in the usual way, each PORT using a different CHANNEL on the | ||
- | INTERFACE - for example: | ||
- | |||
- | PORT=1 | ||
- | ID=AGW Port 1 | ||
- | INTERFACENUM=1 | ||
- | CHANNEL=A | ||
- | ENDPORT | ||
- | |||
- | PORT=2 | ||
- | ID=Agw Port 2 | ||
- | INTERFACENUM=1 | ||
- | CHANNEL=B | ||
- | ENDPORT | ||
- | |||
- | |||
- | Configuring AGWPE | ||
- | ~~~~~~~~~~~~~~~~~ | ||
- | - is currently beyond the scope of this page. Please refer to | ||
- | the documentation supplied with AGWPE | ||
- | |||
- | |||
- | </ | ||
- | AGWHOST(6) | ||
- | AGWPORT(7) | ||
- | IFACES(6) | ||
- | PORTS(6) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====ASYNC-IFACE.6.MAN===== | ||
- | < | ||
- | </ | ||
- | ASYNC -- Interface Type " | ||
- | |||
- | </ | ||
- | The ASYNC interface type specifies an asynchronous character | ||
- | by character interface, such as RS232 or a pseudo-TTY. | ||
- | |||
- | It is so-called because individual characters are sent and | ||
- | received asynchronously, | ||
- | bunches, rather than in synchronism with a clock signal. | ||
- | |||
- | In XRouter this usually means USB-to-Serial adaptors which | ||
- | appear as / | ||
- | |||
- | A typical ASYNC interface would be defined thus: | ||
- | |||
- | INTERFACE=1 | ||
- | TYPE=ASYNC | ||
- | ID=Multidrop KISS TNCs | ||
- | COM=/ | ||
- | SPEED=9600 | ||
- | PROTOCOL=KISS | ||
- | KISSOPTIONS=POLLED, | ||
- | MTU=256 | ||
- | FLOW=0 | ||
- | ENDINTERFACE | ||
- | |||
- | TYPE, COM, SPEED, PROTOCOL and MTU are mandatory. | ||
- | |||
- | ID is an optional plain text string which identifies the | ||
- | interface on various displays. Keep it concise. 20 characters | ||
- | max. | ||
- | |||
- | COM is the serial device name, e.g. "/ | ||
- | " | ||
- | to " | ||
- | |||
- | SPEED is the baud rate used on the interface. Don't include a | ||
- | comma, e.g use " | ||
- | rates depends on the device. | ||
- | |||
- | PROTOCOL is the protocol to use on the interface: | ||
- | |||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | (see PROTOCOL(7) for more detail) | ||
- | |||
- | MTU is the " | ||
- | maximum size for the data portion of an IP packet transmitted | ||
- | on the interface. | ||
- | |||
- | Datagrams are sized or fragmented according to the MTU of the | ||
- | interface on which they are transmitted. | ||
- | |||
- | XRouter allows MTU's up to 1500 bytes, but setting MTU over | ||
- | 256 is not recommended on AX25 ports, because the buffer size | ||
- | on TNC-based nodes is usually only big enough for a 256-byte | ||
- | data field. | ||
- | |||
- | FLOW optionally specifies the flow control options: | ||
- | |||
- | 0 = No flow control | ||
- | 1 = Hardware (RTS/CTS) flow control | ||
- | 2 = Software (XON/XOFF) flow control (TTY link only) | ||
- | 3 = Hardware AND software flow control | ||
- | |||
- | If not specified, flow control defaults to NONE. Don't use | ||
- | Xon/Xoff with KISS!. | ||
- | |||
- | CONFIG specifies special confifiguration for certain protocols. | ||
- | For KISS, it may optionally be used to specify a sequence of | ||
- | commands which switch a TNC into KISS mode at startup. | ||
- | |||
- | RADIO secifies the number of the radio (if any) controlled by | ||
- | this interface. Required only if rig control is needed. | ||
- | |||
- | KISSOPTIONS are special options for the KISS protocol only: | ||
- | |||
- | | ||
- | |||
- | | ||
- | |||
- | | ||
- | only use this option if your TNC supports it. | ||
- | |||
- | | ||
- | frame has been transmitted on air. | ||
- | |||
- | | ||
- | sending only when commanded to do so. | ||
- | |||
- | POLLED and SLAVE are mutually exclusive. BPQKISS eproms require | ||
- | POLLED and CHECKSUM, but their use of ACKMODE is optional. | ||
- | |||
- | </ | ||
- | IFACES(6) | ||
- | PORTS(6) | ||
- | PROTOCOL(7) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====AXIP-IFACE.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | AXIP-IFACE -- Interface Type " | ||
- | |||
- | </ | ||
- | The AXIP interface is used, in conjunction with one or more | ||
- | PORTs, to provide AX25-over-IP links with other nodes. | ||
- | |||
- | In this mode of operation, AX25 (plus CRC) is encapsulated | ||
- | within IP. This is less versatile that AXUDP, and only saves | ||
- | 8 " | ||
- | explanation of AXIP. | ||
- | |||
- | The AX25 links created using AXIP can in turn support NetRom | ||
- | and amateur TCP/IP, just like real radio links. | ||
- | |||
- | An AXIP interface is defined in XROUTER.CFG as follows: | ||
- | |||
- | INTERFACE=7 | ||
- | TYPE=AXIP | ||
- | MTU=256 | ||
- | ENDINTERFACE | ||
- | |||
- | (Choose the interface number to suit yourself). | ||
- | |||
- | This interface can support an unlimited number of PORTs. You | ||
- | may define multiple interfaces if your ports need different | ||
- | MTU's. | ||
- | |||
- | Only TYPE=AXIP and MTU= are required; all other directives | ||
- | are ignored (at present). | ||
- | |||
- | Each AXIP partner link requires its own PORT, in which the | ||
- | link parameters are defined. This is like operating an RF | ||
- | link on an exclusive frequency. The PORT is specified | ||
- | similar to this: | ||
- | |||
- | PORT=8 | ||
- | ID=AXIP link with WA3IP | ||
- | INTERFACENUM=7 | ||
- | IPLINK=55.73.88.69 <-- Partner' | ||
- | FRACK=2000 | ||
- | RESPTIME=200 | ||
- | ENDPORT | ||
- | |||
- | You must specify at least ID, INTERFACENUM, | ||
- | |||
- | IPLINK is the remote host's IP address or hostname. It is | ||
- | more efficient to use IP addresses, if you are able to do so, | ||
- | because it removes the need to resolve the hostnames. | ||
- | |||
- | To link with an AXIP partner on the SAME machine use a | ||
- | " | ||
- | |||
- | MAC parameters such as TXDELAY, TXTAIL, SLOTTIME, PERSIST, | ||
- | FULLDUP, SOFTDCD etc. are meaningless for AXUDP, but FRACK, | ||
- | RESPTIME, PACLEN, MAXFRAME, QUALITY etc. operate as normal. | ||
- | |||
- | On fast internet links you may wish to use a much lower FRACK, | ||
- | say 2000ms, than on radio. It is not recommended that you | ||
- | reduce it much below 1000ms, as it needs to be *at least* | ||
- | twice the worst round-trip time plus the other end's RESPTIME. | ||
- | |||
- | RESPTIME is probably the one which will have most effect on | ||
- | the responsiveness of the AX25 link, because it controls the | ||
- | time delay between receiving a packet and sending an ACK. It | ||
- | should be just a little more than the time it takes to receive | ||
- | a maximum length packet. For example, at a data rate of | ||
- | 56Kbits/ | ||
- | RESPTIME=50 would be adequate. However the timing jitter due | ||
- | to operating on a multi-tasking operating system means that | ||
- | RESPTIME should be more like 200ms | ||
- | |||
- | </ | ||
- | If no IPADDRESS is specified in XROUTER.CFG, | ||
- | |||
- | If there' | ||
- | not a " | ||
- | will require correct IP routing to be set up in IPROUTE.SYS. | ||
- | |||
- | If there' | ||
- | localhost address, AXIP uses the Linux stack. | ||
- | |||
- | In all cases XRouter will need the CAP_NET_RAW capability, | ||
- | unless it is run from a root account. | ||
- | |||
- | </ | ||
- | If you have more than one node on your LAN using AXIP, your | ||
- | Internet router is only able to direct incoming AXIP to *one* | ||
- | of them. This means you can only have one AXIP node per | ||
- | public IP address. If you need more than one node, use AXUDP. | ||
- | |||
- | DO NOT set up an AXIP link to a link partner if you already | ||
- | have an AXUDP link to that partner. This is a common mistake, | ||
- | and is likely to cause problems! | ||
- | |||
- | </ | ||
- | AXIP(9) | ||
- | IFACES(6) | ||
- | CAPFLAGS(6) | ||
- | PORTS(6) | ||
- | RUNROOT(6) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====AXTCP-IFACE.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | AXTCP-IFACE -- Interface Type " | ||
- | |||
- | </ | ||
- | The AXTCP interface is used, in conjunction with a single | ||
- | PORT, to provide AX25-over-TCP links with other nodes. | ||
- | |||
- | In this mode of operation, AX25 (plus CRC) is encapsulated | ||
- | within TCP streams (see AXTCP(9) for details). Unlike AXIP | ||
- | and AXUDP, AXTCP can work through NAT and firewalls, which is | ||
- | particularly useful for " | ||
- | "port forwarding" | ||
- | |||
- | The AX25 links created using AXTCP can in turn support NetRom | ||
- | and amateur TCP/IP, just like real radio links. | ||
- | |||
- | AXTCP interfaces can act as server, client, or both at once, | ||
- | depending on which keywords are included. Servers require | ||
- | "port forwarding", | ||
- | |||
- | An AXTCP server can support several simultaneous client | ||
- | connections, | ||
- | simultaneously. | ||
- | |||
- | AXTCP is enabled by declaring an INTERFACE with TYPE=AXTCP. A | ||
- | single PORT is then attached to that interface. | ||
- | |||
- | If the interface definition includes INTNUM, it will be a | ||
- | server. If it includes CONFIG it will be a client. If it | ||
- | includes both directives, it will be both server and client. | ||
- | |||
- | Example AXTCP Server Interface | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | INTERFACE=5 | ||
- | TYPE=AXTCP | ||
- | MTU=256 | ||
- | INTNUM=9393 | ||
- | ENDINTERFACE | ||
- | |||
- | The INTNUM parameter activates server mode and specifies the | ||
- | TCP port that it listens on. If this is zero, or not | ||
- | specified, the server is disabled. | ||
- | |||
- | |||
- | Example AXTCP Client Interface | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | INTERFACE=5 | ||
- | TYPE=AXTCP | ||
- | MTU=256 | ||
- | CONFIG=KIDDER g8pzt.ath.cx 9393 | ||
- | ENDINTERFACE | ||
- | |||
- | The CONFIG directive activates client mode and specifies to | ||
- | which server it will connect. The format is as follows: | ||
- | |||
- | | ||
- | |||
- | < | ||
- | < | ||
- | server | ||
- | |||
- | You may specify additional servers, by including a CONFIG for | ||
- | each one. There is no limit to the number of CONFIG | ||
- | directives that can be used with a single interface. | ||
- | |||
- | |||
- | Combined AXTCP Client/ | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | A combined interface is specified by including both INTNUM and | ||
- | CONFIG directives. | ||
- | listening on TCP port 9393 with 3 client connections: | ||
- | | ||
- | INTERFACE=5 | ||
- | TYPE=AXTCP | ||
- | INTNUM=9393 | ||
- | MTU=256 | ||
- | CONFIG=DORSET 216.23.45.91 10093 | ||
- | CONFIG=WALES gw3xr.dyndns.org 9394 | ||
- | CONFIG=Brum bm23.ath.cx 7507 | ||
- | ENDINTERFACE | ||
- | |||
- | This is just an example, and it could only be used at a | ||
- | " | ||
- | be replaced by AXIP or AXUDP anyway. | ||
- | |||
- | Such a configuration *couldn' | ||
- | because there' | ||
- | a mobile server! | ||
- | |||
- | |||
- | AXTCP PORT Settings | ||
- | ~~~~~~~~~~~~~~~~~~~ | ||
- | A PORT attached to an AXTCP interface needs no special | ||
- | configuration, | ||
- | parameters (FRACK, RESPTIME, RFBAUDS) appropriate to a high | ||
- | speed connection, for example: | ||
- | |||
- | PORT=8 | ||
- | ID=AXTCP Operations | ||
- | INTERFACENUM=5 | ||
- | FRACK=2000 | ||
- | RESPTIME=200 | ||
- | RFBAUDS=56000 | ||
- | ENDPORT | ||
- | |||
- | MAC parameters such as TXDELAY, TXTAIL, SLOTTIME, PERSIST, | ||
- | FULLDUP, SOFTDCD etc. are meaningless for AXUDP, but FRACK, | ||
- | RESPTIME, PACLEN, MAXFRAME, QUALITY etc. operate as normal. | ||
- | | ||
- | On fast internet links you may wish to use a much lower FRACK, | ||
- | say 2000ms, than on radio. | ||
- | reduce it much below 1000ms, as it needs to be *at least* | ||
- | twice the worst round-trip time plus the other end's RESPTIME. | ||
- | | ||
- | RESPTIME is probably the one which will have most effect on | ||
- | the responsiveness of the AX25 link, because it controls the | ||
- | time delay between receiving a packet and sending an ACK. It | ||
- | should be just a little more than the time it takes to receive | ||
- | a maximum length packet. | ||
- | 56Kbits/ | ||
- | RESPTIME=50 would be adequate. | ||
- | to operating under Windows means that RESPTIME should be more | ||
- | like 200ms. | ||
- | |||
- | By default, all AXTCP connections use the same PORT, but if | ||
- | you prefer to use one port per neighbour, see the following | ||
- | section. | ||
- | interface. | ||
- | |||
- | |||
- | Multiple Interfaces / Ports | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | A single AXTCP server can accommodate many clients, so there | ||
- | is no practical need to use more than one AXTCP interface and | ||
- | port. | ||
- | |||
- | This is analogous to having several nodes on the same radio | ||
- | frequency, except that the nodes don't see each other' | ||
- | transmissions, | ||
- | |||
- | You may however prefer to assign each AXTCP partner to a | ||
- | seperate port, analogous to having a dedicated radio | ||
- | frequency for each neighbour. | ||
- | several interfaces, each with a single PORT attached. | ||
- | |||
- | The only proviso is that no two AXTCP interfaces may use the | ||
- | same INTNUM. | ||
- | |||
- | </ | ||
- | When configuring a server, you must ensure that incoming | ||
- | TCP/IP connections are directed to the server' | ||
- | there must be suitable NAT entries or "port forwarding" | ||
- | up in the Internet "front end" router. | ||
- | |||
- | AXTCP always uses the Linux IP stack, so the port forwarding | ||
- | should be directed at the Linux IP address NOT XRouter' | ||
- | |||
- | If INTNUM is below 1024, XRouter will need to be granted the | ||
- | CAP_NET_BIND_SERVICE capability. | ||
- | |||
- | </ | ||
- | AXTCP(9) | ||
- | IFACES(6) | ||
- | CAPFLAGS(6) | ||
- | PORTS(6) | ||
- | RUNROOT(6) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====AXUDP-IFACE.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | AXUDP-IFACE -- Interface Type " | ||
- | |||
- | </ | ||
- | The AXUDP interface is used, in conjunction with one or more | ||
- | PORTs, to provide AX25-over-UDP links with other nodes. | ||
- | |||
- | In this mode of operation, AX25 (plus CRC) is encapsulated | ||
- | within UDP/IP. This is more versatile that AXIP, and only | ||
- | costs an extra 8 bytes per frame. See AXUDP(9) for a more | ||
- | detailed explanation of AXUDP. | ||
- | |||
- | The AX25 links created using AXUDP can in turn support NetRom | ||
- | and amateur TCP/IP, just like real radio links. | ||
- | |||
- | An AXUDP interface is defined in XROUTER.CFG as follows: | ||
- | |||
- | INTERFACE=9 | ||
- | TYPE=AXUDP | ||
- | MTU=256 | ||
- | ENDINTERFACE | ||
- | |||
- | (Choose the interface number to suit yourself). | ||
- | |||
- | This interface can support an unlimited number of PORTs. You | ||
- | may define multiple interfaces if your ports need different | ||
- | MTU's. | ||
- | |||
- | Only TYPE=AXUDP and MTU= are required; all other directives | ||
- | are ignored (at present). | ||
- | |||
- | Each AXUDP partner link requires its own PORT, where the link | ||
- | parameters are defined. This is like operating an RF link on | ||
- | an exclusive frequency. The PORT is specified similar to this: | ||
- | |||
- | PORT=8 | ||
- | ID=AXUDP link with VK1UDP | ||
- | INTERFACENUM=9 | ||
- | IPLINK=27.69.88.73 | ||
- | UDPLOCAL=93 | ||
- | UDPREMOTE=93 | ||
- | FRACK=2000 | ||
- | RESPTIME=200 | ||
- | ENDPORT | ||
- | |||
- | You must specify at least ID, INTERFACENUM, | ||
- | |||
- | IPLINK is the remote host's IP address or hostname. It is | ||
- | more efficient to use IP addresses, if you are able to do so, | ||
- | because it removes the need to resolve the hostnames. | ||
- | |||
- | UDPLOCAL and UDPREMOTE are the UDP " | ||
- | each end of the link, and if omitted they default to 93. The | ||
- | numbers are independent, | ||
- | 10093 for UDPREMOTE. | ||
- | |||
- | MAC parameters such as TXDELAY, TXTAIL, SLOTTIME, PERSIST, | ||
- | FULLDUP, SOFTDCD etc. are meaningless for AXUDP, but FRACK, | ||
- | RESPTIME, PACLEN, MAXFRAME, QUALITY etc. operate as normal. | ||
- | |||
- | On fast internet links you may wish to use a much lower FRACK, | ||
- | say 2000ms, than on radio. It is not recommended that you | ||
- | reduce it much below 1000ms, as it needs to be *at least* | ||
- | twice the worst round-trip time plus the other end's RESPTIME. | ||
- | |||
- | RESPTIME is probably the one which will have most effect on | ||
- | the responsiveness of the AX25 link, because it controls the | ||
- | time delay between receiving a packet and sending an ACK. It | ||
- | should be just a little more than the time it takes to receive | ||
- | a maximum length packet. For example, at a data rate of | ||
- | 56Kbits/ | ||
- | RESPTIME=50 would be adequate. However the timing jitter due | ||
- | to operating on a multi-tasking operating system means that | ||
- | RESPTIME should be more like 200ms | ||
- | |||
- | </ | ||
- | The " | ||
- | complicated, | ||
- | |||
- | - If no IPADDRESS has been defined, AXUDP is totally blocked. | ||
- | |||
- | - If the IPLINK is any LOCALHOST address, or no ETHERNET port | ||
- | is present, AXUDP uses the LINUX stack. | ||
- | |||
- | - If an ETHERNET port is present, and IPLINK is NOT a | ||
- | LOCALHOST address, AXUDP uses XRouter' | ||
- | |||
- | - If XRouter' | ||
- | correctly. | ||
- | |||
- | </ | ||
- | If the Linux IP stack is used, and UDPLOCAL is below 1024, | ||
- | XRouter will need CAP_NET_BIND_SERVICE capability, or will | ||
- | need to run from a " | ||
- | |||
- | </ | ||
- | AXUDP(9) | ||
- | IFACES(6) | ||
- | CAPFLAGS(6) | ||
- | KISS(9) | ||
- | PORTS(6) | ||
- | RUNROOT(6) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====CAPFLAGS.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | CAPFLAGS -- Capability Flags | ||
- | |||
- | </ | ||
- | Starting with kernel 2.2, Linux divides the privileges | ||
- | traditionally associated with super-user into distinct units, | ||
- | known as " | ||
- | and disabled. | ||
- | |||
- | This allows non-privileged processes to be granted certain | ||
- | enhanced permissions without having to run the process as a | ||
- | privileged user. | ||
- | |||
- | If XRouter is "run as root", i.e. it is started from a | ||
- | terminal which has " | ||
- | no further permissions. | ||
- | |||
- | Otherwise, it will need CAP_NET_RAW capability in order to | ||
- | use TCP/IP via the LAN, WiFi or localhost. And it will need | ||
- | CAP_NET_BIND_SERVICE if you wish to open any " | ||
- | on the linux TCP/IP stack whose numbers are below 1024. | ||
- | |||
- | Note: You do NOT need either of these capabilites for TCP/IP | ||
- | via serial ports, e.g. SLIP, KISS, AX25, PPP etc. You only | ||
- | need them for TCP/IP via LAN or WLAN. | ||
- | |||
- | Program capabilities are changed using the Linux " | ||
- | command in a termnal window. Only a privileged user can | ||
- | confer privileges, so you must be root, or you must use | ||
- | " | ||
- | |||
- | Once you have set XRouter' | ||
- | to do it again unless you change the executable. | ||
- | |||
- | </ | ||
- | The following examples assume that the XRouter executable | ||
- | file is called " | ||
- | |||
- | Checking the capabilities: | ||
- | |||
- | | ||
- | |||
- | Setting only the CAP_BET_BIND_SERVICE capability: | ||
- | |||
- | sudo setcap cap_net_bind_service=pe xrpi | ||
- | |||
- | Setting only the CAP_NET_RAW capability: | ||
- | |||
- | sudo setcap cap_net_raw=pe xrpi | ||
- | |||
- | Setting both capabilities: | ||
- | |||
- | sudo setcap cap_net_raw, | ||
- | |||
- | </ | ||
- | Running XRouter with super-user privileges is easier and more | ||
- | convenient than running it as an unprivileged user. But | ||
- | technically it is more of a security risk. See RUNROOT(9) for | ||
- | more discussion about the pros and cons of running as root. | ||
- | |||
- | </ | ||
- | IP-STACKS(6) -- IP Stacks in XRouter. | ||
- | TCP-PORTS(6) -- TCP Server Ports. | ||
- | LAN(6) | ||
- | RUNROOT(6) | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====COLOURS.6.MAN===== | ||
- | < | ||
- | </ | ||
- | COLOURS -- Display Colours. | ||
- | |||
- | </ | ||
- | Most of the console background and text colours may be | ||
- | adjusted using the appropriate keywords in a CONSOLE | ||
- | configuration block in XROUTER.CFG. | ||
- | |||
- | On DOS and Windows, XRouter can only display 16 colours. | ||
- | Although Linux allows more colours, the 16 colour limit | ||
- | still applies to XRPI and XRLin for the time being. This | ||
- | will be addressed in a future version. | ||
- | |||
- | Colour names used within XROUTER.CFG are as follows: | ||
- | |||
- | Dark: BLACK, NAVY, GREEN, CYAN, RED, MAGENTA, ORANGE, SILVER | ||
- | |||
- | Light: GREY, BLUE, LIME, TURQUOISE, PINK, CERISE, YELLOW, | ||
- | WHITE | ||
- | |||
- | The names are misleading, being inherited from DOS XRouter | ||
- | where the display pallete was different. For example, on | ||
- | Windows, PINK is more like light red, and ORANGE is more of a | ||
- | brown colour, whilst RED is more like maroon. | ||
- | |||
- | Some colour combinations display clearly, others are difficult | ||
- | to read. For instance, WHITE text on BLACK background is | ||
- | clear, as is YELLOW on NAVY, but BLUE on BLACK, or PINK on | ||
- | LIME are hard to read. The optimum background colour for most | ||
- | text colours (or vice versa) is BLACK. | ||
- | |||
- | The background colour of the top status bar is fixed at | ||
- | SILVER, and the status windows all have RED title bars with | ||
- | WHITE text, and BLACK background for the main pane. These | ||
- | colours were carefully planned and are not adjustable. | ||
- | |||
- | The colours for the " | ||
- | choose a SILVER background for a console' | ||
- | blend with the top status bar above it and look untidy. | ||
- | |||
- | </ | ||
- | CONSOLES(6) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====CONSOLES.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | CONSOLES -- About XRouter Conoles. | ||
- | |||
- | </ | ||
- | In this context " | ||
- | in the XRouter display. They allow the sysop to interact with | ||
- | XRouter, for example to trace traffic, or make connections. | ||
- | |||
- | Each console is fully independent, | ||
- | five of them. The first one is usually window number 8. Use | ||
- | the left and right " | ||
- | |||
- | </ | ||
- | The console display starts on the line below the grey XRouter | ||
- | status/menu bar. Each console has the following format: | ||
- | |||
- | There is a single-line " | ||
- | line "menu bar" at the bottom. By default, these have a cyan | ||
- | background). | ||
- | |||
- | Immediately above the menu bar is a single " | ||
- | line, with dark blue background and yellow text. | ||
- | |||
- | The remaining central section is where monitored and received | ||
- | information is displayed, and this section is ANSI colour | ||
- | compatible. | ||
- | |||
- | The console status bar shows the console number, the console | ||
- | callsign, and the connection state of that console. The | ||
- | bottom "menu bar" displays a context-sensitive menu for that | ||
- | console. | ||
- | |||
- | The text and background colours of the various sections are | ||
- | fully configurable. The default settings were chosen to be | ||
- | ergonomic, but may not be to your taste, and can therefore | ||
- | be overridden by entries in the global section of | ||
- | XROUTER.CFG. The defaults can be further modified for | ||
- | individual consoles by adding console definition blocks. | ||
- | |||
- | You may specify a different callsign for each console (used | ||
- | when making outgoing connections), | ||
- | for each one. | ||
- | |||
- | For details of how to configure the various console colours | ||
- | etc. see the console configuration page. | ||
- | |||
- | </ | ||
- | The following " | ||
- | displayed: | ||
- | |||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | L/R arrow | ||
- | U/D arrow | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | |||
- | <F1> - Help | ||
- | |||
- | Pressing <F1> pops up a dialog with the above information on | ||
- | it. The <ESC> key closes that dialog when you've finished | ||
- | with it. | ||
- | |||
- | The contents of the help window are context-sensitive, | ||
- | they vary according to what you were doing when you pressed | ||
- | the <F1> key. | ||
- | |||
- | <F2> - MON - Monitoring | ||
- | |||
- | The <F2> key provides a quick way to toggle monitoring | ||
- | (protocol tracing) on and off, and is a shortcut for the | ||
- | MON ON|OFF commands. | ||
- | |||
- | <F3> - MPORT - " | ||
- | |||
- | The F3 key selects the port(s) to be monitored (traced), and | ||
- | is a shortcut for the MPORT command. | ||
- | |||
- | Upon pressing this key you are invited to enter a number or | ||
- | string of numbers representing the combination of ports to | ||
- | monitor. If you press <F1> at this point a pop-up help | ||
- | window will show you the following information: | ||
- | |||
- | To select port(s) to monitor, add together the following hex | ||
- | values: | ||
- | |||
- | Port HEX Port HEX Port HEX Port HEX | ||
- | ------------------------------------------------------ | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | e.g. #12 will monitor ports 4 and 1. | ||
- | |||
- | Alternatively you may enter a single decimal port number, | ||
- | or a combination of ports separated by " | ||
- | |||
- | You may cancel the operation by pressing the <ESC> KEY. | ||
- | |||
- | <F4> - Monitor Mask | ||
- | |||
- | The <F4> key invites you to enter the " | ||
- | trace mask), i.e. the protocols you wish to monitor. | ||
- | Pressing <F1> at this point pops up a help window with the | ||
- | following information: | ||
- | |||
- | 0001 - Incoming frames | ||
- | 0002 - Outgoing frames | ||
- | 0004 - AX25 layer 2 0400 - KISS | ||
- | 0008 - AX25 info frames | ||
- | 0010 - AX25 layer 3 1000 - PASSALL | ||
- | 0020 - AX25 layer 4 2000 - Hex Dump | ||
- | 0040 - IP frames | ||
- | 0080 - ARP frames | ||
- | |||
- | To select protocols, add together the desired hex flags from | ||
- | the above list. For example 0201 will show incoming TCP | ||
- | segments only, while 0241 will show the underlying IP | ||
- | datagrams as well. The default setting is 03FF, which shows | ||
- | all incoming and outgoing traffic from AX25 layer 2 upwards. | ||
- | |||
- | The MMASK command has the same function. | ||
- | |||
- | <F5> - Disk capture | ||
- | |||
- | The <F5> key toggles disk capture on and off, and is a | ||
- | shortcut for the CAP[TURE] command. | ||
- | |||
- | When capture is enabled, anything which is displayed in the | ||
- | central window of an XRouter console is also written to disk. | ||
- | This includes session activity and TRACE' | ||
- | make it more specific using <F4> (MMASK) and <F3> (MPORT). | ||
- | |||
- | Whereas the screen display is filtered to prevent it being | ||
- | garbled by binary data, the capture is pure binary, so it is | ||
- | useful for diagnostics. | ||
- | |||
- | There is a seperate capture file for each XRouter " | ||
- | named CAPTUREnn.TXT where nn represents the console number | ||
- | (01 to 05). The capture files are created in the XRouter | ||
- | working directory. Although they have the extension " | ||
- | to enable them to be easily opened with a text editor, they | ||
- | may somtimes contain characters which simple text editors | ||
- | can't display. | ||
- | |||
- | Capture is fully independent on each console, and consoles | ||
- | may be captured concurrently. Switching between consoles, or | ||
- | scrolling consoles back, does not affect the capture. | ||
- | |||
- | <ESC> - Cancel / Disconnect | ||
- | |||
- | The <ESC> key " | ||
- | <F4>. It can also be used to immediately disconnect a | ||
- | console session. | ||
- | |||
- | </ | ||
- | The left and right " | ||
- | the various XRouter windows. If you have enabled any | ||
- | consoles, they can be selected using this method. | ||
- | |||
- | Note that when you reach the last window, it wraps back to | ||
- | the first and vice versa. | ||
- | |||
- | Alternatively you may jump directly to a console by tapping | ||
- | Alt-V (view) followed by the console number, or you may | ||
- | select it from the window menu. The console numbers are | ||
- | shown on their top status bars. | ||
- | |||
- | </ | ||
- | On XRPi/XRLin, pressing <ALT> and <M> together temporarily | ||
- | replaces the console status bar with a grey "menu bar". On | ||
- | XRWin the <ALT> key by itself performs the same function. | ||
- | |||
- | The menu bar currently has (F)ile (V)iew and (H)elp options, | ||
- | which can be navigated using the arrow keys, and actioned | ||
- | using the < | ||
- | |||
- | One character of each menu item is highlighted in red, | ||
- | indicating that it is a "hot key". Pressing the highlighted | ||
- | key causes that menu item to be actioned. For example ALT-M | ||
- | followed by " | ||
- | pressing the " | ||
- | Or you can simply type ALT-V followed by " | ||
- | |||
- | Upon actioning a menu item or pressing < | ||
- | closed and the console top status bar returns. | ||
- | |||
- | </ | ||
- | The (F)ile menu item (shortcut ALT-F) only has 3 options at | ||
- | present. | ||
- | |||
- | " | ||
- | in case you made any changes during run-time. | ||
- | |||
- | " | ||
- | the XRNODES file. | ||
- | |||
- | " | ||
- | |||
- | </ | ||
- | The (V)iew menu currently displays at least 8 options: | ||
- | |||
- | " | ||
- | |||
- | " | ||
- | chat between XRouter sysops, using XRChat channel 1234. | ||
- | |||
- | " | ||
- | of the currently active channels on the XRChat and Round | ||
- | Table (BPQ) chat systems. It also shows who is on each | ||
- | channel, and the latest chat messages. | ||
- | |||
- | " | ||
- | currently connected and who has recently connected to your | ||
- | system. Additionally, | ||
- | connections and disconnections. From here you can watch and | ||
- | delete sessions. | ||
- | |||
- | " | ||
- | NetRom nodes your system knows about, organised by hop count. | ||
- | It also shows which routes they were heard via, and the | ||
- | " | ||
- | the characters. From here you can browse the nodes table and | ||
- | mode stats. | ||
- | |||
- | " | ||
- | of the " | ||
- | glance which routes are healthy and which ones might need | ||
- | attention. | ||
- | |||
- | " | ||
- | overview of the health of the system, and its activities. | ||
- | This is the window that displays when XRouter starts. | ||
- | |||
- | " | ||
- | some of the findings of XRouter' | ||
- | (IDS). It is a work in progress. | ||
- | |||
- | Finally the consoles can be selected by entering a console | ||
- | number | ||
- | |||
- | </ | ||
- | " | ||
- | version and compilation date. | ||
- | |||
- | " | ||
- | open a window which lists the available topics, with one | ||
- | topic highlighted. The highlight can be moved using the | ||
- | arrow keys, and the topic can be viewed in a scrollable | ||
- | window by hitting RETURN on the highlighted topic. | ||
- | |||
- | " | ||
- | XRouter configuration in a scrollable pop-up window. | ||
- | |||
- | </ | ||
- | Each console remembers the last 5 commands used on that | ||
- | console. These can be selected using the < | ||
- | and < | ||
- | |||
- | </ | ||
- | Scrollback or " | ||
- | which went off the top of the screen. Unlike DOS XRouter, | ||
- | which displayed reviewed text in yellow, the Windows and | ||
- | Linux versions preserve the original colours during review. | ||
- | |||
- | The up and down " | ||
- | the < | ||
- | review mode is the caption on the bottom menu bar. | ||
- | |||
- | The console won't receive anything else while you are in | ||
- | review mode. However, if you are capturing to file, the | ||
- | capture is not interrupted by review mode. | ||
- | |||
- | The default size of the review buffer is 400 lines of text, | ||
- | which is in addition to the current page. Thus if the | ||
- | console height is 50 lines, you can review the last 9 pages | ||
- | of activity. The size of the review buffer can be altered | ||
- | using the REVIEW directive, either (for all consoles) in the | ||
- | global section of XROUTER.CFG, | ||
- | within a CONSOLE definition block. | ||
- | |||
- | </ | ||
- | Most of the texts used on the XRouter display can be replaced | ||
- | with French, Spanish or Dutch texts. This is experimental, | ||
- | and the accuracy of the translations cannot be guaranteed, | ||
- | especially in the case of abbreviations. In some cases the | ||
- | English text is not translated. | ||
- | |||
- | The console language is set using the CONSOLELANG directive | ||
- | in XROUTER.CFG. If you specify this globally, it is | ||
- | inherited by all consoles. If specified in a console | ||
- | definition block, it applies to that console only. If not | ||
- | specified, the console inherits DEFAULTLANG. | ||
- | |||
- | No matter what CONSOLELANG is used, SESSIONS via the console | ||
- | use the language appropriate for CONSOLECALL, | ||
- | is specified by DEFAULTLANG, | ||
- | Finally the LANG command can be used to change the language | ||
- | for a session, but this doesn' | ||
- | |||
- | </ | ||
- | The colours and other console parameters may be specified in | ||
- | XROUTER.CFG. If they are specified in the GLOBAL section, | ||
- | the values are inherited by all consoles. Alternatively they | ||
- | may be used in CONSOLE definition blocks to override the | ||
- | global defaults on a console-by-console basis. | ||
- | |||
- | The following console definition keywords are available | ||
- | (defaults shown in brackets): | ||
- | |||
- | ACTIONCOLOR | ||
- | BOTWINBGCOLOR | ||
- | BOTWINTXTCOLOR | ||
- | CAPTIONCOLOR | ||
- | CMDWINBGCOLOR | ||
- | CMDWINTXTCOLOR | ||
- | CONSOLECALL | ||
- | ECHOCOLOR | ||
- | MIDWINBGCOLOR | ||
- | MIDWINTXTCOLOR | ||
- | MMASK Flags specifying protocols to trace (3f8) | ||
- | MPORTS | ||
- | PROMPTCOLOR | ||
- | REVIEW | ||
- | RXCOLOR | ||
- | TOPWINBGCOLOR | ||
- | TOPWINTXTCOLOR | ||
- | TXCOLOR | ||
- | WARNCOLOR | ||
- | |||
- | Most of these should be self explanatory. However some of | ||
- | them may need clarification: | ||
- | |||
- | CONSOLECALL | ||
- | This is the callsign used for making AX25 and NetRom | ||
- | connections from the console. You can set this independently | ||
- | of NODECALL or you may set them the same (which is the | ||
- | default if you omit the directive). You may set a different | ||
- | callsign on each console, and you may at any time override a | ||
- | console callsign using the " | ||
- | |||
- | ECHOCOLOR | ||
- | When the sysop types some text into the command line and | ||
- | presses < | ||
- | using the ECHOCOLOR. This colour is chosen by default to be | ||
- | bright, and to be different from the other colours used in | ||
- | that window, to make it easy for the sysop to differentiate | ||
- | between sent and received text. | ||
- | |||
- | MMASK | ||
- | This is the " | ||
- | which protocols are traced by default. The mask is the sum | ||
- | of the desired hex values from the following list: | ||
- | |||
- | 0001 - Incoming frames | ||
- | 0002 - Outgoing frames | ||
- | 0004 - AX25 layer 2 0400 - KISS | ||
- | 0008 - AX25 info frames | ||
- | 0010 - AX25 layer 3 1000 - PASSALL | ||
- | 0020 - AX25 layer 4 2000 - Hex Dump | ||
- | 0040 - IP frames | ||
- | 0080 - ARP frames | ||
- | |||
- | E.g. 0201 shows incoming TCP segments only, while 0241 shows | ||
- | the underlying IP datagrams as well. The default setting is | ||
- | 03FF, which shows all incoming and outgoing traffic from | ||
- | AX25 layer 2 upwards. The sysop may override this at any | ||
- | time using the MMASK command or the <F4> key. | ||
- | |||
- | MPORTS | ||
- | This is the combination of PORTs which will be monitored | ||
- | (traced) by default, until changed by an MPORT command or | ||
- | the <F3> key. The default is to monitor ALL ports, but you | ||
- | may wish to limit this to the main ports of interest. | ||
- | |||
- | The argument is either a HEX number between 0 and FFFFFFFF, | ||
- | a list of port numbers, or the words ALL or NONE. The hex | ||
- | value is calculated by adding together the desired values | ||
- | from this table: | ||
- | |||
- | Port HEX Port HEX Port HEX Port HEX | ||
- | ------------------------------------------------------ | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | However, it is usually more convenient to specify a list of | ||
- | port numbers. These may be supplied either as a series of | ||
- | single numbers, or in one or more ranges, or as combinations | ||
- | of the two. For example: MPORTS=1, | ||
- | no spaces in the list. | ||
- | |||
- | REVIEW | ||
- | This specifies the number of lines of scrollback available | ||
- | on the console. The value is a compromise, because setting a | ||
- | large value may increase the CPU usage and/or slow down the | ||
- | scrolling. The default is 400 lines, which is 8 pages on a | ||
- | 50 line console. | ||
- | |||
- | NUMCONSOLES | ||
- | The total number of consoles defaults to 3. This may be | ||
- | changed using the NUMCONSOLES=n directive in the global | ||
- | section of XROUTER.CFG, | ||
- | |||
- | |||
- | CONSOLE Definition Blocks | ||
- | |||
- | Console definition blocks are used to specify any | ||
- | characteristics of consoles that differ from the default. If | ||
- | all the consoles are to be identical, you can simply define | ||
- | the characteristics in the GLOBAL section of XROUTER.CFG. | ||
- | Only those characteristics that differ from the defaults | ||
- | need to be specified. | ||
- | |||
- | Console definition blocks start with CONSOLE=n where n is a | ||
- | number between 1 and 5, and end with ENDCONSOLE. They may | ||
- | contain any or all of the keywords listed above (except | ||
- | NUMCONSOLES). There should be one block for each console | ||
- | that differs from the default settings. | ||
- | |||
- | For example: | ||
- | |||
- | CONSOLE=3 | ||
- | MIDWINBGCOLOR=NAVY | ||
- | MIDWINTXTCOLOR=WHITE | ||
- | CMDWINBGCOLOR=GREEN | ||
- | CONSOLECALL=G8PZT-4 | ||
- | MMASK=1f | ||
- | MPORTS=1-2 | ||
- | ENDCONSOLE | ||
- | | ||
- | |||
- | </ | ||
- | COLOURS(6) | ||
- | CONSOLELANG(7) -- Console language | ||
- | DEFAULTLANG(7) -- Specify default language | ||
- | LANGS.SYS(8) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====EXTERN-IFACE.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | EXTERN-IFACE -- Interface Type " | ||
- | |||
- | </ | ||
- | The EXTERNAL interface type is intended for interfacing with | ||
- | Ethernet, WiFi and other things yet to be decided. | ||
- | |||
- | The name is a hang-over from XR16 (DOS), where an external | ||
- | TSR program managed the interface with the NIC packet driver. | ||
- | The external interface was also used to interface with BPQ- | ||
- | compatible drivers. XR32 (Windows) also used an external | ||
- | program, " | ||
- | |||
- | XRPi / XRLin don't need an external driver for Ethernet, but | ||
- | rather than confuse existing XR sysops by introducing a new | ||
- | interface type, the same configuration was used. | ||
- | |||
- | A typical Ethernet INTERFACE and PORT combination is shown | ||
- | below: | ||
- | |||
- | INTERFACE=5 | ||
- | ID=eth0 | ||
- | TYPE=EXTERNAL | ||
- | PROTOCOL=ETHER | ||
- | MTU=1064 | ||
- | ENDINTERFACE | ||
- | |||
- | PORT=7 | ||
- | ID=Ethernet Adaptor | ||
- | INTERFACENUM=5 | ||
- | IPADDRESS=192.168.0.221 | ||
- | ENDPORT | ||
- | |||
- | The interface and port numbers are for example only. | ||
- | |||
- | In the INTERFACE block, the ID directive specifies the device | ||
- | name, e.g. " | ||
- | for wireless LAN adaptor. These names may vary from platform | ||
- | to platform, e.g. on MX-Linux the wireless lan adaptor might | ||
- | be named " | ||
- | |||
- | The PROTOCOL directive specifies the hardware layer protocol | ||
- | for the interface. At present only ETHER (Ethernet) protocol | ||
- | is used on this type of interface. | ||
- | |||
- | In the PORT block, The ID directive specifies a human-readable | ||
- | brief description of the interface, e.g. "LAN Adaptor | ||
- | (192.168.0.221)" | ||
- | |||
- | The IPADDRESS directive specifies the IP address to be used on | ||
- | this interface. This overrides XRouter' | ||
- | this port only. It must be different to the Linux IP address, | ||
- | and must be appropriate for the local subnet. | ||
- | |||
- | </ | ||
- | If XRouter is run from an account with root priviliges, no | ||
- | special conditions apply, otherwise its access to resources | ||
- | is restricted by Linux' | ||
- | |||
- | To use the EXTERNAL interface without root priviliges, the | ||
- | XRouter executable needs to be granted CAP_NET_RAW capability. | ||
- | See CAPFLAGS for more information. | ||
- | |||
- | </ | ||
- | IFACES(6) | ||
- | CAPFLAGS(6) | ||
- | PORTS(6) | ||
- | RUNROOT(6) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====IFACES.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | IFACES -- Interfaces in XRouter. | ||
- | |||
- | </ | ||
- | An XRouter INTERFACE is a physical (e.g. a COM port) or | ||
- | virtual point of connection between XRouter and somewhere | ||
- | else. The " | ||
- | PC, but it may also be an internal connection to other | ||
- | applications on the same PC. | ||
- | |||
- | This is not to be confused with Linux interfaces, which exist | ||
- | at a lower level, within the Linux kernal. | ||
- | |||
- | Apart from the keyboard input, the screen output, and the | ||
- | internal connection with Linux' | ||
- | that enters or leaves XRouter must ultimately pass through an | ||
- | INTERFACE. | ||
- | |||
- | Some types of interface support only a single " | ||
- | data, whilst others can support multiple channels, either | ||
- | due to their physical construction, | ||
- | |||
- | Interfaces usually have one or more PORTS " | ||
- | A PORT is the point of interaction between the various | ||
- | protocol modules and *one channel* of an interface. | ||
- | |||
- | However some interfaces, such as those used by XRouter to | ||
- | emulate other types of hardware or software, do not support | ||
- | ports. An example of this latter type would be the TNC2 | ||
- | interface. | ||
- | |||
- | Defining Interfaces in XRouter | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | XRouter interfaces are configured using INTERFACE definition | ||
- | blocks within XROUTER.CFG. | ||
- | |||
- | The interface definition block must reside in the GLOBAL | ||
- | section of XROUTER.CFG, | ||
- | within any other block. | ||
- | |||
- | The block starts with the directive " | ||
- | a unique number used to identify the interface. The actual | ||
- | number is unimportant, | ||
- | no other interface uses the same number. The block ends with | ||
- | ENDINTERFACE. | ||
- | |||
- | The block must contain at least the TYPE and MTU directives, | ||
- | otherwise XRouter will refuse to start. Additional directives | ||
- | may be required, depending on the TYPE. The full range of | ||
- | interface keywords is summarised in OPTIONS below | ||
- | |||
- | </ | ||
- | Interface Keywords - Overview: (*=mandatory) | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | APPLNUM | ||
- | CHANNEL | ||
- | CHANNELS | ||
- | COM | ||
- | CONFIG | ||
- | ENDINTERFACE | ||
- | ETHADDR | ||
- | FLOW Flow control options (async only) | ||
- | ID Interface identification string | ||
- | INTNUM | ||
- | IOADDR | ||
- | KISSOPTIONS | ||
- | MTU * Maximum Transmission Unit | ||
- | PROTOCOL | ||
- | RADIO Radio controlled by this interface | ||
- | SPEED | ||
- | TYPE * Type of hardware | ||
- | |||
- | Interface Keywords - Detail | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | APPLNUM | ||
- | Application number (WA8DED hostmode interfaces only). | ||
- | Specifies which application will be using this interface. | ||
- | Must match the number in the corresponding APPL block. | ||
- | |||
- | CHANNEL | ||
- | Channel on multi-channel hardware (e.g. SCC cards). XRouter | ||
- | does not currently support SCC cards on Linux, so this | ||
- | keyword should not be used. | ||
- | |||
- | CHANNELS | ||
- | For WA8DED hostmode interfaces only. Specifies the max no. | ||
- | of host channels (between 1 and 32) the interface will | ||
- | provide. | ||
- | |||
- | COM | ||
- | This is mandatory for some interfaces only. For ASYNC and | ||
- | YAM types, it specifies the name of the serial | ||
- | communication device, e.g. "/ | ||
- | interface it specifies an optional tunnel name, for example | ||
- | " | ||
- | UDP port. Setting COM=0 can be used to " | ||
- | |||
- | CONFIG | ||
- | Hardware-specific config options. The format depends on the | ||
- | interface type. Can be used to switch real TNC into KISS | ||
- | mode at startup for example. | ||
- | |||
- | ENDINTERFACE (mandatory) | ||
- | Marks the end of the INTERFACE definition block. Subsequent | ||
- | keywords will be treated as GLOBAL. | ||
- | |||
- | ETHADDR | ||
- | (Not currently used in XRouter and might be removed) | ||
- | Ethernet address in form xx: | ||
- | XR32 only for EXTERNAL drivers using ETHER protocol, such | ||
- | as the NdisXpkt driver. | ||
- | |||
- | FLOW | ||
- | Flow control options (ASYNC interfaces only): | ||
- | |||
- | 0 = No flow control | ||
- | 1 = Hardware (RTS/CTS) flow control | ||
- | 2 = Software (XON/XOFF) flow control (TTY link only) | ||
- | 3 = Hardware AND software flow control | ||
- | |||
- | If not specified, flow control defaults to NONE. Don't use | ||
- | Xon/Xoff with KISS. | ||
- | |||
- | ID | ||
- | Interface Identification. This is a plain text string which | ||
- | identifies the interface on various displays. Keep it | ||
- | concise, e.g " | ||
- | |||
- | INTNUM | ||
- | Used by AGW, AXTCP, TCP, and UDP interfaces. For the AXTCP | ||
- | and TCP servers, this specifies the TCP port the server | ||
- | should listen on. For UDP interfaces it specifies the local | ||
- | UDP port. For the AGW interface it specifies the TCP port | ||
- | used to connect with the AGW Packet Engine. | ||
- | |||
- | (This is a recycled keyword, which was used in XR16 to | ||
- | specify a hardware interrupt number). | ||
- | |||
- | IOADDR | ||
- | For AGW interfaces, this specifies the IP address of the | ||
- | AGW packet Engine (or Direwolf etc). If not specified, it | ||
- | defaults to 127.0.0.1 (localhost). Not currently used | ||
- | anywhere else. | ||
- | |||
- | (This is another recycled keyword, which was used in XR16 | ||
- | to specify an hardware IO address.) | ||
- | |||
- | KISSOPTIONS | ||
- | Options for KISS interfaces only: | ||
- | |||
- | NONE - Plain KISS (most TNC's use this) (default) | ||
- | |||
- | POLLED | ||
- | |||
- | CHECKSUM - Packets are protected by checksum. | ||
- | only use this option if your TNC supports it. | ||
- | |||
- | ACKMODE | ||
- | frame has been transmitted on air. | ||
- | |||
- | SLAVE - XRouter will act like a polled KISS TNC, | ||
- | | ||
- | |||
- | NOPARMS | ||
- | |||
- | POLLED and SLAVE are mutually exclusive. BPQKISS eproms | ||
- | require POLLED and CHECKSUM, but their use of ACKMODE is | ||
- | optional. | ||
- | |||
- | MTU (mandatory) | ||
- | Maximum Transmission Unit. This specifies the maximum size | ||
- | for the data portion of a packet transmitted on the | ||
- | interface. | ||
- | |||
- | IP datagrams are sized or fragmented according to the MTU | ||
- | of the interface on which they are transmitted. | ||
- | |||
- | XRouter allows MTU's up to 1500 bytes, but setting MTU | ||
- | above 256 is not recommended on AX25 ports, because the | ||
- | buffer size on TNC-based nodes is usually only big enough | ||
- | for a 256-byte data field. | ||
- | |||
- | This is a mandatory keyword, although for some interface | ||
- | types the value has no meaning and is ignored. If in doubt, | ||
- | use 256. | ||
- | |||
- | PROTOCOL | ||
- | Protocol to use on the interface: | ||
- | |||
- | ASCII - Remote consoles (TTY) via ASYNC ports | ||
- | AX25 - Pure ax25, no CRC or HDLC | ||
- | AXIP - AX25 over IP (with CRC) | ||
- | AXTCP - AX25 over TCP/IP (with CRC) | ||
- | AXUDP - AX25 over UDP/IP (with CRC) | ||
- | DEDHOST | ||
- | ETHER - Ethernet | ||
- | HDLC - For use with YAM modem, and some EXTERNAL | ||
- | | ||
- | IP - Internet Protocol, may be used on TCP, | ||
- | | ||
- | KISS - For driving KISS TNCs or wired links. | ||
- | MODEM - Hayes compatible PSTN modem. | ||
- | NETROM | ||
- | NONE - Use this with type=loopback | ||
- | PPP - Point to Point Protocol | ||
- | SLIP - Serial Line Internet Protocol | ||
- | TNC - External TNC/device in normal cmd mode | ||
- | TNC2 - TNC2 emulation. | ||
- | |||
- | (see PROTOCOL(7) for more detail) | ||
- | |||
- | RADIO | ||
- | Number of the radio (if any) controlled by this interface. | ||
- | Required only if rig control is needed. | ||
- | |||
- | SPEED | ||
- | The serial port baud rate for ASYNC interfaces only. Don't | ||
- | include a comma. | ||
- | |||
- | TYPE (mandatory) | ||
- | Interface type as follows: | ||
- | |||
- | AGW AGW Packet Engine | ||
- | ASYNC Serial (e.g. RS232) | ||
- | AXIP AX25 over IP | ||
- | AXTCP AX25 over TCP | ||
- | AXUDP AX25 over UDP | ||
- | EXTERNAL | ||
- | LOOPBACK | ||
- | TCP TCP pseudo-interface | ||
- | TUN Linux " | ||
- | UDP UDP pseudo-interface | ||
- | YAM YAM 1200/ | ||
- | |||
- | |||
- | </ | ||
- | KISS TNC on USB to RS232: | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | INTERFACE=1 | ||
- | TYPE=ASYNC | ||
- | COM=/ | ||
- | SPEED=9600 | ||
- | PROTOCOL=KISS | ||
- | KISSOPTIONS=POLLED, | ||
- | MTU=256 | ||
- | ENDINTERFACE | ||
- | |||
- | Ethernet: | ||
- | ~~~~~~~~ | ||
- | |||
- | INTERFACE=2 | ||
- | TYPE=EXTERNAL | ||
- | ID=/ | ||
- | PROTOCOL=ETHER | ||
- | MTU=1064 | ||
- | ENDINTERFACE | ||
- | |||
- | AXUDP Interface: | ||
- | ~~~~~~~~~~~~~~~ | ||
- | |||
- | INTERFACE=9 | ||
- | TYPE=AXUDP | ||
- | MTU=256 | ||
- | ENDINTERFACE | ||
- | |||
- | </ | ||
- | AGW-IFACE(6) | ||
- | ASYNC-IFACE(6) | ||
- | AXIP-IFACE(6) | ||
- | AXTCP-IFACE(6) | ||
- | AXUDP-IFACE(6) | ||
- | EXTERN-IFACE(6) -- External / Ethernet Interface | ||
- | LOOP-IFACE(6) | ||
- | PORTS(6) | ||
- | PROTOCOL(7) | ||
- | TCP-IFACE(6) | ||
- | TUN-IFACE(6) | ||
- | UDP-IFACE(6) | ||
- | XROUTER.CFG(8) | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====IP-STACKS.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | IP-STACKS -- TCP/IP Stacks in XRouter. | ||
- | |||
- | </ | ||
- | A TCP/IP " | ||
- | each other in such a way that each layer only talks to the | ||
- | layer immediately above or below it. There is no lateral | ||
- | communication within layers. | ||
- | |||
- | At the top of the stack is the " | ||
- | basically where humans and processes interact with the stack, | ||
- | and at the bottom is the " | ||
- | PC interfaces to the outside world, via Network Interface | ||
- | Cards (NIC' | ||
- | |||
- | The following diagram is a greatly simplified version of | ||
- | XRouter' | ||
- | clarity, and to save space. | ||
- | |||
- | .----------------------------------------------------. | ||
- | | | ||
- | | TELNET | FTP | HTTP | etc.. | DNS | RIP | PING etc.| | ||
- | |--------' | ||
- | | | ||
- | |-----------------------------' | ||
- | | IP | | ||
- | |--------------------------------------.------.------| | ||
- | | | ||
- | |------------.-------------------------| | ||
- | | Ethernet | ||
- | |------------|------------------.------| | ||
- | | NDISXPKT | ||
- | |------------|-----------.------' | ||
- | | | ||
- | | (Physical Layer) | ||
- | ' | ||
- | |||
- | Fig.1 - XRouter' | ||
- | |||
- | To illustrate the workings of a TCP/IP stack, imagine that the | ||
- | application initiates a TELNET connection. It can be seen from | ||
- | Fig.1 that in order to reach the outside world, TELNET uses | ||
- | TCP, which in turn uses IP. From that point downwards there | ||
- | are several choices, depending on the destination address, the | ||
- | IP routing tables, and the hardware interfaces that have been | ||
- | defined in XROUTER.CFG. | ||
- | |||
- | If the destination is an Internet site, the data may pass down | ||
- | through ARP, Ethernet and NDIS, to emerge from the NIC onto | ||
- | the LAN, thence to the Internet router and the Internet. | ||
- | |||
- | If however the destination was a local Ham Radio TCP/IP hub, | ||
- | the data might pass from IP down through ARP and AX25, then it | ||
- | would either go via KISS and a COM port to a TNC, or via AGW | ||
- | Packet Engine and a sound card, thence to the radio. | ||
- | |||
- | Alternatively the destination may be another PC, linked via | ||
- | COM ports. In this case, the data would pass from IP down | ||
- | through SLIP or PPP to the COM port. | ||
- | |||
- | Two Stacks | ||
- | ========== | ||
- | |||
- | Although XRouter has its own TCP/IP stack, Linux has a much | ||
- | larger and more comprehensive stack of its own. The two are | ||
- | independent of each other, and different to each other... | ||
- | |||
- | History Digression: | ||
- | ~~~~~~~~~~~~~~~~~~~ | ||
- | | ||
- | XRouter' | ||
- | DOS. There was no TCP/IP stack in DOS, so XRouter evolved as a | ||
- | way to provide one, both for Internet and for TCP/IP over RF. | ||
- | |||
- | Because of this, XRouter' | ||
- | could exist on several networks at the same time, with | ||
- | different IP addresses on each network. For example it may be | ||
- | simultaneously using the IP address 44.131.91.2 for radio | ||
- | links, 192.168.0.23 for Ethernet, and 10.0.0.2 on a SLIP link. | ||
- | |||
- | Many years later, when XRouter was ported to Windows and | ||
- | became " | ||
- | of its own. Consequently, | ||
- | by XR32's stack could be provided equally well by the Windows | ||
- | stack. | ||
- | |||
- | But not all of it. Windows could not provide any AX25 | ||
- | services, and it was almost impossible to set up and use | ||
- | Windows TCP/IP via packet radio RF links. | ||
- | |||
- | So XR32 was able to make use of Windows' | ||
- | Internet operations, whilst using its own stack for TCP/IP | ||
- | over radio. Or it could be configured to ignore Windows' | ||
- | stack and do everything via its own stack. Or a mixture of | ||
- | the two, as specified by the sysop. | ||
- | |||
- | XR32 was later ported to Linux to become XRPi/XRLin. But | ||
- | Linux already has a very powerful networking stack which | ||
- | includes AX25, so some might question the need for XRouter to | ||
- | have a stack, or even to exist at all! | ||
- | |||
- | ---------------------------- | ||
- | |||
- | The point is, XRouter is an experiment in amateur networking. | ||
- | New ideas can be quickly tried out without breaking the Linux | ||
- | stack, or going through a long-winded process to get the code | ||
- | incorporated into the Linux kernal. Ideas that don't succeed | ||
- | can easily be discarded, and no kernals are harmed in the | ||
- | attempt. | ||
- | |||
- | XRouter can do many things that the Linux stack cannot, all | ||
- | in one simple package. The sysop has full control over which | ||
- | TCP/IP services use which stack. | ||
- | |||
- | At the application layer, XRouter can use either or both | ||
- | TCP/IP stacks, as shown in the simplified diagrams below: | ||
- | |||
- | |||
- | .-----------------------------------------. | ||
- | | | ||
- | |-----------------------------------------| | ||
- | | XRouter IP Stack | Linux IP stack | | ||
- | | 192.168.0.23 | ||
- | ' | ||
- | |||
- | Fig.2 - XRouter Using Both Stacks | ||
- | |||
- | Figure 2 shows the application layer sitting astride both | ||
- | stacks. For example, the FTP server might be available on | ||
- | both kernal and XRouter IP addresses, either with the same or | ||
- | different TCP port numbers. | ||
- | |||
- | Or you might wish to restrict the FTP server to the Linux | ||
- | stack, firewalled from the outside world, whilst the Telnet | ||
- | server sits on the XRouter stack, port-forwarded from the | ||
- | outside world. The possibilities are endless, and up to you. | ||
- | |||
- | |||
- | .--------------------. | ||
- | | XRouter Appl Layer | | ||
- | |--------------------|--------------------. | ||
- | | XRouter IP Stack | Linux IP stack | | ||
- | | 192.168.0.23 | ||
- | ' | ||
- | |||
- | Fig.3 - XRouter Using Own Stack | ||
- | |||
- | Figure 3 shows XRouter' | ||
- | astride its own TCP/IP stack, such that it makes no use of | ||
- | the Linux stack at all. | ||
- | |||
- | |||
- | | ||
- | | XRouter Appl Layer | | ||
- | .--------------------|--------------------. | ||
- | | XRouter IP Stack | Linux IP stack | | ||
- | | 192.168.0.23 | ||
- | ' | ||
- | |||
- | Fig.4 - XRouter Using Linux Stack | ||
- | |||
- | Conversely all of XRouter' | ||
- | etc.) could use only the Linux stack, as shown in figure 4. | ||
- | In this case it wouldn' | ||
- | an IP address. | ||
- | |||
- | At the physical layer, XRouter' | ||
- | Ethernet and WiFi adaptors with Linux, whilst using its own | ||
- | IP addresses. This is shown in the simplified diagram below | ||
- | (which omits KISS etc. for clarity): | ||
- | |||
- | |||
- | .-----------------------------------------. | ||
- | | XRouter IP Stack | Linux IP stack | | ||
- | | 192.168.0.23 | ||
- | |-----------------------------------------| | ||
- | | Ethernet / WiFi Adaptors | ||
- | ' | ||
- | |||
- | Fig.5 - IP Stacks Sharing Physical Resources | ||
- | |||
- | |||
- | To Root or Not to Root? | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | In order to directly share the physical resources, XRouter | ||
- | either needs root privileges, or it needs to be given | ||
- | permission to access raw network resources. | ||
- | |||
- | Running as root is more convenient in that it allows XRouter | ||
- | to open any TCP or UDP port on the Linux stack, but some may | ||
- | consider it to be a security risk. | ||
- | |||
- | For example, in the highly unlikely event that someone breaks | ||
- | out of XRouter to a command line, they could have access to | ||
- | the whole machine. However, XRouter has been in use for | ||
- | several years fully open to the Internet, without incident. | ||
- | |||
- | Running XRouter as a non-root user is safer. Even if a | ||
- | miscreant managed to break out to a command shell, he would | ||
- | only have access to that user's directory tree. | ||
- | |||
- | The downside of non-root is that Linux would not allow | ||
- | XRouter to open TCP/UDP port numbers below 1024 on the Linux | ||
- | stack. So for example you could not run FTP servers at port | ||
- | 21 on both stacks. There would be no restriction on the | ||
- | XRouter stack, but the port number on the Linux stack would | ||
- | have to be greater than 1023. | ||
- | |||
- | But that is a small price to pay for the added security. | ||
- | |||
- | If you run XRouter as shown in figure 4, it needs no special | ||
- | privileges at all. But you will not be able to trace much of | ||
- | the TCP/IP traffic, and some facilities will be unavaliable. | ||
- | |||
- | Which Stack to Use? | ||
- | ~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | The choice of how your TCP/IP packets are routed, and which | ||
- | stack your services appear on, is entirely under your | ||
- | control. It could have been automated, but that would have | ||
- | deprived you of choice. | ||
- | |||
- | If you haven' | ||
- | haven' | ||
- | will use the Linux stack. If you are not running XRouter from | ||
- | a root account, and have not set the correct capability flags | ||
- | on the program, some services such as PING AXIP, IPIP and | ||
- | TELNET won't be available, and your server ports may be | ||
- | restricted to service numbers 1024 and above. | ||
- | |||
- | If you have defined an Ethernet or Wlan port, all TCP/IP | ||
- | traffic (except to localhost) will try to route via XRouter' | ||
- | own stack, and all servers are on that stack unless the | ||
- | defaults are overidden. | ||
- | |||
- | The way to force traffic via the Linux stack is to use | ||
- | IP ROUTE entries with mode " | ||
- | Anything not caught by a " | ||
- | XRouter' | ||
- | | ||
- | </ | ||
- | IP(1) -- IP Configuration Commands. | ||
- | IPROUTE.SYS(8) -- IP Configuration & Routing File. | ||
- | IP-PRIMER(9) | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====LAN.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | LAN -- LAN Interfacing. | ||
- | |||
- | </ | ||
- | There are TWO ways for XRouter to interface with the LAN or | ||
- | WiFi. Which one you choose depends on the facilities you need. | ||
- | |||
- | The " | ||
- | |||
- | This mode supports servers, AXIP, AXUDP, AXTCP, IPIP, IPUDP, | ||
- | Telnet, PING, TraceRoute etc. | ||
- | |||
- | It does NOT support direct IP routing between XRouter ports | ||
- | and the LAN. | ||
- | |||
- | For example, it wouldn' | ||
- | port or RF network onto the LAN (and vice versa). | ||
- | |||
- | But it CAN route encapsulated traffic to and from the LAN. | ||
- | For example, you could receive IP over the radio, or over | ||
- | AXIP / AXUDP / IPIP / IPUDP / PPP / SLIP etc, and route it | ||
- | out via the LAN to another node, providing it is encapsulated | ||
- | in IPIP, IPENCAP, IPUDP, IP-over-AXUDP, | ||
- | IP-over-AXTCP etc. | ||
- | |||
- | Using basic mode, it is not possible (yet) to " | ||
- | Linux kernal TCP/IP activity. Only encapsulated traffic and | ||
- | non-LAN traffic can be traced. | ||
- | |||
- | Basic mode does not need an INTERFACE or PORT for the LAN. | ||
- | All it needs is a "type k" (kernal) default route in | ||
- | IPROUTE.SYS like this: | ||
- | |||
- | ip route default | ||
- | |||
- | In this mode, all servers and LAN traffic in and out of | ||
- | XRouter use Linux' | ||
- | |||
- | The " | ||
- | kernal, talking to the hardware in a more direct way. | ||
- | |||
- | This mode gives XRouter its own LAN address and IP stack, | ||
- | independent of the Linux one. | ||
- | |||
- | It supports all the above modes, PLUS it supports direct IP | ||
- | routing between XRouter ports and the LAN. All LAN traffic | ||
- | to and from XRouter can be " | ||
- | |||
- | Regular mode uses an EXTERNAL interface, to which a PORT is | ||
- | attached. They are declared as follows: | ||
- | |||
- | INTERFACE=3 | ||
- | TYPE=EXTERNAL | ||
- | ID=eth0 | ||
- | PROTOCOL=ETHER | ||
- | MTU=1064 | ||
- | ENDINTERFACE | ||
- | |||
- | The " | ||
- | use. This is normally " | ||
- | name, e.g. " | ||
- | to use Ethernet. | ||
- | |||
- | Device " | ||
- | usually the WiFi adaptor. However, the WiFi may appear as | ||
- | " | ||
- | |||
- | The only PROTOCOL accepted at present is ETHER. | ||
- | |||
- | The corresponding Ethernet PORT is declared like this: | ||
- | |||
- | PORT=1 | ||
- | ID=Ethernet | ||
- | INTERFACENUM=3 | ||
- | IPADDRESS=192.168.0.2 | ||
- | NETMASK=255.255.255.0 | ||
- | etc... | ||
- | |||
- | INTERFACENUM must refer to the number of the INTERFACE | ||
- | previously defined. | ||
- | |||
- | The port number is not important. It is merely a " | ||
- | users of the port. It doesn' | ||
- | number. | ||
- | |||
- | IPADDRESS specifies XRouter' | ||
- | global IP address only on that port. | ||
- | |||
- | Make sure you choose a different IP address to any that Linux | ||
- | is using! | ||
- | |||
- | You will also need to set up some LAN IP routing in | ||
- | IPROUTE.SYS, | ||
- | |||
- | # Default route via gateway 192.168.0.100 on port 1: | ||
- | ip route default | ||
- | # | ||
- | # Local subnet is routed direct on port 1: | ||
- | ip route add 192.168.0.0/ | ||
- | |||
- | </ | ||
- | If XRouter is run as a root user, no special conditions apply. | ||
- | |||
- | If not run as root, its access to resources is restricted by | ||
- | Linux' | ||
- | |||
- | When running as a non-root user, " | ||
- | XRouter to have CAP_NET_BIND_SERVICE capability if any of its | ||
- | server ports on the Linux stack are below 1024. See | ||
- | TCP-PORTS(6) for more information and workarounds. | ||
- | |||
- | To run " | ||
- | executable needs CAP_NET_RAW capability. See CAPFLAGS(6) for | ||
- | more information. | ||
- | |||
- | </ | ||
- | IP-STACKS(6) | ||
- | TCP-PORTS(6) | ||
- | IPROUTE.SYS(8) -- IP Routing Tables. | ||
- | CAPFLAGS(6) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====LOOP-IFACE.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | LOOP-IFACE -- Interface type " | ||
- | |||
- | </ | ||
- | The LOOPBACK interface is often misunderstood and mis-used. | ||
- | |||
- | It is a relic of the DOS era, and has no practical use other | ||
- | than for test and development. YOU SHOULD NOT USE IT. | ||
- | |||
- | It is an internal loopback within XRouter' | ||
- | does NOT connect to Linux, and should be disabled if not | ||
- | needed because at the very least it may cause confusion, and | ||
- | may cause unwanted side effects. | ||
- | |||
- | The " | ||
- | initial " | ||
- | to create an INTERFACE and PORT, which XRouter needs | ||
- | before it will start. It gets a new sysop up and running | ||
- | quickly, and can always be used as a "known good" | ||
- | configuration, | ||
- | return to when troubleshooting. | ||
- | |||
- | Once you have added some " | ||
- | should remove or comment out the loopback one. | ||
- | |||
- | The interface requires TYPE=LOOPBACK, | ||
- | directives. Accepted PROTOCOLs are as follows: | ||
- | |||
- | AX25 - Plain AX25, no CRC | ||
- | ETHER - Ethernet | ||
- | HDLC - AX25 with CRC, but no HDLC flags | ||
- | IP - Plain IP | ||
- | KISS - Basically AX25 within SLIP | ||
- | NETROM | ||
- | PPP - Point to Point Protocol | ||
- | SLIP - Serial Line Internet Protocol | ||
- | |||
- | (see PROTOCOL(7) for more detail) | ||
- | |||
- | </ | ||
- | # Example " | ||
- | # test purposes only. This type of interface supports one | ||
- | # PORT only. | ||
- | # | ||
- | INTERFACE=3 | ||
- | TYPE=LOOPBACK | ||
- | PROTOCOL=KISS | ||
- | MTU=576 | ||
- | ENDINTERFACE | ||
- | # | ||
- | # Example loopback port, attached to loopback interface | ||
- | # Use with caution. May cause catastrophic endless loops | ||
- | # if IP routing is configured incorrectly. | ||
- | # | ||
- | PORT=3 | ||
- | ID=Internal Loopback | ||
- | INTERFACENUM=3 | ||
- | ENDPORT | ||
- | # | ||
- | |||
- | </ | ||
- | IFACES(6) | ||
- | KISS(9) | ||
- | PORTS(6) | ||
- | PPP(9) | ||
- | PROTOCOL(7) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====PORTS.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | PORTS -- PORTS in XRouter. | ||
- | |||
- | </ | ||
- | A PORT is a point of interaction between XRouter' | ||
- | " | ||
- | XRouter. You cannot have a PORT without having an INTERFACE | ||
- | to attach it to. | ||
- | |||
- | All AX25 operations are PORT-based, where a PORT usually | ||
- | corresponds to a single radio frequency. Ports allow XRouter | ||
- | to direct output to a specific device, and receive input | ||
- | from that device. | ||
- | |||
- | Each port is " | ||
- | interfaces are single-channel, | ||
- | one PORT. Others are multi-channel, | ||
- | ports attached to them. | ||
- | |||
- | For example, an ASYNC interface connected to a PSTN modem | ||
- | supports only one channel of communication with the modem, | ||
- | therefore it can only support one port. But an ASYNC | ||
- | interface using KISS protocol can support a multi-channel | ||
- | TNC, whereby each channel is connected to a seperate radio on | ||
- | its own frequency, thus there would be one PORT for each | ||
- | channel. | ||
- | |||
- | For historical reasons, XRouter will not run unless there is | ||
- | at least one PORT. | ||
- | |||
- | Defining Ports in XRouter: | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | XRouter ports are configured using PORT definition blocks | ||
- | within the GLOBAL section of XROUTER.CFG. The blocks start | ||
- | with the keyword PORT and end with ENDPORT. | ||
- | |||
- | They contain " | ||
- | each on a separate line. (If you do not understand the | ||
- | significance of the <>, please see the conventions section). | ||
- | Keywords are not case sensitive, and may be specified in any | ||
- | order. | ||
- | |||
- | For example: | ||
- | |||
- | PORT=2 | ||
- | (directives here) | ||
- | ENDPORT | ||
- | |||
- | Some directives are mandatory, but most are optional. The | ||
- | full range of port keywords is summarised below: | ||
- | |||
- | </ | ||
- | |||
- | PORT Keywords - Overview (*=mandatory) | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | APPLMASK | ||
- | APRSPATH | ||
- | BCAST List of destinations for " | ||
- | BCFROM | ||
- | CFLAGS | ||
- | CHANNEL | ||
- | CHATALIAS | ||
- | CHATCALL | ||
- | CTEXT Text to send to incoming connectees | ||
- | CTFLAGS | ||
- | CWID Text to send in CW every 30' (SCC only) | ||
- | DHCP Enables / disables DHCP client (0) | ||
- | DIGIFLAG | ||
- | DIGIPORT | ||
- | DYNDNS | ||
- | ENDPORT | ||
- | EXCLUDE | ||
- | FEC | ||
- | FRACK AX25 Frame Acknowledgement time ms (7000) | ||
- | FREQUENCY | ||
- | FULLDUP | ||
- | ID * Text to identify port on ports display | ||
- | IDPATH | ||
- | IDTEXT | ||
- | INITSTR | ||
- | INTERFACENUM | ||
- | INTERLOCK | ||
- | IPADDRESS | ||
- | IPLINK | ||
- | MAXFRAME | ||
- | MAXHOPS | ||
- | MAXTT Port override for global MAXTT | ||
- | MHEARD | ||
- | MHFLAGS | ||
- | MINQUAL | ||
- | MINTXQUAL | ||
- | NETMASK | ||
- | NODESINTERVAL | ||
- | PACLEN | ||
- | PERSIST | ||
- | PIPE Creates a "frame pipe" to another port | ||
- | PIPEFLAG | ||
- | PMSALIAS | ||
- | PMSCALL | ||
- | PORTALIAS | ||
- | PORTALIAS2 | ||
- | PORTCALL | ||
- | PROXY | ||
- | QUALITY | ||
- | RESPTIME | ||
- | RETRIES | ||
- | RFBAUDS | ||
- | SESSLIMIT | ||
- | SLOTTIME | ||
- | SOFTDCD | ||
- | SYSOP If 1, all users on this port are sysops (0) | ||
- | TXDELAY | ||
- | TXPORT | ||
- | TXTAIL | ||
- | UDPLOCAL | ||
- | UDPREMOTE | ||
- | UNPROTO | ||
- | USERS Max simultaneous users on this port (255) | ||
- | VALIDCALLS | ||
- | |||
- | For more information on each of the above keywords, please | ||
- | refer to its page in section 7 of the manual. | ||
- | |||
- | </ | ||
- | a) KISS Port, no NetRom, Pipe to port 7: | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | User-access frequency, hence NetRom linking is suppressed by | ||
- | zero QUALITY. Note the bi-directonal selective UI pipe to a | ||
- | BBS which is on port 7, allowing FBB resync requests, and the | ||
- | use of BCAST for broadcasting the BBS's mail beacons onto this | ||
- | port. | ||
- | |||
- | PORT=1 | ||
- | ID=144.850 MHz 1200 baud users | ||
- | INTERFACENUM=1 | ||
- | CHANNEL=C | ||
- | PACLEN=160 | ||
- | MAXFRAME=2 | ||
- | TXDELAY=400 | ||
- | QUALITY=0 | ||
- | BCAST=MAIL | ||
- | BCFROM=GB7PZT | ||
- | PIPE=7 GB7PZT | ||
- | PIPEFLAG=513 | ||
- | ENDPORT | ||
- | |||
- | |||
- | b) APRS-only port: | ||
- | ~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | Note the use of comment lines, an alternate IDTEXT, and the | ||
- | use of CFLAGS to disable connected mode operations, thus | ||
- | MAXFRAME, FRACK, PACLEN etc. are not needed. | ||
- | |||
- | PORT=13 | ||
- | ID=144.800 MHz 1200 baud APRS | ||
- | INTERFACENUM=1 | ||
- | CHANNEL=B | ||
- | CFLAGS=0 | ||
- | DIGIFLAG=5 | ||
- | MHEARD=22 | ||
- | IDTEXT=!5224.00N/ | ||
- | ; | ||
- | ; Override default destination & path for ID beacons | ||
- | IDPATH=APRS, | ||
- | ; | ||
- | ; Default digipeater path for APRS frames originated | ||
- | ; by APRS messaging shell and Igate. | ||
- | APRSPATH=RELAY | ||
- | ; | ||
- | ENDPORT | ||
- | |||
- | |||
- | c) AXIP Port: | ||
- | ~~~~~~~~~~~~~ | ||
- | |||
- | Note the use of lower FRACK and RESPTIME because it is a | ||
- | faster link. | ||
- | |||
- | PORT=8 | ||
- | ID=AXIP link with WA3IP | ||
- | INTERFACENUM=2 | ||
- | IPLINK=55.73.88.69 | ||
- | FRACK=2000 | ||
- | RESPTIME=200 | ||
- | ENDPORT | ||
- | |||
- | |||
- | d) AXUDP Port: | ||
- | ~~~~~~~~~~~~~~ | ||
- | |||
- | Illustrates the use of non-standard UDPLOCAL and UDPREMOTE, a | ||
- | hostname for IPLINK, plus lower FRACK and RESPTIME because it | ||
- | is a fast link. | ||
- | |||
- | PORT=9 | ||
- | ID=AXUDP link with VK1UDP | ||
- | INTERFACENUM=3 | ||
- | IPLINK=vk1udp.ath.cx | ||
- | UDPLOCAL=9393 | ||
- | UDPREMOTE=10093 | ||
- | FRACK=2000 | ||
- | RESPTIME=200 | ||
- | ENDPORT | ||
- | |||
- | </ | ||
- | IFACES(6) | ||
- | PORTSMORE(6) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====PORTSMORE.6.MAN===== | ||
- | < | ||
- | </ | ||
- | PORTSMORE -- Port Directives In More Detail. | ||
- | |||
- | </ | ||
- | This document gives more detail on each of the PORT | ||
- | directives listed in PORTS(6). Each of these directives has | ||
- | its own section 7 MAN page, which in some cases may give | ||
- | even more detail. | ||
- | |||
- | </ | ||
- | Used only if XRouter is hosting applications, | ||
- | DEDHOST interface. Controls which applications are directly | ||
- | connectable on a given port. The default is 255, which allows | ||
- | all applications. The value is made up by adding together the | ||
- | desired selection from the following numbers: | ||
- | |||
- | 1 - Enable Application 1 | ||
- | 2 - Enable Application 2 | ||
- | 4 - Enable Application 3 | ||
- | 8 - Enable Application 4 | ||
- | | ||
- | | ||
- | | ||
- | 128 - Enable Application 8 | ||
- | |||
- | For example, if a port's definition contains " | ||
- | will only allow direct connections to applications 1 and 4 on | ||
- | that port, and only if those applications have either an | ||
- | APPLCALL or an APPLALIAS. | ||
- | |||
- | </ | ||
- | Default digipeater path for APRS frames originated by APRS | ||
- | messaging shell and IGATE. If you omit this, the frames will | ||
- | be sent without any digipeaters. Messaging shell users may | ||
- | override this path. | ||
- | |||
- | Example: APRSPATH=RELAY | ||
- | |||
- | </ | ||
- | List of destinations for "UI broadcasting" | ||
- | digipeater UI frames, addressed to one of these destinations, | ||
- | are re-broadcasted on all ports which have a matching address | ||
- | in their BCAST list, e.g. to broadcast mail beacons from a | ||
- | BBS on one port onto several other ports. | ||
- | |||
- | The callsigns must be separated by commas and there should be | ||
- | no spaces in the list. | ||
- | |||
- | Example: BCAST=MAIL, | ||
- | |||
- | </ | ||
- | Specifies a list of callsigns who may use the UI broadcast | ||
- | facility (see BCAST). BCFROM applies only to frames | ||
- | *directly* received on the port for which it is specified | ||
- | (i.e. not via digipeaters). | ||
- | |||
- | If you wish to restrict the broadcast facility to certain | ||
- | senders only, list the callsigns here. If no calls are | ||
- | specified, the facility is unrestricted. Separate the calls | ||
- | by commas, and don't include any spaces in the list. | ||
- | |||
- | Example: BCFROM=GB7PZT, | ||
- | |||
- | </ | ||
- | Controls whether or not AX25 level 2 uplinking and/or | ||
- | downlinking is allowed on the port. A typical use may be to | ||
- | prevent users from uplinking and downlinking on APRS-only | ||
- | ports. It also allows the sysop to control whether or not | ||
- | L3RTT frames are generated on inter-node links, and whether | ||
- | or not AX25 level 2 fragmentation is allowed on the port. | ||
- | |||
- | Add together the decimal values of the desired options from | ||
- | this list: | ||
- | |||
- | Val | ||
- | ------------------------------------------------- | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | 16 - Allow L2 fragmentation. | ||
- | |||
- | The default value is 3, i.e. unconditional use of the port. | ||
- | |||
- | Irrespective of the setting of CFLAGS, the Sysop can always | ||
- | downlink. | ||
- | |||
- | Bit 2 allows applications to downlink unconditionally, | ||
- | even if users are prevented from downlinking. | ||
- | |||
- | Bit 3 was provided to keep the Luddites happy, but its use | ||
- | is strongly deprecated. Setting this flag prevents L3RTT | ||
- | frames from being originated by the port if it is carrying | ||
- | an inter-node link. It will not prevent XRouter from trying | ||
- | to hold inter-node links open, as that is too much of a | ||
- | retrograde step! This bit is not set by default. | ||
- | L3RTT may also be suppressed if a route' | ||
- | |||
- | Bit 4 allows AX25 layer 2 fragmentation if it is set. This | ||
- | is required if Forward Error Correction (FEC) is in use, to | ||
- | allow big L3 frames to be sent. | ||
- | |||
- | Examples: | ||
- | |||
- | CFLAGS=2 | ||
- | CFLAGS=5 | ||
- | |||
- | </ | ||
- | Channel to use on interface (A-P), required only on certain | ||
- | types of multi-channel interface, e.g. KISS. Not required on | ||
- | AXIP, AXUDP, or AXTCP interfaces. Default is A. | ||
- | |||
- | Example: CHANNEL=C | ||
- | |||
- | </ | ||
- | Port override for global CHATALIAS. If specified, the chat | ||
- | server will use this alias instead of the global CHATALIAS, | ||
- | on this port only. | ||
- | |||
- | Example: CHATALIAS=KDRCH2 | ||
- | |||
- | </ | ||
- | Port override for global CHATCALL. If specified, the chat | ||
- | server will use this callsign instead of the global CHATCALL, | ||
- | on this port only. | ||
- | |||
- | Example: CHATCALL=G8PZT-9 | ||
- | |||
- | </ | ||
- | Port override for global CTEXT. This is a single line of text | ||
- | that can be sent to a caller when they connect to XRouter. | ||
- | The companion directive CTFLAGS controls which callers | ||
- | receive the text. | ||
- | |||
- | If the argument specifies a filename, the contents of that | ||
- | file are read " | ||
- | be of use in EMCOMM scenarios. The specified file could for | ||
- | instance be updated by another program, such as an extreme | ||
- | weather detector. See CTEXT(7) for more details. | ||
- | |||
- | Examples: | ||
- | CTEXT This port is for linking only | ||
- | CTEXT / | ||
- | |||
- | </ | ||
- | Controls which callers are sent a " | ||
- | they connect to XRouter. | ||
- | |||
- | The argument is the sum of the desired options from the | ||
- | following list: | ||
- | |||
- | 1 - Send CTEXT upon connection to PORTALIAS. | ||
- | 2 - Send CTEXT upon connection to PORTCALL. | ||
- | | ||
- | The default value is 1 (Alias only). | ||
- | |||
- | </ | ||
- | Text to send in Morse Code every 30', used only by SCC ports. | ||
- | It specifies a callsign (8 characters max.) which is sent | ||
- | every 30 minutes using Morse code. If omitted, no cwid is | ||
- | sent. | ||
- | |||
- | Example: CWID=G8PZT | ||
- | |||
- | </ | ||
- | Specifies whether or not the port IP address is obtained | ||
- | dynamically using DHCP (DHCP=1) or specified statically | ||
- | (DHCP=0). Default is 0. | ||
- | |||
- | </ | ||
- | Controls digipeating (0=none, default=7). Options are | ||
- | enabled by adding together the following numbers: | ||
- | |||
- | Value Option | ||
- | --------------------------------------------------- | ||
- | 1 | ||
- | 2 | ||
- | 4 | ||
- | 8 | ||
- | | ||
- | | ||
- | | ||
- | 128 Allow digipeating from Internet (IGate). | ||
- | 256 | ||
- | 512 | ||
- | |||
- | Example: DIGIFLAG=5 ; all UI + RELAY generic. | ||
- | |||
- | See APRS digipeating.... | ||
- | |||
- | </ | ||
- | Specifies the port digipeated frames are transmitted onto. | ||
- | Default is 0, i.e. the current port. | ||
- | |||
- | Example: DIGIPORT=3 ; Digipeat onto port 3 | ||
- | |||
- | </ | ||
- | Enable / disable Dynamic DNS update client. | ||
- | |||
- | </ | ||
- | Marks the end of the PORT definition block. Subsequent | ||
- | keywords are interpreted as GLOBAL. | ||
- | |||
- | </ | ||
- | EXCLUDE specifies a list of one or more callsigns from whom | ||
- | AX25 L2 frames are ignored. It would typically be used on a | ||
- | user-access port to prevent connections from trouble-makers | ||
- | and pirates. | ||
- | include any spaces. | ||
- | |||
- | Example: EXCLUDE=NOCALL, | ||
- | |||
- | </ | ||
- | Enable / disable Forward Error Correction. | ||
- | use of FEC, the port needs to be using a KISS TNC with the | ||
- | CRC check disabled (PASSALL ON), or an SCC or YAM card. The | ||
- | default is 0, i.e. disabled. | ||
- | |||
- | </ | ||
- | AX25 " | ||
- | milliseconds. Default is 7000. | ||
- | |||
- | After sending an AX25 packet, this is the amount of time | ||
- | XRouter waits for an " | ||
- | be lost. | ||
- | |||
- | The T1 timer starts when the link layer dispatches the packet | ||
- | to the MAC (Media Access Control) layer, so you must allow at | ||
- | least enough time for (MAXFRAME * PACLEN) packets to be sent, | ||
- | plus an ack packet to be received, plus the other end's | ||
- | RESPTIME, plus both end's TXDELAYs, plus a generous allowance | ||
- | for channel congestion. | ||
- | |||
- | A frack no less than 7000 millisecs is recommended for | ||
- | average 1200 baud links. Setting this figure too low is | ||
- | antisocial, achieves nothing, and could result in the link | ||
- | retrying out. | ||
- | |||
- | However, on fast, wired (e.g. AXUDP) links, 7 seconds is | ||
- | excessive, and a figure like 2000 (2 secs) should be used. | ||
- | |||
- | Example: FRACK=7000 ; 7 seconds | ||
- | |||
- | </ | ||
- | Radio frequency in Hz. Default is 0. If the port is a radio | ||
- | port, this value is reported to the node mapping server, if | ||
- | such reporting is enabled. | ||
- | |||
- | For non-RF ports (e.g. AXUDP) where this directive has no | ||
- | meaning and is ignored. | ||
- | |||
- | Example: FREQUENCY=144925000 | ||
- | |||
- | </ | ||
- | Allow simultaneous TX/RX (SCC only). If you set FULLDUP=1, | ||
- | XRouter transmits whenever it needs to, without waiting for | ||
- | the other end to stop. | ||
- | |||
- | Used only by hardware which is capable of simultaneous | ||
- | transmission and reception, such as full duplex radio or | ||
- | wire links. Default is 0 (simplex / half duplex). | ||
- | |||
- | Example: FULLDUP=1 | ||
- | |||
- | </ | ||
- | Mandatory text to identify port on " | ||
- | contain spaces. Please make it informative. | ||
- | |||
- | Example: ID=144.825 MHz 9k6 TCP/IP users | ||
- | |||
- | </ | ||
- | Specifies the destination and digipeater path for ID beacons. | ||
- | |||
- | The default AX25 destination and path is " | ||
- | digipeaters. You may wish to modify this, for example on | ||
- | APRS ports, to digipeat your beacon. | ||
- | |||
- | Example: IDPATH=APRS, | ||
- | |||
- | </ | ||
- | Optional ID text to use, instead of global IDTEXT, on this | ||
- | port only (e.g. for APRS ports). Only one line of text (248 | ||
- | characters max.) may be specified. | ||
- | |||
- | Example: IDTEXT=!5224.00N/ | ||
- | |||
- | </ | ||
- | Modem initialisation string (MODEM ports only). This is a | ||
- | string of characters sent to the modem when Xrouter is | ||
- | started. | ||
- | |||
- | Example: INITSTR=ATM0 | ||
- | |||
- | </ | ||
- | Interface number this port is bound (attached) to. This | ||
- | directive is mandatory. | ||
- | |||
- | </ | ||
- | Used only by SCC cards, because KISS TNC's make their own | ||
- | decisions about when to transmit, and XRouter has no control | ||
- | over that process. | ||
- | |||
- | If a non-zero INTERLOCK value is specified, no two ports with | ||
- | the same value will transmit at the same time. Default=0. | ||
- | |||
- | Example: INTERLOCK=4 | ||
- | |||
- | </ | ||
- | Port override for global IP address. If this is specified, | ||
- | it is used instead of the global IP address for all TCP/IP | ||
- | operations on this port. | ||
- | |||
- | Example: IPADDRESS=44.131.91.5 | ||
- | |||
- | </ | ||
- | IP address or hostname of AXIP or AXUDP link partner (AXIP | ||
- | and AXUDP ports only). | ||
- | |||
- | If the partner has a static IP address, it is more efficient | ||
- | to use the IP address here, otherwise it is necessary to use | ||
- | the hostname. | ||
- | |||
- | Examples: | ||
- | |||
- | IPLINK=62.51.67.21 | ||
- | IPLINK=gb7pzt.dyndns.org | ||
- | |||
- | </ | ||
- | Specifies the maximum number of frames XRouter will send to | ||
- | an AX25 partner before it must wait for an ack. The normal | ||
- | range is between 1 and 7, although maxframes of up to 127 | ||
- | are allowed on modulo-128 links. The default value of | ||
- | MAXFRAME is 3. | ||
- | |||
- | If you set a value between 8 and 63, XRouter attempts to use | ||
- | Modulo-128 (Extended AX25) on outgoing links. If the link | ||
- | partner is not capable of Modulo-128, the link will fall-back | ||
- | to normal AX25. | ||
- | |||
- | If the port PACLEN is set to 0, XRouter dynamicallys adapts | ||
- | MAXFRAME (and PACLEN) to the link conditions, to maximise | ||
- | throughput. | ||
- | |||
- | Example: MAXFRAME=4 | ||
- | |||
- | </ | ||
- | Specifies the maximum accepted hop count for new nodes table | ||
- | entries received via INP3 unicasts from neighbours on this | ||
- | port. Node information with hop counts that exceed this | ||
- | figure are not accepted into the nodes table. This parameter | ||
- | has no effect on data received via conventional NetRom nodes | ||
- | broadcasts. | ||
- | |||
- | MAXHOPS would typically be used to limit the "hop horizon" | ||
- | to a smaller value than the default horizon, which is 30. | ||
- | Like MAXTT, it can be used to limit the number of node | ||
- | entries that are accepted via a particular port or neighbour. | ||
- | |||
- | It can be overridden for individual routes using by | ||
- | " | ||
- | ROUTE ADD command in the XRNODES file or at the command | ||
- | prompt. Defaults to global MAXHOPS. | ||
- | |||
- | </ | ||
- | Specifies the maximum accepted "trip time" (transit time) | ||
- | for new nodes table entries received via INP3 unicasts from | ||
- | neighbours on this port. | ||
- | |||
- | Node information with trip times that exceed this figure are | ||
- | not accepted into the nodes table. This parameter has no | ||
- | effect on data received via conventional NetRom nodes | ||
- | broadcasts. | ||
- | |||
- | MAXTT would typically be used to limit the "trip time | ||
- | horizon" | ||
- | is 60000 (600 seconds). Like MAXHOPS, it can be used to limit | ||
- | the number of node entries that are accepted via a particular | ||
- | port or neighbour. | ||
- | |||
- | It can be overridden for individual routes using by " | ||
- | in" the route at the end of XROUTER.CFG, | ||
- | command in the XRNODES file or at the command prompt. | ||
- | Defaults to global MAXTT. | ||
- | |||
- | </ | ||
- | Enable/ | ||
- | specifies how many callsigns to maintain in the list. Set to | ||
- | 0 to disable MHEARD. Default is 15 calls. | ||
- | |||
- | Example: MHEARD=10 ; Mheard enabled, 10 calls | ||
- | |||
- | </ | ||
- | Controls which callsigns are recorded in the MHeard list, | ||
- | and defaults to 255 (record everything). The argument is the | ||
- | sum of the required options from this list: | ||
- | |||
- | 1 Show directly heard stations | ||
- | 2 Show directly heard digipeaters | ||
- | 4 Show digipeated stations | ||
- | |||
- | Example: MHFLAGS=1 ; show directly heard stations only | ||
- | |||
- | </ | ||
- | Minimum Net/rom quality to add to node table for nodes | ||
- | received via this port. Defaults to global MINQUAL. | ||
- | |||
- | Within nodes broadcasts received on that port, any node | ||
- | whose quality (after derating by port QUALITY) is less than | ||
- | the minqual will not be accepted into the nodes table. | ||
- | |||
- | If specified, this overrides the global minqual, and can be | ||
- | used to exclude unreachable and marginal nodes. | ||
- | |||
- | Example: MINQUAL=100 ; No nodes less than quality 100 | ||
- | |||
- | </ | ||
- | Minimum NetRom node quality to include in nodes broadcasts | ||
- | on this port. Range 0 to 255, Default is 0. This is used to | ||
- | limit the size of nodes broadcasts on ports which are low | ||
- | bandwidth, low quality, or where the neighbours have limited | ||
- | nodes table capacity. | ||
- | |||
- | Example: MINTXQUAL=100 ; Don't broadcast nodes with qual < | ||
- | |||
- | </ | ||
- | Subnet mask used with IPADDRESS to specify which IP addresses | ||
- | are on the same network segment, and can be reached directly. | ||
- | For more information see the NETMASK command page. | ||
- | |||
- | </ | ||
- | Interval, in minutes, between NetRom nodes broadcasts on | ||
- | this port only. Defaults to global NODESINTERVAL. | ||
- | |||
- | Whilst the Netrom network usually works on a 60 minute | ||
- | broadcast cycle, some types of software insist on a much | ||
- | smaller broadcast interval. | ||
- | |||
- | It would be harmful to the established network if sysops | ||
- | tried to accommodate these neighbours by setting the global | ||
- | NODESINTERVAL to a smaller value, but using this keyword on | ||
- | a per-port basis you can keep these neighbours happy without | ||
- | disrupting the rest of the Netrom network. | ||
- | |||
- | If you set NODESINTERVAL=0, | ||
- | broadcasts on this port, but will allow L3/L4 activity if | ||
- | QUALITY is non-zero. | ||
- | |||
- | Example: NODESINTERVAL=10 ; 10 minues between broadcasts | ||
- | |||
- | </ | ||
- | Specifies the maximum length of the information-bearing | ||
- | portion of ax25 packets transmitted on this port only. If | ||
- | not specified, it defaults to the global PACLEN. | ||
- | |||
- | All frames originating at XRouter use the global or port | ||
- | paclens specified, but Netrom frames originating at other | ||
- | systems can not be fragmented, so we have no control over | ||
- | them, and they may be larger than our paclen. | ||
- | |||
- | If the port PACLEN is set to 0, Xrouter dynamicallys adapts | ||
- | PACLEN (and MAXFRAME) to the link conditions, to maximise | ||
- | throughput. | ||
- | |||
- | Example: PACLEN=160 ; Allow 160 byte packets on this port | ||
- | |||
- | </ | ||
- | PERSIST is the AX25 " | ||
- | time slot (see SLOTTIME), used to minimise media contention. | ||
- | |||
- | Persist should be set to (255 / (no. of users on channel)), | ||
- | e.g. for a channel with an average of 10 users on at any one | ||
- | time you would set Persist to 25. Default is 64. | ||
- | |||
- | </ | ||
- | Creates a "frame pipe" to another port. This allows frames | ||
- | received (and optionally sent) on this port to be copied to | ||
- | another port, e.g. to allow a PMS on one port to see the | ||
- | traffic on another port. | ||
- | |||
- | Unless the " | ||
- | pipes are one way. In order to have two way traffic using a | ||
- | uni-directional pipe, you must set up a reverse pipe on the | ||
- | opposite port. | ||
- | |||
- | You may pipe several ports to a single destination port, but | ||
- | you can only have one *outgoing* pipe from any port. | ||
- | |||
- | Pipes are capable of generating an immense amount of traffic, | ||
- | so use them with care - your target port MUST be capable of | ||
- | handling the traffic load. | ||
- | |||
- | By default, pipes are not selective, i.e. they pass traffic | ||
- | from any source callsign to any destination callsign (with | ||
- | the exception of Budlisted callsigns). On a busy channel, | ||
- | this could result in lots of unnecessary traffic being piped. | ||
- | |||
- | Pipes can be made " | ||
- | callsign list, e.g. " | ||
- | loading on the target port, by piping only the frames with | ||
- | the specified calls in the destination field. | ||
- | |||
- | Pipes can also be made selective in terms of the types of | ||
- | traffic they pipe (AX25, NetRom etc). This is controlled by | ||
- | PIPEFLAG (see below). | ||
- | |||
- | Pipes can be made " | ||
- | PIPEFLAG value (see below: suggested value = 515). If a | ||
- | frame is piped on a bi-directional pipe, the source call is | ||
- | remembered so responses can be piped back to the sender. | ||
- | Thus a reverse pipe is not needed. | ||
- | |||
- | Bi-directional pipes are useful where a BBS uses XRouter as | ||
- | a " | ||
- | pipes from each user port to the BBS port, and set up the | ||
- | BCAST option so that the UI mail headers are broadcast on | ||
- | each user port. The BBS then allows direct connects and will | ||
- | respond to resync requests. | ||
- | |||
- | To disable piping, set PIPE=0 or just omit the command. | ||
- | |||
- | Example: PIPE=2 ; Pipe frames from this port to port 2 | ||
- | |||
- | </ | ||
- | PIPEFLAG is only used when piping is active, and controls | ||
- | which frames are piped. The default is 3. The argument is | ||
- | the sum of the required options as follows: | ||
- | |||
- | 1 - UI frames *not* addressed to nodecall/ | ||
- | 2 - Non-UI frames *not* addressed to nodecall/ | ||
- | 4 - UI frames addressed to nodecall/ | ||
- | 8 - Non-UI frames addressed to nodecall/ | ||
- | 16 - UI frames transmitted by XRouter. | ||
- | 32 - Non-UI frames transmitted by XRouter. | ||
- | 64 - Allow budlisted users to be piped. | ||
- | 128 - Netrom frames | ||
- | 256 - IP / ARP frames | ||
- | 512 - Bi-directional piping | ||
- | |||
- | Example: PIPEFLAG=5 ; Pipe received UI frames only | ||
- | |||
- | </ | ||
- | Port override for global PMSALIAS | ||
- | |||
- | </ | ||
- | Port override for global PMSCALL | ||
- | |||
- | </ | ||
- | Specifies an AX25 alias for this port, to be used in addition | ||
- | to the NODEALIAS. | ||
- | |||
- | Example: PORTALIAS=KDRMIN | ||
- | |||
- | </ | ||
- | Secondary alias for digipeating only. This callsign does not | ||
- | accept connections. | ||
- | |||
- | </ | ||
- | Specifies an AX25 callsign to use on this port, in addition | ||
- | to the NODECALL. | ||
- | |||
- | Example: PORTCALL=G8PZT-1 | ||
- | |||
- | </ | ||
- | Remote NetRom systems to whom we will tunnel AX25 L2 frames. | ||
- | (See PROXIES page for full explanation) | ||
- | |||
- | Example: PROXY=GB7PZT, | ||
- | |||
- | </ | ||
- | Default quality for nodes whose broadcasts are received on | ||
- | this port (default=10). Setting this to 0 disables all | ||
- | NetRom L3/4 activity on this port. | ||
- | |||
- | Example: QUALITY=30 | ||
- | |||
- | </ | ||
- | AX25 " | ||
- | to wait after receiving a frame, before sending an ack. This | ||
- | allows multi-frame transmissions to be acknowledged with a | ||
- | single ack, increasing link efficiency. | ||
- | |||
- | Resptime should be long enough for a link partner to transmit | ||
- | a full-sized information frame, i.e. approximately | ||
- | ((their_paclen * 10000) / RFbauds) millisecs, otherwise you | ||
- | will send unnecessary ack frames. | ||
- | |||
- | Too high a value will cause the link to be too " | ||
- | whereas too low a value will cause too many acks. Both | ||
- | extremes reduce the link efficiency. | ||
- | |||
- | 1500 (default) is OK for 1200 bauds with paclen=120, but | ||
- | 2200 would be more appropriate if their paclen was 256. At | ||
- | 9600 baud, or on AXUDP links, 200 millisecs is probably | ||
- | adequate. | ||
- | |||
- | Example: RESPTIME=2000 ; 2 seconds | ||
- | |||
- | </ | ||
- | AX25 maximum consecutive connect / disconnect / resend | ||
- | attempts (default = 10). | ||
- | |||
- | There is little point in setting retries more than 10, other | ||
- | than for test purposes. If you need so many retries it's a | ||
- | useless link and you're just wasting everyone else's airtime. | ||
- | The higher you set this value, the longer users will have to | ||
- | wait to get a " | ||
- | destination. | ||
- | |||
- | Example: RETRIES=5 | ||
- | |||
- | </ | ||
- | RF baud rate (default = 1200). | ||
- | |||
- | This parameter is used with " | ||
- | attached via RS232, because the RF baud rate is usually | ||
- | different to the RS232 baud rate. It simply helps XRouter | ||
- | make timing decisions (such as nodes broadcast inter-packet | ||
- | timing) and report certain stats correctly. | ||
- | |||
- | Example: RFBAUDS=2400 | ||
- | |||
- | </ | ||
- | Sesslimit specifies the maximum simultaneous connects each | ||
- | user is allowed on this port. Default is 255. This would | ||
- | typically be used to " | ||
- | on a port with too many connections. | ||
- | |||
- | Example: SESSLIMIT=5 | ||
- | |||
- | </ | ||
- | CSMA interval timer (millisecs), | ||
- | channel access decisions (default=100). | ||
- | |||
- | If the channel is clear, the TNC (or SCC/YAM card) generates | ||
- | a random number which is compared with the PERSIST value. If | ||
- | it is less than PERSIST, the TNC waits for the SLOTTIME | ||
- | interval, then repeat the action, otherwise it transmits | ||
- | immediately. | ||
- | |||
- | This improves throughput by ensuring that everyone doesn' | ||
- | transmit as soon as the channel is clear, which would cause | ||
- | collisions and retries. | ||
- | |||
- | Example: SLOTTIME=100 ; 100 millisecs per slot | ||
- | |||
- | </ | ||
- | Softdcd is used only by SCC cards and defaults to 0. | ||
- | |||
- | If SOFTDCD=1 the real dcd will be ignored, and the SCC | ||
- | driver uses the presence of HDLC data as a DCD indication. | ||
- | |||
- | Using SOFTDCD=1 with an open squelch generates a *huge* | ||
- | interrupt loading, which may cause degradation of | ||
- | performance, | ||
- | recommended. | ||
- | |||
- | Example: SOFTDCD=0 | ||
- | |||
- | </ | ||
- | If you set SYSOP=1, all users who connect on this port get | ||
- | full sysop status without needing to answer a password | ||
- | challenge. This is intended ONLY FOR USE ON SECURE LINKS, | ||
- | such as RS232 or Ethernet, and the default is zero. | ||
- | |||
- | </ | ||
- | Transmit keyup delay in milliseconds (default=300). | ||
- | |||
- | After keying the transmitter, | ||
- | waits for this interval before sending HDLC data. This allows | ||
- | the TX to stabilise and the partner' | ||
- | |||
- | Example: TXDELAY=500 | ||
- | |||
- | </ | ||
- | Port to transmit on (default = 0 = this port). | ||
- | |||
- | You would typically use this when several ports share a | ||
- | single transmitter, | ||
- | |||
- | Example: TXPORT=5 ; Transmit on port 5 | ||
- | |||
- | </ | ||
- | TX turn-off delay in milliseconds (default = 100). | ||
- | |||
- | This is the interval, after sending a frame, for which the | ||
- | transmitter remains active. It is intended to allow CRC and | ||
- | closing flags to be sent. It has no meaning on non-radio | ||
- | ports. | ||
- | |||
- | Due to PC timing inaccuracies, | ||
- | than 100 for SCC cards! | ||
- | |||
- | Example: TXTAIL=100 | ||
- | |||
- | </ | ||
- | The UDP port number for the local end of an AXUDP link. Used | ||
- | only by AXUDP ports. Default is 93. This number must match | ||
- | the link partner' | ||
- | number in the frames from him to you. | ||
- | |||
- | It is perfectly valid for all your ports to use the same | ||
- | UDPLOCAL. This reduces the number of " | ||
- | you need to make in your firewall. The *only* reason ever to | ||
- | change UDPLOCAL from the default is when you have more than | ||
- | one AXUDP node sharing the same public IP address. Your link | ||
- | partners have no right to dictate this value! | ||
- | |||
- | Example: UDPLOCAL=7388 | ||
- | |||
- | </ | ||
- | The UDP destination number in the AXUDP frames from you to | ||
- | your link partner. It must match the link partner' | ||
- | otherwise the link will not function. | ||
- | |||
- | If not specified, UDPREMOTE defaults to 93. It is only used | ||
- | on AXUDP ports. | ||
- | |||
- | You have no right to dictate this value to your link partner. | ||
- | It is THEIR choice only (see UDPLOCAL). | ||
- | |||
- | Example: UDPREMOTE=10093 | ||
- | |||
- | </ | ||
- | Destination callsign and optional digipeater string used for | ||
- | unproto broadcasts from applications on this port. Separate | ||
- | the callsigns with commas. | ||
- | |||
- | Example: UNPROTO=CQ, | ||
- | |||
- | </ | ||
- | Maximum no. of simultaneous users on this port. Default is | ||
- | 255 which means "no limit" | ||
- | |||
- | Example: USERS=9 | ||
- | |||
- | </ | ||
- | Validcalls allows AX25 frames only from the specified | ||
- | callsigns (opposite of EXCLUDE), and is typically used to | ||
- | prevent users from connecting to link-only ports. Callsigns | ||
- | must be separated by commas, with no spaces. | ||
- | |||
- | Example: VALIDCALLS=G6YAK, | ||
- | |||
- | </ | ||
- | PORTS(6) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | </ | ||
- | ---- | ||
- | =====RUNROOT.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | RUNROOT -- Running XRouter as Root?. | ||
- | |||
- | </ | ||
- | Running XRouter with super-user privileges is easier and | ||
- | more convenient than running it as an unprivileged user. But | ||
- | technically it is more of a security risk. | ||
- | |||
- | This page explores some of the pros and cons or running | ||
- | XRouter as a privileged user or not. It is a work in | ||
- | progress... | ||
- | |||
- | </ | ||
- | |||
- | Running As Root: | ||
- | ~~~~~~~~~~~~~~~~ | ||
- | |||
- | If XRouter is "run as root" (i.e. from a root account), it | ||
- | has full access to the file system and sensitive processes. | ||
- | This makes life easier if you need to tinker with the | ||
- | operating system' | ||
- | interface. | ||
- | |||
- | For example, imagine XRouter sitting on a remote hilltop as | ||
- | part of a Packet Radio network, but without Internet access. | ||
- | How would you set the time and date if it drifted? How would | ||
- | you make any changes to the PI's configuration, | ||
- | to site? There' | ||
- | VNC or SSH! | ||
- | |||
- | Answer: If you can " | ||
- | network, and verify yourself as a sysop, you can use the DOS | ||
- | and SHELL commands to do most system maintenance, | ||
- | the slowest link. You could upload new versions using NFTP, | ||
- | or iff the AX25 links support TCP/IP, you might even be able | ||
- | to use XRouter' | ||
- | |||
- | But if XRouter is not running as " | ||
- | able to set the time or date, and you would not have write | ||
- | access to " | ||
- | |||
- | The downside of running as root is that, in the unlikely | ||
- | event that a malicious actor cracks or guesses your password, | ||
- | he would have full access to the machine. | ||
- | |||
- | This means he could delete all your stuff, or lock you out | ||
- | and use the machine as an attack tool. | ||
- | |||
- | To get this into perspective however, XRouter has clocked up | ||
- | several years trouble-free service running as root, | ||
- | completely open to the Internet. Passwords are by far the | ||
- | weakest point, so make sure you use a strong one! | ||
- | |||
- | Running Unprivileged: | ||
- | ~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | This is slightly less convenient, in that you have to tinker | ||
- | with capabilities and give some thought to what access you | ||
- | need to various parts of the system. | ||
- | |||
- | But it is more secure. If someone cracked your password, they | ||
- | could only trash the XRouter part of your system. | ||
- | |||
- | If you run unprivileged, | ||
- | from the XRouter command line, and you cannot access | ||
- | privileged areas of the file system using FTP or the DOS | ||
- | emulator. | ||
- | |||
- | You are also prevented from creating an EXTERNAL interface or | ||
- | performing any TCP/IP operations involving the LAN or | ||
- | localhost, unless you set CAP_NET_RAW on the program, and | ||
- | from opening low-numbered server ports on the kernal stack | ||
- | unless you set CAP_NET_BIND_SERVICE [ see CAPFLAGS(9) ]. | ||
- | |||
- | </ | ||
- | Running As Root | ||
- | |||
- | - Everything just works. | ||
- | - Theoretically less secure. | ||
- | - Sysop can set time and date from XRouter command line. | ||
- | - PZTDOS has full access to file system | ||
- | - FTP server has full access to file system. | ||
- | |||
- | Running As User | ||
- | |||
- | - Theoretically more secure. | ||
- | - Can't access Ethernet/ | ||
- | - Can't open server ports below 1024 on kernal stack (*2). | ||
- | - Sysop cannot set time or date from within XRouter | ||
- | - PZTDOS can't write to privileged parts of file system. | ||
- | - FTP server can't write to privileged parts of file system. | ||
- | |||
- | (*1) Needs CAP_NET_RAW | ||
- | (*2) Needs CAP_NET_BIND_SERVICE | ||
- | |||
- | </ | ||
- | You can not use " | ||
- | sudo session has a time limit. XRouter will run, but after a | ||
- | while it will stop responding to the keyboard. And it may | ||
- | bork if you use the " | ||
- | |||
- | (It is possible to change the sudo timeout on some Linux | ||
- | distros) | ||
- | |||
- | </ | ||
- | CAPFLAGS(6) | ||
- | IP-STACKS(6) -- IP Stacks in XRouter. | ||
- | TCP-PORTS(6) -- TCP Server Ports. | ||
- | LAN(6) | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====TCP-IFACE.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | TCP-IFACE -- Interface type " | ||
- | |||
- | </ | ||
- | Interface type " | ||
- | on different machines, to be linked together using various | ||
- | protocols tunneled inside a TCP stream. | ||
- | |||
- | This works equally well for both " | ||
- | protocols. It can be used to connect to applications such | ||
- | a Direwolf, or to tunnel protocols through firewalls. | ||
- | |||
- | A TCP interface can be either a SERVER or a CLIENT. Unlike | ||
- | the AXTCP interface it cannot be both at the same time. The | ||
- | server passively listens for connections, | ||
- | actively makes connections. | ||
- | |||
- | A typical TCP client interface would be defined thus: | ||
- | |||
- | INTERFACE=16 | ||
- | TYPE=TCP | ||
- | ID=KISSTCP (Direwolf) | ||
- | PROTOCOL=KISS | ||
- | IOADDR=127.0.0.1 | ||
- | INTNUM=8001 | ||
- | MTU=1500 | ||
- | ENDINTERFACE | ||
- | |||
- | Note Some keywords are re-purposed to avoid creating new ones! | ||
- | |||
- | TYPE, PROTOCOL, IOADDR, INTNUM, COM and MTU are mandatory. | ||
- | |||
- | ID is an optional text which identifies the interface on | ||
- | | ||
- | |||
- | IOADDR is used differently in client and server cases: | ||
- | In the CLIENT case, it specifies the IP address of the | ||
- | | ||
- | on the same machine as XRouter. | ||
- | In the SERVER case it must be set to 0. | ||
- | |||
- | INTNUM is also used differently in client and server: | ||
- | In the CLIENT case, it specifies the TCP port of the | ||
- | | ||
- | In the SERVER case, it specifies the TCP port the | ||
- | | ||
- | |||
- | MTU specifies the " | ||
- | maximum payload size for a packet transmitted on the | ||
- | interface. The value depends on the protocol. | ||
- | |||
- | PROTOCOL is the protocol to use on the interface: | ||
- | |||
- | ASCII - Plain text | ||
- | AX25 - Plain AX25, no CRC | ||
- | ETHER - Ethernet | ||
- | HDLC - AX25 with CRC, but no HDLC flags | ||
- | IP - Plain IP | ||
- | KISS - Basically AX25 within SLIP | ||
- | NETROM | ||
- | PPP - Point to Point Protocol | ||
- | SLIP - Serial Line Internet Protocol | ||
- | TNC - TNC Control | ||
- | TNC2 - TNC2 Emulation. | ||
- | |||
- | (see PROTOCOL(7) for more detail) | ||
- | |||
- | A typical TCP server interface, running KISS over TCP would | ||
- | be defined thus: | ||
- | |||
- | INTERFACE=16 | ||
- | TYPE=TCP | ||
- | ID=KISSTCP Server | ||
- | PROTOCOL=KISS | ||
- | IOADDR=0.0.0.0 | ||
- | INTNUM=3276 | ||
- | MTU=1500 | ||
- | ENDINTERFACE | ||
- | |||
- | </ | ||
- | To avoid accidental recursion, this interface uses the Linux | ||
- | IP stack. Thus if the interface is a SERVER, and INTNUM is | ||
- | below 1024, XRouter will need CAP_NET_BIND_SERVICE capability, | ||
- | or will need to run from a " | ||
- | |||
- | </ | ||
- | IFACES(6) | ||
- | CAPFLAGS(6) | ||
- | KISS(9) | ||
- | PORTS(6) | ||
- | PPP(9) | ||
- | PROTOCOL(7) | ||
- | TNC2(9) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====TCP-PORTS.6.MAN===== | ||
- | < | ||
- | </ | ||
- | TCP-PORTS -- TCP Service Ports. | ||
- | |||
- | </ | ||
- | TCP " | ||
- | are standard or "well known" numbers between 0 and 65535 | ||
- | which are used in combination with an IP address to access a | ||
- | particular process (usually a server) on a system. | ||
- | |||
- | The default TCP service port numbers for XRouter' | ||
- | and the corresponding configuration keywords used in | ||
- | XROUTER.CFG are as follows: | ||
- | |||
- | Keyword | ||
- | -------------------------------------------- | ||
- | ECHOPORT | ||
- | DISCARDPORT | ||
- | FTPPORT | ||
- | TELNETPORT | ||
- | FINGERPORT | ||
- | HTTPPORT | ||
- | TTYLINKPORT | ||
- | RLOGINPORT | ||
- | SOCKSPORT | ||
- | APRSPORT | ||
- | MQTTPORT | ||
- | TELPROXYPORT | ||
- | CHATPORT | ||
- | AGWPORT | ||
- | RHPPORT | ||
- | |||
- | By default, all the above services are enabled, on all of | ||
- | XRouter' | ||
- | port overrides, allowing them to be used by TCP/IP over | ||
- | AX25, TCP/IP over SLIP/PPP etc.. | ||
- | |||
- | If you are *not* using the EXTERNAL interface to share the | ||
- | Ethernet or WiFi adaptors, the default case is that these | ||
- | services will also be available via the Linux kernal IP | ||
- | addresses. | ||
- | |||
- | If you *are* using the EXTERNAL interface to share the | ||
- | Ethernet or WiFi adaptors, these services will NOT be | ||
- | available via the Linux kernal IP addresses unless you | ||
- | explicitly say so (see below). | ||
- | |||
- | See LAN(9) for more information on using the EXTERNAL | ||
- | interface. | ||
- | |||
- | |||
- | Overriding Default TCP Service Ports | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | You may wish to disable services, or change their TCP port. | ||
- | |||
- | For instance, you may need to move the Telnet port if you | ||
- | have another process using TCP port 23 on the same machine. | ||
- | Or you may wish to disable the SOCKS server because you don't | ||
- | need it. | ||
- | |||
- | You may also choose to make some services available on | ||
- | XRouter' | ||
- | |||
- | To override the default, use one or more of the above | ||
- | configuration keywords in the GLOBAL section of XROUTER.CFG. | ||
- | |||
- | If you use the keyword without an argument, or with an | ||
- | argument of zero, that service is disabled, for example, the | ||
- | following formats disable the Telnet server on both XRouter | ||
- | and Linux IP stacks: | ||
- | |||
- | TELNETPORT= | ||
- | TELNETPORT=0 | ||
- | |||
- | If you use the keyword with a single argument, the result | ||
- | depends on whether you are using the EXTERNAL interface or | ||
- | not. | ||
- | |||
- | If you *are* using the EXTERNAL interface, the argument | ||
- | applies only to the XRouter stack. | ||
- | |||
- | If you are *not* using the EXTERNAL interface, the argument | ||
- | applies to BOTH stacks. | ||
- | |||
- | With those rules in mind, the following example moves the | ||
- | Telnet server from the default port (23), to port 88: | ||
- | |||
- | TELNETPORT=88 | ||
- | |||
- | If you supply TWO arguments, the first *always* applies to | ||
- | XRouter' | ||
- | stack. | ||
- | |||
- | You may supply different numbers for each stack, or disable | ||
- | one and not the other. | ||
- | whitespace, NOT commas. | ||
- | |||
- | For example, the following specifies that the TELNET server | ||
- | shall use TCP port 88 on XRouter' | ||
- | on the Linux stack: | ||
- | |||
- | TELNETPORT=88 89 | ||
- | |||
- | This one disables the Telnet server on XRouter' | ||
- | stack, whilst enabling it for port 88 on the Linux stack: | ||
- | |||
- | TELNETPORT=0 88 | ||
- | |||
- | Finally, this example enables the Telnet server on port 88 of | ||
- | XRouter' | ||
- | |||
- | TELNETPORT=88 0 | ||
- | |||
- | </ | ||
- | Unless you run XRouter with root privileges, or grant it the | ||
- | CAP_NET_BIND_SERVICE capability, you will NOT be able to open | ||
- | any port number less than 1024 on the Linux stack. | ||
- | |||
- | In such a case, a directive like this: | ||
- | |||
- | | ||
- | |||
- | will return an error like this: | ||
- | |||
- | Error 13 opening RLogin server port 513 | ||
- | |||
- | Moving the port above 1023, e.g. 7513 would solve the | ||
- | problem, so long as you can remember the port number! | ||
- | |||
- | If you want to use ports below 1024, and you don't want to | ||
- | run XRouter with root privileges, you can use setcap to set | ||
- | the CAP_NET_BIND_SERVICE capability as follows (assuming the | ||
- | xrouter executable is " | ||
- | |||
- | sudo setcap cap_net_bind_service=pe xrpi | ||
- | |||
- | This will overwrite any previous capability set on that file, | ||
- | so if you are using the EXTERNAL interface, you need to set | ||
- | the CAP_NET_RAW capability at the same time, as follows: | ||
- | |||
- | sudo setcap cap_net_raw, | ||
- | |||
- | Another option is to use rinetd to redirect connections to a | ||
- | higher port number. For instance the following line in | ||
- | rinetd' | ||
- | |||
- | 192.168.0.10 | ||
- | |||
- | would forward connections for port 513 on address | ||
- | 192.168.0.10 to localhost port 8000 which XRouter can listen | ||
- | on even without root privileges. | ||
- | |||
- | Finally, you could simply disable the port on the Linux | ||
- | stack, for example: | ||
- | |||
- | TELNETPORT=23 0 | ||
- | |||
- | </ | ||
- | CAPFLAGS(6) | ||
- | IP-STACKS(6) | ||
- | LAN(6) | ||
- | RUNROOT(6) | ||
- | SERVERS(9) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====TUN-IFACE.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | TUN-IFACE -- Tunnel Interface. | ||
- | |||
- | </ | ||
- | The Linux " | ||
- | communication between user-space programs such as XRouter, | ||
- | and the Linux kernal IP stack. | ||
- | |||
- | It is a purely software interface; there is no hardware | ||
- | involved. | ||
- | |||
- | Tunnels may be " | ||
- | |||
- | A transient tunnel is one that is created, used and destroyed | ||
- | by the same program. It ceases to exist when the program | ||
- | closes. | ||
- | |||
- | A persistent tunnel is one that is created from the Linux | ||
- | command line using a command such as this: | ||
- | |||
- | "ip tuntap add mode tun dev tun7". | ||
- | |||
- | Programs can attach to, and detach from, a persistent tunnel | ||
- | at will. The tunnel is not destroyed when the user-space | ||
- | program closes. | ||
- | |||
- | XRouter can use either type of tunnel. | ||
- | |||
- | Tunnels may only be created or modified by root users, or | ||
- | those with CAP_NET_ADMIN capability. | ||
- | |||
- | |||
- | Usage Cases: | ||
- | ============ | ||
- | |||
- | In most cases, XRouter communicates with the outside world | ||
- | either via the Linux TCP/IP stack, via its own TCP/IP stack, | ||
- | or via serial RS232 interfaces. | ||
- | |||
- | It can also be set up to allow PING, TELNET, FTP, HTTP etc | ||
- | from Linux to XRouter, and to access Linux services from | ||
- | XRouter. But those interactions are done at a layer ABOVE the | ||
- | network layer. There is normally no IP-layer communication | ||
- | between XRouter and the Linux TCP/IP stack. I.e. you can't | ||
- | normally send an IP datagram from XRouter to Linux or vice | ||
- | versa. | ||
- | |||
- | (Note: It is possible for XR32 to do this on Windows when | ||
- | using the NDIS driver to share the Ethernet NIC. But Linux | ||
- | appears to ignore XRouter' | ||
- | a shared NIC because the source and destination hardware | ||
- | addresses are the same. Maybe there' | ||
- | |||
- | Because of the above, direct IP routing between XRouter and | ||
- | other programs on the same Linux machine is not possible. | ||
- | |||
- | Usually this can be circumvented using AXIP, AXUDP or IPUDP | ||
- | via the Linux localhost address space. But some programs, | ||
- | e.g. JNOS, don't seem able to access that space. | ||
- | |||
- | Another alternative would be to use SLIP, but that | ||
- | functionality has been withdrawn from Linux and JNOS. | ||
- | |||
- | This is where an IP tunnel can be used. | ||
- | |||
- | </ | ||
- | Configuring a Tunnel Interface on XRouter: | ||
- | ====================================== | ||
- | |||
- | Using a Persistent Tunnel | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | Let's say the tunnel' | ||
- | " | ||
- | former is the IP address of the Linux end, and the latter is | ||
- | the XRouter end. | ||
- | |||
- | In XROUTER.CFG, | ||
- | COM=tun99 like this: | ||
- | |||
- | INTERFACE=1 | ||
- | ID=Tunnel to Linux | ||
- | TYPE=TUN | ||
- | COM=tun99 | ||
- | PROTOCOL=IP | ||
- | MTU=1500 | ||
- | ENDINTERFACE | ||
- | |||
- | Then attach a single port to that interface, with an IP | ||
- | address that matches the *destination* address of the tunnel. | ||
- | (If the addresses don't match, XRouter will not receive | ||
- | frames!). | ||
- | |||
- | PORT=3 | ||
- | ID=" | ||
- | INTERFACENUM=1 | ||
- | ipaddress=192.168.0.99 | ||
- | ENDPORT | ||
- | |||
- | Finally, add some routing to IPROUTE.SYS, | ||
- | where to send IP datagrams. For example: | ||
- | |||
- | IP ROUTE ADD 192.168.0.0/ | ||
- | |||
- | That routes all of 192.168.x.x to the gateway 192.168.0.100, | ||
- | whch is at the " | ||
- | of view. | ||
- | |||
- | |||
- | Using a transient tunnel: | ||
- | ~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
- | |||
- | In this case the tunnel is created and named by XRouter, and | ||
- | lasts only until XRouter is closed. | ||
- | |||
- | The XRouter interface and port are defined in the same way as | ||
- | for the persistent tunnel, but a few variations are possible. | ||
- | |||
- | In all cases, the IP address for the " | ||
- | the tunnel is specified by IPADDRESS in the PORT block, and | ||
- | you will needs to set up a suitable route in IPROUTE.SYS. | ||
- | |||
- | a) Simple Method | ||
- | |||
- | If you add IOADDR keyword to the INTERFACE block (see below), | ||
- | it specifies the IP address at the *far* (Linux) end of the | ||
- | tunnel. XRouter will create the tunnel and set both addresses: | ||
- | |||
- | INTERFACE=3 | ||
- | ID=Tunnel to Linux | ||
- | TYPE=TUN | ||
- | COM=tun99 | ||
- | PROTOCOL=IP | ||
- | IOADDR=192.168.0.98 <--- Add this line | ||
- | MTU=1500 | ||
- | ENDINTERFACE | ||
- | |||
- | |||
- | b) Manual Method | ||
- | |||
- | If you OMIT the IOADDR keyword, you are responsible for | ||
- | setting up the addresses at BOTH ends of the tunnel, and for | ||
- | bringing it " | ||
- | |||
- | You can do this manually, by typing commands into a Linux | ||
- | terminal after XRouter has started, or you can put " | ||
- | commands in BOOTCMDS.SYS like this: | ||
- | |||
- | # Assign the address 192.168.0.98 to the Linux end of tun99: | ||
- | shell ip address add 192.168.0.98 dev tun99 | ||
- | ; | ||
- | # Wait 300 millisecs for Linux to execute the command | ||
- | wait 300 | ||
- | # | ||
- | # Tell Linux that 192.168.0.99 is on the other end of tun99: | ||
- | shell ifconfig tun99 dstaddr 192.168.0.99 | ||
- | # | ||
- | wait 300 | ||
- | # | ||
- | # Bring up the Linux end of the interface: | ||
- | shell ip link set dev tun99 up | ||
- | # | ||
- | |||
- | There are many ways in Linux of achieving the same results, | ||
- | for instance (all on one line): | ||
- | |||
- | ifconfig tun99 192.168.0.98 pointopoint 192.168.0.99 | ||
- | mtu 1500 up | ||
- | |||
- | </ | ||
- | IFACES(6) | ||
- | CAPFLAGS(6) | ||
- | PORTS(6) | ||
- | BOOTCMDS.SYS(8) -- Boot-time commands | ||
- | XROUTER.CFG(8) | ||
- | |||
- | </ | ||
- | ---- | ||
- | =====UDP-IFACE.6.MAN===== | ||
- | < | ||
- | |||
- | </ | ||
- | UDP-IFACE -- Interface type " | ||
- | |||
- | </ | ||
- | Interface type " | ||
- | on different machines, to be linked together using various | ||
- | protocols tunneled inside UDP datagrams. | ||
- | |||
- | Whilst intended for " | ||
- | found to work satisfactorily with " | ||
- | least on the same machine. | ||
- | |||
- | A typical UDP interface would be defined thus: | ||
- | |||
- | INTERFACE=17 | ||
- | TYPE=UDP | ||
- | ID=KISS over UDP | ||
- | PROTOCOL=KISS | ||
- | IOADDR=127.0.0.1 | ||
- | INTNUM=9701 | ||
- | COM=9702 | ||
- | MTU=256 | ||
- | ENDINTERFACE | ||
- | |||
- | Note Some keywords are re-purposed to avoid creating new ones! | ||
- | |||
- | TYPE, PROTOCOL, IOADDR, INTNUM, COM and MTU are mandatory. | ||
- | |||
- | ID is an optional text which identifies the interface on | ||
- | | ||
- | |||
- | IOADDR specifies the IP address of the target system, i.e. | ||
- | the other end of the link. Use 127.0.0.1 if the target | ||
- | is on the same machine as XRouter. | ||
- | |||
- | COM specifies the UDP port the target system listens on. | ||
- | |||
- | INTNUM specifies the UDP port that XRouter is listening on. | ||
- | If both systems are on the same machine, COM and | ||
- | | ||
- | |||
- | MTU specifies the " | ||
- | maximum payload size for a packet transmitted on the | ||
- | interface. The value depends on the protocol. | ||
- | |||
- | PROTOCOL is the protocol to use on the interface: | ||
- | |||
- | ASCII - Plain text | ||
- | AX25 - Plain AX25, no CRC | ||
- | ETHER - Ethernet | ||
- | HDLC - AX25 with CRC, but no HDLC flags | ||
- | IP - Plain IP | ||
- | KISS - Basically AX25 within SLIP | ||
- | NETROM | ||
- | PPP - Point to Point Protocol | ||
- | SLIP - Serial Line Internet Protocol | ||
- | TNC - TNC Control | ||
- | TNC2 - TNC2 Emulation. | ||
- | |||
- | (see PROTOCOL(7) for more detail) | ||
- | </ | ||
- | This interface uses the Linux IP stack, so if INTNUM is below | ||
- | 1024, XRouter will need CAP_NET_BIND_SERVICE capability, or | ||
- | will need to run from a " | ||
- | |||
- | </ | ||
- | IFACES(6) | ||
- | CAPFLAGS(6) | ||
- | KISS(9) | ||
- | PORTS(6) | ||
- | PPP(9) | ||
- | PROTOCOL(7) | ||
- | TNC2(9) | ||
- | XROUTER.CFG(8) -- Main Configuration File. | ||
- | |||
- | </ | ||
- | ---- |
packet/xrpi/manpages/section6.1745063597.txt.gz · Last modified: 2025/04/19 11:53 by m0mzf