home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / tserve11.zip / TSERVE.ISP < prev    next >
Text File  |  1996-02-02  |  35KB  |  667 lines

  1.         HOW TO BECOME AN INTERNET SERVICE PROVIDER WITH WARP!
  2.  
  3.         TSERVE V1.1b - PPP (terminal) server for WARP CONNECT!
  4.  
  5. If you have WARP connect, a network, and a dedicated connection to the
  6. internet, you can be an Internet Service Provider (ISP)!  This shareware
  7. program and documentation will help you get well on your way.
  8.  
  9. This package is NOT intended to provide you with everything you need to
  10. get started, nor is it intended to teach you all about the internet,
  11. TCP/IP, or networking. You'll need to do a LOT of research on your own
  12. and just when you think you know all you need to know, you'll discover
  13. that you've only begun. Even the experts aren't experts when it comes to
  14. the internet.
  15.  
  16. This package assumes that:
  17.  
  18.         * You have WARP CONNECT installed and running on at least 2 CPU's.
  19.         (you can do this with the TCP/IP package, but the installation and
  20.         setup may be different.)
  21.  
  22.         * You have these machines connected to eachother through a network.
  23.  
  24.         * You have an idea what networking is, packets are, what TCP/IP is
  25.         and you're reasonably proficient with OS/2.
  26.  
  27.         * You have a dedicated connection to the internet (or you know 
  28.         where and how to get one).
  29.  
  30.         * You want to offer dial up connections to your network and the
  31.         internet through PPP.
  32.  
  33.  
  34.         A QUICK REFRESHER...
  35.  
  36.         When you connect a bunch of computers together so that you can send
  37. data back and forth between them, you have a network.  For most of us,
  38. though, a network just means that we can use files and printers that we
  39. don't have on our personal machines.  How does this happen?  If it were a
  40. perfect world, when you wanted to see a file on another computer, you'd
  41. press a button, and your computer would send a message to the other asking
  42. for the file.
  43.  
  44.         "HEY!, Send that thing over here!"...
  45.  
  46.         The other computer, not having a whole lot to do with it's millions
  47. of operations per second, would respond by sending the whole file to you in
  48. one big chunk.
  49.  
  50.         "Oh, Ok, You asked for it, here it comes... <stuff> <stuff> <stuff>
  51.         <stuff> ..."
  52.  
  53.         The problem is, we don't live in a perfect world and communications
  54. are just as imperfect... While the sending machine would be sending the 
  55. file like you see it above, the receiving machine would probably be getting
  56. it something like this:
  57.  
  58.         "Oh, Ok, YoU asKED for iT, HERe i ome ... <SnarF> <Snort> <Sniggle>
  59.         <stuff> ..."
  60.  
  61.         The first thing we do to get around this is put check values into 
  62. the messages and files that we send so that when they get to the other end,
  63. we know wether they're correct. This way, when the sending computer sends 
  64. <stuff> and the receiving computer gets <SnarF>, something can be done
  65. about it. Specifically, the file or message can be sent again. In fact, you
  66. can keep asking for the same file to be sent again and again until you finally 
  67. get a copy that "looks" like it's correct. (Check values are not a certain
  68. way of knowing that what you got is the same as what was sent).
  69.  
  70.         Think about that for a second though... Sending files takes time 
  71. and money... If Murphy is having a field day (and he usually is) then 
  72. you'll get the whole file completely right (all 200 megabytes of it) up to 
  73. the last bit of <stuff> and then the last one will be <Sniggle>. DAMN! Now 
  74. what do you do? Send the whole thing again? NO!
  75.  
  76.         Instead of sending our messages back and forth in huge monolithic 
  77. blocks, we break them up into little pieces, and send the pieces one at a 
  78. time with a check value in each one. So, now when you ask for a file, the
  79. sending machine spits out something like this:
  80.  
  81.         "<Here it comes 1>...<stuff 2>...<stuff 3>...<stuff 4>..."
  82.  
  83.         And when you get it, you might see something like this:
  84.  
  85.         "<Here it comes 1>...<stuff 2>...<Snort 3>...<stuff 4>..."
  86.  
  87.         When you see that, you can ask for #3 to be repeated (a small part 
  88. of the whole file) while you continue to recieve all of the other 
  89. "packets". This is the fundamental basis of networking as we know it:
  90.  
  91.         * Messages are broken down into packets.
  92.  
  93.         * Packets are sent and repeated individually as necessary.
  94.  
  95.         So, how does all this relate to the internet? Well, there's one 
  96. piece missing, and it's one of the biggest stumbling blocks. That's 
  97. addressing.
  98.  
  99.         When you connect a whole lot of computers toghether and have them 
  100. all send these packets to each other, you need a sure way of figuring out 
  101. who gets each packet. The way it's done on the internet is with an IP 
  102. address. IP (Internet Protocol) is essentially the embodiment of our first 
  103. idea - breaking messages and files down into manageable little chunks. Each
  104. packet (or datagram or whatever you've heard it called) has a piece of the 
  105. message, an address to go to, an address it came from, and a check value to
  106. help decide if it's right when it gets where it's going. The Internet 
  107. Protocol is an agreement (among the machines) about what these packets
  108. should look like and how they should be sent back and forth.
  109.  
  110.         Each computer on the internet has it's own IP address so that each 
  111. packet knows where it came from (the computer that sent it) and where it's 
  112. going (the computer who should receive it). If there are extra machines in
  113. between the sender and the receiver, those machines need only look that the
  114. addresses in the packets and send them in the right direction. Almost 
  115. nobody needs to know exactly how to get to anywhere as long as enough 
  116. machines know which direction you go to get there...
  117.  
  118.         It sort of works like this: You're trying to get to the doctor in
  119. a small town full of gas stations. Each gas station has a lanky guy in 
  120. cover-alls who basically knows which direction to go to get "close" to the
  121. doctor's office. One of these guys at one of these gas stations happens to 
  122. live right next to "Old Doc Brown" so he can tell you exactly where to go. 
  123. But first you've got to get to that guy...
  124.  
  125.         You start your journey.. up to the first gas station and ask Elmo 
  126. where the doctor's office is. "Don't know for sure, but you gotta turn left
  127. and go down that road somewhere." Maddening isn't it... right about now
  128. you can look over at your co-pilot who's usually so smug about this 
  129. direction thing, and give them the look... you know, the one you always 
  130. thought about when they said "why don't you stop and ask directions!.."
  131.  
  132.         So, you turn left, go down the street, and run smack dab into 
  133. Burt. Burt says, "Hmmm... according to my list here, Doc's down this road 
  134. to your right somewhere." Again, not particularly encouraged by your 
  135. ordeal, you thank the guy and head out down the road.
  136.  
  137.         Wouldn't you know it, you end up at another gas station, and this 
  138. one has a sign that says something about a doctor, but you don't read it 
  139. because you're just too mad, tired, and fed up with the whole gas station 
  140. metaphore.
  141.  
  142.         Dickie comes up to you, with his name tag flappin' in the breeze 
  143. and says in the all too familiar drawl, " C'n I he'p you?". You're
  144. infuriated, but you try to keep your cool. Looking down at your gas guage,
  145. you realize you've got about one more road's worth, and it just so happens
  146. you're trapped in a town where all the gas stations DON'T HAVE ANY GAS! You
  147. clench your fist, take a breath, relax just a bit, and calmly articulate,
  148. "Could you please tell me where I can find the doctor?" Fully expecting a
  149. repeat of your previous experiences, you prepare for the worst.
  150.  
  151.         Luckily for you, and for Dickie, this is the end of your chaos. 
  152. Dickie replies, "Sure, 's right over there, third house on the left, you 
  153. can't miss him."
  154.  
  155.         In case you didn't get it, all the guys at the gas stations were 
  156. routers, the list talked about at the second station was a routing table, 
  157. and the gas guage was a "hop count". Routers "ARE" the internet, it 
  158. wouldn't work without them.
  159.  
  160.         This idea is so big, that there are some internet sites full of
  161. special computers who's entire job is sending packets in the right
  162. direction. At least one of the machines on your network will be doing this
  163. job.
  164.  
  165.         Something else you should know about IP: It doesn't make sure you 
  166. get the whole message, and it doesn't make sure you get it in the right 
  167. order. In fact, it doesn't even make sure you get it at all. For that, you
  168. need TCP (Transport Control Protocol). TCP is an agreement about how and
  169. when to ask for "retransmissions" so you can get the parts of a message or
  170. file that didn't get to you, or got to you wrong. IP lets you send 
  171. messages, and TCP lets you organize the messages so that you're sure to get
  172. them all.
  173.  
  174.         For example, if the sending machine sends:
  175.  
  176.         <Stuff #1>...<Stuff #2>...<Stuff #3>...
  177.  
  178.         And the receiving machine gets:
  179.  
  180.         <Stuff #1>...<Sniggle #2>...<Stuff #3>...
  181.  
  182.         or
  183.  
  184.         <Stuff #1>..................<Stuff #3>...
  185.  
  186.         IP won't do anything about it. All IP does is send the packets 
  187. along. It's up to TCP to ask for <Stuff #2> to be retransmitted. TCP does 
  188. this by sending a packet back to the sender to ask for the repeat. TCP 
  189. sends this packet using IP because TCP can't do it! TCP only organizes the 
  190. packets, IP sends and receives them.
  191.  
  192.         The reason this is important is that in order for one machine on 
  193. the internet to be able to "reliably" send OR recieve messages, it must
  194. be able to send AND receive packets. If either one of these doesn't work,
  195. the whole thing quits.
  196.  
  197.         A LITTLE STORY...
  198.  
  199.         I mention this because it's important to recognize the true nature 
  200. of what's going on, especially when you encounter problems with your network.
  201. One such problem happened to me while I was setting up my service.
  202.  
  203.         One of my machines acts as a web server. It was happily running 
  204. along sending beautiful web pages to everyone who'd care to ask. Then one 
  205. of my dial-up users connected to my system and tried to "talk" to my web 
  206. server. It didn't work!
  207.  
  208.         The first thing I thought was... there must be something wrong with
  209. the user... Except that they could talk to anything they wanted to on the 
  210. internet, just not MY web server. So I scratched my head.
  211.  
  212.         The next thing I thought was that it must be my web server... 
  213. except that everybody on the internet could see my web server just fine... 
  214. So I scratched my head.
  215.  
  216.         I Started tracing the packets (remember those) to see where they
  217. went... The dial-up user would send their packets to my web server, and 
  218. they got there fine. My web server would send the reply packets to the user
  219. and they'd get half way there... Then it broke down. The return packets 
  220. (from my web server) were getting all the way back to my router (where the 
  221. dial-up user was connected), but they stopped right there.
  222.  
  223.         The result was that it looked to the user as if there was no web 
  224. server, and it looked to my web server that there was no user. All of this 
  225. even though the messages were making 99% of the round trip.
  226.  
  227.         I don't want to get too technical about this right now, because you
  228. are probably tired of my ramblings, and you want to get on with setting up 
  229. your internet site. Besides, there'll be plenty of time for old war stories
  230. once you've go it all up and running.
  231.  
  232.         OK, SO HERE GOES...
  233.  
  234.         Here is a QUICK START list of steps to take to set up your internet
  235. site. I'll try to cover enough detail to make sure you know what's going 
  236. on, but I obviously can't tell you everything that's involved. You should 
  237. do a LOT of research, talk to others who have done similar things, and 
  238. spend a lot of time reading books on the subject. Even the experts aren't 
  239. experts on everything, the internet is a BIG place with scary dungeons.
  240.  
  241.  
  242.        *1) You need to find an internet provider that will give you a
  243.         dedicated connection to the internet. I will assume that you're
  244.         going to use a PPP connection through a 28.8k modem. This is NOT
  245.         the only option, and it's not the best option, but it will get
  246.         you started.
  247.  
  248.        *2) You need to register a DOMAIN NAME with "the internic". The
  249.         internic is the organization in charge of assigning domain names
  250.         and IP addresses on the internet. Each machine on the internet
  251.         should have it's own unique IP address. Your DOMAIN NAME will
  252.         identify you to other people on the internet, and make it easier
  253.         to find you. For example, you could telnet to my BBS system using
  254.         it's IP address: 206.239.24.12, but it's a lot easier to remember
  255.         that it's bbs.micro-neil.com. My system's domain name is:
  256.         micro-neil.com. When I put a new computer (host) on my system, I
  257.         can simply come up with a host name for it and prepend it to my
  258.         domain name. For example, my web server is www.micro-neil.com.
  259.  
  260.        *3) You need to purchase a CLASS C license (again from internic.)
  261.         A CLASS C license is your own personal set of IP addresses. With
  262.         a CLASS C, you get 256 IP addresses which you can assign to any
  263.         of your computers and your dial-up user's computers. For example,
  264.         my CLASS C address is 206.239.24.0. This means that I can use any
  265.         address from 206.239.24.1 to 206.239.24.254. Notice that I left
  266.         off .0 and .255. That's because these are special. When you use
  267.         206.239.24.0, you're talking about my entire "subnet" or "sub-
  268.         network". That means any machine on my network. When you use
  269.         206.239.24.255, you're talking about ALL machines on my subnet.
  270.         This is the "broadcast" address.
  271.  
  272.         A note about address usage:
  273.         A broadcast address (.255) is used when you want to send a message
  274.         to all machines on the subnetwork. This is used, for example, when
  275.         one computer (such as a server) want's to advertise itself to all
  276.         of the other computers on the network.
  277.  
  278.         It is customary to save the lower IP addresses .1-.9 etc for any
  279.         routers you have in your system. This is not any kind of hard rule,
  280.         but it's not a bad idea to stay pretty close to the conventions so
  281.         that when you need help (and you probably will) the person helping
  282.         you will have some idea what's going on.
  283.  
  284.         It is also customary, although I don't know why, NOT to use the .1
  285.         address. Perhaps I'll find out someday, but for now, I don't mind
  286.         letting it sit idle.
  287.  
  288.         A note about your Class C and Domain name:
  289.         I highly reccomend that you let someone (your provider) handle the
  290.         legwork for you on getting these things set up. This work cost me
  291.         $200. That's $50 for the Class C license, $100 for the domain name
  292.         registration (good for 2 years), and $50 for the leg work. I hear
  293.         that it's well worth the price, and I believe it.
  294.  
  295.         Also, letting your provider get this set up for you leaves them in
  296.         a good position to help you with the other things you'll need to
  297.         set up.
  298.  
  299.         NOTE: There are other types of addresses CLASS A, B, & D, but you
  300.         will probably not need them. If you do, you've already outgrown the
  301.         information in this document.
  302.  
  303.        *4) Your provider will need to set their router(s) to route packets
  304.         destined for your network to your connection. Any packets destined
  305.         for your subnetwork (CLASS C) will be forwarded to your system
  306.         through your connection. Remember from above that as long as enough
  307.         machines know which direction to go (what connection to send a 
  308.         packet through) nobody needs to know exactly how to get there.
  309.  
  310.        *5) Your provider will need to place your machine name(s) into 
  311.         their DNS so that other people on the internet can find you.
  312.  
  313.         About machine names and the DNS (Domain Name Server): A DNS is a
  314.         computer (or program) who's job it is to figure out an IP address
  315.         from a machine name, and a machine name from an IP address.
  316.  
  317.         For example, when somebody plugs http://www.mirco-neil.com/ into
  318.         their browser, their browser asks their local DNS what the heck
  319.         www.micro-neil.com means. More specifically, it asks for the IP
  320.         address that belongs to that name. Hopefully, after some searching
  321.         and looking around, the DNS will tell their browser that the IP
  322.         address is 206.239.24.10. That's the IP address of the computer I
  323.         use as my web server. From then on, their web browser knows exactly
  324.         how to address it's packets when it's asking for pages from my 
  325.         server.
  326.  
  327.         You will find a place in your TCP/IP configuration notebook where
  328.         you should enter the address of your provider's DNS server.
  329.  
  330.         It is possible to run your own DNS, however, that topic is beyond
  331.         the scope of this document.
  332.  
  333.        *6) You'll need to make names for the machines on your network.
  334.         I used the names sys0.micro-neil.com, sys1.micro-neil.com and so-on
  335.         for all of my systems. It's probably a good idea to follow some 
  336.         kind of convention to make things easy on yourself. You may ask now
  337.         where www.micro-neil.com comes in... It is an alias. In other 
  338.         words, along with the real machine (host) names in the DNS tables,
  339.         there are aliases. So, for example, my web-server machine's 
  340.         registered name is sys0.micro-neil.com. If somebody asks a DNS what
  341.         host is attached to the address 206.239.24.10, the DNS will respond
  342.         with sys0.micro-neil.com. However, if somebody asks the DNS what
  343.         address goes with www.micro-neil.com, the DNS will look it up, find
  344.         that it's an alias for sys0.micro-neil.com, and then return that
  345.         address.
  346.  
  347.         Once you've decided on the machine names for your systems, you will
  348.         need to tell your provider so that they can make the entries in the
  349.         DNS. You will also need to go into your TCP/IP configuration 
  350.         notebook on each machine and fill in the host name for that 
  351.         machine. You will want to use the REAL host name, not the alias.
  352.  
  353.         Remember that each HOST on your network will need a unique IP 
  354.         address and you'll have to assign it when you pick the name.
  355.  
  356.        *7) You need to set up TCP/IP across your network (Mine is a 10 base
  357.         T) by configuring it in each machine that will participate. In your
  358.         TCP/IP setup notebook, you'll need to:
  359.  
  360.                 * Enter that machine's IP address.
  361.  
  362.         * Enter that machine's host name.
  363.  
  364.                 * Enter your netmask (255.255.255.0).
  365.  
  366.                 * Enable your network interface.
  367.  
  368.                 * Enter the address of the DNS (provided by your provider).
  369.  
  370.         This step will not get you onto the internet, but it WILL establish
  371.         your TCP/IP network on your Ethernet (if that's what you're using.)
  372.  
  373.         This much should be done to every machine that will be 
  374.         participating in the network. You'll also need to pick one of your
  375.         machines to use as a router. That one will be treated differently. 
  376.         On my system, I use sys2.micro-neil.com (206.239.24.12). This 
  377.         system connects my network to the internet and connects to my
  378.         remote callers. Since this machine is my router, I tell all of the
  379.         other machines on my network to send any packets they can't figure
  380.         out to this machine. That is, when my web server needs to send a 
  381.         packet somewhere it isn't directly connected to, it sends the 
  382.         packet to my router machine.
  383.  
  384.         On all machines except for your router, add a defaultroute to the
  385.         routing table in your TCP/IP configuration notebook that points to
  386.         your router. On my system, on sys0.micro-neil.com (206.239.24.10) I
  387.         enter a default route to sys2.micro-neil.com (206.239.24.12). So,
  388.         whenever 206.239.24.10 needs to send a packet somewhere else, it 
  389.         looks in it's routing table and sees the default entry, and sends
  390.         the packet to 206.239.24.12. Since 206.239.24.12 is my router, when
  391.         it gets the packet, it should know where to send it next: to my
  392.         internet provider, or to some other system it's connected to like
  393.         one of my dial-up clients.
  394.  
  395.         While you're in your TCP/IP notebook, you might as well enter the
  396.         names of any servers that you'll be using from your provider (or 
  397.         your own system) such as news servers, mail servers, web servers,
  398.         etc... Most of this information is not absolutely necessary, but
  399.         since you've got the thing open, you might as well enter everything
  400.         you can.
  401.  
  402.         If you've set all this up right, you should be able to PING all of
  403.         the systems on your network. Since you are not yet conected to the
  404.         internet provider, you will need to tell ping the IP addresses of
  405.         the machine(s) you're trying to ping rather than the names. 
  406.         Remember that the DNS (name server) is at your internet provider
  407.         and we're not talking to them yet. On my system, when I want to
  408.         make sure I can "talk" to my router machine from my web-server
  409.         machine, I get into an OS/2 command line window (on my web server
  410.         206.239.24.10) and type:
  411.  
  412.         ping 206.239.24.12
  413.  
  414.         When I'm done looking at all the ping responses, I just hit ctrl
  415.         break and close the window. If I don't see any responses, I start
  416.         asking questions about what I've missed. Remember from earlier
  417.         that you need to be able to send and receive in order to send or
  418.         recieve data reliably on a network. Ping works by sending a packet
  419.         to the machine you tell it (206.239.24.12) and waiting for a reply.
  420.         When that machine gets the packet, it will send a response back
  421.         where that one came from. If ping sees the return packet, the you
  422.         have successfully networked those two machines. This works across
  423.         the room or the entire internet (for the most part). If ping does
  424.         not see a response, then the packet(s) got lost somewhere.
  425.  
  426.         I found it extremely helpful to have a lot of blinking lights. Not
  427.         only is it impressive to look at, but when you're trying to see if
  428.         your packets are getting somewhere, that's often the only quick
  429.         indication you have. If you don't have a network concentrator with
  430.         lights on it that show traffic, then you're missing out.
  431.  
  432.         ****
  433.  
  434.         At this point, you should have your network talking to itself. You
  435.         should be able to FTP, TELNET, or WEB browse to any system that is
  436.         directly connected to your network. Next step is to get you onto
  437.         the internet... otherwise it wouldn't be much fun would it?
  438.  
  439.        *8) Establish your PPP connection to your provider. You should know
  440.         that dial-up phone line connections go down from once an hour to
  441.         once a week.. If you get a good connection for longer than that, 
  442.         you are really lucky. Also, even the best 28.8k modems seldom get
  443.         connections better than 24000, and even more seldom greater than
  444.         26000... so don't expect miracles, and be prepared to increase your
  445.         "bandwidth" quickly if you have a lot of traffic. It can get mighty
  446.         slow if you have 5 people all trying to work through a single 28.8k
  447.         modem.
  448.  
  449.         Another thing you should know about modem connections. Remember 
  450.         from above when we talked about retransmissions and missed packets.
  451.         If your connection is losing the odd packet from time to time, you
  452.         will see errors displayed by your PPP program. If you suspect that
  453.         your data isn't flowing as fast as it should, and you see a lot of
  454.         errors popping up in the window running your PPP program, it's a
  455.         good be that you're:
  456.  
  457.                 Talking to the modem too fast for your computer's hardware.
  458.                 TRY USING A LOWER BAUD RATE.
  459.  
  460.                 Connected on a very bad line and your modem(s) are 
  461.                 retraining too often. Try a different line, or lower 
  462.                 speeds. Also try turning off compression.
  463.  
  464.         When you establish your PPP connection with your internet provider,
  465.         I suggest that you use a .CMD file rather than the PM dialer. This
  466.         makes it very easy to re-establish the connection should it go 
  467.         down.
  468.  
  469.         My connection command file looks something like this:
  470.  
  471.         :BEGIN
  472.  
  473.         PPP com5 115200 rtscts modem reneg mru 1500 priority 1 exit
  474.            206.239.24.2:207.123.123.2 defaultroute connect "slattach
  475.            atdt5432109 ogin: myname sword: myword"
  476.  
  477.         countdwn 10
  478.  
  479.         goto BEGIN
  480.  
  481.  
  482.         The PPP command line above is wrapped around, but you must type
  483.         it all on one line. The countdwn program is a simple utility I have
  484.         that gives me 10 seconds to kill the task if something really ugly
  485.         happens. Essentially, the ppp command is executed repeatedly until
  486.         I kill the program. That way, if the connection drops, I just wait
  487.         a few seconds and it dails in again. The addresses and phone number
  488.         above are fake, but you get the idea.
  489.  
  490.         This PPP command line is where all the fun begins. Remember what I
  491.         said about IP addresses belonging to machines? I LIED! They belong 
  492.         to interfaces between machines. So, if you have a computer that is
  493.         connected to more than one network, it will have a number of IP 
  494.         addresses... one for each network connection. (sort of).. You 
  495.         should do some reading about this, because network routing can get
  496.         a bit tricky to explain, and I don't want to make this text any
  497.         longer than it needs to be.
  498.  
  499.         Suffices to say: the 206.239.24.2 address above belongs to my 
  500.         router machine as an interface to my internet provider. The
  501.         207.123.123.2 address belongs to my internet provider as their
  502.         interface to my router machine.
  503.  
  504.         Remember how we put a defaultrout entry into every machine except
  505.         the router machine... The PPP command line above creates the 
  506.         default route for the router machine. This means, whenever the
  507.         PPP connection is active, if the router machine gets a packet that
  508.         doesn't belong to it's network, it will send it out the (206.239.24.2)
  509.         interface and on to the internet provider. Since the provider
  510.         is sending all packets destined to my network into my router
  511.         machine through the same interface, we've established the 2 way
  512.         connection we need to communicate with the internet.
  513.  
  514.         Once you have your PPP connection running, you should be able to
  515.         PING the DNS or any other system on the internet provider's network
  516.         and, for that matter, anywhere on the internet. If not, go back and
  517.         check to see that you haven't skipped a step.
  518.  
  519.         Once you've successfully pinged out onto the net from your router
  520.         machine, you should also be able to ping the internet from any of
  521.         the machines on your network.
  522.  
  523.         For example, once my PPP connection is established with my 
  524.         provider, I can go to my web server machine and ping the DNS, or
  525.         www.yahoo.com, or anywhere I like.
  526.  
  527.         CONGRATULATIONS, YOU're ON THE NET! At this point, you should be
  528.         able to communicate directly with any system on the internet, and
  529.         they can communicate with you. It would be wise to look into 
  530.         security measures, especially if you have a file server or some
  531.         other service on your network that speaks TCP/IP... If you're
  532.         concerned about this, you should disconnect your PPP link until
  533.         you've taken actions which make you more comfortable.
  534.  
  535.         That's it for the quick list. Now we get into providing access to
  536. outside callers. Essentially, they will connect with you in the same way
  537. that you connect with the internet. On my system, I have outside callers
  538. connect with my router machine (sys2.micro-neil.com) using the TSERVE 
  539. program. This program answers the phone, gets the user's password, and 
  540. determines if they are a PPP user or a BBS user. If they're a PPP user, it
  541. asks them for a password (to make sure) and starts PPP. Assuming they 
  542. called in using a similar command line to the one above (or using the 
  543. Dial-Other-Providers, or whatever package), they will instantly be able to 
  544. communicate with the internet through my ppp connection.
  545.  
  546.         Just for the sake of details, the important things to note about 
  547.         connections to dial-up callers are:
  548.  
  549.         Typically, they do not include IP addresses in their settings...
  550.         this allows my system to assign the addresses dynamically.
  551.  
  552.         Their ppp command line includes the defaultroute command, and the
  553.         ppp command line on my router machine DOES NOT. Remember that we
  554.         want all unassigned packets to go out to our internet provider, not
  555.         to the dial-up caller.
  556.  
  557. ****
  558.         Getting outside callers to talk to the internet was fairly straight
  559. forward. However, getting them to communicate with systems on my network was
  560. a bit more tricky. This is the rest of the story I started to tell earlier. 
  561. Dial-in callers could see the internet without a problem. At the same time, 
  562. my network's systems could see the internet without a problem. The internet
  563. could see both my systems and the caller without a problem. BUT my systems and
  564. the caller's could not talk! WHY?
  565.  
  566.         As it turns out, this shouldn't have been the case... That is, the 
  567. PPP program should have (or could have) solved the problem when it 
  568. connected to the user. In newer versions of the PPP program, the problem 
  569. may be solved, or not... but here is the explanation....
  570.  
  571.  
  572.         (THIS GETS TECHNICAL)
  573.  
  574.         When the caller sent a packet destined to one of my systems, the 
  575. packet went into the router machine, out into my ethernet, into the system 
  576. it was supposed to, and a reply (appeared) to go out. But it didn't.
  577.  
  578.         The TCP/IP network that is the internet is a separate thing 
  579. entirely from the ethernet network that ties my systems together. Each 
  580. ethernet card has it's own unique hardware address so that any two cards 
  581. can co-exist on any ethernet without any confusion about which packets 
  582. belong to which machines. In order for my systems to talk to each other over
  583. the ethernet, they need to figure out what these hardware addresses are so 
  584. they can send the ethernet packets to the right places.
  585.  
  586.         The web server on my network tried to send a response to the 
  587. dial-up user, but didn't know exactly where to send it... so my server 
  588. transmitted a broadcast message requesting an answer to the question "Where
  589. on this network do I send packets for this user?" As I understand it, the
  590. real question was, which ethernet card address should I send these packets 
  591. to. This is an ARP request. (Address Resolution Protocol).
  592.  
  593.         You might ask why this would make a difference... "Isn't the system
  594. supposed to send any packets it doesn't know about to the router, and won't
  595. the router simply pass them on to the caller?" I asked the same question. 
  596. The answer is NO. The confusion comes in when the network interface is set 
  597. up.
  598.  
  599.         When we enabled the network interface for TCP/IP, we told the 
  600. routing tables in the web server that any packets going into this network
  601. (206.239.24.0) should be sent out through the ethernet card. Any other 
  602. machine participating in this network would have answered the request 
  603. directly on the ethernet if it was asked where it was (ARP). But the caller
  604. (206.239.24.0) isn't directly connected to the ethernet so it can't
  605. answer directly.
  606.  
  607.         My server system assumed that since it had a NET entry in it's 
  608. routing table for 206.239.24.0, and the address it was trying to reach was 
  609. 206.239.24.103, it should simply make an ARP request on the ethernet to 
  610. find out how to send it's packets. There is no reason to ROUTE the packets
  611. to the router unless it doesn't know where to send them...and this packet
  612. obviously belongs right here on the ethernet.
  613.  
  614.         ( I mistakenly thought this request was the response on it's way 
  615.         back to the caller from my web server...)
  616.  
  617.         The problem is that the user's dial-up interface isn't connected to
  618. the ethernet, so it can't reply to (or hear) request for ARP. There was 
  619. no way for my server machine to know where to send the packets (on the 
  620. ethernet) so they'd get to the user, and there was also no reason to send 
  621. the packets to the router because they belong on the ethernet somewhere.
  622.  
  623.         THIS IS WHERE THE SOLUTION COMES IN.... We needed to make a proxy 
  624. ARP entry on the router for the remote user. What this means is that the 
  625. router machine will answer ARP request on the ethernet for the remote user.
  626. Once this was done, my server machine could resolve the address, and start 
  627. sending packets to the dial-up user(s).
  628.  
  629.         You should look up the documentation, but here is how I enter proxy
  630. ARP entries on my router machine to cover my dial-up users.
  631.  
  632. arp -s 206.239.24.103 00:00:c0:02:6c:4c pub
  633.  
  634.         The first part is easy to understand,.. (206.239.24.103) is the IP 
  635. address of the remote user. The part after that is a little more difficult,
  636. it is the MAC address (hardware) of the ethernet card on the router 
  637. machine. What this line really says is, "If an arp request comes in for the
  638. IP address 206.239.24.103 on the ethernet card at 00:00:c0:02:6c:4c, then 
  639. the router machine should reply for (in proxy) the host at 206.239.24.103.
  640.  
  641.         (You can get your ethernet MAC address using netstat)
  642.  
  643.         This allows anyone on the local network to resolve addresses to 
  644. remote callers. You should add an ARP entry in this way for each remote 
  645. user. If you really want to get it right, you should add the entry when the
  646. user connects and remove it when they disconnect... that way, you can have 
  647. multiple hosts answering calls. PPP should do this, but it's broken.. 
  648. You'll find the command line parameter in the documentation, but at the 
  649. time of this writing, it was not working correctly.
  650.  
  651. *****
  652.  
  653.         That's basically it.. If you've done your research, and you've 
  654. followed these steps, you should be taking calls and surfin' the web. 
  655. Please see the TSERVE.DOC file for specifics about the TSERVE program and
  656. DON'T FORGET TO REGISTER... A lot of work went into creating this package.
  657.  
  658. See you on the web...
  659.  
  660. -Pete
  661.  
  662. peter.mcneil@micro-neil.com
  663. http://www.micro-neil.com/
  664. telnet:bbs.micro-neil.com   (<cr> only, not <cr><lf>)
  665.  
  666.  
  667.