RASPPPOE

PPP over Ethernet Protocol

for Windows NT 4.0

(If you are using Windows 95/98/98SE/ME, please click here)
(If you are using Windows 2000/XP/.NET, please click here)

written by Robert Schlabbach

Version 0.98, October 3rd, 2002


Contents

1. Introduction

2. Installing the PPP over Ethernet Protocol

3. Creating PPP over Ethernet Dial-Up Connections

4. Removing the PPP over Ethernet Protocol

5. Advanced Protocol Features

6. Troubleshooting

7. Known Issues

8. Revision History

9. Contacting the Author


1. Introduction

Welcome to RASPPPOE, a PPP over Ethernet (short: PPPoE) implementation for Windows 95, 98, 98SE, ME, NT 4.0, 2000, XP and .NET. PPPoE as a method for establishing PPP connections through Ethernet adapters is described in RFC 2516 and is used by many broadband service providers to allow authentication and maintain the familiar "dial-up experience" when connecting to the Internet through a broadband modem. Although there are other PPPoE implementations for Windows, this one still has its unmatched strong points:

To install this protocol, please follow the installation instructions carefully. If you have problems using it, see Troubleshooting for help. If you are successfully using this protocol, you can check if you find any of the advanced features useful. You may also want to know about the known issues. Users upgrading from a previous version of this protocol should check the Revision History to find out what changed. If you want to get in touch with me, see Contacting the Author.

- Robert Schlabbach

License and Disclaimer

This driver, installation files and documentation is all Copyright (C) 2000-2002 by Robert Schlabbach. All rights reserved. It is distributed without any warranty. Use at your own risk. You may use and copy it complete and unmodified free of charge for non-commercial purposes only. Commercial exploitation, redistribution for commercial purposes, especially redistribution by Internet service providers as "their" service to their customers, is strictly prohibited. Internet service providers must purchase a license for distribution to their customers. The licensed version additionally features an installer, which typically requires no reboot (except on Windows NT 4.0) and leads the user to the first login for an "instant success" customer experience. For licensing details please contact:

Monzoon Networks AG
Hardstrasse 235
CH-8005 Zurich
Switzerland

e-mail: raspppoe@monzoon.net
Web: http://www.monzoon.net


2. Installing the PPP over Ethernet Protocol


3. Creating PPP over Ethernet Dial-Up Connections

If you installed the protocol with the automated installer, it already created a dial-up connection for you. If you installed the protocol manually, you can create a PPP over Ethernet dial-up connection with the Dial-Up Connection Setup application provided with the protocol, which creates dial-up connections with all the correct settings at the click of a button.


4. Removing the PPP over Ethernet Protocol

Note: If you do not have any other dial-up devices in your machine, the Remote Access Service will bring up an error message when closing the Network window, saying it is incorrectly configured. Also, you will get a notification that a service was unable to start upon each restart of your computer. If you do not intend to use Dial-Up Networking for the time being, you can fix this by re-opening the Network window, going to the Services tab, selecting Remote Access Service, clicking the Remove button and confirming. Note that the Remote Access Service can be reinstalled later should you need it again.


5. Advanced Protocol Features

This section covers the advanced features of the protocol. Average users should be perfectly happy with the default settings, although specifying the link speed to display may be of interest. Users having problems with VPN software might try if overriding the MTU reported by the protocol helps. Users with flat rate Internet access may be interested in making the connection "always on". If you are interested in using the protocol's server capability, please see Enabling the protocol to act as a PPPoE Access Concentrator.

To bring up the protocol settings for an adapter:

The General tab offers the following settings:

5.1 Limit TCP MSS Maximum Segment Size (MSS) Option

When using an Internet Connection Sharing or Network Address Translation (NAT) application to share the the Internet access in a LAN, the client machines are completely unaware of the packet size restrictions imposed by the nature of PPP over Ethernet (in contrast to e.g. modem or ISDN connections, which allow passing arbitrarily sized packets). Typically, a client assumes that packets of up to 1500 bytes can be passed and thus indicates a Maximum Segment Size of 1460 bytes (1500 bytes minus 40 bytes for the TCP and IP headers) when opening a TCP session, resulting in either side of the connection sending packets up to 1500 bytes in size, too large to pass through a PPP over Ethernet connection, which can only pass packets up to 1492 bytes in size. These oversized packets are then often silently dropped at either side of the PPP over Ethernet connection, leading to delays or hangs when accessing the Internet from a client.

