File: 3.html

package info (click to toggle)
lg-issue46 3-4
  • links: PTS
  • area: main
  • in suites: woody
  • size: 1,324 kB
  • ctags: 108
  • sloc: sh: 266; perl: 86; makefile: 40
file content (200 lines) | stat: -rwxr-xr-x 8,419 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
<!--startcut ======================================================= -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<META NAME="generator" CONTENT="lgazmail v1.2N.d">
<TITLE>The Answer Guy 46: TCPMux Revisited:  You'll need a Daemon for it, or a Better inetd</TITLE>
</HEAD><BODY BGCOLOR="#FFFFFF" TEXT="#000000"
	LINK="#3366FF" VLINK="#A000A0">
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<H4>"The Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
<P> <hr> <P>
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<center>
<H1><A NAME="answer">
	<img src="../../gx/dennis/qbubble.gif" alt="(?)" 
		border="0" align="middle">
	<font color="#B03060">The Answer Guy</font>
	<img src="../../gx/dennis/bbubble.gif" alt="(!)" 
		border="0" align="middle">
</A></H1> 
<BR>
<H4>By James T. Dennis,
	<a href="mailto:answerguy@ssc.com">answerguy@ssc.com</a><BR>
	LinuxCare,
	<A HREF="http://www.linuxcare.com/">http://www.linuxcare.com/</A> 
</H4>
</center>

<p><hr><p>
<!--  endcut ======================================================= -->
<!-- begin 3 -->
<H3 align="left"><img src="../../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>TCPMux Revisited:  You'll need a Daemon for it, or a Better inetd</H3>


