initial commit
This commit is contained in:
64
mint/1-19-c02/doc/inet4/BUGS
Normal file
64
mint/1-19-c02/doc/inet4/BUGS
Normal file
@@ -0,0 +1,64 @@
|
||||
These are strictly speaking no bugs, but unimplemented features or
|
||||
BSD incompatibilities:
|
||||
|
||||
|
||||
Transmission Control Protocol:
|
||||
------------------------------
|
||||
|
||||
- MSS fixed at 536 bytes currently. May use larger values on directly
|
||||
connected networks. DONE.
|
||||
|
||||
- Selecting for exceptional conditions (ie waiting for urgent data)
|
||||
does not work. This needs work on the kernel. WORKS with TeSches
|
||||
patches applied.
|
||||
|
||||
- A process is only notified of urgent data arrival via SIGURG when
|
||||
he does a read(), write() or select(). FIXED. Signalling is now done
|
||||
asynchronously using a separate process.
|
||||
|
||||
- There is currently no round trip time estimation done for calculating
|
||||
the retransmission timeout. DONE.
|
||||
|
||||
- No "Nagle-Algorithm" implemented.
|
||||
|
||||
- No congestion avoidance. DONE.
|
||||
|
||||
- No slow start implemented. DONE.
|
||||
|
||||
- No delayed acks.
|
||||
|
||||
- The following is really a bug in BSD. Here are the BSD out-of-band semantics:
|
||||
Lets say you write 5 bytes of out of band data using the MSG_OOB
|
||||
flag with send().
|
||||
Then the receiver will only be able to receive the urgent data if he
|
||||
has no other unread urgent data pending. If he has no urgent data
|
||||
pending he can receive the last byte of the urgent data using recv()
|
||||
with MSG_OOB.
|
||||
The other 4 bytes are received as normal data. The "mark" (you can
|
||||
query the system if you have received all data up until the mark
|
||||
using the SIOCATMARK ioctl) is placed behind these 4 bytes.
|
||||
|
||||
Here are the MintNet semantics of out of band handling.
|
||||
You can write as much urgent data as you want.
|
||||
The receiver can read *all* the urgent data using recv() with the
|
||||
MSG_OOB flag.
|
||||
The "mark" is placed *before* the urgent data byte with the lowest
|
||||
sequence number.
|
||||
If there are several chunks of urgent data waiting to be read, the
|
||||
"mark" moves from the first to the next one when you read data after
|
||||
the current position of the mark.
|
||||
You can partially emulate the BSD semantics by placing the socket
|
||||
into "out-of-band-data-inline" mode using the SO_OOBINLINE socket
|
||||
option. You can then read urgent data using MSG_OOB or the normal
|
||||
read().
|
||||
|
||||
User Datagram Protocol:
|
||||
-----------------------
|
||||
|
||||
- recv/recvfrom return the amount of data copied -- not the size of
|
||||
the datagram as BSD does with MSG_PEEK.
|
||||
|
||||
Internet Control Message Protocol:
|
||||
----------------------------------
|
||||
|
||||
- Most message types not implemented.
|
||||
36
mint/1-19-c02/doc/inet4/COPYING
Normal file
36
mint/1-19-c02/doc/inet4/COPYING
Normal file
@@ -0,0 +1,36 @@
|
||||
All files in this archive are Copyright (c) 1993-95 Kay Roemer.
|
||||
Exceptions are explicitely stated.
|
||||
|
||||
I cannot take over any responsibility for any files in this distribution.
|
||||
Therefore the following disclaimer:
|
||||
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTOR BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
You are welcome to use, copy, distribute and modify the source code
|
||||
included in this package for noncommercial purposes as long as the
|
||||
following conditions are met:
|
||||
|
||||
o All the files are kept in the distribution.
|
||||
|
||||
o Any modifications on files in the distribution are clearly
|
||||
marked as such, including a statement that the original author
|
||||
is not responsible for your modifications and possible damage
|
||||
resulting in your modifications.
|
||||
|
||||
o You may not sell this package or parts of it for more than
|
||||
double the cost of copying the files onto media, including
|
||||
the cost of the media, excluding local taxes.
|
||||
|
||||
Usage of MintNet or parts of it as part of commercial products requires a
|
||||
written licence from Kay Roemer.
|
||||
|
||||
You have agreed with the above conditions when holding copies of the
|
||||
distribution in your posession.
|
||||
324
mint/1-19-c02/doc/inet4/README
Normal file
324
mint/1-19-c02/doc/inet4/README
Normal file
@@ -0,0 +1,324 @@
|
||||
|
||||
MintNet alpha release README
|
||||
----------------------------
|
||||
|
||||
Contents:
|
||||
|
||||
0. Disclaimer
|
||||
1. What is MintNet?
|
||||
2. Things needed to run MintNet
|
||||
3. Things needed to recompile MintNet
|
||||
4. Recompiling MintNet
|
||||
5. How to install
|
||||
6. Network programming
|
||||
7. BSD Unix (in)compatibilities
|
||||
8. If you have found a bug
|
||||
|
||||
|
||||
|
||||
0. Disclaimer
|
||||
-------------
|
||||
|
||||
This package should be regarded as experimental. It is quite possible
|
||||
that it contains bugs that may do the weirdest things to your hard drive
|
||||
although I believe it is quite stable now. Anyway, make regular backups!
|
||||
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTOR BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
|
||||
1. What is MintNet?
|
||||
-------------------
|
||||
|
||||
MintNet is a networking extension for Atari computers running Mint.
|
||||
|
||||
It currently implements the suite of networking protocols referred to as
|
||||
'TCP/IP' and a local interprocess communication mechanism known as 'unix
|
||||
sockets' that is in principle similar to named pipes. MintNet is prepared
|
||||
for adding further networking protocol stacks (like Novells IPX/SPX or
|
||||
Appletalk for instance).
|
||||
|
||||
Thus you can use MintNet to intergrate your Atari into a networked environ-
|
||||
ment that consists of systems supporting TCP/IP (as the Internet).
|
||||
|
||||
MintNet consists of four major parts, a loadable device driver for Mint
|
||||
(sockdev.xdd), several loadable packet drivers (eg. slip.xif), a library
|
||||
(socket.olb) and some tool programs (in the tool/ subdirectory) to setup
|
||||
and manage MintNet.
|
||||
|
||||
The device driver links to the Mint Kernel when loaded and installs the
|
||||
device u:/dev/socket through which the services provided by MintNet can
|
||||
be accessed.
|
||||
|
||||
The libary provides you with the usual BSD socket API functionality using
|
||||
the services of u:/dev/socket. That means porting Unix software to MintNet
|
||||
using this libary is really easy. In fact many important packages like ftp,
|
||||
telnet, ... are ported to MintNet using this library.
|
||||
|
||||
The packet drivers are responsible for sending and receiving datagrams over
|
||||
some type of hardware, for instance slip.xif is responsible for sending
|
||||
datagrams over serial lines using the SLIP or PPP protocol. For every type
|
||||
of communication hardware such a packet driver is needed. sockdev.xdd calls
|
||||
the proper packet driver for sending and receiving datagrams and does not
|
||||
contain communication hardware specific code.
|
||||
|
||||
Packet drivers are currently available for SLIP, PPP, PLIP, Ethernet and
|
||||
loopback.
|
||||
|
||||
Please contact me if you want to write Ethernet hardware drivers or have
|
||||
hardware that is worth to write a driver for.
|
||||
|
||||
|
||||
|
||||
2. Things needed to run MintNet
|
||||
-------------------------------
|
||||
|
||||
There are some (in fact a lot) things needed to get MintNet running:
|
||||
|
||||
1) An up to date Mint version. Preferably Mint 1.12, MH-Mint 1.12hX or
|
||||
newer. A megapatched Mint 1.11h9 will probably work too. This is because
|
||||
the MintNet device driver needs some features of the Mint Kernel that have
|
||||
been added recently.
|
||||
Mint binaries, sources and documentation is available via anonymous FTP
|
||||
from ftp.uni-muenster.de:/pub/atari/Mint/Kernel.
|
||||
|
||||
2) Until there are no easy to use installer program and window system based
|
||||
applications for MintNet you need some experience with cli's and a Unix-like
|
||||
setup. That is *not* because MintNet itself needs this, but (un)fortunately
|
||||
all the currently available applications using MintNet are ports of Unix
|
||||
programs and they need a basic Unix setup to work.
|
||||
|
||||
3) Some networking applications for MintNet. A good starting set is inetd,
|
||||
ping, telnet, ftp, pppd (if you want to use PPP), dip (if you want to use
|
||||
SLIP).
|
||||
These programs are not part of this package. They can be found for instance
|
||||
at ftp.uni-muenster.de:/pub/atari/Mint/Network.
|
||||
|
||||
4) Most of those Networking applications require you to run syslogd, a program
|
||||
that logs system messages to files or the console. If you want to run telnet
|
||||
or rlogin *servers* on your host you need the login program, too.
|
||||
Both programs are part of the MintOS 1.4.1 package which is available via
|
||||
anonymous ftp from earth.ox.ac.uk:/pub/mintos.
|
||||
|
||||
For the unexperienced KGMD (Knarfs German Mint Distribution) is a good
|
||||
starting point. It provides you with a ready to go MintNet environment.
|
||||
KGMD 1.0 can be found at ftp.phil.uni-sb.de:/pub/atari/mint/KGMD-1.0/.
|
||||
|
||||
Another package that contains a basic Mint setup is the Mint distribution kit
|
||||
MDK (which is a bit outdated), available from phlem.ph.kcl.ac.uk.
|
||||
|
||||
|
||||
|
||||
3. Things needed for compiling
|
||||
------------------------------
|
||||
|
||||
This package contains already compiled versions of the libraries and the
|
||||
socket device driver for people who are not willing or able to compile
|
||||
the stuff. If you are one of them you can ignore the following instructions
|
||||
about compiling and use the precompiled binaries instead.
|
||||
|
||||
1) tar and gzip to unpack the archive (bit silly this one since you are
|
||||
reading this file).
|
||||
|
||||
2) gcc, preferably 2.3.3 or >= 2.5.8, since versions inbetween those have
|
||||
been reported to be buggy.
|
||||
|
||||
3) gmake, preferably 3.6x or later.
|
||||
|
||||
4) binutils PL >= 30.
|
||||
|
||||
5) MiNTLibs PL >= 41, because as of PL 41 they support the socket library
|
||||
in errno.h and strerror(). If you don't mind getting messages like 'unknown
|
||||
error' from perror(), you can use earlier versions too.
|
||||
|
||||
6) Minixfs or something similar that supports long filenames. This is not
|
||||
absolutely neccessary, but there are some filenames that do not fit into
|
||||
the 8+3 filename scheme.
|
||||
|
||||
|
||||
|
||||
4. Rebuilding the library and device driver
|
||||
-------------------------------------------
|
||||
|
||||
Edit MakeVars to reflect your setup.
|
||||
|
||||
It is easiest to rebuild the whole package by typing
|
||||
1) make clean
|
||||
2) make depend
|
||||
3) make all
|
||||
into the top level directory. This will rebuild the socket device driver
|
||||
and all the libraries as necessary. 1) deletes all .o files from previous
|
||||
compilations. 2) generates the dependency-files that tell make which files
|
||||
need to be rebuilt when changing one particular file.
|
||||
|
||||
Of cource you can 'cd' to one particular subdirectory and remake only parts
|
||||
of the package. Please have a look at the Makefiles.
|
||||
|
||||
You should get the following binaries out of the above steps:
|
||||
|
||||
lib/socket.olb -- 32 bit socket library.
|
||||
lib/socket16.olb -- 16 bit socket library.
|
||||
lib/bsocket.olb -- 32 bit -mbaserel socket library.
|
||||
lib/bsocket16.olb -- 16 bit -mbaserel socket library.
|
||||
|
||||
net/sockdev.xdd -- socket device driver.
|
||||
|
||||
net/drivers/plip.xif -- PLIP packet driver
|
||||
net/drivers/slip.xif -- combined SLIP/PPP packet driver
|
||||
net/drivers/dummy.xif -- dummy (lookpback) ethernet driver
|
||||
net/drivers/de600.xif -- driver for de600 adapter connected to ROM port
|
||||
net/drivers/riebl*.xif -- drivers for RIEBL card
|
||||
net/drivers/pamsdma.xif -- driver PAM's external DMA adaptor
|
||||
net/drivers/lance.xif -- driver for PAM's internal card
|
||||
net/drivers/biodma.xif -- driver for BIODATA's external DMA adaptor
|
||||
|
||||
tool/netstat -- netstat utility, show active connections.
|
||||
tool/route -- route utility, change/show routing table.
|
||||
tool/ifconfig -- ifconfig utility, change/show interface config.
|
||||
tool/slattach -- slattach utility, attach SLIP interface.
|
||||
tool/iflink -- iflink utility, link Mint device to interface.
|
||||
tool/arp -- arp utility, change/show ARP table.
|
||||
tool/ifstats -- ifstats utility, show interface statistics.
|
||||
|
||||
|
||||
|
||||
5. Installing the libraries and the device driver
|
||||
-------------------------------------------------
|
||||
|
||||
Run the shell script install.sh in the MintNet top level directory:
|
||||
|
||||
# ./install.sh
|
||||
|
||||
You will be asked for your networking parameters like hostname, domainname,
|
||||
IP address and what connections to directly connected hosts you wish to
|
||||
establish. From your answers the script will generate basic config files, that
|
||||
enable you to use MintNet after reboot.
|
||||
|
||||
Now you may want to "hand tune" the configuration files a bit. They are
|
||||
hold in /etc. The most important are
|
||||
|
||||
* /etc/resolv.conf (host name resolver config. Read man/cat5/resolver.5)
|
||||
* /etc/host.conf (more host name resolver config. Read man/cat8/resolv+.8)
|
||||
* /etc/hosts (host name database)
|
||||
* /etc/hostname (your hostname)
|
||||
* /etc/domainname (your domainname)
|
||||
* /etc/rc.net (MintNet startup shell script, *must* be executed after reboot,
|
||||
from /etc/rc or mint.cnf)
|
||||
|
||||
The basic MintNet utilities are described by manual pages in man/cat8/.
|
||||
Read route.8, ifconfig.8, netstat.8!
|
||||
|
||||
The script install.sh is intended for first installation only. If you have
|
||||
already a working MintNet installation and only want to update the binaries
|
||||
to a newer version, then type 'make install' into the toplevel MintNet
|
||||
directory. Change to the 'man' directory and type 'make install' to install
|
||||
the manuals.
|
||||
|
||||
|
||||
|
||||
6. Getting information about socket and network programming
|
||||
-----------------------------------------------------------
|
||||
|
||||
Because MintNet providedes you with a BSD socket compatible API (with some
|
||||
extensions and omissions) through the socket.olb library, any literature on
|
||||
Unix networking would help alot.
|
||||
|
||||
You can obtain information about using the facilities provided by this package
|
||||
by having a look at the manual pages in the man subdirectory. You could also
|
||||
get the texinfo manual from the GNU-C library or a good book, like
|
||||
|
||||
- Comer, Stevens: `Internetworking with TCP/IP I-III' (for learning)
|
||||
|
||||
- Richard W. Stevens: `Unix Network Programming'
|
||||
|
||||
- Andrew S. Tannenbaum: `Computer Networks'
|
||||
|
||||
- Leffler, McKusick, Karels, Quaterman: `4.3 BSD Unix -- Design and
|
||||
Implementation' (for insiders)
|
||||
|
||||
- Santifaller: `TCP/IP und NFS in Theorie und Praxis' (an introduction)
|
||||
|
||||
- Loosemore, McGrath, Oram, Stallman: `The GNU C Library Reference Manual'
|
||||
(for reference)
|
||||
|
||||
- RFCs 786(UDP), 790(assigned numbers), 791(IP), 792(ICMP), 793(TCP),
|
||||
1055(SLIP), 1122(Host Requirements), 1331(PPP), 1144(VJ compression),
|
||||
894,1042(IP over 802.x), 826(ARP), 903(RARP) (for protcol specifications)
|
||||
|
||||
|
||||
|
||||
7. BSD Unix (in)compatibility
|
||||
-----------------------------
|
||||
|
||||
Here are some notes on incompatibilities to the BSD Unix programming interface
|
||||
for the ones familiar with it.
|
||||
|
||||
- The socket ioctl's are currently not in the Mint Library. Use the file
|
||||
sockios.h from the include dir instead or get my portlib.
|
||||
|
||||
- Most IP options are not processed like they should.
|
||||
|
||||
- Very few (only the most important from my point of view) ICMP message
|
||||
types are implemented.
|
||||
|
||||
- Currently sendmsg() and recvmsg() on AF_UNIX sockets do not support sending
|
||||
and receiving of access rights. (ie file handles).
|
||||
|
||||
- There are lots of new error codes, like ENOTCONN, ... To get meaningful
|
||||
messages from perror() and strerror() and for support of the new errorcodes
|
||||
you will need the MiNTLibs patchlevel >= 41.
|
||||
|
||||
- On AF_UNIX stream sockets you can set the send buffer size with the
|
||||
setsockopt() call only if the socket is connected. For AF_UNIX dgram
|
||||
sockets you can't at all set the send buffer size, only receive buffer size.
|
||||
|
||||
- stat(), fstat() on sockets and AF_UNIX socket files return for the file
|
||||
type S_IFCHR and S_IFREG, respectively (not S_IFSOCK).
|
||||
|
||||
- select()ing for writing on dgram sockets will always report that writing
|
||||
will not block, even if the desriptor is NOT ready for writing.
|
||||
|
||||
- The FIONREAD ioctl() call on AF_UNIX/AF_INET dgram sockets returns the
|
||||
size of the next datagram or zero if none is available.
|
||||
The FIONWRITE ioctl() call on AF_UNIX dgram sockets returns an infinite
|
||||
number bytes if you did not specify a destination address for the socket
|
||||
using connect().
|
||||
FIONWRITE on UDP sockets returns always `infinity'.
|
||||
|
||||
- Sending and receiving of more than one TCP urgent data byte is supported.
|
||||
Unfortunately this causes some incompatibilities. Read the file net/inet/BUGS
|
||||
to learn the differences.
|
||||
|
||||
|
||||
|
||||
8. If you have found a bug
|
||||
--------------------------
|
||||
|
||||
In case you find a bug or incompatibility in MintNet or want me to implement
|
||||
some feature you need then don't hesitate to contact me at the below given
|
||||
Email address.
|
||||
|
||||
If you report a bug I need a detailed description of your setup, of the
|
||||
symptoms and the circumstances that caused the bug to appear and if possible
|
||||
a small peace of code that reproduces the bug.
|
||||
|
||||
Keep in mind that I can't do anything to solve problems described by messages
|
||||
like 'MintNet does not work! What shall I do?'
|
||||
|
||||
Please report bugs only to me (Torsten Lang) since Kay Roemer does not maintain
|
||||
the package any more. Thanks.
|
||||
|
||||
Have fun with MintNet,
|
||||
--
|
||||
Kay Roemer roemer@informatik.uni-frankfurt.de
|
||||
http://www.uni-frankfurt.de/~roemer/
|
||||
--
|
||||
Torsten Lang Torsten@Lang.net
|
||||
10
mint/1-19-c02/doc/inet4/README.1ST
Normal file
10
mint/1-19-c02/doc/inet4/README.1ST
Normal file
@@ -0,0 +1,10 @@
|
||||
!!! IMPORTANT !!!
|
||||
|
||||
MintNet now needs Mint 1.11h9 or newer to run. I don't consider this a
|
||||
problem, because Mint 1.12 and later versions are available in binary form.
|
||||
|
||||
If you intend to use MintNet in a SingleTOS+Mint environment, you must copy
|
||||
nohog.acc to the root of your boot drive. This accessory keeps AES from
|
||||
staying all the time in supervisor mode (thus preventing Mint from switching
|
||||
contexts and MintNet from working). nohog.acc is taken from the MinixFS
|
||||
distribution and is written by Stephen N. Henson.
|
||||
151
mint/1-19-c02/doc/inet4/README.mas
Normal file
151
mint/1-19-c02/doc/inet4/README.mas
Normal file
@@ -0,0 +1,151 @@
|
||||
README FILE FOR IP MASQUERADING
|
||||
|
||||
The IP masquerading support was implemented by Mario Becroft in May 1999 and
|
||||
is placed in the public domain.
|
||||
|
||||
|
||||
The following files changed from the standard net-1.03 distribution:
|
||||
|
||||
tool/Makefile
|
||||
net/inet/Makefile
|
||||
net/inet/ip.c
|
||||
net/inet/ip.h
|
||||
net/inet/tcp.c
|
||||
net/inet/inet.c
|
||||
|
||||
|
||||
The following files were added to the standard net-1.03 distribution:
|
||||
|
||||
include/masquerade.h
|
||||
include/masqextern.h
|
||||
tool/masqconf.c
|
||||
net/inet/masqdev.c
|
||||
net/inet/masquerade.c
|
||||
README.masquerade
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
I implemented IP masquerading for MiNTnet, as well as a quick fix for the "land"
|
||||
bug which would freeze mintnet.
|
||||
|
||||
I am sure that my implementation is not optimal and contains many bugs, because
|
||||
this is the first low-level network programming I have ever done and I am not
|
||||
very familiar with it. When even experienced programmers get bugs in their code,
|
||||
you can only begin to imagine the kind of errors I am likely to make.
|
||||
|
||||
Nevertheless it does seem to work, so I must have done something right.
|
||||
|
||||
To use the IP masquerading features, simply copy the new sockdev.xdd into
|
||||
your mint folder and reboot the machine. IP masquerading is still disabled by
|
||||
default, but can be enabled using the masqconf program, as explained below.
|
||||
|
||||
|
||||
USING MASQCONF / QUICK START GUIDE
|
||||
|
||||
To configure the IP masquerading you use the masqconf program from the tool
|
||||
directory.
|
||||
|
||||
To show the current configuration and any masquerade database entries, invoke
|
||||
masqconf with no arguments.
|
||||
|
||||
To get help, invoke masqconf with help or any unknown command as an argument.
|
||||
|
||||
Normally you don't need to worry about all the available settings, the only
|
||||
important ones are address, netmask and flags. The rest can be left at the
|
||||
default values.
|
||||
|
||||
address should be set to the address of the network to be masqueraded for,
|
||||
and netmask should be the netmask of that network.
|
||||
|
||||
For example if you have a local network 10.0.0.0 you might configure IP
|
||||
masquerading for all machines on the network with the following command:
|
||||
|
||||
masqconf address 10.0.0.0 netmask 255.0.0.0
|
||||
|
||||
Once you have correctly set the parameters you must set the ENABLED flag to
|
||||
make IP masquerading operate, like so:
|
||||
|
||||
masqconf set ENABLED
|
||||
|
||||
That is all there is to it. Now you can access the internet from any of
|
||||
the machines on your network, even though you only have one actual IP address!
|
||||
|
||||
|
||||
PORT REDIRECTION
|
||||
|
||||
Apart from allowing a masqueraded machine to initiate connections to another
|
||||
computer the IP masquerading supports permanent redirection of certain ports
|
||||
on the masquerading gateway to go to a masqueraded machine. You configure this
|
||||
with the masqconf redirect command. The parameters are gateway port,
|
||||
destination address an destination port.
|
||||
|
||||
For example to redirect incoming HTTP requests on the gateway machine to
|
||||
port 456 of masqueraded machine 10.0.0.5, you could use the following command:
|
||||
|
||||
masqconf redirect 80 10.0.0.5 456
|
||||
|
||||
To stop redirecting a port, use the masqconf unredirect command. For example
|
||||
to reverse the above redirection, issue the following command:
|
||||
|
||||
masqconf unredirect 80
|
||||
|
||||
|
||||
FAQ
|
||||
|
||||
Q. Why does (xyz feature) not work properly?
|
||||
|
||||
A. Like I said this is my first project with any kind of low-level network
|
||||
programming, and I probably made quite a lot of mistakes. Certainly notify me
|
||||
if you find a bug, but it's even better if you try to fix it yourself then
|
||||
mail me and explain how you fixed it. But also see the next question.
|
||||
|
||||
Q. Why do some protocols like FTP and DCC not work via IP masquerading?
|
||||
|
||||
A. Some programs send low-level protocol information in a high-level protocol,
|
||||
including IP addresses and port numbers. IP masquerading doesn't know about
|
||||
that, and doesn't masquerade those addresses properly. Eventually I plan to
|
||||
add support for this, but it is very complicated. In the mean time, you can
|
||||
sometimes avoid the problem by adjusting the settings in the problematic
|
||||
program, for example if you set your FTP client to passive mode it will work
|
||||
ok.
|
||||
|
||||
Q. Why doesn't this documentation explain a whole lot of things like the
|
||||
timeouts, masquerade database, port redirection, flags, etc., etc.?
|
||||
|
||||
A. I want to make IP masquerading available, but I did not have time to
|
||||
write lots of documentation. Read the source code! Or if you send me an email
|
||||
I will be happy to help. I hope to write some better documentation later.
|
||||
|
||||
|
||||
BUGS
|
||||
|
||||
Lots!
|
||||
|
||||
Seriously, it can't be so bad as I've used the IP masquerading quite a lot and
|
||||
it doesn't fail. But I have noticed some inconsistencies.
|
||||
|
||||
Sometimes a condition occurs where a TCP connection that is not yet opened
|
||||
(or not yet properly closed) tosses lots of packets backwards and forwards in
|
||||
an endless loop. I don't know why this happens, but I am looking into it. If
|
||||
you see this bug, try to track it down and fix it. As a temporary fix, just
|
||||
disable IP masquerading (masqconf unset ENABLED) then enable it again
|
||||
(masqconf set ENABLED) to break the loop.
|
||||
|
||||
I think there is some sort of bug handling incoming ICMP error messages
|
||||
for a masqueraded host. Particularly, error messages about UDP datagrams
|
||||
seem to get through to the host that sent the datagram which caused the error,
|
||||
but the host doesn't seem to interpret them. Is the checksum wrong, or
|
||||
something?
|
||||
|
||||
|
||||
CONTACTING ME
|
||||
|
||||
I would like to hear anything you have to say about the IP masquerading.
|
||||
Please send an email to:
|
||||
|
||||
mb@tos.pl.net
|
||||
|
||||
Please note that this address will become invalid in about a month's time.
|
||||
I will announce my new address at that time via the MiNT mailing list and
|
||||
other appropriate forums.
|
||||
19
mint/1-19-c02/doc/inet4/README.mtl
Normal file
19
mint/1-19-c02/doc/inet4/README.mtl
Normal file
@@ -0,0 +1,19 @@
|
||||
README FILE FOR IP MASQUERADING (TORSTEN LANG)
|
||||
|
||||
The ip masquerading support now also contains support for ftp. Unfortunately
|
||||
this still is not stable but I realease it anyway and hope that someone else
|
||||
will be able to find and fix the problem (and certainly pass the fix to me ;-).
|
||||
|
||||
The ftp support is implemented in a way that makes it quite easy to add support
|
||||
for other protocols too (like irc). Since I have no possibility to test these
|
||||
other protocols I have not implemented support for these.
|
||||
|
||||
CONTACTING ME
|
||||
|
||||
If you find the remaining bug in the ftp support that causes the connection to
|
||||
break after a few "dir" commands please let me know immediately. Please send
|
||||
mail to:
|
||||
|
||||
Torsten@Lang.net
|
||||
|
||||
Hopefully this address will stay valid for the near future.
|
||||
Reference in New Issue
Block a user