To work around this problem, this option makes the protocol scan all network packets it sends and receives for the TCP Maximum Segment Size (MSS) option and, if a value greater than either the default (1492) or the overridden MTU minus 40 for the IP and TCP headers (i.e. 1452 in case of the default MTU) is found, change it to this value, recalculate the TCP checksum and pass the modified packet. This option is enabled by default. If you are not using Internet Connection Sharing or Network Address Translation (NAT), you can disable this option to save a little (very little) CPU power, although leaving it enabled has no negative side effects.

5.2 Override Maximum Transfer Unit

By default, the protocol will report an MTU of 1492 bytes, the maximum possible for PPP over Ethernet. However, you can use this option to override the MTU initially reported by the protocol. Making the protocol initially report a lower MTU was found to help with certain VPN software packages which "blindly" add their own overhead without paying any respect to the MTU reported by the driver, making the network packets too large to pass through a PPP over Ethernet connection. Check the Override Maximum Transfer Unit checkbox and type the MTU the protocol should report in the Maximum Transfer Unit (MTU) edit box. The valid range is 576 through 1492 bytes. Reducing the MTU by 32 bytes to 1460 should generally suffice to make misbehaved VPN software work. Note: Regardless of this setting, the protocol will always send and receive packets of up to 1492 bytes. Only the MTU initially reported by the protocol (the MaxFrameSize value in response to the OID_WAN_GET_INFO request) and, if enabled, the TCP MSS option limit are affected by this setting.

For any changes to this setting to take effect, you need to restart your computer.

NOTE: This option will only "stick" if you enter an MTU other than 1492. If you only check the checkbox, but leave the MTU at 1492, the protocol will recognize the default value and clear the checkbox the next time you open the properties dialog, because the MTU was not actually overridden.

5.3 Number of lines (WAN endpoints)

The protocol is capable of running several simultaneous PPP over Ethernet sessions through one adapter. This feature will probably be very rarely - if ever - needed. To allow this, you can configure the number of WAN endpoints (dial-up devices) the protocol exposes for a network adapter. The default is 1, and up to 10 WAN endpoints can be configured. This setting requires you to restart your computer to take effect.

The Advanced tab offers the following settings:

5.4 Specify Link Speed

By default, the protocol will report the speed of the network adapter you are connecting through as the speed of a dial-up connection you make through it, as it cannot find out the actual speed of your broadband modem. However, you can specify the connection speed the protocol should report for connections through a specific adapter. To do this, check the Specify Link Speed checkbox and type the link speed the protocol should report in the Link Speed (kbps) edit box, in kilobits per second. If you want to revert to displaying the adapter's link speed, clear the Specify Link Speed checkbox. Note: This setting has absolutely no effect on the network traffic through this adapter; it is purely a cosmetic setting. This setting takes effect the next time you establish a PPP over Ethernet connection.

5.5 Event Logging options

The protocol can inform you about informational events, warnings and errors during operation by logging events to the System event log. By default, the protocol logs all types of events, which should result in no log entries during flawless operation. If you find the event log flooded with repeated entries despite flawless operation, you can disable logging that type of event by clearing the corresponding checkbox. Clearing all checkboxes prevents the protocol from logging any events.

You use Event Viewer to view any events logged by this protocol:

NOTE: If you are using another PPP over Ethernet software on the same machine, you will find the event log flooded with Warnings from source RMSPPPOE that it received a PPPoE packet for an unknown session. To fix this, either use solely this protocol on the machine, or disable the Log Warnings option as described above.

Beyond these settings, the protocol offers the following possibilities:

5.6 Making a dial-up connection "always on"

Users who enjoy flat rate Internet access may find it desirable to turn their connection into an "always on" connection that is established once when the machine boots (before any user logs in) and kept until the machine is shut down. To make your dial-up connection "always on", follow these steps:

Run REGEDIT and navigate to:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

Then right-click the right-hand pane, select New -> String Value, name the value KeepRasConnections and set it to 1.

5.7 Addressing a specific Service and/or Access Concentrator

