Telnet Lesson Overview Introduction Telnet, like NSLookup, is a key tool for troubleshooting inbound and outbound Internet (SMTP) mail issues. As a Domino Server Administrator, you might consider using Telnet if you are having trouble sending or receiving Internet mail for your an entire domain or for a particular Domino server. Objectives After completing this lesson, you will be able to: • Explain two reasons to use Telnet in troubleshooting Internet routing issues • Use Telnet to connect to a server to confirm port 25 is open to receive Inbound Internet messages • Use Telnet to determine what application is listening for inbound Internet messages on port 25 • Use Telnet to send a test message to a particular user on a Domino server In this Lesson This lesson is divided into the following topics: Topic Introduction to Telnet Combining Multiple Tools The Telnet Dialog Using Windows 2000/XP Version of Telnet Exercise: Using Telnet to Troubleshoot Routing Issues Appendix: How to Use the Windows GUI version of Telnet Timing See Page 2 3 4 8 12 18 The timing of this lesson’s components is as follows: Component Lessons/Lesson Overview Exercise Total: Last Edited: 11/4/2005 Approximate Time 30 minutes 30 minutes 1 hour 1 ©IBM 2005 Introduction to Telnet Overview Telnet is a multifaceted tool that can perform many functions. Telnet is available on a variety of platforms, however, this lesson will use the Windows version. Our focus on Telnet is specific to troubleshooting SMTP Internet mail issues. In particular, you would use Telnet for the following three reasons: Reason to Use Telnet 1 2 3 Last Edited: 11/4/2005 Details To determine whether port 25 is open to receive inbound Internet mail. For a domain to receive inbound Internet mail, an SMTP server (such as a Domino server configured for SMTP) must be listening on port 25 and must be accessible from external hosts. Note: Port 25 is the wellknown TCP port for If you can establish a connection to that SMTP. server over port 25 using Telnet, you can confirm that the port is open to receive inbound mail. To identify what Although multiple applications can be application is currently running on a server, only one can be bound to bound to port 25 (for port 25. In particular, a Domino server sending and receiving configured for SMTP cannot send or receive SMTP messages). Internet mail if another application has bound to port 25. When you establish a connection to a server over Telnet, you can identify the application that is currently bound to the port. Sending a message via Telnet is a means to test whether it’s possible to send and receive a message using the commands designated for SMTP. To build and send a test Internet message to a particular SMTP server listening on port 25. 2 ©IBM 2005 Combining Multiple Tools for Testing NSLookup and Telnet – Often Used in Combination When troubleshooting SMTP Internet mail issues, Administrators frequently use NSLookup and Telnet in combination. The following scenario describes one way these tools can be used together to troubleshoot an issue. Typical Scenario: An Administrator determines that her company (978388 Co.) is not receiving any Internet mail that is sent to its domain (978388.com) by external senders. A Domino 6.5.4 server to setup and configured to receive all inbound SMTP mail for the domain. It has already been confirmed that Domino SMTP Listener task is enabled on the Server document. Troubleshooting: • The first step would be to verify the MX records for xyz.com are present in DNS using NSLookup. Typically, most will have 2 MX records listed for a given domain. The host with the lowest MX preference would be the first choice to connect to. • The next step would be to use Telnet to attempt a connection to the host with the lowest preference on port 25. If the Connection is established but the banner message displayed does not indicate a Domino 6.5.4 Server is running, another SMTP application could have this port. Results: If Domino does not have use of port 25, its ability to receive inbound Internet mail is unlikely. Changes would be needed on the local machine, so that the other SMTP application no longer binds to port 25. Once the port is free, the Domino SMTP server would able to bind to port 25 and receive inbound Internet mail as intended. Why use Telnet too? In the previous example, Telnet could be used to determine if the SMTP servers listed in the MX record is capable of receiving mail for a given domain or recipient. Telnet allows you, as the Administrator; to emulate the exact behavior for sending messages manually, it would be done as if the message was sent by an SMTP server. Last Edited: 11/4/2005 3 ©IBM 2005 The Telnet Dialog A Telnet Session is a Dialog With Telnet, you are in a dialog with a server (the host). When you enter a Telnet command, the host responds. The host’s response is either a positive response or an error. • A positive response indicates that the host recognizes and accepts the command. Positive responses begin with a numeric code in the 200’s. • An error indicates that the host either does not recognize or cannot accept the command. There are two types of errors. 1. Transient errors (temporary errors), which begin with a numeric code in the 400’s. 2. Permanent errors, which begin with a numeric code in the 500’s. RFC821 A Telnet dialog over port 25 corresponds to the RFC (Request for Comments) standards for SMTP: RFC821. For more information, refer to: http://www.ietf.org/rfc/rfc821.txt?number=821 Telnet Dialog Begins with the Connection The Telnet dialog begins when you successfully connect to the host. In most cases, the host’s initial response includes two particularly important pieces of information: • The number 220, indicating connection was established. (This information confirms for you that port 25 is open.) • The host’s application type, such as Domino, Sendmail (a UNIX-based mail program), or Microsoft Exchange. (This information tells you whether the intended application is bound to port 25.) It is important to note, however, that Administrators can customize the response a server generates. You may not always see the host’s application type. “Proper” implementations return at least the 220-response code and the date. Continued on next page Last Edited: 11/4/2005 4 ©IBM 2005 The Telnet Dialog, Continued Examples of Successful Connections Below are two examples of responses from hosts after successful connections were established via Telnet. Example 1: Response from a Domino server: 220 mailserver1.lotus.com ESMTP Service (Lotus Domino Release 7.0) ready at Wed, 19 Oct 2005 09:29:42 -0400 Example 2: Response from Sendmail: 220 mailserver100.boulder.ibm.com ESMTP Sendmail 8.12.11/8.12.11; Wed, 19 Oct 2005 07:31:25 -0600 If Connection Attempt Fails If a connection to a host cannot be established over Telnet, you will see a message such as the following: Microsoft Telnet> open wtfmail0500.lotus.com 25 Connecting To wtfmail0500.lotus.com... Could not open connection to the host, on port 25: Connect failed Possible reasons for a failed connection include the following: • The port is blocked by a firewall. • The server is down. • The server is not running the SMTP service. (For a Domino server, this means the SMTP listener task is not enabled.) • An incorrect TCP/IP port is listening on a multi-homed server. Continued on next page Last Edited: 11/4/2005 5 ©IBM 2005 The Telnet Dialog, Continued Dialog Continues with the Message Once you establish a connection to the server, the dialog continues as you build and then send the test Internet message. As you enter each command, the host responds with either a positive (250) response or an error. Again, the error may be a transient error (in the 400’s) or a permanent error (in the 500’s). A sample dialog is below: Helo mailserver100.boulder.ibm.com 250 mailserver100.boulder.ibm.com Hello [9.17.195.170], pleased to meet you. mail from:John_Sample@lotus.com 250 John_Sample@lotus.com…Sender ok recpt to:Jane_Doe@us.ibm.com 500 Command not recognized “recpt to: Jane_Doe@us.ibm.com” rcpt to:Jane_Doe@us.ibm.com 250 Jane_Doe@us.ibm.com…Recipient ok data 354 Enter mail, end with “.” on a line by itself This is a test message sent by John to Jane via Telnet. . 250 Message accepted for delivery In this dialog, most of the responses were positive, but one 500 error was returned when a command was entered incorrectly. Note: For more information on the response codes that you can see in a Telnet conversation with a host over port 25 (SMTP), refer to the following Lotus Knowledge Base document: Document 1153776, What Are the Available SMTP Reply Codes? Continued on next page Last Edited: 11/4/2005 6 ©IBM 2005 The Telnet Dialog, Continued Dialog Termination The Telnet connection remains active after the message is sent. To terminate the connection either exit Telnet using the UI or type quit (and press ENTER). For example: quit 221 mailserver100.boulder.ibm.com closing connection Note: If you do not manually terminate the connection, the server will drop the connection after the designated amount of time (usually, after 2 minutes of inactivity). Telnet Guidelines On the next page, we’ll actually connect to a host via Telnet and send a test message. First, however, consider the following guidelines for using Telnet. Do… • Turn on Local Echo so that you can see the commands you are typing. • Use the proper syntax for each command; otherwise, the host will generate a 500 error. Don’t… • Use either the Backspace or Delete key. Telnet does not recognize either key. If you mistype a command, you must retype the entire command. Using the BACKSPACE or DELETE key in an attempt to correct a mistyped Telnet command causes a 501-error code (a syntax error). In the data fields, the BACKSPACE and DELETE keys cause garbage characters, such as pipe symbols and squares. Don’t need to… Bother with the case of the Telnet commands. Any combination of upper and lower case characters is accepted. (On UNIX platforms, you may need to pay attention to the case of certain elements, such as file names.) Last Edited: 11/4/2005 7 ©IBM 2005 Using Windows 2000/XP version of Telnet Introduction Unlike previous versions of Windows, the Windows 2000/XP does not include a GUI-based version of Telnet. As a result, you must issue manual commands to perform the following steps: • • • Open the connection with the server Set local echo Disconnect from the server The procedure below lists the steps to Telnet a message to an SMTP server using a Windows 2000/XP client. Before You Begin To use the procedure below, you must know either the fully qualified domain name or the IP address for the server to which you wish to connect. Procedure – For Win2k/XP To Telnet to a Domino server over the SMTP protocol, follow these steps: Step 1 2 Action From the Windows 2000/XP task bar, select Start and then Run. In the Run dialog box, enter Telnet and click OK. Result: The following window displays: 3 Turn on Local Echo by typing the following command: set local_echo Press Enter Continued on next page Last Edited: 11/4/2005 8 ©IBM 2005 Using Windows 2000/XP version of Telnet, Continued Procedure – For Win2k/XP (continued) Step 4 5 Action Connect to the Domino server via the appropriate command. To connect using the server’s… hostname Type… IP Address Open <IPAddress> 25 Open <hostname> 25 Result: If the server is listening on port 25, the Telnet window displays a 220 connection message. Create the message using the steps below: a b Command Type helo <hostname> and press ENTER. Note: ehlo can be used to conduct the conversation in ESMTP mode. Type mail from: <your valid email address> and press ENTER. c Type rcpt to: <recipient’s Internet address> and press ENTER. d Type data and press ENTER. Description In the helo command, the host sending the command identifies itself. The command can be interpreted as saying “Hello, I am <Domain>.” This step fills in the from field of the message. The name should be a valid address so that you can receive, if necessary, a delivery failure. This step fills in the SendTo field. The name entered must be a valid Internet address. This step signals the beginning of the data fields. Continued on next page Last Edited: 11/4/2005 9 ©IBM 2005 Using Windows 2000/XP version of Telnet, Continued Procedure – For Win2k/XP (continued) Step 5 con’t Action e Command Optional: Details This step fills in the cc: field. f Type cc: <recipient> and press ENTER. Optional: g Type date: <date> and press ENTER. Optional: Type from: <> and press ENTER. h i j Type subject: <your subject> and press ENTER. Type the body of the message and press ENTER. Type a period: . and press ENTER. This step fills in the date field. This step fills in the from field. If included, it overrides the address used in the mail from specified in Step b. This step fills in the subject field. This step creates the body text of the message. This step signals the end of the body field, and the message is sent. Result: The following message displays at the bottom of the Telnet window: 250 Message accepted for delivery 6 7 To disconnect from the current host, type quit and press Enter. To close the window, click the or type exit and press Enter. Note: Other optional entries can be included within the data command. For more information, refer to RFC821: http://www.ietf.org/rfc/rfc821.txt?number=821 Last Edited: 11/4/2005 10 ©IBM 2005 Using the GUI version of Telnet on Windows 2000/XP Obtaining a GUI-Based Telnet for Win2K/XP According to Microsoft, you can copy the executable file for the GUI-based Telnet program from Windows NT 4.0 to Windows 2000. The steps to do this are listed in the table below. Step 1 2 3 4 On-Line Instructions Action Obtain a copy of the TELNET.EXE file from a Windows NT 4.0 system. Note: The file should be located in the c:\winnt\system32 folder. Make a copy of the file and rename the copy to TELNET32.EXE. Copy TELNET.EXE to the Windows 2000 system. Optional: Copy the TELNET.HLP and TELNET.CNT files from Windows NT to the folder where you copied TELNET32.EXE into Windows 2000. The steps to use the Windows NT 4.0 GUI-based version of Telnet in Windows 2000 are available online in the following Lotus Knowledge Base document: Document 1095047, The GUI Version of Telnet in Windows 95, 98, and NT Can be Used in Windows 2000 Last Edited: 11/4/2005 11 ©IBM 2005 Exercise: Using Telnet to Troubleshoot Routing Issues Overview This exercise is designed to reinforce your ability to use Telnet in troubleshooting routing issues. Timing The timing for this exercise is as follows: Component Overview Exercise Recap Total: Intended Outcome Approximate Time 1 minute 20 minutes 9 minutes 30 minutes In completing this exercise, you will demonstrate your ability to… • Explain two reasons to use Telnet in troubleshooting Internet routing issues • Use Telnet to connect to a server to confirm port 25 is open to receive Inbound Internet messages • Use Telnet to determine what application is listening for inbound Internet messages on port 25 • Use Telnet to send a test message to a particular user on a Domino server Requirements To complete this exercise, you need the following: • • • • A pen Telnet The procedure: How to Telnet Using Windows 2000/XP. The FQDN of your inbound SMTP server: _____________________ The name of a local test user to send messages to: __________ Continued on next page Last Edited: 11/4/2005 12 ©IBM 2005 Exercise: Using Telnet to Troubleshoot Routing Issues, Continued Instructions There are two parts to this exercise. • In Part 1, you will use Telnet to establish a connection to an SMTP host (a Domino server) and send a message. Along the way, you will describe why you are performing certain steps and track the responses from the server. In Part 2, you will provide short answers to a set of scenarios on troubleshooting with Telnet. Part 1 – Telnet Follow the steps in the table below and answer the corresponding questions. Step Action 1 Load Telnet and set local echo. 2 3 Answers What is the reason local echo should be enabled? Connect to your SMTP server. a. What port did you specify for SMTP? a. b. What is the numeric response returned by the server? b. c. What type of application is the server? c. Enter the Helo command. What is the response returned by the server? Continued on next page Last Edited: 11/4/2005 13 ©IBM 2005 Exercise: Using Telnet to Troubleshoot Routing Issues, Continued Part 1 – Telnet (continued) Step Action 4 Using the following commands, send a test message to one of your mail users. Answers mail from: rcpt to: data subject: 5 What is the response when the message is successfully sent? Send a second message in which you deliberately mistype one of the commands. For example, type rpt to: instead of rcpt to: a. What is the response code indicating an error? a. b. How do you correct the mistyped command? b. Continued on next page Last Edited: 11/4/2005 14 ©IBM 2005 Exercise: Using Telnet to Troubleshoot Routing Issues, Continued Part 1 – Telnet (continued) 6 Disconnect from the server. Disable the SMTP listener task on your server (tell it to quit). Now attempt to reconnect to the server via Telnet on port 25. What response do you get from the server? Part 2 – Short Answer Provide short answers to each of the following scenarios. Scenario 1 As the Administrator, you’ve attempted to configure a server, running Domino 7.0, to receive all inbound mail sent to your company’s domain (AFakeCompany.com). However, no messages sent to your domain by external senders are getting to the intended recipients. You have used NSLookup to identify that there is a single MX record in DNS for a server within that domain: smtp.AFakeCompany.com. What two things would you attempt to determine about the smtp.AFakeCompany.com server using Telnet? Your Response Continued on next page Last Edited: 11/4/2005 15 ©IBM 2005 Exercise: Using Telnet to Troubleshoot Routing Issues, Continued Scenario 2 You’ve received a report from one of your fellow Administrators, who is currently working on an SMTP mail routing issue. You attempted to assist and have used Telnet to connect to an SMTP server and sent a test message to this person. She reports that the test message arrived, but it has garbage characters (such as squares) in the message body. Do these odd characters indicate yet another problem with her SMTP configuration? What is the most likely reason for the garbage characters? Your Response Scenario 3 Your help desk reports that all Internet messages sent from your company to a key business partner (somebuspartner.com) are resulting in non-delivery notifications after a 24-hour period. The outbound SMTP server is running Domino 6.5.4. You’ve determined that all other outbound Internet messages are routing correctly. Using NSLookup, you determined that the business partner’s Internet domain has no MX records, but it does have an A record. You attempt to connect to the server listed in the A record via Telnet, but an error occurs: “Could not open a connection to inbound.somebuspartner.com.” At this point, what can you say “with certainty” is needed to fix this? What are some possible causes for this issue? Your Response Continued on next page Last Edited: 11/4/2005 16 ©IBM 2005 Exercise: Using Telnet to Troubleshoot Routing Issues, Continued Scenario 4 – (BONUS) You’ve recently switched ISP’s and now are unable to send any outbound SMTP mail. Your outbound SMTP servers are using a relay host so from the Domino prospective, your configuration has not changed. How might you verify the connection to the relay? Where is the relay defined in the Domino Directory? Is there anything you needed to do on the Domino side to accommodate the change to the new internet service provider? Your Response Results In completing this exercise, you have demonstrated your ability to… • Explain two reasons to use Telnet in troubleshooting Internet routing issues • Use Telnet to connect to a server to confirm port 25 is open to receive inbound Internet messages • Use Telnet to determine what application is listening for inbound Internet messages on port 25 • Use Telnet to send a test message to a particular user on a Domino server Last Edited: 11/4/2005 17 ©IBM 2005 Appendix: How to Use the Windows GUI version of Telnet Overview Telnet (TELNET.EXE) is a TCP/IP terminal application that is available on most Operating Systems. The procedure below describes how to use the version of Telnet that is included with Windows 95, Windows 98, and Windows NT 4.0. Before You Begin Before using the procedure below, you must know either the fully qualified domain name or the IP Address for the server to which you wish to connect via Telnet. Procedure How to Telnet To connect to an SMTP host and send a message via Telnet, follow the steps below. Step 1 2 Action From the Windows 95, 98 or NT 4.0 task bar, select Start and then Run. In the Run dialog box, enter Telnet and click OK. Result: The following Telnet window displays: Note: The Telnet executable can be launched a number of ways. If you prefer, you can launch Telnet from a DOS prompt or configure a shortcut for the Windows desktop. Continued on next page Last Edited: 11/4/2005 18 ©IBM 2005 Appendix: How to Use the Windows GUI version of Telnet, Continued Procedure - How to Telnet (continued) Step 3 Action Turn on Local Echo. To do this: a. From the menu, select Terminal, Preferences. b. Under Terminal Options, select Local Echo. c. Click OK. 4 From the menu, select Connect, Remote System. Continued on next page Last Edited: 11/4/2005 19 ©IBM 2005 Appendix: How to Use the Windows GUI version of Telnet, Continued Procedure - How to Telnet (continued) Step 5 Action In the Connect dialog box: a. Enter the appropriate Host Name or IP Address. b. Change the port from Telnet to the appropriate number (such as 25 for SMTP). c. Leave TermType at the default (vt100). Result: The Connect dialog box resembles the following: 6 Click Connect. Result: If the server is listening on port 25, the Telnet window displays the 220 response and additional information, such as the following: Continued on next page Last Edited: 11/4/2005 20 ©IBM 2005 Appendix: How to Use the Windows GUI version of Telnet, Continued Procedure - How to Telnet (continued) Step 7 Action Create the test message using the steps below: a b Command Type helo <hostname> and press ENTER. Note: ehlo can be used to conduct the conversation in ESMTP mode. Type mail from: <your valid email address> and press ENTER. c Type rcpt to: <recipient’s Internet address> and press ENTER. d Type data and press ENTER. e Optional: f Type cc: <recipient> and press ENTER. Optional: g Type date: <date> and press ENTER. Optional: Details In the helo command, the host sending the command identifies itself. The command can be interpreted as saying “Hello, I am <Domain>.” This step fills in the from field of the message. The name should be a valid address so that you can receive, if necessary, a delivery failure. This step fills in the SendTo field. The name entered must be a valid Internet address. This step signals the beginning of the data fields. This step fills in the cc: field. This step fills in the date field. This step fills in the from field. If included, it Type from: <name> and press overrides the address used ENTER. in the mail from specified in Step b. Continued on next page Last Edited: 11/4/2005 21 ©IBM 2005 Appendix: How to Use the Windows GUI version of Telnet, Continued Procedure - How to Telnet (continued) Step 7 con’t Action Command h Type subject: <your subject> and press ENTER. i Type the body of the message and press ENTER. j Type a period: . and press ENTER. 8 9 10 Details This step fills in the subject field. This step creates the body text of the message. This step signals the end of the body field, and the message is sent. Result: The following message displays at the bottom of the Telnet window: 250 Message accepted for delivery To disconnect from the current host, type quit and press ENTER. Alternately, you can select Connect and then Disconnect from the Telnet menu. At this point, you can connect to another host if you wish; or, to exit Telnet, proceed to Step 10. To exit from Telnet, either select Connect, Exit or click the x to close the window. Note: If, at any point during the conversation you would like to start sending a new message, enter the rset command. (Type rset and then press ENTER.) The rset command brings the session back to the mail from command, at which point you can start again. You do not need to repeat the helo command because the session is already established with the host. Last Edited: 11/4/2005 22 ©IBM 2005