|
FAQ 88. How do I connect to The Internet? And other dial-up networking questions
So you don't trust the Internet Setup Wizard, eh? OK, here's TCP/IP in a nutshell. Transmission Control Protocol/Internet Protocol (TCP/IP) comes with Win95 as an NDIS 3.1 protocol. So, aside from connecting to The Internet, you can use any other Win95 clients or services over TCP/IP as well, or at least, those that don't depend on a particular protocol. Now that's pretty cool, but we want to connect to The Internet, right? Win95's network setup also copies the Windows Sockets libraries, based on Berkeley University's UNIX Sockets interface. Winsock works over any protocol really, which is why Win95 Setup must replace any other WINSOCK.DLL with its own, but for The Internet we're primarily concerned with Winsock over TCP/IP. All Windows Internet apps use the Winsock interface, in one form or another. If you don't already have a network card installed, install it and load its Win95 driver. Then add TCP/IP protocol. TCP/IP has six property sheets, some of which affect all of TCP/IP, and others only affect the net card they're bound to:
perin@onyx.interactive.net spent a considerable amount of time developing a BOOTP add-on for Win95. If you want to use BOOTP instead of DHCP, install his add-in software. You can find it at http://www.panix.com/~perin/ Make sure you installed Dial-up Networking from Add/Remove Programs/Windows Setup. Then make sure you have the Dial-up Adapter installed in your Network setup. Then add TCP/IP. Follow the guidelines for net cards, except use these settings:
Then re-boot, double-click on your Dial-up Networking folder and make a new connection. The modem configuration may be whatever you like, but your Server type must have these settings:
Then in TCP/IP Settings:
The above settings work with 99% of all UNIX and NT dial up servers known to me. By hard-coding the DNS addresses here and specifying only TCP/IP, you prevent Win95 from sending unusual PPP requests to the dial up server, some of which can CRASH some UNIX dial-up servers. The Internet Setup Wizard automatically prepares a dial-up connection with all the proper switches set, except it turns on "Enable Software Compression", which you can turn off if you have troubles connecting. The next thing to turn off would be "Enable IP header compression" if you still have troubles connecting. If your provider requires a special login procedure, bring up properties for the dial up connection again, select "Configure...", and in the Options tab, turn on "Bring up terminal window after dialing". This will let you manually login to the dial up server. When you connect, log in manually, and activate PPP, however you're supposed to do it, then hit "Continue" or press F7, which continues the PPP negotiation. Learn your provider's login procedure, then read on to learn how to write an automated dial up script. Yes Get it 4.00.950B users will already have this update. Not yet. Some dial-up servers support this dual modem config (so you can get 57.6 kbps with two 28.8 modems, for example) but the built-in dial-up networking does not. NT Workstation 4.0 can support this (I've heard it referred to as "Multilink PPP"). NT Server's RAS server support Multilink clients as well. Dear Hackers: Here's a project for you; design a NDIS 3.1 compliant PPP adapter that supports dual modem connections like this. This "network card" driver should work with MS's built in TCP/IP protocol (so there's no need to replace any Winsock libraries) and should be otherwise completely separate from the built-in Dial-up Networking. And before you tell me it can't be done because it has to support DHCP, well, can't you emulate a DHCP server in the card driver? I doubt the TCP/IP protocol cares as long as it "sees" a server. This is actually a classic bug in Microsoft's implementation of TCP/IP that existed since MS introduced PPP into NT Workstation 3.5. What happens is, you have one gateway (Your LAN's router) and you have a "Hop count" of 1 to the rest of your inter-network. When you establish a dial-up connection, the dial-up connection's gateway (the dial-up server) has a hop count of 1 and your LAN's gateway will have a hop count of 2, so when your machine needs to access a machine past your local subnet it'll try to reach it through the dial-up gateway instead of your LAN's gateway. (phew! How's that for an explanation?) This, of course, won't work. You can actually view this with: ROUTE PRINT from a DOS session. Try it before and after you dial up. You have two fixes you can try:
route -f add 192.1.2.0 MASK 255.255.255.0 192.1.1.1 This example describes the target subnet (192.1.2.0), the subnet mask of the target subnet (255.255.255.0), and the router with which to access that subnet (192.1.1.1). Thanks to Mike Ziemann for actually getting this to work. Please send me corrections if this is wrong! NOTE: Win95 doesn't save routing tables between reboots. You'll need to execute this after you establish a dial-up TCP/IP connection. We all heard of Wingate and how you could use an NT workstation as a dial-up router, but Wingate takes a LOT of TCP/IP knowledge, and NTWS routing requires some co-operation from your ISP, both of which are scarce. I suggest Ride Way, because it only requires ONE computer (albeit a Windows NT Workstation) running TCP/IP, and only one dial-up account 8.2. How come I have to disconnect from my NetWare server when just dialing to The Internet? The worst complication that rises over Win95 dial-up networking, is when you try to dial out to The Internet while logged into a NetWare network, it will warn you that it must disconnect from the NetWare server, since the Client for NetWare can only log in to one NetWare server at a time. To avoid this, have "Log on to network" turned off in your dial up connection's Server Type. Rich Graves claims this is because of Microsoft's PPP "Extensions", but I think it's just because Client for NetWare can't log in to more than one server. LOGIN and ATTACH are two different actions; you can ATTACH to a NetWare server remotely after you logged in to a LAN NetWare server. Client for MS networks does not have this limitation. 8.3. How do I run my Winsock program? Make your connection, however you do it, then run your apps. Simple. Win95's WINSOCK.DLL and WSOCK32.DLL include a "standard" Windows Sockets API that works with ANY properly written Winsock program. All of the Public Domain, Freeware, Shareware, and a surprisingly large number of Commercial apps, run with these libraries. If you installed Internet Explorer, you'll find that your dial-up connection requester will pop up when you run a Winsock app, if you aren't already connected. This is pretty nifty, and you can control this auto-dialer from the new Internet control panel that shows up. Of course, Auto-dial is pretty useless if you use TCP/IP over a network card. Be VERY VERY CAREFUL if you install any one-shot packages which include their own dialers. These will often replace the OS standard WINSOCK.DLL with their own to accommodate their dialer. When you shop for such programs, make sure they have an option to use any existing TCP/IP and dialer you already installed. One such evil program is Netscape Navigator Personal Edition. Make sure you tell this program to "Use existing Winsock and dialer". A really good tip, regardless of whose TCP/IP stack you use, is to write-protect WINSOCK.DLL and WSOCK32.DLL. Bring up a DOS prompt, type CD \ DIR WINSOCK.DLL /S and note what directory the file is in. You'll probably find multiple WINSOCK.DLL files if you installed any "All in one" apps. Change to that directory then type ATTRIB +R WINSOCK.DLL Do this for WSOCK32.DLL as well. 8.4. Using Trumpet (TM) and other TCP/IP stacks (Just don't!) Yes they do work, as long as you don't have any Win95 networking components installed. Problem is, when you make a networking change, Setup might decide to re-copy the files over, and when it does it will happily over-write WINSOCK.DLL. Remember: Winsock was designed for other protocols too, not just TCP/IP, and it's a standard OS component now! So, either use Win95's networking and Win95's dialer, or use no Win95 networking and someone else's dialer. And yes, you can make 32-bit Winsock apps work with older stacks. There's a WSOCK32 "thunk" available that works with an existing Win 3.1 dialer and their own WINSOCK.DLL. It's somewhere on www.windows95.com but I forgot where. You could also check out Trumpet's own 32-bit TCPMAN. If you install Netscape Personal Edition for Windows 95 (whatever version) it presents you with a connection setup wizard similar to Microsoft's Internet Setup Wizard. DON'T USE IT. Known problems:
You can only correct this goofup by removing and re-installing Dial-up Networking, and any instances of TCP/IP from Network Properties. You will also need to make sure you configure your modem and location properties in the Modems control panel. See the steps in section 8.1.2 above. 8.5. How do I get dial-up networking to work with other stuff besides The Internet? The one really cool feature that allowed Win95 to devastate OS/2 Warp Connect; general dial-up networking. MS included a Shiva-written PPP/RAS dial-up stack that works with pretty much any transport protocol, though there's only direct support for NetBEUI, IPX, and TCP/IP. Clients can bind to these protocols to work over a dial-up connection provided they support NDIS 3.1 PnP (So it can unload when you disconnect, for example). Install Dial-up Networking in Add/Remove Programs/Windows Setup. Then re-boot. A Dial-up Networking folder appears in "My Computer". You will also find a Dial-up Adapter in your Network control panel; you will have to add protocols for this adapter as needed. If you're connecting to a Win95, Windows NT, or WFWG dial-up server, you can make a connection right from the "Make new connection" wizard. This will also work if you're connecting to a NetWare network through a Win95 or Windows NT dial-up server. If you log into an NT domain this way, you need "Log on to network" turned on, otherwise you can leave it turned off to save some time. Old WFWG or NT 3.1 dial-up servers only work with the RAS server type; NT 3.5 and Win95 servers work with the PPP server type. If you're connecting to a NetWare network using NetWare Connect (NRN), Install IPX/SPX Protocol, bring up properties for your connection, and change the Server Type to NRN: NetWare Connect. This disables all other protocols but IPX over that connection. You will need "Log on to network" turned on; this will have Win95 search for a NetWare server (Or the preferred server) and bring up the NetWare log in requester. NOTE: You can also use PPP to connect to a NetWare server remotely, if your NetWare network has a Windows NT or Win95 dial-up server running. This is a less expensive option than Novell's NetWare Connect software. You can start by reading the beginning of FAQ page 7. This covers setting up two Win95 machines so they talk to each other. The only real difference is you use the Dial-up Adapter instead of a regular net card to connect the machines together with. To add the dial-up adapter, run Add/Remove Programs/Windows Setup and add Dial-up Networking under Communications. Next, install MS Plus on the machine that would answer the phone, and in FPS for MS networks properties, set this machine's Browse Master setting to "Enabled" instead of "Automatic". Once you finish this, turn on the dial-up server in Dial-up networking options. Specify a password if you want. Note that, if you use other Win95 apps to send faxes or to dial-out to other locations, you can leave the dial-up server turned on! Yes you can! Finally, on the machine dialing in, set its Browse Master preferences to "Disabled". Create a connection that uses only NetBEUI (This is the fastest protocol for slow links), meaning turn IPX and TCP/IP OFF in Server Type. Then try dialing the machine with the dial-up server running. Use the username and password you specified on the server. Once you connect, you should be able to browse the other machine. The Dial-up Adapter generates a "fake" MAC address (a 48-bit number representing an Ethernet address) so that protocols designed for Ethernet will work on it, such as IPX. It will generate a random number for the MAC address each time you dial in. This happens REGARDLESS of what protocol you dial in with. IPX addresses look like this: NNNN-AAAAAAAA where "NNNN" is a Network Number and "AAAAAAAA" is the adapter's MAC address. Typically, a dial-up server (like NT RAS) can assign a network number for this two-station "network", but the MAC address comes from the client. It's up to the dial-up server to route to this new network number. However, programs that depend on the MAC address being fixed (such as remote backup agents) won't work. I haven't found a practical reason to use a fixed address on a dial-up line, and as such I don't have a solution. 8.6. How do I set up auto-dial when I run my Winsock program? To set up auto-dial, install Microsoft Plus! or Internet Explorer. Once installed, your computer will bring up the dial-up requester when any program accesses WSOCK32.DLL. Pretty cool. For some reason this won't work with 16-bit Winsock programs though. There's a new Internet control panel when you install either of those, and you can control auto-dial and auto-disconnect from there. 8.7. How do I set up auto-disconnect? As per auto-dial; install MS Plus! or Internet Explorer, and check out the Internet control panel. You then tell it to disconnect after some amount of in-activity (20 minutes by default). Auto-disconnect does have one dumb bug; unless you're performing active surfing in Internet Explorer (Other apps it just ignores), the disconnect timer will activate. This includes when you're downloading large files via FTP, and not doing any other mouse clicking. Pretty dumb. Turn it off in the new Internet control panel, that shows up when you install Internet Explorer, or MS Plus. 8.8. My Internet provider only has SLIP. Can I use that? (yes.) Install DSCRPT.EXE or install MS Plus. The dial-up scripter includes a SLIP server type for dial-up networking. When you select SLIP: Unix Connection, or CSLIP: Unix Connection, from the server type options, you will only be able to use TCP/IP. There are additional scripting commands for using SLIP; be sure to check out dial-up scripting help for the details. You may need to use the script to obtain an IP address. 4.00.950B users have a better scripting interface which is part of the dial-up connection's properties. 8.9. Why can't the dial up connection save my password? Password caching only happens if you install a Win95 network client, or enable User Profiles on a stand alone computer. By default, the Internet Setup Wizard only installs TCP/IP protocol and the dial-up networking components, which is all you really need. However, MS Exchange will do login password caching independent of the dial-up settings. In the Internet Mail properties, select "Connection" and "Login As...", then type the username and password. If you leave these blank, it will use the defaults for the dial-up connection. Other utilities like DUNCE will not only save your password, but instantly dial-up without asking you for an "OK". 8.10. Why does my computer hang in task "RNAAPP" when I dial out to The Internet? Before I rip into this speech, jmckone@excalibur-group says that you only have to install the ISDN/Dial-up Update 1.2 fixes this hanging RNAAPP bug. A Message from William Hunt (E-MAIL address unknown) says that sometimes the computer hangs with "RNAAPP (Not Responding)" when you press CTRL-ALT-DEL to bring up the task list. His fix was to hide the file named VNBT.386 which is not needed for an Internet session. Well this is correct; VNBT is a virtual device for NetBIOS over TCP/IP, not needed for connecting to The Internet and using Winsock apps. You will need this file back, however, if you run Client for MS networks over TCP/IP or otherwise want to use NetBIOS apps over it. It also appears, according to Eric Mitchell, that deleting VNBT.386 doesn't work. A better solution, which would prevent this VxD from being invoked, is to set "Disable DNS" and "Disable WINS Resolution" in TCP/IP properties, and specify the DNS address in the dial-up connection's properties directly. However, this bug seems to still creep up. One thing I've noticed is this bug never seems to happen to me. At least not anymore. So I figure I'm doing something different... here's what I do when I set up a connection on a Win95 machine in order to prevent this bug:
I don't know why, but doing the connection up this way seems to prevent this RNAAPP lockup. 8.11. How can I track time and costs for my dial-up connection? Many providers have different costing schemes, so MS didn't bother. There are much simpler programs for free from TUCOWS. 8.12. How can I get dial-up networking to work with a null modem cable? MS didn't include a null modem driver for the Telephony Interface (TAPI). However, check out this bogus MODEM.INF file, which serves the purpose. One installed, you can treat the null modem like any other modem in Win95. 8.13. How do I write a dial-up script? Download DSCRPT.EXE from Microsoft's Win95 site, or grab it off your CD-ROM in ADMIN\APPTOOLS\DSCRIPT, and install it from Add/Remove Programs/Windows Setup/Have Disk. Or install Microsoft Plus! This adds a Dial-up scripting tool to your Accessories group. If you re-install Win95, you will have to re-install this tool; Setup will over-write the Registry keys that hook DSCRPT into dial-up networking. 4.00.950B users already have far better scripting options, and older versions can take advantage of them with the Dial-up networking update. NOTE: This will also add SLIP and CSLIP to the list of dial up server choices! However, you can only use TCP/IP over SLIP and no other protocol. Run the tool to list all of your dial up connections. Select your connection, then type a path/filename to a script. The script doesn't have to exist yet. Then hit "Edit", and you'll see Notepad. It'll ask you if you want to create a new file; do so. Here's a sample script: proc main waitfor "Username:" transmit $USERID transmit "<cr>" waitfor "Password:" transmit $PASSWORD transmit "<cr>" delay 1 transmit "ppp default<cr>" delay 1 endproc The $USERID and $PASSWORD come from whatever you fed the dial-up connection. I feed "ppp default" to the provider because a successful log in only gives me a Unix prompt. "ppp default" runs a program at the dial-up server which starts a PPP session, but it isn't necessary for all dial-up servers. I even know of one public dial-up server in Taiwan that doesn't even ask for a username and password! This is why you should perform one manual login ("Bring up terminal window after dialing") and learn how your provider prompts you for this info, and then write the script based on that. Microsoft Plus! includes an improved scripter which allows some branching and IF/THEN programming, but it isn't necessary for all providers. The above example works with both Plus! scripting and the basic scripter on MS's web site. And finally, save this script and hit "Apply" to attach the script to the dial-up connection. You can turn on "Step through script" to test and debug the script, then turn it off when you know it works. Hit "Apply" to save any changes you make to a script attachment or settings. Some terminal servers require that you switch the server's pass through options (so 8-bit ASCII codes don't get mistaken for terminal control codes, for example.) Users of SLiRP will need to do this depending on how their dial-up server works. Here's a piece of script that Jeff Lawson uses to issue the break, then set his local options and then resume. I gather he'd then run SLiRP on the remote terminal and then continue SLIP processing in Win95. waitfor "jzl>" transmit "+++" waitfor "0" transmit "AT\\B0O0^M^M" (This part actually issues the break with AT\B0) waitfor "Local>" transmit "set session passall^M" waitfor "Local>" transmit "resume^M^M" waitfor "jzl>" (Resume normal processing, such as run SLiRP) 8.14. How do I set up a dial-up server? Install MS Plus. If you chose the Dial-up networking server, it will add a new Dial-up server... menu to the Dial-up networking window. The Win95 dial-up server is really a NetBIOS router, meaning it doesn't actually perform WAN routing of a low level protocol (though they did hack IPX routing in there for NetWare clients). In Dial-up Networking, you have a new menu: Connections/Dial-Up Server. You can choose ONE modem to receive calls on (Not more than one, sorry), and you can pick what kind of dial up server it is (either PPP, WFWG RAS, or Default, which allows for both). You can also enter a dial up password, or pick users from a user list if you have User Level security enabled. It does appear that you CAN select more than one modem to let the Dial-up Server answer, but when it answers one it refuses to answer on the other. This is the limit of Win95's dial-up server capabilities. Now I wrote above that it's a NetBIOS router. That means it's designed to route MS Network style traffic to a network. Normally, a dial-up client will have Client for MS networks and NetBEUI installed (or for WFWG clients, they just use the Remote Access software included), because NetBEUI's the fastest NetBIOS compatible protocol for slow links. NetBEUI isn't route-able, but that doesn't matter; the network itself could use IPX or TCP/IP instead, as long as it's an MS Windows style network. NetWare dial-in works too, because Microsoft hacked a simple IPX router in there. To do NetWare dial-up access, make sure you install IPX protocol and bind it to the Dial-up Adapter in Network Control Panel. The clients can be Win95 or Windows NT clients, but they need to have IPX protocol and Client for NetWare installed. When the user dials in, a NetWare login prompt will come up, login scripts will execute, and connections will appear. WARNING: IPX over PPP is quite slow! Some tips for the client, to speed up performance:
5. Cheap NetWare dial-in access (A LOT cheaper than NetWare Connect!) 4. Cheap Windows Network dial-in access 3. Effortless (almost) connection to your network from home 2. Works with non-Win95 MS Network clients (like an Amiga using SAMBA!) 1. User-Level security works here (Not like NT RAS Server) 10. Fast connection speeds (NOT!) 9. It routes TCP/IP (This is a Resource Kit error.) 8. It does MS-Mail Remote (Sorry, it doesn't) 7. It routes NetBEUI (It's a NetBIOS router; NetBEUI isn't route-able) 6. You need NetBEUI on the net card to route (It's a NetBIOS router; it doesn't matter) 5. You need NetBEUI on the Dial-up Adapter to use it (It's faster, but it doesn't matter) 4. It won't work with non-Win95 dial-up clients (Bull... I've used my Amiga to dial in! Couldn't transfer any files though...) 3. It doesn't work with null modem cables (check out this bogus modem.inf file if you want to use a null modem) 2. It's a security risk to my network! (Geez, you can disable the dial-up server in system policies for the default computer, then enable it for the computers you want it to work on.) 1. It doesn't work. (I think this was a vicious rumor spread by some OS/2 advocates.) 8.15. Top ten Internet/dial-up mistakes 10. Using a Win 3.1 TCP/IP protocol 9. Installing Netscape Navigator Personal Edition and using its dialer instead of Win95's 8. Buying lots of Winsock software before checking out www.windows95.com 7. Using default dial-up connection settings and crashing your provider's server 6. Installing the Dial-up Networking update for no particular reason 5. Buying Microsoft Plus! JUST for dial up scripting, before trying the free DSCRPT tool 4. Installing a provider's setup disk for Win 3.1 (dumb mistake; many providers do that!) 3. Leaving "File & Print Sharing for MS networks" turned on over TCP/IP 2. Not getting connection and server information from your provider 1. Not reading the Modem section of this FAQ page |
|