In most cases, there is no need to address a specific Service or Access Concentrator. But should you have a need to do so, you can use the phone number field of your dial-up connection to specify a Service, Access Concentrator or both. The following phone number formats are possible:

  1. Blank or "0": The protocol will connect to the default Service of the first Access Concentrator that replies to the connection request.
  2. "Service-Name": The protocol will connect to the first Access Concentrator that replies offering the requested Service.
  3. "Access-Concentrator\": The protocol will connect to the default Service of the named Access Concentrator.
  4. "Access-Concentrator\Service-Name": The protocol will connect to the requested Service of the named Access Concentrator.

The RASPPPOE application uses format A for the phone number if you create a connection for an adapter and format C or D if you create a connection for a specific service.

5.8 Enabling the protocol to act as a PPPoE Access Concentrator

The protocol is able to act as a PPPoE Access Concentrator (server). This feature can be used for testing purposes, but also offers a future potential for advanced provider services like instant messaging or instant e-mail even for users who are offline at the time a message is received. The server capability is fully integrated with the operating system's Remote Access Service component. No PPPoE-specific configuration is needed. The protocol uses the current Computer Name as the Access Concentrator Name and offers any Service Name requested by a client. Note that the protocol will not offer any services until you explicitly enable its dial-up devices to accept incoming connections. To do this, follow these steps:

NOTE: If there are any changes to the number of network adapters the protocol is bound to, or to the number of lines per any adapter, the port usage for all PPPoE ports will be reset to Dial out only and you will have to reconfigure any ports you had configured to accept incoming connections.

For further help on using the Remote Access Service, please refer to the operating system's documentation on this topic.


6. Troubleshooting

This section helps you with possible problems you might encounter during the installation and use of the protocol.

6.1 RASPPPOE application does not list the desired adapter

First, be aware that you can use this protocol only on Ethernet adapters. As PPP over Ethernet only works over Ethernet, the protocol will only bind itself to Ethernet adapters (NdisMedium802_3). Adapters that do not support this medium type (e.g. internal broadband modems that do not expose a standard Ethernet interface through their driver) are not supported by this protocol.

You should make sure that the adapter in question is properly installed:

If the adapter still does not show up, make sure that the protocol is bound to the adapter in question:

6.2 RASPPPOE application reports "RASPPPOE - No Service Offers Received" when querying available services

This error message means that the protocol did not receive any response from your service provider. You should check the following things in order:

  1. Check if your broadband modem has successfully established a link with its counterpart. Most DSL modems have a Sync LED on them which indicates this status. If your modem has such an LED and it indicates that the link is down, contact your service provider for assistance.
  2. Right-click the Network Neighborhood icon on your desktop to bring up the Network window, select the Adapters tab and check if the network adapter your broadband modem is connected to is listed there.
  3. Check if your network adapter is correctly configured: Select it in the list and click the Properties... button. If your network adapter offers such settings, make sure that the correct Line Speed and duplex mode is selected (most DSL modems only support 10Mbps half duplex mode). If your network adapter has several connectors at the back, make sure the correct connector is selected, which is most likely Twisted Pair (TP).
  4. Check that the cable connecting your broadband modem to your network adapter is properly attached and of the correct type. Note that broadband modems typically have a "crossed" connector on them, so you will need a straight cable to connect it directly to a network adapter, while you need to use a crossed cable or use an uplink port to connect it to a hub or switch.
  5. Check with your service provider whether they currently have a service outage.

6.3 Connection attempt fails with "Error 678: There was no answer."

First, you should check whether you can get any reply from your service provider with the Dial-Up Connection Setup application provided with the protocol:

If you do not want to connect to a specific Service and/or Access Concentrator, make sure the Phone number field of your dial-up connection is really completely blank.

6.4 Connection attempt fails with "Error 691: Access was denied because the user name and/or password was invalid on the domain."

If this error occurs despite using a valid user name and password, this may mean that the service provider you are connecting with negotiates a lower MTU than the one configured on your machine, which leads to this confusing error message due to this known issue. To fix this, use the MTU override option to lower the MTU to e.g. 1400 and then try connecting again. If you can successfully connect with the lower MTU, you can try increasing the MTU again to the maximum value that still allows you to connect successfully.

6.5 Connection is successfully established, but some (or all) Internet websites do not load properly

