FAQ:DOIP Dial Other Intenet Provider Frequently Asked Questions This list is maintained by Jay R. Curry aka Rusty. I can be reached at rusty@minn.net. E-mail any suggestions for this list. This file can be found at various locations as DIOPyymm.FAQ. As time permits I will modify this as a HTML document using JPEGs for screen shots This list was started September 9, 1995. The following changes are implemented in this release. The original copy is being edited in DeScribe Voyager, and a copy of this file is included in the archive. The primary advantage to this is that I am using revision marking during the editing of the updates and if you have a version of DeScribe that supports revision marking you should be able to see what I have found needs to be changed. The main change in this version is that I have passed the document through a spell checker. I have also discovered some errors in the original document that may cause problems. I have added a section explaining how I have changed my own connection procedures over time. I no longer use the SLIPPM application, though I expect to use it again if I need to change ISP's (I doubt that I will, but odder things have happened) and I feel that it may be to someone's advantage to know some other ways to set up their connection. I hope that this is of some use to you. If you find something here that you think was done exceptionally well, or poorly I would like to know. I will also be maintaining a variation of this document at my home page. The online version is striped down to the DOIP only. As I suspect that few people will be checking there for answers to some of the questions that this document answers. My home page is http://www1.minn.net/~rusty/rusty.html, the online version of this document can be jumped to directly at http://www1.minn.net/~rusty/doip.html. As this document is updated I will be placing links to this document on my home page, so you may retrieve any updated version from there. I will post the version date on the home page also. This FAQ is broken up into sections, Setting up the dialer, messages in the Status box, Using PPP directly without SLIPPM.EXE, FTP sites. Conventions: Dates for questions and answers will be in the form yymmdd. DOIP refers to the Dial Other Intenet Providers application. ======================================================================== Setting up the dialer. ------------------------------------------------------------------------ Q: 950909: I have been using Windows Trumpet to connect to my PPP provider, how do I set up DOIP to use my current provider? A: 960101: Get the latest PPP revision from one of the FTP sites carrying it. Check the list of sites at the end of this FAQ. When you start up "Dial Other Internet Providers" also known as SLIPPM and hereafter as DOIP you will be presented with a list of providers that you have entered in, or a prompt to enter a provider. For tutorial use I will presume that you are entering a new provider. You can click on the Add new provider, or modify provider buttons. You will be presented with a screen that looks something like this: ------------------------------------------------- = | = *Name: MinnNet |-------------- = Description: Minn.Net Login Info | = Login ID: rusty _ |--------------- = Password: ******** |x| Required | Connect Info | = Phone Number: 555-1234 ||--------------- = Login Sequence: NONE || Server Info | = |||--------------- = ||| Modem Info | = ||||-------------- = |||| = |||| = |||| = .Connection Type.............................. |||| = . ( ) SLIP (*) PPP . |||| = .............................................. |||| = .Inactivity Timeout Option.................... |||| = .Minutes to Wait Before Automatic Hang up: 15. |||| = .............................................. |||| = ______ |||| = | HELP | (* = required field) |||| = ~~~~~~ |||| = Page 1 of 4 ->|||| =================================================- || \==================================================- For purposes of explanation I am using a variation of my own setup. As noted near the bottom any field with an asterisk next to the name is a required field. Now on this page the Name is the only "required" field, but I doubt that you are going to get very far without some of the other fields filled in. If you are connecting to an ISP that does not support CHAP/PAP then you will need to enter your Login ID and your Password to log into your provider. If your ISP supports CHAP/PAP you may use a PPP.CFG file to keep this information out of this file. For more information review the PPP.TXT file that is included with the latest PPP.ZIP file from IBM. You should have a phone number for your provider. Initially the Login Sequence will say NONE, If your ISP supports CHAP/PAP leave the entry as it is. If your ISP does not support CHAP/PAP then you will need to remove the word NONE from this field. Later in this document I will outline some alternatives that you may consider if you run into problems. The next page will be altered by the selection of your connection type. If you select SLIP you will have different requirements than if you are using PPP. Since I use PPP exclusively, the information contained in this document assumes that you are configuring for PPP. If you are trying to configure for SLIP then the best recommendation I have at this time is to select one field at a time and press the [F1] for help on the field. I leave the Inactivity Timeout Option at 15 min. If I am not doing TCP/IP traffic for over 15 min. I see no reason to tie up my provider's phone line. My second page looks something like this: ------------------------------------------------- = || = |||-------------- = ............................................ ||| Login Info | = . . ----------------- = . Your IP Address: . Connect Info | = . Destination IP Address: . ---------------- = . Netmask: 255.255.255.0 . | Server Info | = . *MRU size: 1500 . |---------------- = . _ . || Modem Info | = . |x| VJ Compression . |||-------------- = ............................................ |||| = ............................................ |||| = . *Domain Namesserver: nnn.nnn.nnn.nnn . |||| = . Your Host Name: Legarto . |||| = . *Your Domain Name: Minn.Net . |||| = ............................................ |||| = ______ |||| = | HELP | (* = required field) |||| = ~~~~~~ |||| = Page 2 of 4 <- ->|||| =================================================- || \==================================================- The original SLIP Dialer required an IP address in Your IP Address but would accept 0.0.0.0 if you offered it. My provider recommended 0.0.0.0 for the destination IP Address. I have since found that this may cause problems in some situations. I have not encountered any problems myself, but I have changed the field to be blank since then. The NetMask will be recommended by your provider, but will have some bearing upon the class of address you network uses. Most Internet Access Providers use a class C address set so they will usually recommend that this entry be 255.255.255.0. If your IP starts with the first number being less than 127 then your ISP is using part of a class A address. If your netmask is 255.0.0.0 then your ISP is a class A address holder. If it is 255.255.0.0 or 255.255.255.0 then your ISP may be receiving a subneted address out of the class A address block. For most purposes you will not need to worry about it other than to make sure that the netmask matches that described by your ISP. The rest of this is for your information. To learn more about the class system of IP addresses, and considerations for IPv6 check the latest RFC index for where to look for more information. The MRU size is required and refers to the Maximum Response Unit, With a SLIP connection this field will be labeled MTU for Maximum Transmission Unit. They generally refer to the maximum allowable frame size. Look to your provider for a recommendation here. If you run into a problem where everything works fine until you go to post a file to a FTP site, or some such you may want to change this number to a number 2 less than your ISP recommends. The reason for this is that some routers out there count the frame flags in the byte count and others do not. For example my ISP recommends 1500 bytes, which works for me. The router in question would appear to deal effectively with the frame bytes. If I were to encounter problems I would set the MRU to 1498, which would allow the entire frame to be encapsulated including the flags with no problems. PPP.EXE that is distributed by IBM does not count the flag bytes. If your Internet provider supports Header compression check the VJ Compression button. This compresses the information in the PPP header to help in reducing the time required for small packets to be sent across the PPP link. If you spend a lot of time in Telnet this can help simply by reducing the number of bytes sent with each keystroke. It can also help in large file transfers simply by reducing the overhead for each frame. The Domain Name Server entry needs to be an IP address as there is no way to resolve a name if all you have is the name of the DNS. Sort of like walking into a parking lot full of cars and saying "I know Bob's car is in here some place, I wonder which one it is." Saying Bob's car is the Blue 88 Cutlass Sierra sn 12345678890. This is something like getting a domain name. It identifies the car, but does not tell you where it is. If I say it is on the 4th level of the mall parking ramp, twelfth car in the second row as you exit from Sears, you would be able to find it. You can get the IP Address for the DNS from your provider. They usually give it out without even being asked specifically for the information. The field for Your Host Name may contain just about anything. I recomend not using the name of any host that your ISP uses. The field refers to your own system, and if you have given your system a name you may use that name in this field. Your Domain Name is the part of your E-mail address that identifies your provider. The next page is the rest of the servers that you need: ------------------------------------------------- = || = .Default Servers/Hosts.................... |||-------------- = . News Server: news.minn.net . ||| Login Info | = . Gopher Server: gopher.micro.umn.edu . |||-------------- = . WWW Server: www.minn.net . ||| Connect Info | = .......................................... ----------------- = .Mail Server Information.................. Server Info | = . Mail Gateway: legarto . --------------- = . POP Mail Server: legarto . | Modem Info | = . Reply domain: minn.net . ||------------- = . Reply (Mail) ID: rusty . |||| = . POP Login ID: rusty . |||| = . POP Password: ******** . |||| = .......................................... |||| = |||| = |||| = ______ |||| = | HELP | (* = required field) |||| = ~~~~~~ |||| = Page 3 of 4 <- ->|||| =================================================- || \==================================================- If you leave the Default Servers/Hosts fields blank they will default to the IBM servers. This can make for some long delays if you are connecting to a provider with a low bandwidth connection to the net. The rest of the fields should follow the recommendations of your provider. If your provider has these servers then you will probably be asked to point to their server. The Mail Server Information consists of the name of the machine that will be your mail gateway, the machine that will hold your mail for you, your domain name for incoming mail, the address you want people to reply to, your mail login ID and password. The above information will usually be defined by your service provider. If your ISP recommends that you use the string "user@domain.name" for your reply to address change this to simply "user". The reason for this is that NewsReader/2 merges this field with the domain name to build it's reply to field. If you watch UseNet and see something like "user@domain.name.domain.name" then you can be fairly confident that this is the problem. I will not include the setup for the last page (Modem Info) as each modem will need it's own setup. On the modem info page you will probably be able to select your modem. If your modem is not listed, you will need to customize your initialization strings. I have a no-name v.34 modem that I have the following init strings for. first Init string: ati second Init string: atz1 I have set up the modem settings that work for me and used an atw1 to write them to the modem's memory. Other things that you will need to do are to select the com port that you will be using, what speed you will use, the condition of the modem, dial or answer, If you want the modem to start off by disabling call waiting, (Highly recomended if you have call waiting, Not a bad idea to instantiate using the telco's system memory for an answering machine also. The cost isn't that much, and I happen to think it is a better deal than call waiting. But then I work for the phone company, so you may disregard my comments if you wish.) The data bits parity and stop bits are usually set up for you as you select the modem. If your provider does some odd things with these you will have to talk with them about what settings they require. Q: 950909: I can't get my Windows software to work after I have connected to my provider. I keep getting Network Unreachable! What's wrong? A: 950909: You probably have a copy of winsock.dll in you windows or windows\system directory. Move this file to another location while you are using the windows system under OS/2. This will force windows to use the winsock.dll that OS/2 provides, which just happens to provide the needed interface to the Internet Access Kit for OS/2. ======================================================================== Messages in the Status box. ------------------------------------------------------------------------ Q: 950909: What does "Error: invalid fcs" mean? A: 960101: It means that PPP has detected what it thinks is a corrupt packet. PPP packets are streams of bytes beginning with a marker character (Ascii 126 the last I checked) and ending with the same character. The bytes between the markers is organized as follows, PPPHeader, Data, Checksum. The entire stream of bytes is called a frame. This looks something like this... ~hhhhhhhddd...dddcc~ When PPP receives a frame it passes it through a checksum function that returns either a pass or a fail. If the frame passes then it passes the frame up the TCP/IP stack, or some other network stack if PPP is being used that way. If more than one stack is in use then PPP will use the information in the header to determine which stack get's the frame. If the frame fails the checksum function then it is discarded and optionally an error message is sent to stderror, in the case of the IBM PPP stack this message is routed to the status window of DOIP. An error of this type can be caused by any of the following: a programming error on the part of the people who implemented PPP at either your service provider, or the IBM PPP program (this is often referred to as a bug.) Line noise. Improper interrupt utilization/handling on the part of the hardware device drivers, improper login results/handling. The first thing to check is am I actually logged in? If you are you can open an OS/2 window and run ping against one of your preferred hosts. ftp.microsoft.com comes to mind. If you get unknown host ftp.microsoft.com then you are probably not logged in. If you are logged in, are the invalid fcs messages coming in intermittently, or constantly. Try a large file transfer. If you are getting consistent bad frames you may need to change your com port drivers. I can recomend SIO, but there are others available. Check the drivers directory of one of the FTP sites listed at the end of this document. If the invalid fcs messages are coming in intermittently, the problem may reside outside of your system. Try different internet access providers, or different phone lines. Try connecting from a different exchange, or even just a different location. If the problem goes away in any of these situations you can probably identify the problem right there. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Q: 950909: What does "Error: invalid protocol 2080" mean? What can I do about it? A: 950909: From above recall that a PPP frame includes a header. This header includes a protocol field. This field tells the PPP driver what stack the contents of the frame belong to. Besides sending the frame through the checksum function it checks to see if the frame belongs to a valid stack that has been set up on your machine. I know, "The only stack I use PPP for is TCP/IP, what is this Protocol business about?" is likely to be one of your questions. Good question. PPP has been designed or rather specified in such a way that if you so desire you may use PPP to link to Novell lan's together using it, or two Banyan Vines lan's, or just about any other network architecture. The MRU that we set up above is large enough that you can bridge two Ethernet networks together over a PPP link. On top of this TCP/IP is made up of three primary protocols of it's own. These are TCP, UDP and ICMP. TCP/IP is a name that is a bit of a misnomer. For all practical purposes it can be called IP. TCP/IP merely distinguishes it from anything else that may come along with the initials I and P. As an example if I wanted to create a new protocol that did only tunneling, I might give it a protocol number while I was testing it, and this protocol number would allow my stack to work with the packets, while other stacks would ignore it. Here is where your problem arises. If the "frame" that PPP sees is not an actual frame, but a stream of text, PPP will still try to parse it as a PPP frame. It looks at the protocol field of the header and sees a protocol identifier and tries to compare that identifier with it's list of defined / registered stacks. If it does not match to one it gives you the above error message, with the number for the protocol that the frame it parsed had. Either you have experienced line noise corrupting the frame header, or you're system is expecting PPP frames when it is receiving something else. Usually this will indicate that you have not completely logged in yet. If you are using SIO, fire up PMLM and look at the data stream to verify that what you are getting is not a login prompt, or a chose this or that protocol prompt, or a text menu of some sort. One of the things that can cause this problem is having the word NONE in the Login Sequence window. If it is there remove it. If the problem persists try setting up a login routine in the sequence window, or if it is absolutely necessary use a REXX script to log in. The format for the Login Sequence lines is Odd lines send, even lines waitfor, the put a \r on the line if you want the system to simply send a carriage return. If the system uses odd prompts for requesting user names and passwords then you will want to put the appropriate prompt on the even lines. For example you might see... Who are you?> rusty How do I know?> strange{*}land I have 1)shell access 2)PPP access 3)SLIP access 4)Goodbye! What do you want?> 1 If you have set up your login id and password correctly, you can modify the login sequence to look like: \r you?> [LOGINID] know?> [PASSWORD] want?> 1 And you should then be able to log in properly. If you need to pull IP addresses out of the text stream then you will need to add the appropriate entries to this field. The help file goes into more depth here. If you decide to use a REXX script for whatever reason, perhaps you need to enter a password from a list depending upon the time of day or whatever, name the REXX script along with its .cmd extension, and any parameters that it needs. You will find a sample REXX script in your tcpip\bin directory named annex.cmd. You can also name a response file that will do the same as I have shown above simply by naming that file on the first line. You will find a sample response file in the tcpip\bin directory named sample.rsp. ======================================================================== My setup. ------------------------------------------------------------------------ Q: 960101 How do you connect to the internet now? A: 960101 When I started this FAQ I used the Dial Other Internet Providers application. After releasing the document to the public, I was introduced to the program PPPFAKE, which created a .cmd file containing all the parameters of the line passed to the PPP.EXE program when it is called by SLIPPM. I was introduced to this program by Lamar Stonecypher in his variation of the DOIP FAQ. The last I checked his FAQ may be viewed at Rusty Boyd's home page at http://www.nhn.unknor.edu/~boyd/pppfaq.html After using the ppp.cmd files that I created I decided to take a look at the contents of the file. I found a few items that I felt were not needed, so I removed them and tried the resulting file. It worked. Over time I talked with my ISP and requested an IP address of my own. It costs me extra, but the advantages that are included meet my needs. I have had to make some more changes to the resulting ppp.cmd files. From time to time I have had the line fail on me, so I watched comp.os.os2.network.tcpip and spotted a .cmd file that would allow my system to reconnect without writing a script that PPP calls, and that makes it so that I do not have to alter the PPP.exe file to prevent it from exiting when it looses carrier. As it stands I now have a REXX file that simply performs a loop that calls PPP and when PPP exits, sleeps for 5 seconds. The sleep function allows me to exit out of the script simply by doing a ctrl-c twice, the first time to exit PPP, the second time to exit the REXX script. It also allows my ISP's modems to reset. If I wanted to set up a telnet daemon, I could set the script to check for an environment variable that would tell the system if it should be up or down, and exit if it should be down. I could do something very much like this by stopping the process, but I would have other concerns about this. Personally I have little interest in setting up a telnet daemon at this time other than I would like to have a scrollable session and this would allow it. ======================================================================== FTP sites. ------------------------------------------------------------------------ Hobbes: hobbes.nmsu.edu or ftp-os2.nmsu.edu CD-Rom: ftp.cdrom.com IBM: ftp.ibm.net