<p><strong>From Helpdesk  on Wed, 01 Sep 1999  
</strong></p>
<!-- ::
TCPMux Revisited:  You'll need a Daemon for it, or a Better inetd
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
I was trying to configure a few services using the tcpmux - inetd
internal service.  but while trying to connect to tcpmux on port 1
it gives me an i/o error on socket and fails to establish a
connection.
</STRONG></P>
<P><STRONG>
could you please elaborate on this.
</STRONG></P>
<P><STRONG>
i was also hunting to find some info on tcpmux but was not able to.
</STRONG></P>
<P><STRONG>
Pleaseeeeeeeeeeeeeeeeeeeeeeeee help. doing some serious bussiness
programming on linux. stuck up.
</STRONG></P>
<P><STRONG>
jaggu
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
The default '<tt>inetd</tt>' that ships with most Linux distributions
doesn't support the tcpmux protocol.  You'd either need to get a
replacement Internet Dispatch Daemon (like Mike Neuman's BINETD,
"Better INETD" at: <A HREF="http://www.engarde.com/~mcn/binetd/index.htm"
	>http://www.engarde.com/~mcn/binetd/index.htm</A>),
or you'd need to write a standalong tcpmuxd and configure your
'<tt>inetd</tt>' to launch it for new connections on TCP port 1.
</BLOCKQUOTE>
<BLOCKQUOTE>
I also found a web page that suggests that some versions of BSD
4.4 inetd include support for TCPMux services:
</BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
Manpage of INETD
<DD><A HREF="http://theoryx5.uwinnipeg.ca/gnu/inetutils/inetd.8.html"
	>http://theoryx5.uwinnipeg.ca/gnu/inetutils/inetd.8.html</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
This impression seems to be supported by the online man pages at
the <A HREF="http://www.freebsd.org/">FreeBSD</A> web site:
</BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
FreeBSD Hypertext Man Pages: inetd
<DD><A HREF="http://www.freebsd.org/cgi/man.cgi?query=inetd&amp;apropos=0&amp;sektion=0&amp;manpath=FreeBSD+4.0-current&amp;format=html"
	>http://www.freebsd.org/cgi/man.cgi?query=inetd&amp;apropos=0&amp;sektion=0&amp;manpath=FreeBSD+4.0-current&amp;format=html</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
So perhaps you could (re-)port that to Linux.  Or, perhaps you
could write a standalone daemon to implement the protocol.  All
it would do is a simple handshake and launch.
</BLOCKQUOTE>
<BLOCKQUOTE>
Presumably your tcpmuxd daemon would (if you wrote it) use a
separate configuration file (maybe <TT>/etc/tcpmux.conf</TT> would be a
good name) which would tell it which services were available
(names with the custom protocol versions encoded into them
perhaps) and what programs to launch to handle requests for each
of those protocols/services.  Obviously this would be serving a
very similar function to the existing inetd.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you were going to write such a daemon, it seems like it would
make sense to derive it from TCP Wrappers.  tcpd performs very
similar operations, and you could link the tcpmuxd against
libwrap so that its services could be subjected to the same
access controls and logging that TCP Wrappers provides, while
allowing the administrator to continue using just the
<TT>/etc/hosts.allow</TT> and <TT>/etc/hosts.deny</TT> files for those controls.
</BLOCKQUOTE>
<BLOCKQUOTE>
The TCPMux protocol is described in RFC1078.  There are a number
of archives of RFCs on the 'net.  Any could search engine should
find them (start with the search engine at Linux Gazette's site
since I know I've provided links to a couple of them in my past
columns).
</BLOCKQUOTE>
<BLOCKQUOTE>
Here's one description of this protocol with some notes about
where it's supported:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
<A HREF="http://www.con.wesleyan.edu/~triemer/network/tcpmux/tcpmux.html"
	>http://www.con.wesleyan.edu/~triemer/network/tcpmux/tcpmux.html</A>
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
I've suggested this project to a few open source programmers,
but none have stepped upto the plate.  Perhaps you could do it.
Once a good implementation is available, we could encourage
distribution maintainers to include it and programmers to use it
rather than grabbing new ports and perpetuating the problems of
"WKS" (well-known service port numbering).
</BLOCKQUOTE>
<BLOCKQUOTE>
I'd particularly like to see '<tt>mcserv</tt>' (the Midnight Commander
communications service) and AMANDA (the "Advanced Maryland
Network Disk Archiver") use this for their networking protocols.
Those or such specialized protocols that they should use TCPMux
rather than grabbing a port number for a protocol which will
never be implemented in any other clients or servers.
</BLOCKQUOTE>
<!-- sig -->

<!-- end 3 -->
<!--startcut ======================================================= -->
<P> <hr> <P>
<H5 align="center"><a href="http://www.linuxgazette.com/ssc.copying.html"
	>Copyright &copy;</a> 1999, James T. Dennis 
<BR>Published in <I>The Linux Gazette</I> Issue 46 October 1999</H5>
<H6 ALIGN="center">HTML transformation  by
	<A HREF="mailto:star@starshine.org">Heather Stern</a> of
	Starshine Technical Services,
	<A HREF="http://www.starshine.org/">http://www.starshine.org/</A> 
</H6>
<P> <hr> <P>
<!-- begin tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::-->
<TABLE WIDTH="96%"><TR VALIGN="center" ALIGN="center">
<TD colspan="2" align="left"><A 
	HREF="../lg_answer46.html"
	><IMG SRC="../../gx/dennis/answernew.gif"
              ALT="[ Answer Guy Current Index ]"></A></td>
  <TD WIDTH="12%"><A HREF="1.html">1</A></TD>
  <TD WIDTH="12%"><A HREF="2.html">2</A></TD>
  <TD WIDTH="12%"><A HREF="3.html">3</A></TD>
  <TD WIDTH="12%"><A HREF="4.html">5</A></TD>
  <TD WIDTH="12%"><A HREF="5.html">5</A></TD>
  <TD WIDTH="12%"><A HREF="6.html">6</A></TD>
</TR><TR VALIGN="center" ALIGN="center">
  <TD WIDTH="12%"><A HREF="7.html">7</A></TD>
  <TD WIDTH="12%"><A HREF="8.html">8</A></TD>
  <TD WIDTH="12%"><A HREF="9.html">9</A></TD>
  <TD WIDTH="12%"><A HREF="10.html">10</A></TD>
  <TD WIDTH="12%"><A HREF="11.html">11</A></TD>
  <TD WIDTH="12%"><A HREF="12.html">12</A></TD>
<TD align="right" colspan="2"><A 
	HREF="../../lg_index_tag.html"
	><IMG SRC="../../gx/dennis/answertoc.gif"
              ALT="[ Index of Past Answers ]"></A></td>
</TR></TABLE>
<!-- end tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::::-->
<P> <hr> <P>
<!-- begin lgnav ::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<A HREF="../../lg_toc46.html"
	><IMG SRC="../../gx/indexnew.gif" ALT="[ Table Of Contents ]"></A>
<A HREF="/index.html"
	><IMG SRC="../../gx/homenew.gif" ALT="[ Front Page ]"></A>
<A HREF="../lg_bytes46.html"
	><IMG SRC="../../gx/back2.gif" ALT="[ Previous Section ]"></A>
<A HREF="../../lg_faq.html"
	><IMG SRC="../../gx/dennis/faq.gif"
              ALT="[ Linux Gazette FAQ ]"></A>
<A HREF="../lg_tips46.html"
	><IMG SRC="../../gx/fwd.gif" ALT="[ Next Section ]"></A>
<!-- end lgnav ::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
</BODY></HTML>
<!--endcut ========================================================= -->