This is usually a sign of an MTU problem. You should determine the Path MTU to the problem site(s) (Note: The method described here does not work with all servers. If you get no reply at all from a server or a number below 548, you cannot determine the Path MTU to this server):

Connect, open a Command Prompt and run

ping -f -l xxxx Address

Where Address is the name or IP address of the server you have problems accessing. For xxxx, start with 1464 and lower the number until you get a reply. Then add 28 to the highest number at which you get a reply. The result is the Path MTU.

Example: You start getting replies at ping -f -l 1372 Address. The Path MTU is 1372 + 28 = 1400 bytes in this case.

Normally, the Path MTU to all servers should be 1492. However, some service providers appear to have a configuration problem which reduces the Path MTU. If you determine a Path MTU lower than 1492 to several (or all) servers on the Internet, you should enable the MTU override option and set it to the Path MTU you determined. After that setting has taken effect, all sites with a Path MTU greater than or equal to the value you set should load properly.

6.6 The "Override Maximum Transfer Unit" option does not remain checked

This option will only "stick" if you enter an MTU other than 1492. If you only check the checkbox, but leave the MTU at 1492, the protocol will recognize the default value and clear the checkbox the next time you open the properties dialog, because the MTU was not actually overridden.

6.7 The System Event Log contains "Received a PPPoE Session packet for an unknown session" warnings

This warning merely means that the protocol received a PPPoE packet it could not attribute to any of its connections and is usually not a sign of any malfunction. One possible cause of this is your service provider sending one more packets after the connection has been terminated. This can also be caused by using another PPPoE implementation on the same machine. In that case, the System Event Log may end up being flooded with these warnings. You can prevent this by disabling the Log Warnings checkbox in the protocol's Event Logging options.


7. Known Issues

This section documents known issues with the protocol.

7.1 RAS Autodial service does not work with RASPPPOE

The RAS Autodial service does not recognize the dial-up devices offered by RASPPPOE and thus will not automatically establish a connection through it. There is currently no workaround for this issue.

Background: The RAS Autodial service only recognizes dial-up devices of the types COM, ISDN, VPN and X.25. However, RASPPPOE uses a custom type, PPPoE, for its dial-up devices to avoid conflicts with existing modems, ISDN adapters, VPN software or X.25 adapters when autoconfiguring its dial-up devices without the RAS control panel.

7.2 PPP authentication fails when Access Concentrator requests a lower MTU

When the Access Concentrator being connected to requests a PPP MRU lower than the MTU configured in RASPPPOE, the PPP authentication will fail with error 691 (Access was denied because the user name and/or password was invalid on the domain.). To fix this, use the MTU override option to lower the MTU to a value less than or equal to the Access Concentrator's PPP MRU requested value.

Background: The cause of this issue is undetermined.

7.3 When a dial-up connection is made "always on", it is not properly terminated when shutting the machine down or rebooting

When you configure a PPP over Ethernet dial-up connection to be "always on", the connection will not be properly terminated when shutting the machine down or rebooting. This causes problems with service providers who take very long to detect such a dropped connection and limit the number of concurrent connections - after several reboots, you may find yourself to log on to your service provider for some time. To work around this problem, always disconnect your "always on" connection manually before rebooting.

Background: Investigation revealed that the protocol receives no indication that the system is going down. Neither the MiniportHalt(), nor the ProtocolUnbindAdapter(), nor the ProtocolPnPEvent(), nor the ProtocolStatus() handler and not even a handler registered with the NdisMRegisterAdapterShutdownHandler() are called to indicate the shutdown. Thus, it is not possible for the protocol to terminate its open connections prior to the shutdown. This is apparently a shortcoming of Windows NT.


8. Revision History


9. Contacting the author

Before contacting me, please bear in mind that you are getting this piece of software for free. You cannot expect me to spend my time providing "tech support". If you have a problem that you cannot resolve after reading above documentation thoroughly, please do the following:

  1. Check if there is updated information or a newer version of this protocol available on the RASPPPOE Home Page.
  2. Check the System Event Log for any events logged by the protocol:

Of course, developer suggestions for fixing the known issues, success stories (please mention your service provider, so that I know which ones this protocol works with) or just "thank you" notes are always welcome.

You can contact me via the e-mail address: Robert.Schlabbach@gmx.net.


*EOF*