CCIE Practical Studies: Security (CCIE Self-Study) : Dmitry Bokotey Andrew G. Mason Raymond Morrow
CCIE Practical Studies: Security (CCIE Self-Study) : Dmitry Bokotey Andrew G. Mason Raymond Morrow
Dmitry Bokotey
Andrew G. Mason
Raymond Morrow
Cisco Press
Cisco Press
201 West 103rd Street
Indianapolis, IN 46290 USA
CCIE.book Page ii Monday, May 12, 2003 8:29 AM
ii
Trademark Acknowledgments
All terms mentioned in this book that are known to be trademarks or service marks have been appropriately capitalized.
Cisco Press or Cisco Systems, Inc., cannot attest to the accuracy of this information. Use of a term in this book should
not be regarded as affecting the validity of any trademark or service mark.
Feedback Information
At Cisco Press, our goal is to create in-depth technical books of the highest quality and value. Each book is crafted with
care and precision, undergoing rigorous development that involves the unique expertise of members of the professional
technical community.
Reader feedback is a natural continuation of this process. If you have any comments regarding how we could
improve the quality of this book, or otherwise alter it to better suit your needs, you can contact us through e-mail at
feedback@ciscopress.com. Please make sure to include the book title and ISBN in your message.
We greatly appreciate your assistance.
CCIE.book Page iii Monday, May 12, 2003 8:29 AM
iii
iv
Dedications
Dmitry Bokotey: To my wife, Alina, for her never-ending patience and support, for being there from the start, and for
never doubting any of my “silly” ideas.
To my daughter, Alyssa, for bringing light and meaning to my existence every day.
Andrew Mason: I would like to dedicate this book to my family. Helen, my beautiful wife, has yet again endured the
late nights and busy weekends with nothing but support and belief in me. My two wonderful children, Rosie and Jack,
keep me going and constantly remind me just what a lucky guy I am.
Raymond Morrow: I would like to dedicate this book to the woman who means the world to me and whose smile can
always brighten my day and to the best children a parent could possibly ask for.
CCIE.book Page vi Monday, May 12, 2003 8:29 AM
vi
Acknowledgments
Dmitry Bokotey: This book is a product of collective effort. I would like to thank my coauthors, Andrew Mason and
Raymond Morrow, for introducing me to the world of publishing, for their willingness to synchronize and compromise,
and for their professionalism and knowledge. I’m forever grateful to my wife, Alina, for her help with writing and editing
my chapters.
I would also like to thank the team at Cisco Press, especially Brett Bartow, for believing in me and keeping all of us on
track; all the technical reviewers; and Dayna Isley for their invaluable input in making this a better book.
Big thanks to the Cisco Systems CCIE department, especially Kathe Saccenti, who helped me become a better engineer.
Also, I’m thankful for my Cisco Systems colleagues’ and managers–Rosa Elena Lorenzana and Sanjay Pal–support and
respect.
Finally, I want to thank my parents for letting me spend days and nights beside my computer, no matter how pointless
they thought it was.
Andrew Mason: This book was written by me and two authors whom I have never met and who live on the other side of
the world. We immediately formed a team and worked together on this project. I would like to thank them both, Dmitry
and Raymond, for their immaculate and professional work on this book. It has been a pleasure.
I would like to thank Brett Bartow and Dayna Isley of Cisco Press for all their help and guidance. They add so much
value to the whole process and ease the burden on the authors.
Thanks also go out to Max Leitch and all the staff at Boxing Orange for their support and help along the way.
Raymond Morrow: Writing this book is the completion of a lifelong dream. Without the support I have received from
my family, friends, coauthors, and the dedicated staff at Cisco Press, I would never have been able to make this dream a
reality. Without the encouragement of my wife, Liz, and the understanding of my children as to why I spent so much
time in front of my computer, this book would have been only half-completed.
This type of book, as well as the scope of the subject, would be practically impossible for one person to write, so I need
to thank my coauthors, Dmitry Bokotey and Andrew Mason, for their willingness to compromise and collaborate on
what has resulted in a project we can all be proud of. Of course, someone has to keep us all on track and in the proper
direction, so a big thanks goes out to Brett Bartow, who knows when to give in and when not to, and to Dayna Isley
for her wonderful suggestions, without which this book would have been one big jumble of words from three separate
people.
CCIE.book Page vii Monday, May 12, 2003 8:29 AM
vii
Contents at a Glance
Foreword xxvii
Introduction xxviii
Part II Connectivity 29
Chapter 15 Basic Cisco IOS Software and Catalyst 3550 Series Security 441
CCIE.book Page viii Monday, May 12, 2003 8:29 AM
viii
Chapter 24 IDS on the Cisco PIX Firewall and IOS Software 859
Table of Contents
Foreword xxvii
Introduction xxviii
Part II Connectivity 29
LMI Timers 93
LMI Autosense 95
Network-to-Network Interface 95
User-Network Interface 96
Congestion-Control Mechanisms 96
Frame Relay Discard Eligibility 98
DLCI Priority Levels 98
Frame Relay Error Checking 99
Frame Relay ForeSight 99
Frame Relay Congestion Notification Methods 100
Frame Relay End-to-End Keepalives 100
Configuring Frame Relay 102
Case Study 5-1: Configuring Frame Relay 102
Case Study 5-2: Configuring Frame Relay SVCs 109
Case Study 5-3: Frame Relay Traffic Shaping 114
Creating a Broadcast Queue for an Interface 119
Transparent Bridging and Frame Relay 120
Configuring a Backup Interface for a Subinterface 120
TCP/IP Header Compression 121
Configuring an Individual IP Map for TCP/IP Header Compression 121
Configuring an Interface for TCP/IP Header Compression 122
Disabling TCP/IP Header Compression 122
Troubleshooting Frame Relay Connectivity 122
The show frame-relay lmi Command 122
The show frame-relay pvc Command 123
The show frame-relay map Command 125
The debug frame-relay lmi Command 125
Summary 126
Review Questions 127
FAQs 128
Chapter 15 Basic Cisco IOS Software and Catalyst 3550 Series Security 441
Cisco IOS Software Security 441
Network Time Protocol Security 441
HTTP Server Security 442
Password Management 442
xviii
Chapter 24 IDS on the Cisco PIX Firewall and IOS Software 859
Cisco IOS Software Intrusion Detection 859
Cisco PIX Firewall Intrusion Detection 860
Cisco IOS Software and PIX IDS Signatures 861
Configuring Cisco IDS 867
Case Study 24-1: Configuring the Cisco IOS Software IDS 867
Case Study 24-2: Configuring the Cisco Secure PIX Firewall IDS 870
Summary 874
Review Questions 874
FAQs 876
xxvii
Foreword
We are beyond the revolution that can be called “networking.” Most employees have become sophisticated in applications
that deploy networking, and words that link actions with “i” or “e” are assumed to be tools that are done in conjunction
with some type of Internet function. Those who ride on the wake of this movement as networking specialists are con-
fronted with fine-tuning and, in some cases, reengineering network resources, with greater attention paid to security. Now
that the networking industry has achieved tremendous popularity, we perceive security breaches as having the potential
to impact huge numbers of users. The effort to secure networks now far outweighs any perceived trade-offs in network-
ing efficiency. A networking person who possesses the in-depth knowledge and expertise to implement security practices is
highly desirable.
It makes sense that the CCIE Program would follow suit and add a CCIE-level certification to help employers identify
and qualify this type of expertise. However, the idea of a Security Track for CCIE is not new. Rather, it has been the
opinion of the CCIE department that this direction is long overdue. We have many people inside and outside Cisco
Systems to thank for helping us make this track a reality.
The CCIE Security Track started to emerge almost three years ago with the introduction of the CCIE Security written
exam. The number of folks attempting this test has steadily grown to the point where it is second in popularity only
to the Routing and Switching written exam. As with all CCIE labs, it took many months of careful watch, survey, and
rewrites to position a lab that would take the practices most commonly deployed by industry experts and our TAC
engineers and build a practical addition to the already-popular written test. It is important to remember that although
the written exam is required to qualify a candidate for a CCIE lab, the lab tests for the skills required to build a lab
infrastructure before deploying the more-security-specific functions. Because the CCIE program makes every attempt
to meet what employers seek in an “internetworking expert,” those pursuing a CCIE Security should bear this in mind
in their preparation for the CCIE Security Track.
This book is geared toward networking professionals who intend to include practice in their study toward the CCIE
Security. From my years as a proctor, I cannot emphasize enough the importance of mastering the concepts behind
deploying functions in any network. It is never enough to prepare for a lab without the hands-on practice that helps you
drill deep in pursuit of that level of understanding. The more scenarios a candidate can access, the more easily he or she
can interpret lab problems. Working through lab activities and practicing with show and debug commands will better
prepare the exam candidate to implement and troubleshoot solutions efficiently and successfully.
Anyone who can combine reading with hands-on practice has a very good chance of obtaining his or her CCIE certification.
But it is important to remember that obtaining a CCIE certification should not be the only goal. The CCIE program strives
to identify a level of expertise that is recognized by the networking industry. The ability to achieve expertise is marked
not only by a badge from Cisco. Ultimately, it is the knowledge of the technology and the ability to perform successful
secure network implementations by subscribing to a higher level of preparation and skill. That is the final reward for taking
the road to CCIE Security lab preparation.
Kathe Saccenti, CCIE #2099
Life Cycle Manager, CCIE Routing/Switching and co-developer of the CCIE Security exam
Cisco Systems, Inc.
CCIE.book Page xxviii Monday, May 12, 2003 8:29 AM
xxviii
Introduction
In today’s ever-changing world of networking technology, as our dependence on this technology to accomplish our
everyday tasks increases, securing your network has never been as important as it is right now. Through the use of hard-
ware and software such as firewalls, virtual private networks (VPNs), and Intrusion Detection Systems (IDSs), many
corporations are stepping up to the challenges presented by “script kiddies” and “black hat” hackers in today’s electronic
world and are searching for individuals they can trust to secure their electronic environment.
Cisco Systems, Inc., has developed a specialization track for its popular Cisco Certified Internetworking Expert (CCIE)
program specifically designed with the security professional in mind. The CCIE Security track is a prestigious certifica-
tion designed to identify security professionals who have demonstrated their unique abilities in the continuously changing
world of network security. CCIE Security candidates are tested through a written qualification examination of common
and obscure security best practices and a demanding one-day hands-on lab exam that requires them to demonstrate their
ability to put the theory of security to work in a network environment.
This book is designed to help prepare CCIE Security candidates for the requirements of the one-day lab exam by providing
many practice labs. These practice labs are also designed to help security professionals in their everyday job requirements.
Because the CCIE Security exam includes routing and switching coverage as well as security concepts and practices,
this book begins with a review of networking fundamentals and then builds on this foundation with the more-advanced
requirements of modern technology.
Audience
CCIE Practical Studies: Security is intended for network and security administrators and engineers who are studying for
the CCIE Security lab examination.
The secondary audience for this book could be other technical staff in the industry who are interested in learning how to
configure a specific security technology and who are looking for clear examples of how to achieve this.
This book is intended to help you measure the technical competency required to sit and pass the CCIE Security lab
examination. The content in this book assumes that you have passed the CCIE Security written examination and are
preparing for the CCIE Security lab examination. If you are preparing for the written examination, it is advisable to refer
to certification-related books for the Cisco Certified Network Associate (CCNA) and the Cisco Certified Security Pro-
fessional (CCSP) to cover the more fundamental concepts of the technologies.
Book Features
This book is primarily designed to help the CCIE candidate prepare for the CCIE Security lab. It offers an organized,
step-by-step build-out of a complete security lab environment for you to complete in the final chapter at your own pace.
In each chapter, you will find Case Studies and Lessons in which you practice the techniques and methodologies neces-
sary to complete the final security lab. Case Studies usually involve topologies that consist of more than one device.
Although the Case Studies are designed to enforce the chapter’s topics, they involve all the required configurations, such
as IP addressing and routing protocols, to make the scenario work in a networking environment. Lessons are used in
place of Case Studies when a Case Study is unnecessary or is impossible to provide. These Case Studies and Lessons
are presented in a way that tests your ability to solve and complete the process before the answers are revealed. It is
strongly advised that you work through all the Case Studies and Lessons, because each builds on the previous steps. The
final lab results in a complete network security solution.
CCIE.book Page xxix Monday, May 12, 2003 8:29 AM
xxix
This book focuses on the configuration skills necessary to configure network and security technologies at a level similar
to what you will find on the CCIE Security lab examination. The book briefly reviews the theory behind each technology,
but this book should not replace detailed reference books that are specific to each technology.
Each chapter ends with a section of review questions that help you assess whether you are ready to move on to the next
chapter. Each chapter also has a FAQ section that gives you a glimpse of where the material might fit into your network-
ing environment.
xxx
Router Switch
PIX Firewall
Multilayer Switch ATM Switch
Content Switch
Hub NetRanger
ISDN/Frame
Cisco 7500 Bridge Intrusion Detection
Relay switch
Route/Switch Series Router System
Processor
CiscoSecure
Local Director Access IP/TV Cisco
Scanner Cisco
Server Broadcast Directory Server
CallManager
Server
What Is Covered
The book is organized into 26 chapters and 6 appendixes:
• Chapter 1, “The CCIE Security Program”—This chapter provides an overview of the CCIE certification
program, with special emphasis on the Security track.
• Chapter 2, “Building a CCIE Mind-Set”—This chapter covers the attitude and psychology that are required to
start the CCIE studies. This chapter also covers motivation and the importance of a structured study plan. This is
something that is always overlooked in other books and something that a lot of people find challenging.
CCIE.book Page xxxi Monday, May 12, 2003 8:29 AM
xxxi
• Chapter 3, “Building the Test Laboratory”—This chapter covers the required lab equipment for the CCIE
Security exam. It covers the required routers, switches, and security devices. It also outlines the best equipment
to use and ways to reduce the lab’s cost. The lab you build at this point is used throughout the book.
• Chapter 4, “Layer 2 and Layer 3 Switching and LAN Connectivity”—This chapter looks at the configuration
of the Catalyst 3550 switch. It also covers addressing virtual LANs (VLANs) and applying the correct IP addresses
to the LAN interfaces on the lab routers.
• Chapter 5, “Frame Relay Connectivity”—This chapter looks at the configuration of Frame Relay and the aspects
that relate to the CCIE Security lab.
• Chapter 6, “ISDN Connectivity”—This chapter looks at the configuration of ISDN. It covers the basic
configuration and then focuses on security aspects such as authentication and callback.
• Chapter 7, “ATM Connectivity”—This chapter looks at the configuration of ATM. ATM concepts are covered,
as well as the configuration steps necessary to configure classical IP over ATM.
• Chapter 8, “RIP”—This chapter provides a brief overview of RIP. You will build some configuration examples
showing basic RIP and then add associated security features such as authentication.
• Chapter 9, “EIGRP”—This chapter provides a brief overview of EIGRP. You configure simple EIGRP, configure
EIGRP options, and troubleshoot your EIGRP configuration.
• Chapter 10, “OSPF”—This chapter provides a brief overview of OSPF. You will build some configuration
examples showing basic OSPF and then add the associated security features.
• Chapter 11, “IS-IS”—This chapter provides a brief overview of IS-IS and examples of configuring, monitoring,
and debugging IS-IS.
• Chapter 12, “BGP”—This chapter provides a brief overview of BGP and includes configuration examples
showing basic BGP and associated security features.
• Chapter 13, “Redistribution”—This chapter provides an overview of redistribution and shows scenario-based
examples of various redistribution tasks.
• Chapter 14, “Security Primer”—This chapter provides an overview of security technologies. It includes an
overview of Cisco IOS security and technologies such as VPNs, AAA, and IDS.
• Chapter 15, “Basic Cisco IOS Software and Catalyst 3550 Series Security”—This chapter covers basic security
such as password management, access lists, and Secure Shell (SSH).
• Chapter 16, “Access Control Lists”—This chapter looks at the options available with access lists, including lock
and key, reflexive ACLs, and extended ACLs.
• Chapter 17, “IP Services”—This chapter looks at services offered by IP, such as configuring the Director
Response Protocol (DRP) server agent, logging, configuring Hot Standby Router Protocol (HSRP), and IP
accounting.
• Chapter 18, “AAA Services”—This chapter covers the configuration of AAA services. It looks at configuring
the RADIUS and TACACS+ protocols.
• Chapter 19, “Virtual Private Networks”—This chapter covers VPNs. It mainly focuses on IPSec and gives
examples of both the PIX and IOS routers.
CCIE.book Page xxxii Monday, May 12, 2003 8:29 AM
xxxii
• Chapter 20, “Advanced Virtual Private Networks”—This chapter covers Dynamic Multipoint VPNs
(DMVPNs). It looks at multipoint GRE, IPSec profiles, dynamic address spoke routers, and dynamic tunnel
creation between the hub and spoke routers.
• Chapter 21, “Virtual Private Dialup Networks”—This chapter covers the basics and configuration of VPDNs,
including configuring VPDNs with authentication and configuring the default VPDN group template.
• Chapter 22, “Cisco IOS Firewall”—This chapter covers the Cisco IOS Firewall, along with configuring TCP
intercept, Context-Based Access Control (CBAC), and Port-to-Application Mapping (PAM).
• Chapter 23, “Cisco PIX Firewall”—This chapter covers configuring and monitoring Cisco PIX Firewalls.
• Chapter 24, “IDS on the Cisco PIX Firewall and IOS Software”—This chapter looks at PIX and IOS IDS—
when to implement them and the drawbacks of each.
• Chapter 25, “Internet Service Provider Security Services”—This chapter covers security aspects pertaining to
the service provider industry, including techniques for preventing denial-of-service (DoS) attacks and configuring
L2VPN.
• Chapter 26, “Sample Lab Scenarios”—Eight sample lab scenarios are provided in this chapter. These scenarios
are based on technologies used throughout the book. These scenarios emulate the type of scenarios you can expect
to find on the CCIE Security lab exam.
• Appendix A, “Basic UNIX Security”—This appendix covers basic UNIX security and the commands you might
require on the CCIE Security lab exam.
• Appendix B, “Basic Windows Security”—This appendix covers basic Windows security and the technologies
you might need to know for the CCIE Security lab exam.
• Appendix C, “ISDN Error Codes and Debugging Reference”—This informative appendix provides the ISDN
error codes you can use as a reference when debugging ISDN problems.
• Appendix D, “Password Recovery on Cisco IOS, CatalystOS, and PIX”—Password recovery is a very important
skill to have. This appendix covers the various password-recovery methods used on Cisco IOS, CatalystOS, and
the PIX Firewall.
• Appendix E, “Security-Related RFCs and Publications”—This appendix covers security-related RFCs and
publications that can help you in your studies and ambitions to become a fully qualified Security CCIE.
• Appendix F, “Answers to the Review Questions”—This appendix includes the answers to the review questions
that appear at the end of each chapter.
CCIE.book Page xxxiii Monday, May 12, 2003 8:29 AM
CCIE.book Page 2 Monday, May 12, 2003 8:29 AM
CCIE.book Page 3 Monday, May 12, 2003 8:29 AM
PA R T
I
The CCIE Program and Your
Lab Environment
Chapter 1 The CCIE Security Program
CHAPTER 1
headlines, partly due to the fear factor and the obvious massive cost to industry. This situation
has led to the need for highly qualified security engineers.
The CCIE Security program is a relatively new CCIE qualification that has been offered since
early 2001. Many people consider it an ideal “second CCIE” to undertake after the most
common Routing and Switching CCIE, although more and more people are focusing solely
on the Security CCIE.
The CCIE Security exam focuses on TCP/IP, differing from the multiprotocol Routing and
Switching exam. This makes it an ideal choice for students who are newer to the field of
internetworking. They do not have to learn about protocols they might never use, because these
protocols are in worldwide decline due to the adoption of newer, more efficient technologies.
You are tested on IP, its inherent security, and its routing protocols, as well as other IP-based
security devices such as firewalls, VPNs, and Intrusion Detection Systems.
The CCIE Security exam also delves into Windows and UNIX operating system security.
The IP sections of the CCIE Security exam have distinct similarities to the CCIE Routing and
Switching exam. You have to attain an expert level on IP routing issues for the CCIE Security
exam in the same way you have to for the CCIE Routing and Switching exam. There are no
other desktop protocols apart from TCP/IP on the CCIE Security exam. You only have to learn
about TCP/IP and the routing aspects and protocols related to it.
The obvious addition to the CCIE Security exam is the extensive focus on IP security-related
topics. The exam covers firewalls, VPNs, and Intrusion Detection Systems. It also has more
emphasis on the security configuration of base-level Cisco IOS Software and routing protocols.
The next section lists the security protocols covered on the CCIE Security exam.
To pass the CCIE Security exam, you have to pass a 100-question computer-delivered qualifi-
cation test and a one-day lab exam. It is the one-day lab exam that really separates the CCIE
from all other vendor-based certifications.
Qualification Exam
The CCIE Security qualification exam consists of 100 questions covering a wide range of
topics. The exam has to be completed within 120 minutes.
Cisco has produced a blueprint for the CCIE Security qualification exam that outlines areas of
study. The exam is based on potential questions from the eight sections on the blueprint, which
are as follows:
1 Security Protocols
2 Operating Systems
3 Application Protocols
4 General Networking
CCIE.book Page 7 Monday, May 12, 2003 8:29 AM
5 Security Technologies
7 Security General
8 Cisco General
These main sections are broken down into more detail, as described next. It is important to study
every topic mentioned in the blueprint when preparing to take the CCIE Security qualification
exam. Remember to periodically check Cisco’s website (www.cisco.com/en/US/learning/ or
www.cisco.com/warp/public/625/ccie/) to see if any changes have been made to this blueprint:
1 Security Protocols
• UNIX
• Windows (NT/95/98/2000)
3 Application Protocols
• Networking Basics
• TCP/IP
• Switching and Bridging (including VLANs, Spanning Tree, and so on)
• Routed Protocols
• Routing Protocols (including RIP, EIGRP, OSPF, and BGP)
• Point-to-Point Protocol (PPP)
• IP Multicast
• Integrated Services Digital Network (ISDN)
• Async
• Access Devices (such as the Cisco AS 5300 series)
5 Security Technologies
• Concepts
• Packet Filtering
• Proxies
• Port Address Translation (PAT)
• Network Address Translation (NAT)
• Firewalls
• Active Audit
• Content Filters
• Public Key Infrastructure (PKI)
• Authentication Technologies
• Virtual Private Networks (VPNs)
6 Cisco Security Applications
7 Security General
• Policies
• Standards Bodies
• Incident Response Teams
• Vulnerability Discussions
• Attacks and Common Exploits
• Intrusion Detection
8 Cisco General
• IOS Specifics
The CCIE Security qualification exam is delivered by either Prometric or VUE. You
can schedule the exam online at either www.2test.com or www.vue.com. The code for
the exam is 350-018. Visit Cisco’s website to learn more about registering for exams:
www.cisco.com/en/US/learning/le3/le11/learning_certification_resources_home.html.
After you have passed the qualification exam, you can schedule your lab exam. You have
18 months after passing the CCIE Security qualification exam to schedule and sit for the lab
exam. If you do not take the lab exam in this time period, you must retake the CCIE Security
qualification exam.
Lab Exam
The CCIE lab exam was traditionally a two-day lab held at locations throughout the world. On
October 1, 2001, Cisco changed the format to a new one-day lab after extensive research into
how the CCIE was delivered and the industry’s changing needs.
In the one-day CCIE Security lab exam, you are presented with a complex design to implement
from the physical layer up. You are not required to configure any end-user systems, but you are
responsible for any device residing in the internetwork, including routers, switches, and fire-
walls. Network specifics, point values, and testing criteria used to assess the correctness of the
individual configurations are provided.
Each configuration scenario and problem has a preassigned point value. You must obtain a
minimum mark of 80% to pass.
The CCIE lab exam is what the CCIE is all about. Over the years there have been many articles
and reports on the level of knowledge, skill, and determination required to get through the CCIE
lab exam. The pass mark is still very low, and the number of people who pass on their first
attempt is also very low. It is an unusual exam because it is hands-on and timed, and it places
you under an enormous amount of pressure. Knowing the technical aspects is only 80% of the
battle. You must also have a strong positive mental attitude and be able to relax under pressure.
Many CCIEs fail the lab exam due to little mistakes that escalate into major problems that then
CCIE.book Page 10 Monday, May 12, 2003 8:29 AM
lead to a failure in one section of the lab. Because the lab is fairly progressive, if you fail to get
the Layer 2 issues working, you cannot configure the Layer 3 aspects, and you are headed for
certain failure.
Luckily, Cisco produces a list of lab equipment, services, and applications covered on the lab.
You should use these to build your own test lab, as described in more detail in Chapter 3,
“Building the Test Laboratory.”
Use the following lab equipment, services, and applications list provided by Cisco to practice
for the lab exam:
• 2600 series routers
• 3600 series routers
• Catalyst 3550 series switches
• PIX running PIX software version 6.1
• Certificate Authority Support
• Cisco Secure Access Control System
• Cisco Secure Intrusion Detection System
The focus of the Security lab exam is configuring routers and switches, not servers. Because of
this, some of the services and applications might be preconfigured. Other services and applica-
tions not listed here might be provided fully configured with a task in which you interact with
theses services and applications.
Summary
This opening chapter looked at the development of the CCIE Security exam and what you need
to obtain this prestigious certification. This chapter started by covering the CCIE program in
general and then looked at the CCIE Security exam. You then learned about the qualification
exam and lab exam requirements, including the Security blueprint that you can refer to for both
the qualification and lab exams. This chapter also provided a list of the lab equipment, services,
and applications you need for the lab exam.
The best resource for up-to-date information about the Security CCIE exam or the CCIE
program in general is the CCIE home page, which you can find at www.cisco.com/go/ccie.
CCIE.book Page 11 Monday, May 12, 2003 8:29 AM
CCIE.book Page 12 Monday, May 12, 2003 8:29 AM
CHAPTER 2
It is fair to state that the written portion of the CCIE Security exam is considerably easier than
the lab portion of the exam.
To pass the CCIE Security lab exam, the most important thing you must do is get as much
hands-on experience configuring Cisco routers, switches, and security devices as possible.
The importance of hands-on practice for the lab exam cannot be stressed enough.
Chapter 1 covered the hardware equipment list that is used for the CCIE Security lab exam. It
is important to obtain a study lab and prepare for the lab exam by getting as much hands-on
practice as possible. This topic is covered in depth in Chapter 3, “Building the Test Laboratory.”
• Review and take notes—One excellent way to study is to take notes throughout your
studying. These notes should focus on the topics you are covering, and they should be a
synopsis of your thoughts on the subject matter. If there are areas you are weak in, be sure
to write down your findings after you have mastered the areas. You can use these notes
throughout your studying.
• Get a study partner—It is excellent if you can team up with a colleague or another
person in your area who is also studying for the CCIE Security exam. You can work
through solutions together and bounce ideas off each other. You can pool equipment to
build a better study lab. Also, your study partner might understand some areas better than
you do and might be able to coach you in these areas.
This is by no means an exhaustive list of study habits, but they are all suggestions that make
your study for the CCIE Security exam more focused.
already know. You will be able to remember new material better if you can link it to
something that’s already meaningful to you. Here are some techniques:
— Chunking—Chunking can be described as breaking up complicated lists of
information into smaller “chunks” that are easier to remember. For example,
suppose you wanted to remember the colors in the visible spectrum—red, orange,
yellow, green, blue, indigo, violet; you would have to memorize seven “chunks”
of information in order. But if you take the first letter of each color, you can spell
the name “Roy G. Biv” and reduce the information one “chunk.”
— Mnemonics—Any memory-assisting technique that helps you associate new
information with something familiar is a mnemonic. For example, to remember
a formula or equation, you could use letters of the alphabet to represent certain
numbers. Then you can change an abstract formula into a more meaningful
word or phrase so you can remember it better. Sound-alike associations can be
very effective too, especially when you’re trying to learn a new language. The
key is to create your own links; then you won’t forget them. For example, to
remember the OSI layers, you can use the phrase “All people seem to need data
processing” to remember the seven layers. The first letters of the words in the
phrase are the same as the first letters in the OSI layer—application, presentation,
session, transport, network, data link, physical.
• “I guess I understand it.”—The best way to check if you understand a concept is to test
yourself. Make up questions about key sections in your notes or reading. Examine the
relationships between concepts and sections. Often, by simply changing section headings,
you can generate many effective questions.
• “There’s too much to remember.”—You recall information better if it is represented in
an organized framework that makes retrieval more systematic. Many techniques can help
you organize new information:
— Write chapter outlines or summaries; emphasize relationships between sections.
— Group information into categories or hierarchies where possible.
— Draw up a matrix, or information map, to organize and interrelate material. For
example, if you were trying to understand the causes of World War I, you could
make a chart listing all the major countries involved across the top, and then list
the important issues and events down the side. Next, in the boxes in between,
you could describe the impact each issue had on each country to help you
understand these complex historical developments.
• “I knew it a minute ago.”—After reading a section, try to recall the information
contained in it. Try answering the questions you made up for that section. If you cannot
recall enough, reread the portions you had trouble remembering. The more time you spend
studying, the more you tend to recall. Even after the point at which you perfectly recall
CCIE.book Page 18 Monday, May 12, 2003 8:29 AM
information, further study makes the material less likely to be forgotten entirely. In other
words, you can’t overstudy. However, how you organize and integrate new information is
still more important than how much time you spend studying.
• “I like to study in bed.”—Recall is better when your study context (your physical
location, as well as your mental, emotional, and physical state) are similar to the test
context. The greater the similarity between the study setting and the test setting, the
greater the likelihood that during the test you will recall the material you studied. Bed
is not the best place to study.
• “Cramming before a test helps me keep the topics fresh in my mind.”—Start studying
now. Keep studying as you go along. Begin with an hour or two a day a few months before
the exam, and then increase your study time as the exam approaches. Your recall increases
as your study time gets spread out over time.
• “I’m going to stay up all night until I understand this.”—Avoid mental exhaustion.
Take short breaks often when studying. Before the test, have a rested mind. When you take
a study break, and just before you go to sleep at night, don’t think about academics. Relax
and unwind, mentally and physically. Otherwise, your break won’t refresh you, and you’ll
find yourself lying awake at night. It’s more important than ever to take care of yourself
before an exam! Eat well, sleep, and get enough exercise. A healthy brain retains more
information and also functions better.
Summary 19
Summary
This chapter looked at what you must do to achieve the CCIE Security certification. The CCIE
is one of the most prestigious networking qualifications, and it does not come easy. The lab
exam is renowned as being a tough exam to pass with very low success rates, especially on the
first attempt.
This chapter started by looking at what it takes to become a CCIE, including the qualification
exam and the feared lab exam. You then looked into developing proper study habits for the lab
exam. This section covered good study habits and also common study traps.
The CCIE Security exam includes configuration and troubleshooting. The final section of this
chapter looked at how to attain configuration and troubleshooting knowledge through real-
world on-the-job experience as opposed to just gaining experience from lab practice.
In closing, as stated throughout this chapter, the CCIE Security is a very tough exam to study
for. The breadth of material that you have to master is very daunting and can put a lot of people
off studying for the exam. If you are starting out on the CCIE Security journey, you should set
out a game plan with attainable short-term goals. One excellent way to achieve this is to go
through the Cisco Career Certifications, such as the CCNA and CCNP, and then move on to the
CCSP, which covers much of the material that is on the CCIE Security blueprint.
CCIE.book Page 20 Monday, May 12, 2003 8:29 AM
CHAPTER 3
Remote Lab
The alternative to building a costly home lab is to use a remote lab. A remote lab is a lab full of
the required Cisco equipment to study for the CCIE Security lab exam that is located on the
premises of the company that is offering the remote lab service.
Remote lab offerings can be a great way to get hands-on experience for the CCIE Security lab
exam. Various companies offer time on their lab equipment for a fee. The amount of lab gear,
the topology and features, the lab exercises, and of course the cost are all part of your decision
about whether these labs are right for you.
The features of the lab pods vary between remote lab offerings. A typical remote lab gives you
some level of access to the devices in the lab. All labs provide simple console access to routers
and switches. Some offer PCs, with the ability to remotely control the PCs over the Internet,
even allowing you to boot them remotely. Power management is also important, in case you
need to recover passwords, or if the OS on the PC gets the “blue screen of death.” Often, all
devices are cabled to the same LAN switch, so with configuration, you can form any LAN
topology you need. In some cases, a router might be included in the pod for the purpose of
acting as a Frame Relay switch; in other cases, a separate router, not controlled by the user, is
cabled and configured as a Frame Relay switch. The real goal of the remote lab is to give you
total control of everything that can be done without moving a cable.
A remote lab pod helps, but you need some lab exercises to perform on the pods. Some remote
labs offer CCIE Security lab exercises as part of the rental fee. Others do not let you simply buy
time on the lab. You buy a lab exercise, and you get the amount of time that the remote lab
company thinks you need to work on the lab. In other cases, you can just buy lab time and
perform any of the labs offered by the remote lab company while working at your own pace.
Which should you use—a home lab or a remote lab?
Well, you could actually benefit from both. The home lab has some obvious advantages. How-
ever, remote labs tend to have a more complete set of devices. If you can afford to duplicate the
lab pods in this book in your home lab, that would be better than using remote labs. Short of
duplicating the lab topology in this book, it makes sense to do the core practice on your home
lab and get specific practice with labs that require a larger topology on remote labs.
Routers
Routers are the basic requirement for the CCIE Security lab. Although you should be looking
for at least seven routers, five or six with enough interfaces should be enough to let you work
through some lab scenarios.
Ideally, you should look for a mix of 2600 and 3600 routers. These routers are Cisco’s current
product line. They support all the new technologies, such as VoIP and VPN acceleration through
hardware. They also have software support to allow current Cisco IOS Software images to be
used. These routers are modular (the 2600 has single/dual Ethernet/Fast Ethernet ports), and
allow a number of differing modules to be included.
Older routers such as the 2500 and the 4000/4500 might also be an option. These routers are
less expensive than the 2600/3600 models and offer a variety of interfaces. Memory restrictions
on these models might hinder you from upgrading when newer processor- and memory-
intensive Cisco IOS Software releases are introduced.
The key thing to remember is to get routers with as many interfaces as possible. The following
interfaces are required for the CCIE Security lab:
• Serial (normally DB60)
• ATM
CCIE.book Page 25 Monday, May 12, 2003 8:29 AM
• ISDN
• Ethernet
• Fast Ethernet
All routers in the lab should have enough DRAM and Flash memory to load and use the
Enterprise IOS Software feature set. This feature set has all the software functions required for
the CCIE Security lab, including IPSec.
Switches
The CCIE historically was always run on the Cisco Catalyst 5000 range of switches running
CatOS. Recently, this was changed to use the Cisco Catalyst 3550 series of switches. Therefore,
it is quite important to obtain a Cisco Catalyst 3550 switch as the Layer 2 device for the whole
lab. The 3550 currently comes in two versions—24-port and 48-port. The 24-port version is
more than adequate for the CCIE Security lab.
PIX Firewall
The CCIE Security lab currently uses version 6.1 of the PIX Firewall software. Any hardware
model of the Cisco PIX Firewall will run release 6.1 of the software.
The PIX is currently available in five models: the 501, 506, 515E, 525E, and 535E. The ideal
model for CCIE Security lab preparation is the 515E with six interfaces. This is a 1U 19-inch
rack-mount PIX that uses the same chassis as a Cisco 2600 router.
The PIX 501 and 506 both run the PIX software, but they are restricted in performance and how
many interfaces they can support.
WAN Connectivity
You require three types of WAN connectivity: Frame Relay, ISDN, and ATM.
Frame Relay is easy. You can just configure one of your routers as a frame switch and use this
router as the device that simulates the Frame Relay cloud.
ISDN and ATM are harder to emulate, and both require hardware. In the case of ISDN, you
require either two ISDN lines from your service provider to practice on or an ISDN simulator.
Getting two physical lines can prove costly, because there will be an installation charge for the
ISDN circuits as well as ongoing call charges as you use and test ISDN within your lab. ISDN
simulators are also expensive, about $1000. You might be able to pick up a secondhand
ISDN simulator or even rent one for a couple of months.
ATM is very expensive to simulate. You require an ATM switch such as the Cisco Lightstream
LS100 or LS1010 as well as very expensive ATM interfaces in your high-end lab routers. ATM
might be a technology that makes the use of a remote lab worthwhile for the ATM sections.
CCIE.book Page 26 Monday, May 12, 2003 8:29 AM
150 202
0.1
00
.31
S2
.x/
E0 DLCI
28
IDS
140.100.56.0/26
HSRP
192.168.1.8
CA/AAA
192.168.1.7
S0
ISDN-DDR
Area 86
172.22.85.x/24
CCIE.book Page 27 Monday, May 12, 2003 8:29 AM
Summary 27
Figure 3-1 is used throughout this book. If you have the right type of equipment, this lab
topology is an excellent lab to build to study for your CCIE Security lab exam.
Summary
This chapter covered the requirements of a study lab for the CCIE Security lab exam. The CCIE
is different from other certifications in that it has an intense one-day hands-on lab that requires
a lot of planning and preparation.
This chapter started by looking at the list of equipment for the CCIE Security lab exam that
Cisco publishes on its website. You looked at each piece of hardware and reviewed a brief
technical overview of it.
You looked at the requirements for study time on a lab. You also learned about the three options
that are available to you as a potential candidate for the Security CCIE—a work lab, a home
lab, and a remote lab. You learned that the home lab is an excellent place to start, and you
learned about sourcing the correct equipment for your lab. You finally moved on to designing
the study lab.
At this point, you saw the lab topology that you will use throughout this book for all the
examples and exercises. The lab in this book contains all the required hardware for you to work
through the lessons and case studies in this book and to study for the CCIE Security lab exam.
CCIE.book Page 28 Monday, May 12, 2003 8:29 AM
CCIE.book Page 29 Monday, May 12, 2003 8:29 AM
PA R T
II
Connectivity
Chapter 4 Layer 2 and Layer 3 Switching and LAN Connectivity
CHAPTER 4
Layer 2 and Layer 3 Switching
and LAN Connectivity
Cisco Catalyst switches provide a variety of functions in your network environment. In
addition to providing switching at Layer 2, the Catalyst family of switches can address the
following issues:
• Gigabit scalability
• High availability
• Rich services and multilayer switching in the backbone, distribution, and access
layers of your network
These switches are able to address such issues while providing you with support for a wide
range of interface densities, performance, and in the case of certain switch lines, integration
of powerful services modules.
Catalyst switches can meet most Layer 2 and Layer 3 LAN connectivity needs with the
many different models of switches offered. In this chapter, you cover the Cisco 3550
Catalyst series of switches to prepare for the LAN connectivity requirements that you
are likely to encounter during the CCIE Security lab exam.
Switching Overview
Switches were originally developed to work at the most fundamental layer of your network.
They were designed to give your users the ability to send information over a network at the
same time without slowing each other down when compared to a network composed of hubs.
Today’s switches are blurring the line between switches and routers. Just like routers, which
allow different networks to communicate with each other, today’s switches not only allow
different nodes on your network to communicate directly with each other, but some are also
able to route between networks without the use of a router.
In the next sections, you learn about a LAN switch and how transparent bridging works. You
also learn about VLANs, trunking, and spanning trees. You learn about switch security in
Chapter 15, “Basic Cisco IOS Software and Catalyst 3550 Series Security.”
Switching Technologies
As you learned in the previous section, switches were originally developed to work at Layer 2,
or the data link layer, of the OSI Reference Model using MAC addresses, whereas routers were
developed to work at Layer 3, or network layer, using Layer 3 addresses such as IP, IPX, or
AppleTalk, depending on what Layer 3 protocols are being used. Differences still exist between
a router and a switch, with most of the differences existing in the algorithm that switches use to
decide how to forward packets. One of the major differences is how a switch handles broadcast
packets. Recall that a broadcast packet is important to the proper operation of your network.
Whenever a device on your network needs to send out information but does not know where the
destination is, the device sends out a broadcast packet to locate the destination. One example of
a broadcast is as follows: Every time a new computer or other device becomes active on your
network, it usually sends out a gratuitous Address Resolution Protocol (ARP), or a broadcast
packet that is designed to announce its presence to the other devices on your network.
CCIE.book Page 33 Monday, May 12, 2003 8:29 AM
Switching Overview 33
A hub or Layer 2 switch passes any broadcast packet that is received out to all the other seg-
ments in the broadcast domain. This is different than a router or Layer 3 switch because these
devices only pass the broadcast packet, unless configured to do otherwise.
LAN switches rely on a packet-switching technology. This means that the switch only estab-
lishes a connection between two segments long enough to send the current packet. Incoming
packets are saved in a temporary memory area, or buffer, while the MAC address contained
in the frame’s header is read and compared to a list of addresses that the switch maintains in a
lookup table. Packet-based switches are based on one of the following three methods for routing
traffic:
• Cut-through—Reads the MAC address as soon as a packet is detected by the switch. The
cut-through immediately begins sending the packet to the destination node after storing
the 6 bytes of information that contain the address information, even though the rest of the
packet is coming into the switch.
• Store and forward—Saves the entire packet to the buffer and checks it for Cyclic Redun-
dancy Check (CRC) errors or other problems. The packet is discarded if an error is
detected; otherwise, the switch looks up the MAC address and sends the packet to the
destination node device.
• Fragment-free—Works in a fashion that is similar to cut-through but stores the first 64
bytes of the packet before sending the packet to the destination device. This gives the
switch a type of error checking because most errors and all collisions occur during the
initial 64 bytes of a packet.
LAN switches also vary in their physical design. The following three popular configurations are
currently in use:
• Shared-memory—Stores all incoming packets in a common memory buffer that is
shared by all the switch interfaces and then sends the packets out the correct interface for
the destination node.
• Matrix—Has an internal grid with the input interfaces and the output interfaces crossing
each other. When a packet is detected on an input interface, the MAC address is compared
to the lookup table to find the appropriate output interface. The switch then makes a
connection on the grid where these two interfaces intersect.
• Bus-architecture—An internal transmission path, or common bus—instead of an inter-
nal grid—is shared by all the interfaces using time-division multiaccess (TDMA). A
switch based on this configuration has a dedicated memory buffer for each interface and
an application-specific integrated circuit (ASIC) to control the internal bus access.
Transparent Bridging
You might be wondering why transparent bridging is being discussed in a chapter about
switches, but most Ethernet LAN switches use transparent bridging to create their address
CCIE.book Page 34 Monday, May 12, 2003 8:29 AM
lookup tables. Transparent bridging allows a switch to learn all the details about how to reach
an end destination without requiring you to statically enter the information. Transparent
bridging is composed of the following five parts:
• Learning—When the switch receives the first packet from a device, the switch reads the
MAC address and saves it in its lookup table for that segment.
• Flooding—During flooding, the switch sends a packet for an unknown destination to all
segments, with the exception of the segment that the packet was received on.
• Filtering—Filtering causes the switch to ignore packets that are traveling between nodes
on the same segment.
• Forwarding—During forwarding, the switch sends a packet to a destination that it knows
about on a different segment than the origination segment by briefly connecting the two
segments.
• Aging—When an entry is added to the lookup table for a device, it is time-stamped. Each
time the switch receives a packet from that device, the switch updates the time stamp. The
switch uses a user-configurable timer to monitor these time stamps to determine if the
entry needs to be removed from the lookup table.
• Alternate port—A blocked port that provides an alternate path to the root port in the
spanning tree
• Backup port—A blocked port in a loopback configuration
STP can eliminate loops in your network by forcing certain redundant data paths into a standby
state. The ports normally selected for this function are ports that are directly in the standby path
to the root bridge. STP only activates the standby path if the primary path becomes unreachable
or if the spanning-tree costs, or the cost of using a path to reach the root of the primary and/or
standby paths, change.
Cisco based the proprietary STP that it developed—Inter-Switch Link (ISL)—on the IEEE
802.1d STP standard. The 802.1d STP standard describes a Layer 2 management protocol that
is aimed at providing path redundancy in a network infrastructure while preventing undesirable
loops through the use of an algorithm that is capable of calculating the best loop-free path
through the network. The Catalyst 3550 switch currently supports the Per-VLAN Spanning
Tree (PVST+) Protocol.
When you power up the switches in your network, each one functions as the root switch. Each
switch transmits a configuration BPDU through all its ports. These BPDUs are used to
communicate and compute the spanning-tree topology. Each configuration BPDU contains
the following information:
• The unique bridge ID of the switch that the sending switch identifies as the root switch
• The spanning-tree path cost to the root
• The bridge ID of the sending switch
• The message age
• The identifier of the sending interface
• Values for the hello, forward delay, and max-age protocol timers
When a switch receives a configuration BPDU that contains information that is superior to
the information it transmitted (lower bridge ID, lower path cost, and so on), the switch stores the
information for that port. If this BPDU happens to be received on the identified root port of
the switch, the switch also forwards the BPDU with an updated message to all attached LANs
for which it is the designated switch.
If a switch receives a configuration BPDU that contains inferior information to that currently
stored for that port, the BPDU is ignored and discarded. If the switch is a designated switch for
the LAN from which the inferior BPDU was received, the switch sends that LAN a BPDU
containing the up-to-date information that is stored for that port.
A BPDU exchange results in the following actions:
1 One switch is elected as the root switch.
2 A root port is selected for each switch (except the root switch). This port provides the best
path (lowest cost) when the switch forwards packets to the root switch.
3 The shortest distance to the root switch is calculated for each switch based on the path
cost.
4 A designated switch for each LAN segment is selected. The designated switch incurs the
lowest path cost when forwarding packets from that LAN to the root switch. The port
through which the designated switch is attached to the LAN is called the designated port.
5 Interfaces that are included in the spanning-tree instance are selected. Root ports and
designated ports are put in the forwarding state.
6 All interfaces that are not included in the spanning tree are blocked.
Following these actions, BPDUs are then sent and received across the active topology at regular
intervals to identify the selected path and to determine any failures that might occur.
CCIE.book Page 37 Monday, May 12, 2003 8:29 AM
Election Process
As you know, all switches in your network participate in the spanning tree to gather information
about every other switch in your network. This exchange of information is accomplished
through the exchange of BPDU data messages. This exchange of messages results in the
following actions:
• The election of a unique root switch for each spanning-tree instance
• The election of a designated switch for every switched LAN segment
• The removal of loops in the switched network by blocking Layer 2 interfaces that are
connected to redundant links
For each VLAN that you have configured, the switch with the highest switch priority (the lowest
numerical priority value) is elected as the root switch. If you leave all switches with the default
priority of 32,768, the switch with the lowest MAC address in the VLAN becomes the root
switch. The switch priority value occupies the most significant bits of the bridge ID.
One of the biggest drawbacks to using the default method to determine the root switch is
that the elected switch might not be the ideal root switch due to traffic patterns, number of
forwarding ports, or line types. This could result in suboptimal traffic flow when your traffic
must cross the network to talk to another switch that is logically closer than the root switch.
Because you are most likely not managing MAC addresses or using them to determine where
to place a switch in your environment, CatOS provides a way to influence where the root switch
lies in the network. You can force a switch to become the root switch by configuring a lower
numerical priority number, using the following command:
3550A(config)#spanning-tree vlan vlan-id root [primary | secondary]
This command causes the switch to check the switch priority of the root switches for each
VLAN. Because Catalyst 3550 switches provide support of the extended system ID support,
the switch sets its priority for the specified VLAN to 24,576 if this value causes this switch to
become the root for the specified VLAN.
If any root switch for the specified VLAN has a switch priority lower than 24,576, the switch
sets its own priority for the specified VLAN to 4096 less than the lowest switch priority.
Table 4-1 outlines the switch priorities and Extended System IDs used by the 3550 switches.
Once elected, the root switch becomes the logical center of the spanning-tree topology, using
BPDUs to maintain the topology and identify any failures. BPDUs are also used to identify the
designated switch and the root port for the switched network. The root port is the port on the
switch that received a BPDU with the lowest cost information on how to get back to the root
switch. This port is the one that is used to forward traffic toward the root switch. The designated
switch is the switch that is one hop closer to the root switch and the switch that the root port
forwards its traffic to.
CCIE.book Page 38 Monday, May 12, 2003 8:29 AM
NOTE Additional parameters carried in a BPDU from the root switch can override parameters that are
locally configured on a switch to ensure that the entire network uses consistent timers.
You can also influence what becomes the standby root switch by using the following command:
3550A(config)#spanning-tree vlan vlan-id root secondary
BPDUs contain valuable information about the sending switch and its ports for use by other
switches in your network, including switch and MAC addresses, switch priority, port priority,
and path cost.
the topology to the forwarding state, it can create temporary data loops. To prevent this, ports
must wait for new topology information to propagate through the switches in the LAN and
allow the frame lifetime to expire for frames that were already sent before the ports can start
forwarding frames.
A switch port that is entering the topology must go through a series of states to learn its function
in the spanning-tree topology. These states are as follows:
• From initialization to blocking
• From blocking to listening or to disabled
• From listening to learning or to disabled
• From learning to forwarding or to disabled
• From forwarding to disabled
Ports in one of these five states perform a certain function, as follows:
• Blocking—A switch port that is placed in the blocking state by the spanning tree must not
participate in frame forwarding. A switch always places its ports in the blocking state
following switch initialization.
• Listening—As the first transitional state a port enters after the blocking state, the listening
state is used when the spanning tree determines that the port should participate in frame
forwarding. While in the listening state, learning of addresses to place in the address
database is disabled.
• Learning—A port that is placed in the learning state is preparing to participate in frame
forwarding. The port enters the learning state from the listening state.
• Forwarding—A port that is placed in the forwarding state can actively forward frames
onto the network. The port enters the forwarding state from the learning state.
• Disabled—A port that is placed in the disabled state does not participate in frame
forwarding or STP for any reason. A port in the disabled state is virtually nonoperational
in the sense that traffic is not forwarded or received.
One of the problems that you can encounter with every port in your network needing to go
through these transition states is the fact that a network with a few hundred machines could
effectively bring down the network with broadcasts due to port changes. If you are using
Dynamic Host Configuration Protocol (DHCP) for automatic address assignments, STP can
cause this step to fail. Cisco has modified the STP implementation with a proprietary command
called PortFast.
PortFast is applied per port and has the following specific effects on the switch:
• Ports entering the topology are put directly into the forwarding state.
• Topology Change Notifications (TCNs) are never generated for ports that are configured
for PortFast.
CCIE.book Page 40 Monday, May 12, 2003 8:29 AM
With this in mind, ports that are connected to a single workstation or server should never receive
BPDUs. A port with PortFast enabled undergoes the normal cycle of spanning-tree status
changes when the switch is restarted. Use care about where you enable PortFast because ports
that connect to another switch can cause a loop in your network if PortFast is enabled.
Use the following command to enable PortFast on an interface:
3550B(config)#interface interface-id
3550B(config-if)#spanning-tree portfast [disable | trunk]
3550B(config-if)#end
NOTE Use the PortFast command only on ports that cannot be looped somewhere in the network, such
as ports going to workstations.
VLAN-Bridge STP
The Cisco VLAN-bridge STP is designed for use with the fallback bridging feature (bridge
groups). This feature forwards non-IP protocols, such as DECnet or IPX, between two or more
VLAN bridge domains or routed ports. The VLAN-bridge STP forms individual VLAN
spanning trees using the bridge groups to provide loop-free operation if multiple connections
exist among VLANs. It is also used to prevent the individual spanning trees from the VLANs
being bridged from collapsing into a single spanning tree.
NOTE You can also create redundant links through the use of EtherChannel groups.
The virtual LAN (VLAN) concept was designed to address the broadcast radiation problem,
along with the following problems that are inherent to a flat, bridged network:
• Scalability
• Simplification of network management by facilitating network reconfigurations
VLANs are so common in today’s networks that many people do not consider why they use
them. VLANs offer you the following features:
• VLANs build on your switch’s ability to isolate collision domains for attached hosts and
only forward appropriate traffic out a particular port. Your switch will also provide com-
plete isolation between the VLANs configured on it. By doing this, a VLAN is considered
a bridging domain, and all broadcast and multicast traffic is contained within it.
• VLANs provide security in two ways:
— High-security users can be isolated from other users into a VLAN that is defined
for them so that no users outside of that VLAN are allowed to communicate with
them, even if they are on the same physical segment. Note that a higher-security
implementation can be achieved if you implement VLANs with different
security levels on physically separate switches.
— Because VLANs are logical groups that are treated as physically separate
entities, you can only achieve inter-VLAN communication through the use of a
router. Whether this router is physically separate from the switch or one of the
many routing-capable modules that are supported on switches, whenever inter-
VLAN communication occurs, all the security and filtering functionality that
routers traditionally provide can be implemented on the communications
because the router is able to see the Layer 3 information.
NOTE Because a router is required for inter-VLAN communications, nonroutable protocols cannot
communicate outside of their VLAN. All communication for these protocols must take place
within their VLAN.
• The logical grouping of users allows an increase of performance in the network. Because
network-intensive applications or users can be isolated to their own dedicated VLAN, the
demands of these network bandwidth consumers can be isolated from other users,
resulting in improved performance for both the bandwidth-hungry user and the rest of the
users.
• Because a VLAN can exist across all switches in the network, a user is no longer tied to a
specific physical location. Adds, moves, and changes can be achieved by simply placing
a switch port into the appropriate VLAN. Most of the time, expensive recabling is no
CCIE.book Page 44 Monday, May 12, 2003 8:29 AM
longer required. Be aware that trunking VLANs across the entire network infrastructure
is usually restricted to a management VLAN and is not generally recommended for user
traffic.
You can assign an interface to a VLAN in the following ways:
• Static access—A static-access port can belong to one VLAN and is manually assigned.
• Trunk (ISL or 802.1q)—A trunk is a member of all VLANs in the VLAN database. You
can control which VLANs the trunk is a member of by using the allowed-VLAN list.
• Dynamic access—A dynamic-access port can belong to one VLAN like the static-access
port, but it is assigned by a Catalyst 5000/6000 acting as a VLAN Membership Policy
Server (VMPS) server.
The following special case exists when you are configuring a tunnel port on an edge switch to
your service provider:
• Tunnel (dot1q-tunnel)—This is a tunnel port that is used for 802.1q tunneling to
maintain customer VLAN integrity across a service provider network. A tunnel port can
only belong to a single VLAN dedicated to tunneling.
The 3550 comes enabled with a default VLAN with the following parameters:
• VLAN ID: 1
• VLAN name: default
• VLAN state: active
• VLAN SAID: 100001
• MTU size: 1500
• Translational Bridge 1: 0
• Translational Bridge 2: 0
Use the following guidelines when creating or modifying the VLANs in your network:
• 1005 VLANs are supported in VLAN Trunking Protocol (VTP) client, server, and
transparent modes. VLANs are identified with a number between 1 and 1001. VLAN
numbers 1002 through 1005 are reserved for Token Ring and FDDI VLANs.
• You must configure the switch to be either in VTP server mode or VTP transparent mode
before you can configure VLANs. If the switch is a VTP server, you must define a VTP
domain.
• Catalyst 3550 switches do not provide support for Token Ring or FDDI media. As such,
the switch does not forward FDDI, FDDI-NET, TrCRF, or TrBRF traffic, but it does
propagate the VLAN configuration through VTP.
• Only 128 STP instances are supported. If you define more active VLANs than supported
STP instances, STP is disabled on the VLANs above the 128-STP limit.
Occasionally you must change a configured item for a VLAN. You can do this by using the same
method as adding a VLAN.
Deleting VLANs
To delete a VLAN, use the following command:
3550A(vlan)#no vlan vlan-id
or
3550A(config)#no vlan vlan-id
You cannot delete the default media VLANs, which consist of Ethernet VLAN 1 and the FDDI
and Token Ring VLANs 1002–1005. When you delete a VLAN, any ports that are assigned to
the VLAN are placed in an inactive state until you reassign them to a different VLAN.
CCIE.book Page 46 Monday, May 12, 2003 8:29 AM
VTP Modes
VTP is designed to give you maximum flexibility in the design of your VTP domain. Whether
you desire to have centralized management of VLAN configuration or want to configure VLANs
on each switch in your network, VTP provides the following VTP modes:
• Server mode—When a switch is placed in the VTP server mode, you can create, modify,
and delete VLANs and specify other configuration parameters (such as VTP version and
VTP pruning) for the entire VTP domain; these parameters are stored in the nonvolatile
CCIE.book Page 47 Monday, May 12, 2003 8:29 AM
RAM (NVRAM). VTP servers advertise their VLAN configuration to other switches in
the same VTP domain for inclusion in their configuration and synchronize their VLAN
configuration with other switches based on advertisements received over trunk links. VTP
server is the default mode.
• Client mode—On VTP clients, you cannot create, change, or delete VLANs. A VTP
client does not advertise its configurations to other VTP domain members. Because of
this, VTP clients only contain default VLAN definitions until receipt of an advertisement
from a VTP server. VTP clients do not save the VLAN information in NVRAM.
• Transparent mode—VTP-transparent switches are not active participants in VTP. VTP-
transparent switches do not advertise their VLAN configuration to other switches and
do not synchronize their VLAN configuration based on received advertisements. VTP-
transparent switches save their VLAN information in the running configuration. However,
when you are using VTP version 2, transparent switches forward VTP advertisements that
they receive out their trunk ports.
VTP Passwords
You are given the option of configuring a password for your VTP domain. You are required to
configure this same password on all the switches in your management domain. If you do not do
this, switches with the wrong password or switches without a password reject all password-
protected VTP advertisements.
Use the following command to enter a password for your VTP domain:
3550A(vlan)#vtp password word
VTP Advertisements
Like most items that are configured on your network devices, VTP consumes bandwidth due to
its need to send and receive periodic advertisements out each configured trunk port to a reserved
multicast address. Notice that a trunk port is required for the switch to be able to send and
receive VTP advertisements. When VTP advertisements are received by a switch that is not
configured for VTP transparent mode, the switch updates its VTP and VLAN configurations,
if necessary, with the information that is contained in the advertisements.
VTP advertisements distribute the following global domain information:
• VTP domain name
• VTP configuration revision number
• Update identity and update time stamp
• MD5 digest VLAN configuration, including maximum transmission unit (MTU) size for
each VLAN
• Frame format
CCIE.book Page 48 Monday, May 12, 2003 8:29 AM
VTP advertisements distribute the following VLAN-specific information for each config-
ured VLAN:
• IDs (ISL and the IEEE standard 802.1q)
• name
• type
• state
• Additional configuration information specific to the VLAN type
VTP Version 2
Following the philosophy that nothing is perfect and that everything can be improved upon,
VTP has two separate versions that you can choose from. In most situations, with the exception
of Token Ring support, you can run either version 1, which is what you have learned about so
far in this chapter, or version 2. Version 2, of course, improves on the list of features provided
by version 1 by including the following enhancements:
• Token Ring support—VTP version 2 supports Token Ring LAN switching and VLANs
[Token Ring Bridge Relay Function (TrBRF) and Token Ring Concentrator Relay
Function (TrCRF)].
• Unrecognized Type-Length-Value (TLV) support—A VTP server or client propagates
configuration changes to its other trunks, even for TLVs, that it cannot parse but are saved
in nonvolatile RAM (NVRAM).
• Version-dependent transparent mode—VTP version 2 forwards all VTP messages
while the switch is in transparent mode.
• Consistency checks—In VTP version 2, VLAN consistency checks (such as VLAN
names and values) are performed only when you enter new information through the CLI
or SNMP. If the digest on a received VTP message is correct, its information is accepted
without consistency checks.
NOTE Even though the 3550 supports VTP version 2, it does not provide support for Fiber Distributed
Data Interface (FDDI) or Token Ring.
or
3550A(config)#vtp version [1 – 2]
CCIE.book Page 49 Monday, May 12, 2003 8:29 AM
VTP Pruning
Even with the lower cost of bandwidth you are most likely enjoying, eliminating unnecessary
broadcast traffic is still one of the first goals of network design. CatOS provides a feature called
VTP pruning, which can help you enhance network bandwidth use by reducing unnecessary
traffic that is normally flooded throughout the network, such as broadcast, multicast, unknown,
and flooded unicast packets. VTP pruning can accomplish this task by restricting flooded traffic
to those trunk links that the traffic must use to access the appropriate network devices.
Unfortunately, VTP pruning is disabled by default.
TIP You might be wondering why such a useful feature is not enabled by default. All the switches
under your management domain might not support VTP pruning. This means that VLANs
cannot be pruned from links that might not require them.
Enabling VTP pruning on a VTP server enables pruning for the entire management domain,
although it can take several seconds for pruning to take effect after you enable it. By default,
VLANs 2 through 1000 are pruning eligible as long as the VLAN is not marked as pruning
ineligible. VLAN 1 is, by default, always pruning ineligible, but you can essentially disable
them by not assigning interfaces to them and by prohibiting them from crossing a trunk.
Use the following command to enable pruning on your switch:
3550A(vlan)#vtp pruning [v2-mode]
or
3550A(config)#vtp pruning
Note that you are also given the option of changing your VTP version with this same command.
Pruning eligibility is configured on the local switch by configuring a list on a trunk. To
configure VLAN pruning eligibility, enter the following command:
3550A(config-if)#switchport trunk pruning vlan {add | except | none | remove} vlan-atom
[,vlan-atom…]
Keyword Definition
None Is an empty list.
Add Inserts the defined list of VLANs to those currently set instead of replacing the list.
Valid IDs are from 2 to 1001. Separate nonconsecutive VLAN IDs with a comma; use
a hyphen to designate a range of IDs. Do not enter leading 0s.
continues
CCIE.book Page 50 Monday, May 12, 2003 8:29 AM
Keyword Definition
Remove Deletes the defined list of VLANs from those currently set instead of replacing the list.
Valid IDs are from 2 to 1001. Separate nonconsecutive VLAN IDs with a comma; use a
hyphen to designate a range of IDs. Do not enter leading 0s. You cannot remove VLAN
1 or 1002 to 1005 from the list.
except Lists the VLANs that should be calculated by inverting the defined list of VLANs.
(VLANs are added except the ones you specify in the command.) Valid IDs are from
2 to 1001. Separate nonconsecutive VLAN IDs with a comma; use a hyphen to designate
a range of IDs. Do not enter leading 0s.
vlan-atom Is either a single VLAN number from 1 to 1005 or a continuous range of VLANs
described by two VLAN numbers, the lesser one first, separated by a hyphen.
Displaying VTP
You can display VTP activity, including VTP advertisements that are sent and received and VTP
errors, by using one of the following commands:
3550A#show vtp status
3550A#show vtp counters
CCIE.book Page 51 Monday, May 12, 2003 8:29 AM
Access Ports
You use an access port to carry traffic from a single VLAN. This type of port can be a member
of only one VLAN. Traffic is sent and received in native formats with no VLAN tagging.
Because the traffic is untagged, any traffic that arrives on an access port is assumed to belong
to the VLAN that is assigned to the port.
Currently, the following two different types of access ports are supported:
• Static—These access ports are manually assigned to a VLAN.
• Dynamic—VLAN membership of dynamic access ports is learned through incoming
packets. By default, a dynamic access port is not a member of a VLAN, and forwarding
to and from the port is enabled only when the VLAN membership of the port is discovered.
In the Catalyst 3550 switch, dynamic access ports are assigned to a VLAN by a VLAN
Membership Policy Server (VMPS). The VMPS can be a Catalyst 6000 series switch; the
Catalyst 3550 switch does not support the function of a VMPS.
Trunk Ports
When you configure a port as a trunk port, you enable the port to carry traffic from multiple
VLANs. Trunk ports, by default, are a member of all VLANs that you have configured in
the VLAN database. You have the choice of the following two different types of trunk ports
to configure:
• ISL trunk port—A trunk where any received packets are expected to be encapsulated
with an ISL header, and all transmitted packets are sent with an ISL header. Native
(nontagged) frames received from an ISL trunk port are dropped.
• IEEE 802.1q trunk port—A trunk that is capable of supporting simultaneous tagged and
untagged traffic. An 802.1q trunk port is assigned a default port VLAN ID (PVID), and
all untagged traffic travels on the port default PVID. All untagged traffic and tagged traffic
with a NULL VLAN ID are assumed to belong to the port default PVID. A packet with a
VLAN ID equal to the outgoing port default PVID is sent untagged. All other traffic is sent
with a VLAN tag.
Even though the default configuration of a trunk port is that it is a member of every VLAN
known to the VTP, you can choose to limit its VLAN membership by configuring an allowed
CCIE.book Page 52 Monday, May 12, 2003 8:29 AM
list of VLANs on a per-trunk basis. A trunk port can only become a member of a VLAN if VTP
knows of the VLAN and the VLAN is in the enabled state. Any new, enabled VLANs are added
to the trunk if that VLAN is in the allowed list for the trunk port. If a new, enabled VLAN that
is not in the allowed list for a trunk port is added, the port does not become a member of the
VLAN, and no traffic for the VLAN is forwarded to or from the port.
NOTE VLAN 1, the default Ethernet VLAN, cannot be excluded from the allowed list for a trunk.
Use the commands discussed next in this section to create a trunk interface.
To enter the interface configuration mode and configure the port for trunking, use the following
command:
3550A(config)#interface interface-id
Use the following command to configure the port to support ISL or 802.1q encapsulation or to
negotiate (the default) with the neighboring interface for encapsulation type:
3550A(config-if)#switchport trunk encapsulation {isl | dot1q | negotiate}
To configure the interface as a Layer 2 trunk (required only if the interface is a Layer 2 access
port or tunnel port) or to specify the trunking mode, use the following command:
3550A(config-if)#switchport mode {dynamic {auto | desirable} | trunk}
Routed Ports
A routed port is a physical port that acts like a port on a router; however, you are not required
to have a router connected to it. You do not associate a routed port with any particular VLAN
because you create it as an access port. A routed port behaves like a regular router interface,
with the exception that you cannot configure VLAN subinterfaces. You can configure a routed
port with a Layer 3 routing protocol.
CCIE.book Page 53 Monday, May 12, 2003 8:29 AM
EtherChannel Overview 53
NOTE The number of routed ports and SVIs that you can configure is not limited by software; how-
ever, you can experience high CPU utilization, depending on the number of routed ports and
SVIs along with any other features that you might wish to configure.
By using these commands, you are turning a Layer 2 interface into a Layer 3 interface. You can
configure many of the options that are available to you on a Cisco router, including an IP routing
protocol (RIP, IGRP, OSPF, and EIGRP), support for subnet zero, IP classless routing, and
forwarding of DHCP requests. To configure any of these options, use the following commands:
3550A(config)#ip subnet-zero
3550A(config)#ip classless
3550A(config)#interface interface-id
3550A(config-if)#ip helper-address address
3550A(config-if)#exit
3550A(config)#ip routing
3550A(config)#router ip-routing-protocol
3550A(config-router)#end
EtherChannel Overview
In some cases, you might want to group multiple switch ports together for them to appear as
a single port. EtherChannel port groups provide you with this ability. These port groups behave
as a single logical port for high-bandwidth connections between switches or between switches
and servers. An EtherChannel balances the traffic load across the links in the channel and pro-
vides redundancy in the case of a link failure within the EtherChannel by sending traffic that
was previously carried over the failed link to the remaining links. You can create an EtherChannel
port group by grouping multiple trunk ports into one logical trunk port or by grouping multiple
access ports into one logical access port. When you configure an EtherChannel, you create a
port-channel logical interface and assign any number of interfaces to the EtherChannel.
An EtherChannel can be made up of up to eight Fast Ethernet ports or up to eight Gigabit Ether-
net ports. Each port in an EtherChannel must be of the same speed, and you must configure all
ports as either Layer 2 or Layer 3 interfaces. If you choose to use Fast Ethernet ports, you can
obtain full-duplex bandwidth of up to 800 Mbps throughput in each direction. Using Gigabit
Ethernet ports can give you up to 8 Gbps of throughput in each direction between your switch
and another switch or host.
The following sections take a more in-depth look at the creation and theory behind
EtherChannel technology.
CCIE.book Page 54 Monday, May 12, 2003 8:29 AM
Port-Channel Interfaces
The creation of a Layer 2 EtherChannel differs from the creation of a Layer 3 EtherChannel.
However, both configurations involve the use of logical interfaces. When you use Layer 3
interfaces, you must manually create the logical interface by using the interface port-channel
configuration command. When you use Layer 2 interfaces, the logical interface is dynamically
created for you. Whichever method you decide to use, with both types of interfaces, you
manually assign an interface to the EtherChannel by using the channel-group configuration
command to bind the physical and logical ports.
Because each EtherChannel is bound to a logical interface, this logical port-channel interface
is assigned a number from 1 to 64. The channel groups are also numbered from 1 to 64.
Once you have your EtherChannel configured, any configuration changes that you make to the
port-channel interface apply to all the physical interfaces that are assigned to the port-channel
interface. Any configuration changes that you apply to the physical interface affect only the
interface to which you apply the configuration.
EtherChannel Overview 55
Interfaces form an EtherChannel with one another when they are in different PAgP modes as
long as the modes are compatible. For example:
• An interface in desirable mode can form an EtherChannel with another interface that is in
desirable or auto mode.
• An interface in auto mode can form an EtherChannel with another interface in desirable
mode.
• An interface in auto mode cannot form an EtherChannel with another interface that is also
in auto mode because neither interface starts PAgP negotiation.
• An interface in the on mode that is added to a port channel is forced to have the same
characteristics as the already-existing on mode interfaces in the channel.
• Interfaces with different STP path costs can form an EtherChannel as long they are
otherwise compatibly configured. Setting different STP path costs does not, by itself,
make interfaces incompatible for the formation of an EtherChannel.
For Layer 3 EtherChannels, assign the Layer 3 address to the port-channel logical interface, not
to the physical interfaces in the channel.
BPDU Guard
As you know from previous discussions, PortFast-enabled ports are not allowed to receive
BPDUs. The BPDU Guard feature puts a port that is receiving a BPDU in the error-disabled
state. You can enable the BPDU Guard feature globally on the switch or on a per-interface basis,
but be aware that the feature operates with some differences.
When you enable BPDU Guard on a global level, you use the spanning-tree portfast
bpduguard default configuration command. The spanning tree shuts down ports that
CCIE.book Page 58 Monday, May 12, 2003 8:29 AM
BPDU Filtering
Much like BPDU Guard, you can enable the BPDU Filtering feature globally or on a per-
interface basis, but the feature operates with some differences.
When you enable BPDU filtering on a global level, you can use the spanning-tree portfast
bpdufilter default configuration command on a PortFast-enabled interface. This command is
used to prevent ports that are in a PortFast-operational state from sending or receiving BPDUs.
The port is still able to send a few BPDUs at linkup before the switch begins to filter outbound
BPDUs. You should globally enable BPDU filtering on a switch so that hosts that are connected
to these ports do not receive BPDUs. Unlike the BPDU Guard feature, if a BPDU is received
on a PortFast-enabled port, the port loses its PortFast-operational status, and BPDU filtering is
disabled.
When you enable BPDU filtering at the interface level, you can use the spanning-tree
bpdufilter enable configuration command without enabling the PortFast feature. This
command prevents the port from sending or receiving BPDUs.
Use care when enabling the BPDU Filtering options because it is the same as disabling the
spanning tree. As you know, disabling the spanning tree can result in loops inside of your
network.
UplinkFast
UplinkFast provides fast STP convergence after a direct link failure in the network access
layer. UplinkFast operates without modifying the STP protocol, while reducing the
convergence time in specific circumstances to less then 3 seconds, rather than the typical
30-second delay that you encounter without it.
Because this effectively bypasses the normal STP topology change-handling process (listening
and learning), an alternate topology correction mechanism is required to inform switches that
CCIE.book Page 59 Monday, May 12, 2003 8:29 AM
local end stations are reachable via an alternate path. To accomplish this, the access layer
switch that is running UplinkFast also generates frames for each MAC address in its Content
Addressable Memory (CAM) to a multicast MAC address (01-00-0c-cd-cd-cd, HDLC proto-
col 0x200a) to update the CAM table in all switches in the domain with the new topology.
BackboneFast
BackboneFast provides rapid convergence from indirect link failures. By adding functionality
to STP, convergence times can typically be reduced from the default of 50 seconds to 30 sec-
onds. The mechanism is initiated when a root port or blocked port on a switch receives “inferior
BPDUs” from its designated switch. This can happen when a downstream switch has lost its
connection to the root and starts sending its own BPDUs to elect a new root. An inferior BPDU
identifies a switch as both the root bridge and the designated switch.
Under normal STP rules, the receiving switch ignores inferior BPDUs for the configured max-
imum aging time, 20 seconds by default. With BackboneFast configured, the switch sees the
inferior BPDU as a signal that the topology might have changed, and tries to determine whether
it has an alternate path to the root bridge using Root Link Query (RLQ) BPDUs. This protocol
addition allows a switch to determine whether the root is still available, moves a blocked port
to forwarding in less time, and notifies the isolated switch that sent the inferior BPDU that the
root is still there.
Loop Guard
Loop Guard is used to prevent alternate or root ports from becoming designated ports because
of a failure that leads to a unidirectional link. If you are running PVST or Multiple Spanning
Tree (MST) on your switches, you can enable this feature by using the spanning-tree loopguard
default configuration command.
When you are using the PVST mode, Loop Guard prevents alternate and root ports from
becoming designated ports, and spanning tree does not send BPDUs on root or alternate ports.
When you are using the MST mode, BPDUs are not sent on nonboundary ports only if the port
is blocked by Loop Guard in all MST instances. On a boundary port, Loop Guard blocks the
port in all MST instances.
Only the traffic that enters or leaves source ports or traffic that enters source VLANs can be
monitored by using SPAN.
Although SPAN does not affect the switching of network traffic on source ports or source
VLANs, use care so that you do not oversubscribe the destination port. For example, a 10-Mbps
port monitoring a 100-Mbps port can cause congestion on the switch. Destination ports do not
receive or forward traffic, except that required for the SPAN session.
SPAN Session
A SPAN session is an association of a destination port that you configure with source ports
or source VLANs. You should be aware of the following restrictions of traffic monitoring in
a SPAN session:
• You can monitor incoming traffic on a series or range of ports or VLANs.
• You can monitor outgoing traffic on a single port; you cannot monitor outgoing traffic on
multiple ports.
• You cannot monitor outgoing traffic on VLANs.
• You can configure two separate SPAN sessions with separate or overlapping sets of SPAN
source VLANs. You can also configure both switched and routed ports as SPAN sources
and destinations. SPAN sessions do not interfere with the normal operation of the switch.
• You can configure SPAN sessions on disabled ports; however, a SPAN session does not
become active unless you enable the destination port and at least one source port or VLAN
for that session.
• A SPAN session remains inactive after system power up until the destination port is
operational.
Configuring SPAN
When you are determining what ports to configure your SPAN on, follow these guidelines:
• Use a network analyzer to monitor ports.
• Only two SPAN sessions can be active on a switch at the same time.
• The destination port cannot be a source port; a source port cannot be a destination port.
• You can have only one destination port per SPAN session. You cannot have two SPAN
sessions using the same destination port.
• An EtherChannel port can be a SPAN source port; it cannot be a SPAN destination port.
CCIE.book Page 61 Monday, May 12, 2003 8:29 AM
• An 802.1X port can be a SPAN source port. You can enable 802.1X on a port that is a
SPAN destination port; however, 802.1X is disabled until the port is removed as a SPAN
destination.
• For a SPAN source port, you can monitor transmitted traffic for a single port or received
traffic for a series or range of ports or VLANs.
• When you configure a switch port as a SPAN destination port, it is no longer a normal
switch port; only monitored traffic passes through the SPAN destination port.
• A trunk port can be a source port or a destination port. When a destination port is a trunk
port, outgoing packets through the SPAN port carry the encapsulation headers configured
by the user, either Inter-Switch Link (ISL) or IEEE 802.1q. If no encapsulation type is
defined, the packets are sent in native form.
• When you specify a single source port and do not specify a traffic type (Tx, Rx, or both),
both is used as the default.
• For received traffic, you can mix multiple source ports and source VLANs within a single
SPAN session. You cannot mix source VLANs and filter VLANs within a SPAN session;
you can have source VLANs or filter VLANs, but not both at the same time.
• You can limit SPAN traffic to specific VLANs by using the filter vlan keyword. If a trunk
port is being monitored, only traffic on the VLANs that are specified with this keyword is
monitored. By default, all VLANs are monitored on a trunk port.
• The no monitor session session_number global configuration command removes a
source or destination port from the SPAN session or removes a source VLAN from the
SPAN session. If you do not specify any options following the no monitor session
session_number command, the entire SPAN session is removed. The no monitor global
configuration command also clears all SPAN sessions.
• A SPAN destination port never participates in any VLAN spanning tree. SPAN includes
BPDUs in the monitored traffic, so any spanning-tree BPDUs received on the SPAN
destination port for a SPAN session are copied from the SPAN source ports.
When SPAN is enabled, configuration changes have the following results:
• If you change the VLAN configuration of a destination port, the change is not effective
until SPAN is disabled.
• If you disable all source ports or the destination port, the SPAN function stops until both
a source and destination port are enabled.
• If the source is a VLAN, the number of ports being monitored changes when you move a
switched port into or out of the monitored VLAN.
CCIE.book Page 62 Monday, May 12, 2003 8:29 AM
Use the following commands to create a SPAN session and specify the source (monitored) and
destination (monitoring) ports.
Specify the SPAN session and the source port (monitored port) with the following command:
3550A(config)#monitor session session_number source interface interface-id [, | -] [both
| rx | tx]
To remove just the source or destination port from the SPAN session, use one of the following
commands:
3550B(config)#no monitor session session_number source interface interface-id
3550B(config)#no monitor session session_number destination interface interface-id
CCIE.book Page 63 Monday, May 12, 2003 8:29 AM
+ ! "#$
%&'#(
+
)*
)*
-
-
+ , +
In this case study, you configure your Catalyst 3550 switches for basic connectivity by
following these steps:
Step 1 Configure the host name.
Example 4-1 shows you the configuration items that are necessary to give your 3550 a host
name. It also shows you the format of the configuration file that you will be using for the rest
of this chapter.
Example 4-1 Setting the Host Name
Switch(config)#hostname 3550A
3550A(config)#
or
3550A(config)#vtp mode transparent
3550A(config)#vtp domain word
You can return VTP to server mode by using the no vtp transparent command. However, once
you configure a domain name, you cannot return it to Null; you can only change it to a different
name.
Example 4-2 shows the configuration that is necessary to complete this portion of the case
study, and Example 4-3 verifies that your VTP configuration is correct.
Example 4-2 Configuring the VTP Mode and Domain Name
As you can see from the output in Example 4-3, you have successfully configured the VTP
domain to ccie_lab and the VTP mode to transparent. You should now configure the 3550B with
the same VTP configuration that you placed on the 3550A switch. You should now apply the
VTP configuration to your 3550B Catalyst switch.
Example 4-4 shows the configurations that are necessary to complete this step.
Example 4-4 VTP Configuration for Switch 3550B
3550B#vlan database
3550B(vlan)#vtp domain ccie_lab
3550B(vlan)#vtp transparent
3550B(vlan)#exit
or
3550A(config)#vlan vlan-id
3550A(config)#name vlan-name
In this step, you configure VLANs 10, 11, and 26 on 3550A and name them vlan_10, vlan_11,
and vlan_26. Example 4-5 shows you the commands that you can use, and Example 4-6 shows
you the results of adding VLAN 26 to 3550A.
Example 4-5 Adding VLANs to Switch 3550A
3550A(config)#vlan 10
3550A(config-vlan)#name vlan_10
3550A(config-vlan)#exit
3550A(config)#vlan 11
3550A(config-vlan)#name vlan_11
continues
CCIE.book Page 66 Monday, May 12, 2003 8:29 AM
VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
26 enet 100026 1500 - - - - - 0 0
You should now configure the VLANs for 3550B as outlined in Figure 4-1. Example 4-7 shows
you the commands that are required to accomplish this.
Example 4-7 VLAN Configuration for Switch 3550B
3550B#vlan database
3550B(vlan)#vlan 3 name VLAN_3
3550B(vlan)#vlan 8 name VLAN_8
3550B(vlan)#vlan 10 name VLAN_10
3550B(vlan)#vlan 11 name VLAN_11
3550B(vlan)#vlan 28 name VLAN_28
3550B(vlan)#exit
Now that you have your VLANs defined, you force 3550A to become the root switch for
VLAN 26. You can achieve this by using the spanning-tree vlan vlan-id root [primary |
secondary] command. Switch 3550B becomes the root switch for VLANs 1, 3, 8, and 28.
The switches are configured to be the standby root switch for the other VLANs.
Example 4-8 illustrates the results of your configuration efforts.
Example 4-8 Setting the Root Switch
Before configuring an IP address on the switch, be aware of the interface under which you con-
figure the IP address. A switch virtual interface (SVI) is used to provide a single interface for
configuration of routing or bridging of a VLAN. This configuration is applied to the physi-
cal interfaces, or ports, that you assign to that VLAN. You can only associate a single SVI with
a VLAN, but you configure an SVI for a VLAN only when you want to do one of the following:
• Route between VLANs
• Provide a fallback bridge for nonroutable protocols between VLANs
• Provide IP host connectivity to the switch
By default, the only SVI created is for the default VLAN (VLAN 1) to permit remote switch
administration. You must explicitly configure all other SVIs. Be aware that in Layer 2 mode,
SVIs only provide IP host connectivity to the system; in Layer 3 mode, you can configure
routing across SVIs.
SVIs are created when you enter the vlan interface configuration command for a VLAN
interface. The VLAN corresponds to the VLAN tag that is associated with data frames on an
ISL or 802.1q encapsulated trunk or the VLAN ID configured for an access port. You should
configure a VLAN interface for each VLAN for which you want to route traffic, and assign it
an IP address.
CCIE.book Page 68 Monday, May 12, 2003 8:29 AM
Your next step in the configuration of this case study is to configure 3550A and PIX2 with their
respective IP addresses. You must also shut down the default VLAN, VLAN 1. PIX commands
and configuration are covered in greater detail in Chapter 23, “Cisco PIX Firewall.”
To assign an IP address to the PIX, use the following command:
PIX2(enable)#ip address interface_name ip-address netmask
Example 4-9 shows the configuration items necessary for you to complete this part of your
case study.
Example 4-9 Configuring the IP Address on Switch 3550A
You should now configure the designated IP address on the rest of the equipment that you use
in this example. Example 4-10 illustrates the commands that you can use to complete this
requirement.
Example 4-10 Configuring the IP Address on Switch 3550B
3550B(config)#interface Vlan1
3550B(config-if)#shutdown
3550B(config-if)#exit
3550B(config)#interface Vlan28
3550B(config-if)#ip address 192.168.28.1 255.255.255.0
In this portion of the case study, you configure the default gateway for 3550A as the inside
interface of PIX2. Example 4-11 contains the commands that are necessary to finish this step.
Example 4-11 Setting the Default Gateway of Switch 3550A
As you can see from the output of the show ip route command in Example 4-12, the default
gateway of 3550A is pointing to the inside interface of PIX2.
Example 4-12 Confirming the Default Route of Switch 3550A
3550A#show ip route
Default gateway is 192.168.26.2
You can now complete this case study by configuring the default gateway of 3550B as the
Ethernet1 interface of R8. Example 4-13 shows the configuration that is required to complete
this step.
Example 4-13 Setting the Default Gateway of Switch 3550B
Example 4-14 shows you the results of using the preceding commands. This configuration
should match Figure 4-1, shown in Case Study 4-1.
Example 4-14 VLAN Assignment Configuration
An examination of the output in Example 4-15 shows you that each of your interfaces was
configured with VLANs.
Example 4-15 The show vlan Command Output
With this configuration, the workstation that is connected to the 3550B switch, interface 0/24,
does not undergo the normal spanning-tree process.
Configuration of 3550A
3550A(config)#interface Port-channel 1
3550A(config-if)#switchport mode access
3550A(config-if)#exit
3550A(config)#interface FastEthernet0/10
3550A(config-if)#channel-group 1 mode desirable
3550A(config-if)#exit
3550A(config)#interface FastEthernet0/11
3550A(config-if)#channel-group 1 mode desirable
Configuration of 3550B
3550B(config)#interface Port-channel 1
3550B(config-if)#switchport mode access
CCIE.book Page 73 Monday, May 12, 2003 8:29 AM
An examination the output of Example 4-18, which shows the output of the show interface
port-channel 1 command, verifies that your configuration is complete.
Example 4-18 The show interface port-channel 1 Command Output
Review the results of the show interface FastEthernet 0/10 trunk command in Example 4-20
issued on 3550A. These results show that the trunk is up and running as a dot1q trunk.
VLAN_26 has also been removed from the allowed list.
Example 4-20 The show interface FastEthernet 0/10 trunk Command Output
then put the Ethernet interfaces into the port-channel. Follow these steps to configure a Layer 3
EtherChannel:
Step 1 Create port-channel logical interfaces.
The no switchport command lets you configure a Layer 3 interface instead of a Layer 2
interface. To remove a port-channel interface, use the following command:
3550A(config)#no interface port-channel port-channel-number
In this case study, you change the Layer 2 EtherChannel that you created in Case Study 4-4 into
a Layer 3 EtherChannel.
Example 4-21 shows you the configuration that is necessary to create the channel and provides
a few show commands from 3550A to verify operation.
Example 4-21 Creation of a Layer 3 EtherChannel
Configuration of 3550A
3550A(config)#interface Port-channel 1
3550A(config-if)#no switchport
3550A(config-if)#ip address 192.168.1.1 255.255.255.0
3550A(config-if)#exit
3550A(config)#interface FastEthernet0/10
continues
CCIE.book Page 76 Monday, May 12, 2003 8:29 AM
Configuration of 3550B
3550B(config)#interface Port-channel 1
3550B(config-if)#no switchport
3550B(config-if)#ip address 192.168.1.2 255.255.255.0
3550B(config-if)#exit
3550B(config)#interface FastEthernet0/10
3550B(config-if)#no switchport
3550B(config-if)#no ip address
3550B(config-if)#channel-group 1 mode desirable
3550B(config-if)#exit
3550B(config)#interface FastEthernet0/11
3550B(config-if)#no switchport
3550B(config-if)#no ip address
3550B(config-if)#channel-group 1 mode desirable
Remember that src-mac is the default for the command. You can return EtherChannel load
balancing to the default configuration by using the following command:
3550A(config)#no port-channel load-balance
CCIE.book Page 77 Monday, May 12, 2003 8:29 AM
In this case study, you configure EtherChannel load balancing by using the destination-based
forwarding method on 3550A and 3550B. Example 4-23 shows you the configuration that is
necessary to complete this case study.
Example 4-23 Configuring EtherChannel Load Balancing
Many different show commands are available to you regarding EtherChannels and PAgP. This
section describes a few of the commands that you can use. For a complete listing of these com-
mands, see “Configuring EtherChannels” in the appropriate Software Configuration Guide for
your software version. The following are some of the show commands that are available to you.
To display EtherChannel information in a brief, detailed, and one-line summary form, use the
following command. Note that you can also use this command to display the load balance or
frame-distribution scheme, port, and port-channel information:
3550A#show etherchannel [channel-group-number] {brief | detail | load-balance | port |
port-channel | summary}
Use the following command to display PAgP information, such as traffic information, the
internal PAgP configuration, and neighbor information:
3550A#show pagp [channel-group-number] {counters | internal | neighbor}
Use the following command to clear the PAgP channel-group information and traffic filters:
3550A#clear pagp {channel-group-number | counters}
As you can see from the output of Example 4-25, you have a routed interface and you have
OSPF up and running under process ID 234.
Example 4-25 The show ip protocols Command Output
+ ! "#$
%&'#(
+
)*
- )*
-
# .. &-
+ , +
Example 4-26 illustrates the configuration items on the 3550B switch that you need to
accomplish this. You can see from the output that you are now monitoring VLAN_8 traffic and
sending it to FastEthernet 0/24.
Example 4-26 SPAN Configuration
Summary
This chapter has reviewed the Catalyst 3550 switch. The 3550 is a multifunction LAN switch
that is capable of meeting most of your networking requirements. This chapter began by
examining the many items that you can configure on a 3550, including a host name, VLANs,
and a spanning tree. The chapter covered the configuration of the many types of interfaces that
are available to you, such as the access port, trunk port, and routed port. You also reviewed
optional items that are available to you. You finished the chapter with a look at configuring
SPAN for traffic monitoring.
Review Questions
1 What is the purpose of the VLAN Trunking Protocol?
5 Why would you see an untagged packet on a switch that is configured with VLANs?
9 What can prevent an alternate or root port from becoming the designated port after a
unidirectional link failure?
10 What can prevent packets with an unknown destination MAC address from being flooded
to every port on a switch?
CCIE.book Page 81 Monday, May 12, 2003 8:29 AM
FAQs 81
FAQs
Q — I want to use extended VLANs. How do I enable this on a 3550 switch?
A — Extended VLANS, those above 1005, are only supported when you are using the
VTP transparent mode.
Q — I want to be able to support Token Ring and FDDI with a 3550. Is this possible?
A — Although the 3550 does not support Token Ring or FDDI VLANs, if you are run-
ning VTP version 2, the 3550 can pass any Token Ring and FDDI VLAN informa-
tion that it receives.
Q — What happens to a physical interface if I assign an IP address to it and disable the
switchport?
A — When you do this, you turn the Layer 2 interface, the switchport, into a Layer 3
interface.
Q — I want to run a routing protocol on my 3550 switch. What routing protocols are
supported?
A — The 3550 switch supports RIP, OSPF, IGRP, and EIGRP.
Q — I do not want to configure a VLAN on each access port that I have in my network.
What can I do?
A — The 3550 switch supports the concept of a dynamic access port. This is a port that
learns what VLAN it is on by examining incoming packets. In the case of the 3550
switch, a VLAN Membership Policy Server (VMPS) is required. Currently, the
VMPS functionality is provided by the Catalyst 6000 series switches.
Q — I have a trunk in my network that is beginning to become overutilized. What can
I do with a 3550 to alleviate this problem?
A — You can create an EtherChannel to provide high-bandwidth links to network
devices. You can group up to eight Fast Ethernet ports together to obtain 800 Mbps
of bandwidth or group eight Gigabit Ethernet ports together to obtain 8 Gbps of
bandwidth.
Q — Whenever I look for the root switch in my network, it always seems to be a switch
that does not appear to be the best possible choice. How can I fix this?
A — The 3550 switch offers a command, spanning-tree vlan vlan-id root, which can set a
switch’s priority in such a fashion that it becomes the root switch. Note that this
does not work if another switch in your network has a priority of 1.
Q — I want to add a second link from an access switch to the core switch. Will I expose
my network to spanning-tree loops?
A — Redundancy in links usually causes one link to be placed in the blocked mode to
prevent any loops.
CCIE.book Page 82 Monday, May 12, 2003 8:29 AM
CHAPTER 5
" )
* * " )
!
"
"
# $%! %! &' (!
# &! +,+-+%,! +!
# ! +,+-+%,! +!
CCIE.book Page 84 Monday, May 12, 2003 8:29 AM
DCE
DLCI 107
DTE
While the connection between the DTE device and the DCE device exists as a physical layer
component, it also contains a link layer component. The physical component defines the
specifications that are used to connect the devices. The link layer component specifies how
the connection is established between the DTE device and the DCE device.
The DTE/DCE interface is typically used to identify the boundary of responsibility, or who has
management control of the area, for the traffic that is passing between you and your service
CCIE.book Page 86 Monday, May 12, 2003 8:29 AM
provider. The physical standards that are used to specify the DTE/DCE interface include
EIA/TIA-232, X.21, EIA/TIA-449, V.24, V.35, and HSSI.
Star Topologies
The star topology, one of the most popular topologies in use today, features a single internet-
working hub, usually the home office, that provides access from leaf internetworks, usually
remote offices, into the backbone while still providing access to each other through the core
router. Figure 5-3 illustrates a Frame Relay star topology.
CCIE.book Page 87 Monday, May 12, 2003 8:29 AM
The star topology offers many advantages, such as simplified management and minimized tariff
costs, but it has some major drawbacks. The most obvious drawback to this topology that you
should see after examining Figure 5-3 is the catastrophic results that can happen in the event
that the core router fails. This device represents a single point of failure in an otherwise stable
network design. The next shortcoming is that the core router limits overall performance for
access to backbone resources because it is the single pipe through which all traffic must pass.
The third drawback to this design is the lack of scalability.
Home Office
One of the major reasons for deploying a fully meshed topology is the requirement of a high
level of redundancy. Although a fully meshed topology can support all major network proto-
cols, it is not a likely solution for deployment in a large Frame Relay cloud. One reason for this
is the amount of virtual circuits that you are required to configure and maintain to provide this
type of connectivity. When you are required to have one virtual circuit for every connection
between routers, problems can also arise due to the large number of packet/broadcast replica-
tions required, and the configuration complexity for routers in the absence of multicast support
in nonbroadcast environments.
A partially meshed topology allows you to reduce the number of FRADs within a region that
has direct connections to all other nodes in that region. All nodes in this environment do not
require direct connectivity to all other nodes in the cloud. For a nonmeshed node to communi-
cate with another nonmeshed node, the first node can send its traffic through one of the collec-
tion point routers that are meshed. Figure 5-5 illustrates such a situation.
Although a partially meshed topology can take one of many different forms, this topology is
generally considered to provide the best balance for Frame Relay topologies in terms of the
number of virtual circuits, redundancy, and performance.
Subinterfaces also address the limitations of Frame Relay networks by providing you with a
way to subdivide your partially meshed Frame Relay network into a number of smaller, fully
meshed—or point-to-point—subnetworks. You assign each subnetwork its own network
number to make it appear to protocols as if these networks are reachable through a separate
interface. If you have transparent bridging configured in your networking environment, each
subinterface is viewed as a separate bridge port.
NOTE A point-to-point subinterface can be implemented as an unnumbered interface when used with
IP, reducing the addressing burden that might otherwise result.
You have two choices of subinterface types: the point-to-point subinterface or the multipoint
subinterface, neither of which is the default. Use the following command to configure a
subinterface for use on a Frame Relay network:
R2(config-if)#interface type number.subinterface-number {multipoint | point-to-point}
NOTE If you have configured a subinterface and later decide to change from a multipoint interface to
a point-to-point interface, you might need to remove the configurations from the main interface
and from the subinterfaces before changing the interface type. You might also have to reload the
router before the changes take effect.
VCs can be mapped across any service provider’s Frame Relay network, without regard to the
amount of hops that the connection crosses. This means that your VC is not limited to three
devices—DTE to DCE to DTE—but can have any number of devices between the two DTEs.
VCs can be divided into two categories, switched virtual circuits (SVCs) or permanent virtual
circuits (PVCs). The following subsections describe both in more detail.
an SVC occurs, the Q.933 signaling sequence becomes active. Once your FRAD has finished
the setup of the SVC, data transfer begins.
The Q.922 LAPF is used to provide a reliable link layer for Q.933 to operate across. Q.933
sends all call control information over DLCI 0, the same DLCI number that is used for the
management protocols specified in ANSI T1.617 Annex D or Q.933 Annex A.
You can only enable SVC operation at the interface level. Once you do so, SVC operation is
enabled on any subinterfaces under that interface that you configure. One signaling channel,
DLCI 0, also configured on the interface level, is used to control all SVCs.
The term LMI refers to a specific signaling protocol. However, all three of the definable LMI
types that are available in IOS are also generally referred to as LMI. Use care when deciding
which type you are going to use because, although each of the three LMI types is designed to
support the same basic functionality, enough differences exist between them that the interfaces
on your DTE/DCE pair must run the same LMI type or you will experience unpredictable
results.
One of the most important functions that each of these LMI types must support is a basic
handshake mechanism. This mechanism consists of an exchange of status query frames and
response status frames. Your FRAD is responsible for starting this exchange by sending
inquiries to the network before the network can send any signaling protocol messages to
your FRAD.
Each status query frame that is sent by your FRAD contains a sequence number and a request
for either a short status frame or a long status frame. Short status frames contain only a sequence
number and are normally used as a form of keepalive between the DTE and DCE, often referred
to as the LMI keepalive. Long status messages contain event notifications such as the addition,
deletion, failure, or modification of one or more PVCs. The long status message also contains
a sequence number and the status and relevant information on the PVCs that are currently
configured on the port.
By default, the FRAD sends LMI status messages every 10 seconds to the WAN. A full
status request is sent as every sixth LMI status query, to which the WAN responds with a
long status message, including any new events that have occurred since the last long status
message.
LMI also offers a number of extensions for managing complex internetworks. Some of the
extensions used by Frame Relay are as follows:
• Global addressing—An extension that gives the Frame Relay DLCI values global rather
than local significance by making DLCI values the DTE address that remains unique in
the Frame Relay WAN
• Virtual circuit status messages—Provides communication and synchronization between
Frame Relay DTE and DCE devices to periodically report on the status of PVCs, which
prevents data from being sent into black holes (that is, over PVCs that no longer exist)
• Multicasting—An extension that allows multicast groups to be assigned to save
bandwidth by allowing routing updates and address-resolution messages to be sent only
to specific groups of routers
#$
%
"
!
The nine fields of the Frame Relay LMI frame are as follows:
• Flag—Delimits the beginning and end of the frame.
• LMI DLCI—Identifies the frame as an LMI frame instead of a basic Frame Relay frame.
• Unnumbered Information Indicator—Sets the poll/final bit to 0.
• Protocol Discriminator—Always contains a value that is used to identify the frame as an
LMI frame.
• Call Reference—Always contains 0s and is not used at this time.
• Message Type—Labels the frame as one of the following message types:
— Status-inquiry Message—Allows a user’s device to inquire about the status of
the network.
— Status Message—Responds to status-inquiry messages, including keepalives
and PVC status messages.
• Information Elements—Contains a variable number of individual information elements
(IEs). IEs consist of the following fields:
— IE Identifier—Uniquely identifies the IE.
— IE Length—Indicates the length of the IE.
• Information Elements—Contains 1 or more bytes of encapsulated upper-layer data.
• Frame Check Sequence (FCS)—Ensures the integrity of transmitted data.
LMI Timers
When working with Frame Relay technology, there are several configurable timers and
keepalives that you can tune. Each of these items is discussed in its individual section.
CCIE.book Page 94 Monday, May 12, 2003 8:29 AM
You have the option of tuning five configurable parameters to define how signaling information
is exchanged between the DTE and DCE. Two of these parameters define how often a FRAD
sends a short- and long-status query, while the other three define when an alarm is generated by
the WAN. These parameters are as follows:
• T391—Used to define the time interval, in seconds, between short-status queries. The
default value is 10 seconds.
• N391—Used to define the multiplier that is used to calculate the frequency of long-status
queries. The default value is 6, resulting in a long-status query being sent every 60 seconds,
assuming that T391 is also set to its default value of 10.
• T392—Used to define the time interval, in seconds, between expected status queries. The
default value is 15 seconds but should be greater then the T391 value defined on the
FRAD. If the T392 timer expires and a status query frame has not been received, a timeout
is counted.
• N392—Used to define the number of timeouts, out of N393 expected queries, that causes
an alarm to be generated.
• N393—Used to define the number of expected queries that define a window for alarm
declaration.
Use the following command to set the DCE and NNI monitored events count:
R2(config-if)#frame-relay lmi-n393dce events
Use the following command to set the polling verification timer on a DCE or NNI interface:
R2(config-if)#frame-relay lmi-n392dce seconds
Use the following command to set a full status polling interval on a DTE or NNI interface:
R2(config-if)#frame-relay lmi-n391dte keep-exchanges
Use the following command to set the DTE or NNI error threshold:
R2(config-if)#frame-relay lmi-n392dte threshold
CCIE.book Page 95 Monday, May 12, 2003 8:29 AM
Network-to-Network Interface 95
Use the following command to set the DTE and NNI monitored event counts:
R2(config-if)#frame-relay lmi-n393dte events
LMI Autosense
Cisco FRADs running Cisco IOS Software version 11.2 and later provide support for the LMI
autosense feature. LMI autosense gives you the ability to “sense” the LMI sent by one device
that has the LMI type configured, usually on your service providers’ WAN equipment,
preventing possible misconfiguration. LMI autosense is automatically enabled in the following
situations:
• The router is powered up or the interface changes state to up.
• The line protocol is down but the line is up.
• The interface is a Frame Relay DTE.
• The LMI type is not explicitly configured on the interface.
When LMI autosense is active, the FRAD sends a full status request in all three LMI message
formats to the WAN equipment. The FRAD sends the packets in the following sequence: ANSI,
ITU, and finally cisco. LMI information is passed on DLCI 0 for both the Cisco LMI and
Q.933a LMI types. LMI information is passed on DLCI 1023 for the ANSI LMI type. LMI
autosense can work because the Frame Relay code in IOS can listen to both DLCI 1023 and 0
at the same time.
When the three messages reach the switch, one or more of them elicits a reply, sent back in the
form of a status message. Your FRAD then decodes the format of the reply to configure the LMI
type of the interface automatically. Accommodating intelligent switches that can support mul-
tiple LMI types and send more than one reply is handled by the FRAD configuring itself using
the last LMI type received. Now, if you look back at the sequence in which the LMI messages
are sent, the order should make more sense.
If LMI autosense fails to detect the correct LMI type, a retry interval is initiated. For every N391
time interval, which has a 60 second default, LMI autosense retries its automatic LMI
configuration sequence.
Network-to-Network Interface
One item of concern for a service provider is the possibility that a Frame Relay network can
cross between two networks that might not be Cisco equipment. Because each vendor supports
Frame Relay standards, these vendors are also given the option of providing customizations to
differentiate their product from another vendor’s product.
To facilitate intervendor communication, the Network-to-Network Interface (NNI) port was
defined as a bidirectional protocol to allow configuration, administration, and control information
CCIE.book Page 96 Monday, May 12, 2003 8:29 AM
User-Network Interface
The User-Network Interface (UNI) port defines a unidirectional protocol that allows your
FRAD to request information about all available PVCs on your service provider’s Frame Relay
equipment. Your FRAD can then use this information to ensure its proper configuration for the
transmission or acceptance of any DLCI defined on your service provider’s equipment.
Due to the nature of the UNI, it is the signaling protocol used between the DTE and the DCE.
It does not allow the full configuration, administration, and control between two peer DTE
devices.
Congestion-Control Mechanisms
In networking today, congestion is a problem that plagues the WAN environment more than the
LAN environment. With the speed of today’s LAN networks, up to 10-gigabit speeds on some
interfaces, congestion is less of a problem in the LAN environment than it has been in the past.
Congestion usually shows up when you attempt to pass 10 GB of information down a 1.5-Mbps
Frame Relay T1.
One reason for congestion still being a problem in today’s environment is that the developers
of WAN protocols must contend with the overhead that is associated with any type of conges-
tion control. When you are paying a premium for limited speed, you don’t want a significant
amount of management traffic taking resources away from your critical data that the link was
originally purchased for. Frame Relay can reduce this network overhead by implementing simple
congestion-notification mechanisms rather than explicit, per-virtual-circuit flow control.
Frame Relay networks provide guaranteed throughput to your critical traffic as long as your
data rate falls below the established committed information rate (CIR). If your data rate exceeds
the established CIR, the network devices can set the discard eligibility (DE) bit on the excess
frames. The DE bit is covered in more detail later in “Frame Relay Discard Eligibility.”
Unfortunately, CIR is not an adaptable setting that can provide flexibility when your traffic rates
vary. Service providers often offer their customers the option of bursting above CIR for some
defined period of time to handle the bursty nature of LAN traffic crossing a serial interface.
Committed burst (Bc) size and excess burst (Be) size define the amount of traffic that you can
burst above your CIR.
CCIE.book Page 97 Monday, May 12, 2003 8:29 AM
Congestion-Control Mechanisms 97
Bc defines the maximum amount of bursty traffic under normal conditions, and Be defines the
maximum amount of bursty traffic in excess of Bc that the Frame Relay attempts to transfer over
a set period of time. If the number of frames entering the Frame Relay network is greater than
Bc+Be and the DE bit is set to 1, these frames are discarded.
NOTE Be is used to determine the maximum data rate (MaxR) for the Frame Relay circuit.
MaxR is measured in bits per second and uses the following formula:
MaxR = [(Bc + Be) / Bc] × CIR
For example: If Bc = 64,000, Be = 64,000, and CIR = 64 kbps, then
[(64,000 + 64,000) / 64,000] × 64,000 = 128 kbps as the MaxR.
If congestion is encountered in the Frame Relay network, you can use the following two
different congestion-notification mechanisms to inform the devices of the congestion:
• Forward-explicit congestion notification (FECN)
• Backward-explicit congestion notification (BECN)
FECN and BECN each use a single bit in the Frame Relay frame header for control of conges-
tion. Frame Relay also uses another bit in the header, the DE bit, to mark traffic that can be dis-
carded in the event of congestion.
The FECN bit is located in the Address field of the Frame Relay header. The FECN mechanism,
used when a DTE device sends Frame Relay frames into the network, is set to 1 by the DCE
when congestion is present. After the frames reach the destination DTE device, the Address
field (with the FECN bit set) can be examined. If the bit is set to 1, this indicates that the frame
experienced congestion along its path from source DTE to destination DTE. This information
can then be sent to a higher-layer protocol for processing. Depending on the implementation of
the higher-layer protocol, FECN can be used to initiate some type of flow control or the
indication can be ignored.
The BECN bit is located in the Address field of the Frame Relay header. The value of the BECN
is set to 1 by the DCE device for frames that are traveling in the opposite direction of frames
with their FECN bit set. This information tells the receiving DTE device that this particular path
through the network is currently experiencing congestion. This information can then be sent to
a higher-layer protocol for processing as well as for automatically reducing the amount of
outbound traffic that is sent by the Frame Relay device. Depending on the implementation, this
information can be used to initiate some type of flow control or it can be ignored.
As a quick review, a set FECN bit tells you that a frame encountered congestion, whereas a set
BECN bit is used to notify the sender of congestion conditions on the circuit. The BECN frame
might have encountered congestion of its own.
CCIE.book Page 98 Monday, May 12, 2003 8:29 AM
Now that you have a clearer understanding of the use of the FECN and BECN bits, you might
be wondering how the Frame Relay device can control congestion. One of the functions of the
DE bit, discussed in further detail in the next section, is to provide this control.
You can base your DE lists on the protocol or the interface, and on characteristics such as
fragmentation of the packet, a specific TCP or User Datagram Protocol (UDP) port, an ACL
number, or a packet size.
Use the following command to define a DE group, specifying the DE list and DLCI affected:
R2(config-if)#frame-relay de-group group-number dlci
Step 4 Define each of the DLCIs to which you intend to apply levels.
Congestion-Control Mechanisms 99
NOTE DLCI priority levels give you a mechanism that you can use to define multiple parallel DLCIs
for different types of traffic. DLCI priority levels do not assign priority queues within your
FRAD; they are independent queues. However, if you were to enable queuing and use the same
DLCIs in these queues, your high-priority DLCIs can be put into high-priority queues.
You do not have to explicitly specify a DLCI for each of the priority levels; the last DLCI that
you specified in the command line is used as the value of the remaining arguments. At a
minimum, you must configure the high-priority and the medium-priority DLCIs.
When you enable ForeSight, Frame Relay traffic shaping adapts to ForeSight messages and
BECN messages.
For ForeSight to work with your FRAD, the following conditions must exist on your FRAD:
• Frame Relay traffic shaping must be enabled on the interface.
• The traffic shaping for a circuit must be adapted to ForeSight.
• The UNI that is connecting to the router must be Consolidated Link Layer Management
(CLLM) enabled, with the proper time interval specified.
When you use the frame-relay traffic-shaping command, you automatically enable Frame
Relay ForeSight. However, you must issue the map-class frame-relay command and the
frame-relay adaptive-shaping foresight command before your FRAD can react to ForeSight
messages and apply the traffic-shaping effect on a specific interface, subinterface, or VC.
You have the following four different modes to choose from when configuring the end-to-end
keepalive:
• Bidirectional—Both the send and receive sides are enabled. The FRAD’s send side sends
out and waits for a reply to its keepalive requests from the receive side of the other PVC
device. The FRAD’s receive side waits for and replies to the keepalive requests from the
send side of the FRAD.
• Request—Only the send side is enabled, and the FRAD sends out and waits for replies to
its keepalive requests.
• Reply—Only the receive side is enabled, and the FRAD waits for and replies to keepalive
requests.
• Passive-reply—The device only responds to keepalive requests, but it does not set any
timers or keep track of any events.
The end-to-end keepalive was developed from the LMI protocol and works between peer Cisco
communications devices. The major difference is that end-to-end keepalives are communicated
over the individual data channels rather than over the signaling channel, as is the case with LMI.
Because the encapsulation of the keepalive packets is proprietary, the feature is only available
on Cisco devices running a Cisco IOS Software version that supports the Frame Relay end-to-
end keepalive feature.
Keepalives must be enabled on both ends of a VC. If you configure one end as bidirectional, you
must configure the other end as bidirectional as well. If you configure one end as request,
you must configure the other end as reply or passive-reply. If you configure one end as reply or
passive-reply, you must configure the other end as request.
Use the following two commands to configure Frame Relay end-to-end keepalives.
Use the following command to specify a map class for a VC:
R2(config)#map-class frame-relay map-class-name
You also have the option of modifying the end-to-end keepalive default parameter values by
using any of the following map-class configuration commands.
Use the following command to modify the number of errors required to change the keepalive
state from up to down:
R2(config-map-class)#frame-relay end-to-end keepalive error-threshold {send | receive}
count
CCIE.book Page 102 Monday, May 12, 2003 8:29 AM
Use the following command to modify the number of recent events to check for errors:
R2(config-map-class)#frame-relay end-to-end keepalive event-window {send | receive}
count
Use the following command to modify the number of success events required to change the
keepalive state from down to up:
R2(config-map-class)#frame-relay end-to-end keepalive success-events {send | receive}
count
You can configure Frame Relay to support encapsulation of any protocol that conforms to RFC
1490, “Multiprotocol Interconnect over Frame Relay,” providing interoperability between mul-
tiple vendors. You must use the Internet Engineering Task Force (IETF) form of encapsulation
if your device is connected to another vendor’s equipment across a Frame Relay network. You
can use IETF encapsulation on the interface level or on a per-VC basis.
One item that is often overlooked is the fact that you must shut down your interface prior to
changing encapsulation types. By doing this, you ensure that the interface is reset and is using
the new encapsulation type.
You are now going to configure a Frame Relay partial-mesh topology. You combine both the
point-to-point and point-to-multipoint Frame Relay subinterface to create your partial-mesh
Frame Relay topology using R1, R2, R3, and R4. You must configure R10 as your Frame Relay
switch.
Your topology for this section is illustrated in Figure 5-7.
S0.2
DLCI 102 192.168.124.0/24
R1 192.168.124.1 R2
S0.1 S0.1
DLCI 201 DLCI 204
DLCI 103 S2 192.168.124.2
DLCI 104
R10-Frame
S0 DLCI 401 DLCI 402
192.168.10.0/100 192.168.124.4
S1 S3
S0.1 R4
DLCI 301
R3 S0
CCIE.book Page 104 Monday, May 12, 2003 8:29 AM
In this case study, you use a point-to-point subinterface on R1 to communicate with R3. You
use a multipoint interface on R1, R2, and R4. On R3, you use the physical interface for com-
munications. Example 5-1 shows you the configuration of R10, the Frame Relay switch, and
Example 5-2 shows the steps that are necessary to accomplish this task.
Example 5-1 Frame Relay Switch Configuration
R10(config)#frame-relay switching
R10(config-if)#encapsulation frame-relay
R10(config-if)#frame-relay lmi-type ansi
R10(config-if)#frame-relay intf-type dce
R10(config-if)#frame-relay route 102 interface Serial2 201
R10(config-if)#frame-relay route 103 interface Serial1 301
R10(config-if)#frame-relay route 104 interface Serial3 104
R10(config-if)#exit
R10(config)#interface Serial1
R10(config-if)#encapsulation frame-relay
R10(config-if)#frame-relay lmi-type ansi
R10(config-if)#frame-relay intf-type dce
R10(config-if)#frame-relay route 301 interface Serial0 103
R10(config-if)#frame-relay route 103 interface Serial1 301
R10(config-if)#frame-relay route 104 interface Serial3 401
R10(config-if)#exit
R10(config)#interface Serial2
R10(config-if)#encapsulation frame-relay
R10(config-if)#frame-relay lmi-type ansi
R10(config-if)#frame-relay intf-type dce
R10(config-if)#frame-relay route 201 interface Serial0 102
R10(config-if)#exit
R10(config)#interface Serial3
R10(config-if)#encapsulation frame-relay
R10(config-if)#frame-relay lmi-type ansi
R10(config-if)#frame-relay intf-type dce
R10(config-if)#frame-relay route 401 interface Serial0 104
Use the following command to disable Inverse ARP for a specific protocol and DLCI pair:
R2(config-if)#no frame-relay inverse-arp protocol dlci
Use the following command to clear dynamically created Frame Relay maps:
R2(config-if)#clear frame-relay-inarp
Use the following command to display information about dynamically created Frame Relay
maps:
R2(config-if)#show frame-relay map
NOTE If you define a subinterface as a point-to-point subinterface, you cannot reassign the same
subinterface number as a multipoint subinterface without first rebooting your device.
When you use a multipoint subinterface, you have a couple of choices on how it is addressed.
You can use Inverse ARP to dynamically map the IP-to-DCLI mapping, or you can statically
define the IP-to-DLCI mapping. Be aware that not all protocols support dynamic address
mapping and must use static address mapping. When you use static mapping, Inverse ARP is
automatically disabled for the specified protocol on the specified DLCI.
Because you have a physical interface that is logically divided into multiple subinterfaces, you
must provide enough information so that a subinterface can be distinguished from the physical
interface and to associate a specific subinterface with a specific DLCI.
To associate a DLCI with a subinterface, use the following command:
R2(config-subif)#frame-relay interface-dlci dlci
Use the following commands to establish static mapping according to your network needs.
Use the following command to define the mapping between a destination protocol address and
the DLCI:
R2(config-if)#frame-relay map protocol protocol-address dlci [broadcast] [ietf] [cisco]
[payload-compress {packet-by-packet | frf9 stac [hardware-options] | data-stream stac
[hardware-options]}]
Use the following command to forward broadcasts when Connectionless Network Service
(CLNS) is used for routing:
R2(config-if)#frame-relay map clns dlci [broadcast]
Use the following command to specify that broadcasts are to be forwarded during bridging:
R2(config-if)#frame-relay map bridge dlci [broadcast] [ietf]
Table 5-1 lists all the supported protocols and their corresponding keywords.
CCIE.book Page 107 Monday, May 12, 2003 8:29 AM
Protocol Keyword
IP ip
DECnet decnet
AppleTalk appletalk
XNS xns
Novell IPX ipx
VINES vines
ISO CLNS clns
Apollo apollo
Data Link Switching dlsw
LLC2 llc2
PPP over Ethernet pppoe
QLLC qllc
Remote Source-Route Bridging rstb
Serial Tunnel stun
You must use the broadcast keyword for routing protocols such as OSI protocols and the Open
Shortest Path First (OSPF) Protocol.
You could allow all the interfaces in your case study to use Inverse ARP to discover the
appropriate mappings, but this is a learning scenario, so you will use static mappings on the
multipoint interfaces between R1, R2, and R4. Example 5-3 shows the commands that are
necessary to accomplish this task.
Example 5-3 Static Mappings Between Multipoint Subinterfaces
To finish your configuration, you can create the dynamic mappings for communications across
the point-to-point subinterface between R1 and R3. Example 5-4 shows the commands that are
necessary to accomplish this task.
Example 5-4 Dynamic Mappings Between Point-to-Point Subinterfaces
Step 2 Set the LMI keepalive interval, which by default is 10 seconds and, per the
LMI protocol, must be less than the corresponding interval on the switch, by
using the following command:
R2(config-if)#keepalive number
If desired, you can disable keepalives on networks that do not use LMI by
using the following command:
R2(config-if)#no keepalive
Step 3 Set the LMI polling and timer intervals to fine-tune the operation of the LMI
DTE and DCE devices by using the timer commands covered in “Tuning
LMI Timers.”
Continuing with your configuration, you configure the ANSI LMI type for your Frame Relay
topology. Example 5-5 shows you the commands that are necessary to complete this step.
CCIE.book Page 109 Monday, May 12, 2003 8:29 AM
After completing this case study, you should have a functioning Frame Relay topology. Although
the next few sections are still part of configuring Frame Relay as optional items, you review
these features one at a time.
NOTE Although the tuning of LAPF tasks is optional, you should not attempt any configuration of
these items unless you thoroughly understand the possible impact on your network.
Use the following command to enable Frame Relay encapsulation on the interface:
R2(config-if)#encapsulation frame-relay
Use the following command to enable Frame Relay SVC support on the interface:
R2(config-if)#frame-relay svc
You reuse the topology from Figure 5-7 for this case study. You reconfigure the R1-to-R3
connection to use SVCs after removing the previous configurations. You configure a map-group
named ccie_lab for this interface. Example 5-6 shows you the new commands that you add to
the physical interface of R3.
Example 5-6 Enabling SVCs on R3
Continuing your case study, you now configure R1 to use SVCs. You use the same map class
that was defined on R3 in your previous step, ccie_lab. Example 5-7 shows the new commands
that you enter after you remove the previous commands.
Example 5-7 Enabling SVCs on R1
Use the following command to specify a custom queue list to be used for the map class:
R2(config-map-class)#frame-relay custom-queue-list list-number
Use the following command to assign a priority queue to VCs that are associated with the
map class:
R2(config-map-class)#frame-relay priority-group list-number
Use the following command to enable the type of BECN feedback to throttle the frame-
transmission rate:
Router(config-map-class)#frame-relay adaptive-shaping [becn | foresight]
Use the following command to specify the inbound CIR, in bits per second:
R2(config-map-class)#frame-relay cir in bps
Use the following command to specify the outbound CIR, in bits per second:
R2(config-map-class)#frame-relay cir out bps
Use the following command to set the minimum acceptable incoming CIR, in bits per second:
R2(config-map-class)#frame-relay mincir in bps
Use the following command to set the minimum acceptable outgoing CIR, in bits per second:
R2(config-map-class)#frame-relay mincir out bps
Use the following command to set the incoming committed burst size (Bc), in bits:
R2(config-map-class)#frame-relay bc in bits
Use the following command to set the incoming excess burst size (Be), in bits:
R2(config-map-class)#frame-relay be in bits
Use the following command to set the idle timeout interval, in seconds:
R2(config-map-class)#frame-relay idle-timer seconds
You can define multiple map classes. Remember that you associate a map class with a static
map. The map class is not associated with an interface or subinterface; the static map is assigned
to the interface or subinterface. This gives you the flexibility to define different map classes for
different destinations.
You are now going to define your map class called security to associate with your map group.
You define a CIR into and out of 128000 for R1 and a CIR into and out of 64000 for R3.
Example 5-8 shows you the commands that are necessary to complete this task.
Example 5-8 Defining a Map Class
Step 5: Associate the Map Class with Static Protocol Address Maps
You can use the class command to define the protocol addresses that are used under the map-
list command and associate each protocol address with a specified map class. You must use this
command for each protocol address to be associated with a map class. Use the following com-
mand to associate a map class with a protocol address:
R2(config-map-list)#protocol protocol-address class class-name [ietf] [broadcast
[trigger]]
CCIE.book Page 113 Monday, May 12, 2003 8:29 AM
You can use the ietf keyword to specify RFC 1490 encapsulation and the broadcast
keyword to specify that broadcasts must be carried. Use the trigger keyword, which can
only be configured if broadcast is also configured, to enable a broadcast packet to trigger an
SVC. If the SVC that uses this map class has already been created, it simply carries the
broadcast to the other side.
You are now going to associate your map group of ccie_lab to a map list. R1 has an E.164 address
of 123456, and R3 has an E.164 address of 654321. You also configure a static protocol address of
the other IP address. Example 5-9 shows you how to define this configuration.
Example 5-9 Defining a Map List
You can change other Layer 2 parameters by using one of the following commands.
Use the following command to set the LAPF window size k:
R2(config-if)#frame-relay lapf k number
Use the following command to set the LAPF maximum retransmission count N200:
R2(config-if)#frame-relay lapf n200 retries
Use the following command to set the maximum length of the Information field of the LAPF I
frame N201:
R2(config-if)#frame-relay lapf n201 bytes
Use the following command to set the LAPF retransmission timer value T200:
R2(config-if)#frame-relay lapf t200 tenths-of-a-second
CCIE.book Page 114 Monday, May 12, 2003 8:29 AM
Use the following command to set the LAPF link idle timer value T203 of DLCI 0:
R2(config-if)#frame-relay lapf t203 seconds
If you use Cisco IOS Software release 11.2, the following Frame Relay traffic-shaping
capabilities are available to you:
• Rate Enforcement on a Per-VC Basis—The peak rate for your outbound traffic. This
value can be set to match the CIR or another value.
• Dynamic Traffic Throttling on a Per-VC Basis—When BECN packets indicate
congestion on the network, the outbound traffic rate is automatically stepped down;
when congestion eases, the outbound traffic rate is increased.
• Enhanced Queuing Support on a Per-VC Basis—Either custom queuing or priority
queuing can be configured for individual VCs.
In this case study, you configure Frame Relay traffic shaping between R1, R2, and R4. You want
to ensure that communications from R1 do not saturate the 64-kbps port speed of R2. The port
speed of both R1 and R4 is 1.544 Mbps, but only a 512-kbps CIR exists between them. The CIR
for R2 is set at 32 kbps. Figure 5-8 illustrates the topology that you will use in this case study.
CCIE.book Page 115 Monday, May 12, 2003 8:29 AM
Your first step in configuring the topology that is outlined in the case study is to enable Frame
Relay traffic shaping on each router. Remember that this command is issued on the physical
interface, not on a subinterface. Example 5-10 shows you the commands that are necessary to
complete this step.
Example 5-10 Enabling Frame Relay Traffic Shaping
You are not required to configure traffic shaping on the interface that you want to enable ELMI
on, but you might want to do so to know the values that are being used by the switch. If you
want your FRAD to respond to the QoS information that is received from the switch by adjusting
the output rate, you must configure traffic shaping on the interface.
You now enable ELMI on the interfaces on which you are configuring traffic shaping. Exam-
ple 5-11 shows the commands that are necessary to complete this task.
CCIE.book Page 117 Monday, May 12, 2003 8:29 AM
You can override the default for a specific DLCI on a specific subinterface by using the class
VC command to explicitly assign the DLCI to a different class.
Your next step is to associate your map class to the appropriate interface/subinterface. In
Example 5-12, the map class named ccie64 is assigned to the interfaces that are associated with
R1 and R2, while the map class named cciet1 is assigned to the circuit between R1 and R4.
Example 5-12 Enabling Frame Relay Traffic Shaping
Your next required task is to configure the Frame Relay map class for ccie64 and cciet1.
Example 5-13 shows you the commands to complete this task.
Example 5-13 Defining the Map Classes
creating a special broadcast queue for an interface. This broadcast queue is managed indepen-
dently of the normal interface queue, has its own buffers, and has a configurable size and service
rate.
You define a maximum transmission rate, or throughput limit, that is measured in both bytes
per second and packets per second. The queue is serviced to ensure that no more than this
maximum is provided. The broadcast queue is given priority when transmitting at a rate less
than your configured maximum and has a guaranteed minimum bandwidth allocation. These
two transmission rate limits are intended to avoid flooding the interface with broadcasts. The
actual transmission rate limit in any measured second is the first rate limit that is reached.
Use the following command to create a broadcast queue:
R2(config-if)#frame-relay broadcast-queue size byte-rate packet-rate
To specify the backup interface for the subinterface, use the following command:
R2(config-if)#backup interface type number
To specify the enable and disable delay, use the following command:
R2(config-if)#backup delay enable-delay disable-delay
NOTE If you use Cisco encapsulation and TCP/IP header compression on an interface, Frame Relay
IP maps inherit the compression characteristics of the interface. However, if you use IETF
encapsulation on an interface, the interface cannot be configured for compression. Frame Relay
maps must be configured individually to support TCP/IP header compression.
or
R2(config-if)#frame-relay map ip ip-address dlci nocompress
Looking at the output in Example 5-16, you can see that the circuit is sending and receiving
Status messages without any timeouts, which is vital for the operation of Frame Relay. This
output also supplies you with the LMI type that the circuit is using for operation, in this case
ANSI. If you were experiencing a problem with the configured LMI type, you would receive
an output similar to that shown Example 5-17.
Example 5-17 Mismatched LMI
As you can see in Example 5-17, your Num Status Timeouts are increasing, indicating a
misconfigured circuit.
continues
CCIE.book Page 124 Monday, May 12, 2003 8:29 AM
DLCI = 110, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial0.1
DLCI = 120, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial0.2
DLCI = 130, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial0.2
NOTE Notice that the output of the show frame-relay pvc command displays information about all
PVCs that the router knows about. If you wanted more specific information about a specific
interface or DLCI, you can supply the proper keyword to the command and receive only that
information.
By analyzing the output of the show frame-relay pvc command, you can see that all the con-
figured PVCs are in an active state. PVCs can be in one of the following states at any given time:
• ACTIVE—Your PVC is active and can pass traffic.
• INACTIVE—Your local connection to the Frame Relay is operational, but the remote
router’s connection is not operational.
• DELETED—You are not receiving LMIs, or the physical layer is encountering a
problem.
CCIE.book Page 125 Monday, May 12, 2003 8:29 AM
Other areas of interest in this output are the pvc create time, which tells you when the PVC was
created, and the last time pvc status changed time, which tells you the last time that the PVC
state time changed. Both of these items can provide invaluable troubleshooting information.
If you need information about congestion, this is also the command to use because it provides
you with counters that are related to FECN and BECN packets that the router has processed.
One other use for the show frame-relay map command is to verify proper operation of the
Inverse ARP operation.
You can see from this output that this router is successfully exchanging LMIs with the service
provider’s Frame Relay switch by the fact that the myseq and yourseq fields are increasing. The
router adds 1 to the received sequence number when each successive message is sent. If the
received sequence number field were not increasing, LMI exchanges would not be occurring.
If three successive LMI messages are sent without a reply, where only one field is increasing,
the link would be reset and the process would restart.
Summary
This chapter has taken a look at the Frame Relay technology as supported by Cisco devices.
Cisco IOS Software supports the Frame Relay standard as defined by both ANSI and the ITU-T.
First, you reviewed the configuration items necessary to support the example network that was
defined at the beginning of the chapter. You learned the theory behind the commands and then
put what you learned to use by configuring those items. You then looked at the many different
commands that you could use to troubleshoot and maintain your Frame Relay network.
CCIE.book Page 127 Monday, May 12, 2003 8:29 AM
Review Questions
1 What kind of technology is Frame Relay?
4 Describe how LMI Frame Relay differs from basic Frame Relay.
CCIE.book Page 128 Monday, May 12, 2003 8:29 AM
FAQs
Q — Can I ping my own IP address on a multipoint interface?
A — You cannot ping your own IP address on a multipoint Frame Relay interface
because mappings are not made to your own interface. Pings to your own interface
address are only successful on point-to-point subinterfaces or High-Level Data
Link Control (HDLC) links because the device on the other side of the link returns
the ICMP echo and echo reply packets.
You cannot ping from one spoke to another spoke in a hub-and-spoke configura-
tion using multipoint interfaces because no mapping exists for the other spokes’ IP
addresses. Only the hub’s address is learned via Inverse Address Resolution Proto-
col (IARP). If you configure a static map using the frame-relay map command
for your IP address or the IP address of a remote spoke to use the local data-link
connection identifier (DLCI), you can ping your interface address and the addresses
of other spokes.
Q — Can I use IP unnumbered with Frame Relay?
A — If you do not have the IP address space to use many subinterfaces, you can use IP
unnumbered on each subinterface as long as they are point-to-point subinterfaces.
You must use static routes or dynamic routing for your traffic to get routed.
Q — Can I configure a Cisco router to act as a Frame Relay switch?
A — Yes. You can configure a Cisco router to function as Frame Relay data communica-
tion equipment (DCE) or Network-to-Network Interface (NNI) devices (Frame
Relay switches). You can also configure a router to support hybrid data terminal
equipment/data communication equipment/permanent virtual circuit
(DTE/DCE/PVC) switching.
Q — Is a special configuration necessary to connect Cisco routers to other vendor
devices over Frame Relay?
A — The Internet Engineering Task Force (IETF) encapsulation format must be specified
to interact with other vendor devices because Cisco devices use a proprietary
encapsulation by default. You can specify the IETF encapsulation on a per-interface
or per-DLCI basis.
Q — Is Frame Relay Inverse ARP on by default? The inverse-arp command does not
show up in the configuration.
A — Yes, Frame Relay Inverse ARP is on by default.
Q — Can Frame Relay Inverse ARP be used without LMI?
A — No, LMI is used to determine which PVCs to map.
CCIE.book Page 129 Monday, May 12, 2003 8:29 AM
FAQs 129
Q — When implementing a show frame map command, DLCIs are defined and active.
This can occur when the DLCIs are not working. What does “defined and active”
mean?
A — The message “defined and active” means that the DLCI can carry data and that the
router at the far end is active.
Q — Can I change subinterfaces from point-to-point to multipoint or vice versa?
A — No, after a specific type of subinterface is created, the subinterface can only be
changed after deleting the subinterface and reloading the router. The deleted sub-
interface continues to show up in a show ip interface brief command until the
router is reloaded.
Q — What are FECN and BECN packets? How do they affect performance?
A — FECN stands for Forward-Explicit Congestion Notification; BECN stands for
Backward-Explicit Congestion Notification. This congestion notification is accom-
plished by changing a bit in the address field of a frame as it traverses the Frame
Relay network. Network DCE devices (switches) change the value of the FECN bit
to 1 on packets traveling in the same direction as the data flow. This notifies an
interface device (DTE) that congestion avoidance procedures should be initiated by
the receiving device. BECN bits are set in frames that travel in the opposite direc-
tion of the data flow to inform the transmitting DTE device of network congestion.
Q — Can I reserve bandwidth for certain applications?
A — Class-Based Weighted Fair Queuing (CBWFQ) is one classification option that
allows you to reserve bandwidth for different applications of flows, depending on
access lists or incoming interfaces.
Q — How is IP split horizon handled on Frame Relay interfaces?
A — IP split horizon checking is disabled by default for Frame Relay encapsulation to
allow routing updates to go into and out of the same interface. An exception is the
Enhanced Interior Gateway Routing Protocol (EIGRP), for which split horizon
must be explicitly disabled.
Certain protocols, such as AppleTalk, transparent bridging, and IPX, cannot be sup-
ported on partially meshed networks because they require split horizon. (A packet
received on an interface cannot be transmitted over the same interface, even if the
packet is received and transmitted on different virtual circuits.)
Configuring Frame Relay subinterfaces ensures that a single physical interface is
treated as multiple virtual interfaces. This capability allows you to overcome split
horizon rules so packets that are received on one virtual interface can be forwarded
to another virtual interface, even if they are configured on the same physical
interface.
CCIE.book Page 130 Monday, May 12, 2003 8:29 AM
Q — How can I calculate the bandwidth that is consumed by routing updates over Frame
Relay?
A — Reliable estimates can only be calculated for distance vector protocols that send
periodic updates. This includes Routing Information Protocol (RIP) and IGRP for
IP, RIP for IPX, and Routing Table Maintenance Protocol (RTMP) for AppleTalk.
CCIE.book Page 131 Monday, May 12, 2003 8:29 AM
CCIE.book Page 132 Monday, May 12, 2003 8:29 AM
CHAPTER 6
ISDN Connectivity
Integrated Services Digital Network (ISDN) was introduced in the 1960s and was discussed
in more detail at the 1968 International Telecommunications Union Telecommunications
Standardization Sector (ITU-T) meeting. Before then, network communications took place
over analog circuits.
A major advantage of ISDN is its ability to use existing telephone wiring to offer a
dependable, cost-effective way to access the World Wide Web and other high-speed
services, such as voice, video, and data. ISDN uses digital signaling and data transmission
end-to-end. As such, it offers an excellent alternative to analog dialup modems through
faster bits-per-second transmission rates and faster call setup.
In this chapter you will learn how to configure ISDN as well as the ISDN-related Point-to-
Point Protocol (PPP) and Dial-on-Demand Routing (DDR) parameters. Specifically, this
chapter covers material you can expect to be tested on on the CCIE Security lab exam.
ISDN Overview
ISDN was developed to provide integrated access to the widest range of services such
as voice, video, and, of course, data. Its ability to effectively connect small offices, home
offices, and telecommuters to the central site allows companies specializing in different
industrial and service fields to use several new voice and data services that were not
available over the traditional network while maintaining their investment in existing
technology. Such services could not have been economically accessed in the old basic
telephone service/Public Switched Telephone Network (PSTN) environment.
• Q series—Describes switching and signaling. For instance, Q.921 deals with Link Access
Procedure processes at Layer 2 of the OSI model. Q.931 deals with Layer 3 of the OSI
model. D channels use Q.931 signaling. Both of these protocols are important to under-
stand when it comes to troubleshooting ISDN.
After the completion of call setup and connection establishment, the ISDN process is identical
to conventional calls. ISDN protocols come into play again when the call is disconnected
between the local switch and the terminal equipment. The section, “ISDN Layers and Call
Stages,” describes these protocols in more detail.
Reference Points
Reference points are arrangements of various connections of which the functional groups
are capable. In other words, they are logical points between the previously mentioned devices.
Figure 6-1 illustrates the relationship between reference points and ISDN functions. The
following list describes each reference point:
• U (user)—Between NT1 and the carrier’s ISDN network. ITU-T standards for the U
interface.
• T (terminal)—Between NT1 and NT2.
• S (system)—Between NT2 and TE1 or TA.
• R (rate)—Between a non-ISDN interface (TE2) and TA.
• S/T reference point—Between NT1 and TE1 or TA. Used if NT2 is not implemented.
The most common scenario with BRI subscribers.
(
!
"# (#% (## (#%
! "
"# )%&'
$"%&'
! "
Figure 6-2 shows the S/T interface integrated into the router. NT1 interfaces can also come built
in on a Cisco router. In North America, you as a customer are expected to provide NT1, unlike
in Europe, where NT1 is a part of the telco-side equipment.
Given the fact that the interface connectors are similar, you must ensure that they are plugged
in correctly.
CCIE.book Page 136 Monday, May 12, 2003 8:29 AM
Figure 6-2 Reference Points for a Router with an Integrated S/T Interface
) ) )
* ) + * ) * )
+ , +-."&
,
"
, "
) , ) " $/
0 / !"#
- ,
12
(
* , *-& &3 !.&4
)
, !"#
, &" ""-
, "!
!" !"
!%
!%
#$
&' !%
)
!
!
)
!
!
!
!
&' &'
!( !(
The teardown of a call may be initiated by either of the parties. However, the switch handles the
teardown proceedings.
The Disconnect message is transmitted on the D channel. As shown in Figure 6-5, as soon as
the switch receives the Disconnect message, it starts the release of the B channel circuit and
sends a Release message to the downstream switch. The involved switches eventually transmit
the Release message to the final switch.
CCIE.book Page 139 Monday, May 12, 2003 8:29 AM
!
"
"
#
& "
!&
"
! "
!
# #
$ % $ %
To make sure the call is being disconnected properly, each foregoing switch starts a T12 timer.
The switch expects to receive a Release message from the neighbor switch, upon which it issues
a Release Complete message back to the neighbor. If the Release Complete message isn’t
received within the timer period, the Release message is reissued.
As you are consulting Figure 6-5, keep in mind that the call teardown procedure is handled
rapidly throughout the network.
LCP has several different packet types that are specified in the Cisco debug output. Table 6-1
describes the most-used types.
Table 6-1 LCP Packet Types
During the LCP negotiation, both peers must agree on their options and acknowledge their
peer’s request to open the LCP process. The PPP negotiation between layers is sequential.
Before the subsequent phase can occur, the previous one needs to be completed. Therefore, after
LCP is open, authentication takes place followed by the NCP phase.
Most NCP packet types are the same as those of LCP, except for the absence of Echo-Request
and Echo-Reply in NCP. Refer to Table 6-1 for the LCP packet types.
A PPP link terminates when LCP or NCP events are used to close it or when any kind of
physical failure occurs. If the link closure is initiated by LCP, all NCP connections close with
it. However, if NCP initiates the termination, it might not be able to accomplish it.
A dialer list specifies interesting traffic that is allowed to make a connection. Numerous dialer list
settings can be used in conjunction with access lists to provide more granular control for a dialer
list. A dialer list is then assigned to a dial group that refers to it when needed. A physical BRI
interface belongs to a dial group and therefore carries out the instructions set up in a dialer list.
It is very important to understand the need for static route entries to prevent routing updates
from initiating a call and thus adding unnecessary service charges. You can configure DDR with
several different options as well. For instance, an idle timer disconnects a call when no traffic
has been transmitted for a predetermined period of time.
CCIE.book Page 142 Monday, May 12, 2003 8:29 AM
You can also use DDR for other valuable purposes, such as backup for a leased line or Frame
Relay connection. In this case, an ISDN link may be brought up after a certain load has been
reached on the main line or a preconfigured amount of time has lapsed since the line became
inactive.
Another DDR concept that is discussed in Lesson 6-2 is legacy DDR versus dialer profiles. You
can think of legacy DDR as the configuration that applies to the physical interface, whereas
dialer profiles use logical dialer interfaces to accomplish DDR.
Configuring ISDN
Configuring ISDN on a router involves setting up several global and interface parameters. Some
of the parameters are mandatory, and others are optional. This chapter specifies both kinds.
The tasks to perform when configuring ISDN include the following:
• Global parameters—Specify the switch type used by the central office (CO), set up static
routes to various ISDN destinations, and select conditions for initiating an ISDN call—
that is, interesting traffic.
• Interface parameters—Configure interface options, assign an interface to a dialer group,
and map ISDN calls to the appropriate destinations.
• Optional parameters—Include options such as idle timer or response time to a call.
Most of these tasks aren’t arranged in this particular order. You will probably go back and forth
between configuration modes while setting up your ISDN.
Find out which switch is used by your service provider. Make sure you are clear on the correct
type of switch to avoid numerous problems.
You can configure the switch type in either global or interface configuration mode. Global mode
controls the type of switch for all ISDN interfaces. Interface mode commands apply the switch
type to that interface only. If two different switches are specified for global and interface con-
figuration, interface takes precedence over global for that particular interface.
To configure your CO’s switch type, use one of the following commands:
R6(config)#isdn switch-type switch-identifier
or
R6(config-if)#isdn switch-type switch-identifier
SPIDS are dial-in numbers used by some service providers with certain types of switches (for
example, National ISDN1 and DMS-100). These numbers verify the services provided by your
contract. SPIDs are available in spid1 and spid2 categories, one for each B channel.
The syntax for the SPID commands is as follows:
R6(config-if)#isdn spid1 spid-number [ldn]
Sometimes the keyword ldn, which stands for local directory number, might have to be placed
at the end of the command line. The LDN is assigned by the service provider and is used to
make sure that calls are properly routed to both B channels.
Example 6-1 shows configuration Steps 1 and 2 described in this lesson. You can see the global
setup of the ISDN switch type and the assignment of the SPID numbers under interface BRI0/0.
Example 6-1 BRI Interface with SPID Numbers Set Up
NOTE CDP triggers the ISDN call and therefore should be disabled if it isn’t needed.
The syntax for the basic dialer-list command appears first, followed by the access list version
of the command:
R6(config)#dialer-list dialer-group-number protocol protocol-name [permit | deny]
or
R6(config)#dialer-list dialer-group-number protocol protocol-name list
access-list-number
dialer-group-number is the dialer list identifier that is used in the next step of DDR configura-
tion to assign this list to an interface. The access-list-number argument matches an extended
access list that is defined separately for the purposes of being used with the dialer-list
command.
To better demonstrate how this works, Example 6-2 combines this and the previous steps.
You can see that the dialer-list command qualifies all IP traffic as interesting, and the dialer-
group command assigns this definition to the BRI0/0 interface. The isdn switch-type and spid
commands discussed in Lesson 6-1 are included in the output as well.
Example 6-2 Specifying Interesting Traffic
R6#show run
!
interface BRI0/0
ip address 150.100.1.1 255.255.255.252
encapsulation ppp
no cdp enable
dialer string 5551212
dialer-group 1
isdn switch-type basic-ni
isdn spid1 5556212
isdn spid2 5556213
!
dialer-list 1 protocol ip permit → permits all IP traffic
CCIE.book Page 146 Monday, May 12, 2003 8:29 AM
This syntax does not include all the options available for this command. Here are the options
that are included:
• protocol—The Layer 3 protocol to which the phone number is mapped
• next-hop-address—The Layer 3 protocol address
• hostname—The name of the remote router used for authentication
• broadcast—Broadcasts, such as routing updates, are forwarded to this address
• dial-string—The destination’s telephone number
Multiple dialer map statements identifying different destinations may be used on the physical
interface.
Example 6-3 illustrates the use of legacy DDR with dialer maps configured on router R6. It
offers two dialer map statements to the same destination, R8, using two different dial strings.
R8’s configuration includes two dialer map statements pointing back to R6.
Example 6-3 dialer map Statements
R6#show run
hostname R6
!
username R8 password cisco
!
isdn switch-type basic-ni
!
interface BRI0/0
ip address 150.100.1.1 255.255.255.252
encapsulation ppp
no cdp enable
dialer map ip 150.100.1.2 name R8 broadcast 5556214
dialer map ip 150.100.1.2 name R8 broadcast 5556215
dialer-group 1
CCIE.book Page 147 Monday, May 12, 2003 8:29 AM
R8#show run
hostname R8
username R6 password cisco
!
isdn switch-type basic-ni
!
interface BRI0/0
ip address 150.100.1.2 255.255.255.252
encapsulation ppp
no cdp enable
dialer map ip 150.100.1.1 name R6 broadcast 5556212
dialer map ip 150.100.1.1 name R6 broadcast 5556213
dialer-group 1
ppp authentication chao
isdn switch-type basic-ni
isdn spid1 5556214
isdn spid2 5556215
!
dialer-list 1 protocol ip permit
NOTE If you have a dialer string configured, you must remove it from the BRI interface to use dialer
map. Otherwise, using a dialer map with a string argument will not work. You would receive
this error message:
R6_ISDN(config-if)#dialer map ip 150.100.1.2 name R8 broadcast 5556214
%Cannot change dialer map when dialer string present.
To configure dialer profiles, you need to remove all legacy DDR settings from the physical
interface and then follow these steps:
Step 1 Create a logical interface:
R6(config)#interface dialer number-between-0-and-255
Step 2 Add interface characteristics such as IP address, encapsulation type, and PPP
authentication type (as described in Lesson 6-5).
Step 3 Configure the name of one remote router on the dialer interface:
R6(config-if)#dialer remote-name hostname
Step 4 Add a dialer string to a logical interface. (Dialer maps work only on physical
interfaces.)
Step 5 Bind the physical interface with a logical interface. This is a dual-step
process:
(a) Configure a dialer pool on a logical interface:
R6(config-if)#dialer pool number-between-1-and-255
Step 6 Assign interesting traffic definition to a dialer interface with the dialer-group
command.
Example 6-4 demonstrates these configuration steps in action.
Example 6-4 DDR Dialer Profiles
R6#show run
hostname R6
!
username R8 password <chap_password>
!
isdn switch-type basic-ni
!
interface Ethernet0/0
ip address 172.16.2.6 255.255.255.0
no cdp enable
!
interface BRI0/0
encapsulation ppp
no cdp enable
dialer pool-member 1
isdn switch-type basic-ni
isdn spid1 40855512100101 5551210
isdn spid2 40855512110101 5551211
ppp authentication chap
ppp multilink
CCIE.book Page 149 Monday, May 12, 2003 8:29 AM
!"#
NOTE Should you decide to use the local interface instead of the next-hop address, make sure that
destination parameters are set up via dialer-string. If dialer map is used, DDR won’t work.
When you configure static routing, you want to include a default route instance as well. This
causes all unknown routes that are not part of a routing table to be forwarded to the same
address that can make a routing decision for you. To accomplish this task, use the following
commands alongside the ip route command:
R6(config)#ip route 0.0.0.0 0.0.0.0 next-hop-address
or
R6(config)#ip default-network known-network-address
A network address and subnet mask of 0.0.0.0 indicates to the router that a default route is being
referenced. Consider Figure 6-8 and Example 6-5 to see how these commands work together.
CCIE.book Page 151 Monday, May 12, 2003 8:29 AM
R6#config t
Enter configuration commands, one per line. End with CNTL/Z.
R6(config)#router rip
R6(config-router)#network 172.16.1.0
R6(config-router)#redistribute static
R6(config-router)#version 2
R6(config-router)#exit
R6(config)#ip route 192.168.1.0 255.255.255.0 150.100.1.2
R6(config)#ip route 0.0.0.0 0.0.0.0 150.100.1.2
Sometimes a situation occurs in which other networks need to be informed of the stub network’s
existence. Therefore, the static route is redistributed into a dynamic protocol of your choice. For
this purpose, apply the following command:
R6(config-router)#redistribute static
Passive Interfaces
If you introduce your stub network into your dynamic protocol, you assume your links will be
constantly brought up by the routing updates, right? Well, not if you configure passive
interfaces. A passive interface listens to routing updates but doesn’t forward them. Use the
following command to configure a passive interface:
R6(config-router)#passive-interface interface
Figure 6-9 illustrates a network example, and Example 6-6 shows a way of configuring a
passive interface for a routing protocol.
CCIE.book Page 152 Monday, May 12, 2003 8:29 AM
172..16.1.0
R3 R6
192.168.1.x 150.100.1.1
BRI0
150.100.1.2
BRI0
R8
R6#config t
Enter configuration commands, one per line. End with CNTL/Z.
R6(config)#router rip
R6(config-router)#network 172.16.0.0
R6(config-router)#passive-interface bri0
Example 6-7 shows a configuration of a floating static route with the assigned administrative
distance of 200.
Example 6-7 Configuration of a Floating Static Route
R6#show run
hostname r6
!
username r8 password 0 cisco
isdn switch-type basic-ni
!
Interface ethernet 0/0
no cdp enable
ip address 172.16.6.1 255.255.255.0
!
interface serial 0/0
ip address 172.16.66.1 255.255.255.0
encapsulation frame-relay
no cdp enable
frame-relay map ip 172.16.66.2 68 broadcast
!
Interface BRI0/0
ip address 150.100.1.1 255.255.255.0
encapsulation ppp
no cdp enable
isdn spid1 40855512100101 5551210
isdn spid2 40855512110101 5551211
dialer map ip 150.100.1.2 broadcast 5551212
dialer-group 1
ppp authentication chap
continues
CCIE.book Page 154 Monday, May 12, 2003 8:29 AM
Some people argue that this command should be placed on routers at both ends of the call.
However, it needs to reside on only the calling router. It is of no use to the receiving router that
has no dial string configured. Figure 6-11 and Example 6-8 demonstrate just that. In instances
where both routers have dial strings pointing to one another, do not use OSPF demand circuit.
Otherwise, you might run into a situation where both routers initiate a call simultaneously after
the topological change, and the call never gets through. You will get a better feel for this and
other routing-over-ISDN options in the hands-on chapter of this book, Chapter 26, “Sample
Lab Scenarios.”
CCIE.book Page 156 Monday, May 12, 2003 8:29 AM
Example 6-8 OSPF Demand Circuit Configuration on the Remote and Central Routers
R6#show run
hostname r6
!
username r8 password 0 cisco
isdn switch-type basic-ni
!
Interface loopback 0
ip address 172.16.16.1 255.255.255.255
!
Interface ethernet 0/0
ip address 172.16.6.1 255.255.255.0
no cdp enable
!
interface serial 0/0
ip address 150.100.1.1 255.255.255.0
encapsulation ppp
no cdp enable
bandwidth 64
!
Interface BRI0/0
ip address 172.16.66.1 255.255.255.0
encapsulation ppp
no cdp enable
ip ospf demand-circuit
ip ospf cost 9999
isdn spid1 40855512100101 5551210
isdn spid2 40855512110101 5551211
dialer map ip 150.100.1.2 name r8 broadcast 5551212
dialer-group 1
ppp authentication chap
!
router ospf 100
network 150.100.1.0 0.0.0.255 area 0
network 172.16.0.0 0.0.255.255 area 0
!
dialer-list 1 protocol ip permit
R8#show run
hostname r8
!
username r6 password 0 cisco
isdn switch-type basic-ni
!
interface loopback 0
ip address 172.16.18.1 255.255.255.255
!
Interface ethernet 0/0
ip address 172.16.8.1 255.255.255.0
no cdp enable
!
interface serial 0/0
CCIE.book Page 157 Monday, May 12, 2003 8:29 AM
Example 6-8 OSPF Demand Circuit Configuration on the Remote and Central Routers (Continued)
ip address 150.100.1.2 255.255.255.0
encapsulation ppp
no cdp enable
bandwidth 64
!
Interface BRI0/0
ip address 172.16.66.2 255.255.255.0
encapsulation ppp
no cdp enable
isdn spid1 40855512120101 5551212
isdn spid2 40855512130101 5551213
dialer-group 1
ppp authentication chap
!
router ospf
network 150.100.1.0 0.0.0.255 area 0
network 172.16.0.0 0.0.255.255 area 0
!
dialer-list 1 protocol ip permit
Several issues are associated with OSPF demand circuit. If you are not careful while redistrib-
uting protocols into OSPF, demand circuit might cause routing loops and link flapping. These
in turn keep the line up indefinitely because of the constant “change” in topology.
Link flaps can occur when OSPF demand circuit is configured. When you run PPP encapsula-
tion, it installs a host route /32 for the other side of the link. RIPv1 supports classful networks
only, so RIP “owns” this /32. When you redistribute RIP into OSPF, this /32 also gets redistrib-
uted as an external route. When the link goes down, this /32 disappears, and OSPF recognizes
this as a change in topology. Therefore, the DC brings up the link. This process keeps repeating,
and route flapping occurs. There are two ways to solve this:
• Use the no peer neighbor-route command under the BRI0/0 interface that’s running
demand circuit. This ensures that /32 is not installed anymore.
• When redistributing RIPv1 into OSPF, use a route map to deny /32.
In addition to link flapping, you might encounter a scenario in which the ISDN interface’s
bandwidth, which figures into the OSPF metric of cost, equals that of the primary link. OSPF
cost is based on the following formula:
cost = 100,000,000/bandwidth (bps)
you right into the discussion of the interface backup configuration. The discussion revolves
around the following configuration parameters:
• Entering interface configuration mode
• Configuring the backup interface
• Configuring the backup interface’s optional parameters
• Configuring encapsulation options
If native TE1 is not a part of your router setup, you need to designate a serial interface for use
in ISDN with the following command. The serial interface becomes TE2 with external TA.
R6(config)#interface serial number
All subsequent commands that govern the interface take place in interface configuration mode.
Whether you are using legacy DDR or dialer profiles determines whether most of your interface
configuration tasks are applied to a logical or physical interface. Regardless, the ISDN interface
is assigned a protocol address, encapsulation option (discussed later in this lesson), dialer
group, and, possibly, SPID numbers.
specifies how long after the principal link is repaired the ISDN interface stays up until it
becomes inactive again. This command is used in conjunction with the backup interface
command under the chief interface configuration. If the backup delay command is omitted, the
ISDN interface kicks in instantaneously after the primary link failure and deactivates after the
primary link is back—not a good idea when you are dealing with a flapping connection.
R6(config-if)#backup delay activation-time deactivation-time
NOTE Unlike the floating static routes, backup delay works only when the principal interface is
physically down. It does not work under the “administratively down” status.
The backup load command is used in a bandwidth-on-demand scenario. It controls the percent-
age of main link saturation before activating the ISDN interface as well as the percentage
decrease in traffic before bringing down the ISDN link. It is also used with the backup
interface command.
R6(config-if)#backup load activation-percentage deactivation-percentage
backup load can be configured alongside the backup delay command. Then, each command
is responsible for its own sphere of influence. Example 6-9 exhibits a backup interface
configuration with backup delay and backup load.
Example 6-9 ISDN as a Backup Configuration
R6#show run
hostname r6
!
username r8 password 0 cisco
isdn switch-type basic-ni
!
Interface ethernet 0/0
ip address 172.16.6.1 255.255.255.0
!
interface serial 0/0
backup delay 10 60
backup load 10 30
backup interface BRI0/0
ip address 172.16.66.1 255.255.255.0
encapsulation frame-relay
frame-relay map ip 172.16.66.2 68 broadcast
!
Interface BRI0/0 <- Active only if physical link goes down.
ip address 150.100.1.1 255.255.255.0
encapsulation ppp
no cdp enable
isdn spid1 40855512100101 5551210
isdn spid2 40855512110101 5551211
continues
CCIE.book Page 160 Monday, May 12, 2003 8:29 AM
R8(config-if)#ppp ?
authentication Set PPP link authentication method
bap Set BAP bandwidth allocation parameters
bridge Enable PPP bridge translation
callback Set PPP link callback option
chap Set CHAP authentication parameters
encrypt Enable PPP encryption
ipcp Set IPCP negotiation options
lcp PPP LCP configuration
link Set miscellaneous link parameters
max-bad-auth Allow multiple authentication failures
multilink Make interface multilink capable
pap Set PAP authentication parameters
quality Set minimum Link Quality before link is down
reliable-link Use LAPB with PPP to provide a reliable link
timeout Set PPP timeout parameters
use-tacacs Use TACACS to verify PPP authentications
CCIE.book Page 161 Monday, May 12, 2003 8:29 AM
Many of the most widely used PPP options are discussed in this lesson. You might choose to
use some of these options in your setup as a matter of personal preference; others might be
required.
PPP Authentication
As mentioned earlier in this chapter, PPP figures heavily into many of the optional parame-
ters—and authentication is one of them. Authentication is a way to make your connection more
secure. You should use it whenever you want to verify the caller’s legitimacy. Authentication
takes place when the LCP phase of the PPP negotiation process is complete and the link is open.
PAP and CHAP are PPP’s authentication protocols.
PAP authenticates a peer using a two-way handshake. First, a router sends its host name and
secret to another router. Then the receiving router compares these values against a preconfig-
ured value locally or via an AAA server. If a match is found, the first router is granted access.
If not, the connection is terminated.
When PAP is used, the secret is sent over the connection in clear text. There is no safeguard
from a “playback” attack that might capture your secret and use it to gain access to your
network. This inability to shield itself from a protocol analyzer makes PAP an undesirable
method of authentication, but you still need to be familiar with its configuration because it is
one of the options available and sometimes is the only option supported.
CHAP’s main advantage over PAP is its ability to encrypt the verification process with the
Message Digest 5 (MD5) algorithm and periodically recheck a caller’s identity with variable
value challenges, thus providing protection against “playback.”
CHAP uses a three-way handshake process. The authenticating party sends a challenge mes-
sage to the peer seeking access. In turn, the peer responds with a one-way hash value, the result
of an MD5 calculation. The authenticator verifies the received value against its own expected
value calculated in the same manner. If a match is found, the peer is authenticated. Otherwise,
the connection is terminated.
Both PAP and CHAP configuration presume that you have already configured encapsulation
ppp. They involve the following commands:
R6(config-if)#ppp authentication pap
or
R6(config-if)#ppp authentication chap
CCIE.book Page 162 Monday, May 12, 2003 8:29 AM
The ppp authentication command specifies the authentication protocol you choose. The
following command must match the remote router’s host name and password:
R6(config)#username remote-router-name password remote-router-password
Examples 6-11 and 6-12 show the output of PAP and CHAP configuration, respectively.
Example 6-11 PPP PAP Configuration
R6#show run
hostname r6
!
username r8 password 0 cisco
isdn switch-type basic-ni
!
Interface BRI0/0
ip address 150.100.1.1 255.255.255.0
encapsulation ppp
no cdp enable
isdn spid1 40855512100101 5551210
isdn spid2 40855512110101 5551211
dialer map ip 150.100.1.2 name r8 broadcast 5551212
dialer-group 1
ppp authentication pap
!
dialer-list 1 protocol ip permit
R8#show run
hostname r8
!
username r6 password 0 cisco
isdn switch-type basic-ni
!
Interface BRI0/0
ip address 150.100.1.2 255.255.255.0
encapsulation ppp
no cdp enable
isdn spid1 40855512120101 5551212
isdn spid2 40855512130101 5551213
dialer-group 1
ppp authentication pap
!
dialer-list 1 protocol ip permit
R6#show run
hostname r6
!
username r8 password 0 cisco
isdn switch-type basic-ni
CCIE.book Page 163 Monday, May 12, 2003 8:29 AM
R8#show run
hostname r8
!
username r6 password 0 cisco
isdn switch-type basic-ni
!
Interface BRI0/0
ip address 150.100.1.2 255.255.255.0
encapsulation ppp
no cdp enable
dialer map ip 150.100.1.1 name r6 broadcast 5551210
isdn spid1 40855512120101 5551212
isdn spid2 40855512130101 5551213
dialer-group 1
ppp authentication chap
!
dialer-list 1 protocol ip permit
Example 6-13 shows R6 configured with an alternative host name for CHAP authentication and
R8 capable of accepting this alternative host name.
Example 6-13 Using an Alternative Host Name
R6#show run
hostname r6
!
username r8 password 0 cisco
isdn switch-type basic-ni
!
Interface BRI0/0
ip address 150.100.1.1 255.255.255.0
encapsulation ppp
no cdp enable
isdn spid1 40855512100101 5551210
isdn spid2 40855512110101 5551211
dialer map ip 150.100.1.2 name r8 broadcast 5551212
dialer-group 1
ppp authentication chap
ppp chap hostname ccie
!
dialer-list 1 protocol ip permit
R8#show run
!
hostname r8
!
username r6 password 0 cisco
username ccie password 0 cisco
isdn switch-type basic-ni
!
Interface BRI0/0
ip address 150.100.1.2 255.255.255.0
encapsulation ppp
no cdp enable
dialer map ip 150.100.1.1 name r6 broadcast 5551210
isdn spid1 40855512120101 5551212
isdn spid2 40855512130101 5551213
dialer-group 1
ppp authentication chap
!
dialer-list 1 protocol ip permit
What if one of the routers doesn’t support authentication? In the scenario depicted in Figure 6-12,
if R6 places a call into R8, it allows R8 to challenge R6, but R6 does not challenge R8 in return.
However, if R8 places a call to R6 (a call in), R6 makes an authentication request from R8. The
full syntax for the command is as follows:
R6(config-if)#ppp authentication [pap | chap] callin
PPP Multilink
It is possible to combine two or more B channels into one (called a virtual channel) by using
bandwidth aggregation techniques. The channels are grouped into a bundle of up to 2 links for
BRI, 23 for T1, and 30 for E1 PRIs. The Multilink PPP (MLP) technique is described here, but
the Cisco proprietary Bandwidth on Demand (BOD), MLP’s predecessor, is outside the scope
of this book.
MLP provides load balancing by fragmenting packets and sending them simultaneously across
multiple physical channels to the same destination, where they are reassembled. The process is
specified by an additional 4-byte PPP frame header that controls sequencing for the fragments.
Standard DDR should be configured before adding MLP. You can apply MLP settings to the
physical or virtual interface depending on whether legacy DDR or dialer profiles are used.
MLP is negotiated between two network devices during the LCP phase. If needed, additional
bandwidth is temporarily allocated between them. This happens according to the threshold
configured for inbound and/or outbound traffic (outbound is the default). The threshold is a
value between 1 and 255 representing two ends of the first channel’s utilization spectrum; the
lesser the value, the quicker another link comes up. This value is calculated over a 5-minute
interval. Preferably, only one end of a link should be configured for load threshold, or different
values should be assigned to both ends.
R6(config-if)#dialer load-threshold load [outbound | inbound | either]
Similarly, the load threshold determines link subtraction as well as addition. When the link
saturation falls below the specified percentage for the idle timer interval, the latest channel to
CCIE.book Page 166 Monday, May 12, 2003 8:29 AM
have been added to the bundle is dropped. If there is no traffic on the link during the idle timer
interval, the entire bundle is terminated. The command to configure the idle timer is as follows:
R6(config-if)#dialer idle-timeout seconds
Finally, you need to enable MLP itself on an interface. Again, the interface in question may be
physical or logical, depending on your layout. The syntax for the command is as follows:
R6(config-if)#ppp multilink
R6#show run
!
hostname r6
!
username r8 password 0 cisco
isdn switch-type basic-ni
!
Interface BRI0/0
ip address 150.100.1.1 255.255.255.0
encapsulation ppp
no cdp enable
isdn spid1 40855512100101 5551210
isdn spid2 40855512110101 5551211
dialer map ip 150.100.1.2 name r8 broadcast 5551212
dialer load-threshold 127 either
dialer idle-timeout 30 inbound
dialer-group 1
ppp authentication chap
ppp multilink
!
dialer-list 1 protocol ip permit
ISDN Callback
The ISDN callback feature is implemented when you want central control over all outgoing
ISDN calls. This is generally done for billing and various other objectives such as security. The
security aspect is achieved by calls made back to preconfigured telephone numbers, as well as
mandatory PPP authentication before the callback occurs.
How does a callback work? The method is based on a client/server relationship. During LCP
negotiation, the remote end (client) requests a callback from the central site (server). The server
acknowledges the request, authenticates the client, and verifies whether this client is approved
for callback. If it is, the server disconnects the call from its client, waits for the specified amount
of time, and initiates a call back to the client. If callback is not set up for the client, the server
continues the original call.
CCIE.book Page 167 Monday, May 12, 2003 8:29 AM
Several commands are used on either side of the call to make the callback operation possible.
On the client side, aside from authentication and other standard ISDN and DDR statements, you
need to tell the interface that it will be the client of the client/server model. Use the following
command:
R6(config-if)#ppp callback request
Also, you need to specify how long the client is willing to wait for a callback from the server:
R6(config-if)#dialer hold-queue packets timeout seconds
On the server, you need to configure the flip side of those two commands with the following:
R8(config-if)#ppp callback accept
The first command is self-explanatory. The second specifies how long the server waits before
making a callback. The recommended time is half of whatever is set with the dialer hold-queue
timeout command on the client. Remember, if the return call hasn’t been established, the call-
back server does not retry the call. Additionally, if you want to maintain a higher level of security
and disconnect the client call even if it’s not allowed the callback, configure the following com-
mand on the server side:
R8(config-if)#dialer callback-secure
Now, think back to the DDR dialer map command. This time it needs to include the class
keyword along with the case-sensitive classname to reference a map-class statement for PPP
callback. The third command has a keyword username that aligns it with the hostname in the
dialer map statement to point it to the dialer string to use when calling back to the client:
R8(config-if)#dialer map protocol next-hop-address name hostname class classname
dial-string
R8(config-map-class)#map-class dialer classname
R8(config-map-class)#dialer callback-server [username]
Examples 6-15 and 6-16 demonstrate both sides of the PPP callback configuration.
Example 6-15 PPP Callback Client Configuration
R6#show run
!
hostname r6
!
username r8 password 0 cisco
isdn switch-type basic-ni
!
Interface BRI0/0
no ip directed-broadcast
dialer wait-for-carrier-time 30
dialer hold-queue 100 timeout 30
isdn switch-type basic-ni
ppp callback request
continues
CCIE.book Page 168 Monday, May 12, 2003 8:29 AM
R8#show run
!
hostname r8
!
username r6 password 0 cisco
isdn switch-type basic-ni
!
interface BRI0/0
ip address 150.100.1.2 255.255.255.0
encapsulation ppp
no cdp enable
dialer callback-secure
dialer enable-timeout 15
dialer map ip 150.100.1.1 name r6 class callback 5551210
dialer hold-queue 100
dialer-group 1
isdn switch-type basic-ni
isdn spid1 40855512120101 5551212
isdn spid2 40855512130101 5551213
no cdp enable
ppp callback accept
ppp authentication chap
!
map-class dialer callback
dialer callback-server username
!
dialer-list 1 protocol ip permit
NOTE This section concentrated on the router-to-router callback configuration using the Cisco IOS
software command-line interface. AAA server techniques are covered in Chapter 18, “AAA
Services.”
CCIE.book Page 169 Monday, May 12, 2003 8:29 AM
Example 6-17 shows the command output. Notice that the line protocol state is up and spoofing.
This means that the ISDN interface is acting as if it were up so that the traffic can be passed
through it if necessary.
Example 6-17 show interfaces bri 0/0 Command Output
Example 6-18 shows the output for the show interfaces bri 0/0 1 2 command.
Example 6-18 show interfaces bri 0/0 1 2 Command Output
Some of the details in the output include the PPP encapsulation and the status of LCP and NCP.
NOTE If your interface is not a native BRI (TE2), use the show interfaces serial command.
The show isdn status command can also be employed to zero in on more-specific
characteristics. Here is the syntax of this command with its available keywords:
R6#show isdn status [dsl | serial number]
NOTE Sometimes if you change the already-configured switch type and SPIDs parameters, the
changes do not take effect until the interface is reset. Use the show isdn status command
to view the correct current information.
r6#show dialer
r6#ping 150.100.1.2
r6#
*Mar 6 21:17:54.816: ISDN BR0/0: Outgoing call id = 0x8002, dsl 0
*Mar 6 21:17:54.820: ISDN BR0/0: Event: Call to 5551212 at 64 Kb/s
*Mar 6 21:17:54.820: ISDN BR0/0: process_bri_call(): call id 0x8002, called
_number 5551212, speed 64, call type DATA
*Mar 6 21:17:54.828: CC_CHAN_GetIdleChanbri: dsl 0
*Mar 6 21:17:54.828: Found idle channel B1
*Mar 6 21:17:54.948: ISDN BR0/0: received HOST_PROCEEDING call_id 0x8002
*Mar 6 21:17:57.236: ISDN BR0/0: received HOST_CONNECT call_id 0x8002
*Mar 6 21:17:57.240: %LINK-3-UPDOWN: Interface BRI0/0:1, changed state to up
*Mar 6 21:17:57.260: %ISDN-6-CONNECT: Interface BRI0:1 is now connected to
5551212
*Mar 6 21:17:57.272: ISDN BR0/0: Event: Connected to 5551212 on B1 at 64 Kb/s
*Mar 6 21:17:57.412: %LINK-3-UPDOWN: Interface Virtual-Access1, changed state
to up
*Mar 6 21:17:58.396: %LINEPROTO-5-UPDOWN: Line protocol on Interface BRI0/0:1,
changed state to up
*Mar 6 21:17:58.436: %LINEPROTO-5-UPDOWN: Line protocol on Interface
Virtual-Access1, changed state to up
r6#
*Mar 6 21:18:03.264: %ISDN-6-CONNECT: Interface BRI0:1 is now connected to
5551212 r8
r6#
CAUTION Use this command only as a last resort, because it is memory-intensive and does not explain
why connections aren’t bundling.
CCIE.book Page 176 Monday, May 12, 2003 8:29 AM
Example 6-25 shows output from the debug ppp multilink command.
Example 6-25 debug ppp multilink Command Output
r6#ping 150.100.1.2
r6#ping 150.100.1.2
Summary
This chapter provided a general overview of the multitude of ISDN topics, as well as a more
in-depth look at its working configurations and various solutions. ISDN concepts are compre-
hensive and complex, and many of them are beyond the scope of this book. However, you were
introduced to the most important parts of ISDN that give you a solid base in your preparation
for the CCIE Security practical exam.
Review Questions
1 Which protocol series does ISDN use to communicate from the local terminal equipment
to the ISDN switch in the central office?
2 True or false: The S reference point is an interface between NT1 and NT2.
5 What is the correct command syntax for assigning interesting traffic to an interface?
CCIE.book Page 179 Monday, May 12, 2003 8:29 AM
A. Hellos
B. Routing updates
C. LSAs
D. All of the above
7 True or false: PAP encapsulation is more secure than CHAP.
CCIE.book Page 180 Monday, May 12, 2003 8:29 AM
FAQs
Q — Why should I use CHAP instead of PAP?
A — It is recommended that you use CHAP because of its security superiority over PAP.
PAP is sent over the wire in clear text and can be sniffed. CHAP uses the MD5
encryption method and repeated challenges.
Q — In what situation would I use OSPF demand circuit?
A — OSPF transmits periodic hellos and LSAs necessary to maintain neighbor relation-
ships and accurate link-state databases. This adds unnecessary connection costs to
your ISDN network. OSPF demand circuit solves this problem by suppressing
these advertisements until a topological change has occurred. Then and only then
can the routing updates be used to initiate an ISDN call.
Q — Why should I use dialer profiles instead of legacy dialer?
A — Dialer profiles allow different configurations for different B channels. They also let
BRIs belong to multiple dialer pools, eliminating the waste of B channels. Multiple
destinations can be mapped to avoid split-horizon problems. Also, some new ISDN
features are available only for dialer profiles.
Q — Why would I use passive interface in DDR?
A — Passive interface is used to keep routing updates from bringing up the link. Passive
interface listens to routing updates but does not forward them.
Q — Why would I want to use the callin keyword?
A — The callin keyword may be used with the ppp authentication [pap | chap] com-
mand for one-way authentication. It ensures that a calling router skips the authenti-
cation of the router on the receiving end of the call. It makes sense when
authentication is not supported.
Q — Why do I need the callback feature in ISDN?
A — It is a way of controlling billing, cost savings, and access. As such, it provides
certain security capabilities.
CCIE.book Page 181 Monday, May 12, 2003 8:29 AM
CCIE.book Page 182 Monday, May 12, 2003 8:29 AM
CHAPTER 7
ATM Connectivity
This chapter briefly covers some of the concepts of Asynchronous Transfer Mode (ATM),
specifically those related to RFCs 2684 and 2225. Although it is included in the CCIE
Security lab exam, a comprehensive knowledge of ATM for the purposes of the exam is not
necessary. As a result, the chapter is designed to provide just enough knowledge of the
ATM-related topics that you might encounter during your test without overwhelming you
with extraneous information.
ATM Overview
Internationally standardized ATM technology is an effective way of providing services for
real-time applications such as voice and video as well as data. ATM is able to provide such
services due to its underlying cell-switching architecture. With ATM, a sender divides
packets into a fixed-size cell format for transfer over the medium. Each ATM cell consists
of 53 bytes, 48 of them taken up by a payload and the remaining 5 by a header. The cells
are hardware switched and carry an identifying label virtual path identifier (VPI)/virtual
channel identifier (VCI) for routing purposes.
An ATM cell header can take on two different formats, User-Network Interface (UNI) and
Network-to-Network Interface (NNI). UNI defines private and public ATM network access
and connects ATM end users (as hosts and routers). NNI defines ATM interswitch
communication. A UNI ATM header contains the following fields:
• Generic Flow Control (GFC)—A 4-bit field of local significance that can be used at
the UNI, although currently it is not used and is set to all 0s.
• Virtual Path Identifier (VPI)—8 bits at UNI and 12 bits at NNI. Another locally
significant field, it identifies a particular interface address. It can be thought of as
similar in function to data-link connection identifier (DLCI) in Frame Relay.
• Virtual Channel Identifier (VCI)—16 bits. As mentioned, it is a part of the locally
significant ATM address and can identify 65,536 virtual channels (VCs).
• Payload Type (PT)—A 3-bit field with every bit carrying its own function. The first
bit specifies whether the cell contains user data or control data, the second indicates
the presence of congestion, and the third bit is designated as the last-cell identifier
in the stream of cells for a single frame, called end of message.
CCIE.book Page 184 Monday, May 12, 2003 8:29 AM
• Cell Loss Priority (CLP)—A 1-bit field that designates the cell priority as low or high so
that the cell can be disposed of in case of congestion.
• Header Error Control (HEC)—An 8-bit field that performs cyclic redundancy check
(CRC) on the header to spot bit errors.
Figure 7-1 displays the contents of the ATM cell UNI header.
!"
#$
For more in-depth information about ATM theoretical concepts, consult Appendix E, “Security-
Related RFCs and Publications.”
Configuring ATM
Four implementation methods are used to transmit information over ATM. Briefly, they are as
follows:
• RFC 2684, “Multiprotocol Encapsulation over AAL5 (ATM Adaptation Layer 5)”—
A manual method of mapping upper-layer protocol addresses to the ATM addresses.
Updates RFC 1483.
• RFC 2225, “Classical IP and ARP over ATM”—A dynamic method of transporting IP
over ATM without the need for manual mapping. Updates RFCs 1577 and 1626.
• Local-Area Network Emulation (LANE)—Mimics LAN behavior over ATM cloud.
• Multiprotocol over ATM (MPOA)—A dynamic method, based on LANE, of
transporting all protocols, not just IP.
CCIE.book Page 185 Monday, May 12, 2003 8:29 AM
For the purposes of the exam, this book concentrates on multiprotocol encapsulation over
AAL5 and Classical IP and Address Resolution Protocol (ARP) over ATM.
Cisco offers a variety of router series models with ATM interfaces. You will be expected to
configure two 36xx Series routers during your practical exam. They are implemented along
with one LightStream 1010 switch, which requires no special input from you. However, this
chapter includes basic switch configuration information for your benefit.
The exact syntax depends on the router model used. The interface command
presented here is based on the 3640 model. You can use a major interface or
a subinterface. Subinterfaces are not required for the lab, and their usage is a
matter of personal preference. In this case, you are using the major interface.
Step 2 Configure protocol addressing information for ATM interfaces on both
routers using the following command:
R5(config-if)#ip address address mask
Step 3 Configure one ATM PVC on each router. In the case of R5, it is for
connectivity to R11. The full syntax of the command is as follows:
R5(config-if)#pvc [name] vpi/vci [ces | ilmi | qsaal | smds]
R5#show run
hostname R5
!
interface ATM3/0
ip address 172.100.1.1 255.255.255.0
no atm enable-ilmi-trap
no atm ilmi-keepalive
pvc 1/200
encapsulation aal5snap
R11#show run
hostname R11
!
interface ATM3/0
ip address 172.100.1.2 255.255.255.0
no atm enable-ilmi-trap
no atm ilmi-keepalive
pvc 1/100
encapsulation aal5snap
This command creates a bidirectional PVC. When a cell enters on the configured ATM interface
with specified VPI and VCI numbers, it exits the switch through the exit interface using another
specified VPI/VCI set and vice versa.
Example 7-3 demonstrates the LS1010 switch configuration. It shows incoming 1/200 VPI/VCI
pairs from R5 outgoing to interface 3/0/1 with 1/100 VPI/VCI pairs to R11. Also, 1/100
VPI/VCI pairs are coming in from R11 on interface 3/0/1, which is being switched out on
interface 3/0/3 with VPI/VCI pairs of 1/200 to R5. Notice that interface 3/0/3 is missing from
the configuration. By specifying the entry and exit VPI/VCI pair as well as the mapping
direction on one interface, you automatically enable a mapping in the opposite direction. The
ATM cloud is now complete.
CCIE.book Page 189 Monday, May 12, 2003 8:29 AM
LS1010#show run
hostname LS1010
!
interface ATM3/0/1
no keepalive
atm pvc 1 100 interface ATM3/0/3 1 200
!
interface ATM3/0/3
no keepalive <----no need to configure ATM 3/0/3
NOTE On the CCIE Security lab exam, you are not required to configure the LS1010 switch. However,
the LS1010 configuration is included with this lesson for your benefit.
When the router terminates the PVC, and PVC discovery is configured on
that PVC, an ATM Inverse ARP request is generated. Therefore, you no
longer a need a static map. The PVC can resolve its own network addresses
dynamically. The optional subinterface keyword results in discovered PVCs
being assigned to those ATM subinterfaces with the same subinterface
number value as the discovered PVC’s VPI number. In other words, if the
discovered PVC’s VPI value is 1, it is assigned to a subinterface whose
number is .1.
Address mappings gathered dynamically age out and are refreshed periodi-
cally. Inverse ARP used to be available only for IP with RFC 2225 (discussed
later in “RFC 2225: Classical IP and ARP over ATM”), but Cisco IOS Soft-
ware currently provides Inverse ARP for the IPX protocol as well.
CCIE.book Page 190 Monday, May 12, 2003 8:29 AM
R5#show run
hostname R5
!
interface ATM3/0
pvc 0/16 ilmi
atm ilmi-pvc-discovery subinterface
!
interface ATM 3/0.1 point-to-point
ip address 172.100.1.1 255.255.255.0
R11#show run
hostname R11
!
interface ATM3/0
pvc 0/16 ilmi
atm ilmi-pvc-discovery subinterface
!
interface ATM 3/0.1 point-to-point
ip address 172.100.1.2 255.255.255.0
Even though it is not crucial for this ATM topology, the dynamic method of setting up PVCs is
less labor intensive compared to the static method and can be more manageable for the growing
ATM environment.
Example 7-5 shows that one PVC is active on the ATM3/0 interface. The VCs have local
significance and show an active connection to the switch. To view VC values on a router-to-
router ATM connection, you must go to each device between the two end routers and begin
checking the interface status and incoming VPI/VCI pair. The outgoing VPI/VCI pair of the R5
router must match the incoming VPI/VCI pair of the LS1010. In case of a mismatch, the router
keeps sending out ATM cells, but the switch drops them because the VPI/VCI pair is unknown.
Example 7-5 The show atm vc Command Output
R5#show atm vc
VCD /Peak Avg/Min Burst
Interface Name VPI VCI Type Encaps Kbps Kbps Cells Sts
ATM3/0 1 1 200 PVC SNAP 155000 155000 UP
CCIE.book Page 191 Monday, May 12, 2003 8:29 AM
To determine if the interface status is up on the switch, use the following command (see
Example 7-6):
LS1010#show atm status
After you check VPI/VCI pairs and mapping statements for each device, ping from one router
to the other (see Example 7-7) as follows:
R5#ping ip-address
R5#ping 172.100.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.100.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms
Each LIS has an ATM Address Resolution Protocol (ATMARP) server. The server maintains a
database of IP address–to–ATM address mappings. When a LIS client in each subnet has the IP
address of another client and needs to locate its ATM address, it contacts the ATMARP server.
Once the ATM address is located, a connection is set up over the ATM cloud. All clients must
have their ATMARP server’s ATM address and contact the server when they come up. The
ATMARP server then performs an Inverse ARP, finds the IP address of the clients, and installs
the address in its database. If a client needs to talk to a client in another LIS, it needs to go
through an IP router that is configured as a member of both LIS groups. Only SVC-based ATM
networks feature a client/server relationship. A PVC-based ATM network resolves VC identifi-
ers to the corresponding IP addresses using InATMARP instead. Therefore, it does not require
an ARP server. In this chapter, you learn the RFC 2225 implementation of both the SVC- and
the PVC-based networks.
The syntax of PVC commands for Classical IP is virtually the same as those you encountered
earlier in “RFC 2684: Multiprotocol Encapsulation over AAL5.” As a reminder, these
commands are as follows:
R5(config)#interface atm slot/0
R5(config-if)#ip address address mask
R5(config-if)#pvc [name] vpi/vci
By default, Inverse ARP datagrams are sent on each PVC every 15 minutes. To adjust the
Inverse ARP time period, use the following command in interface-ATM-VC configuration
mode:
R5(config-if-atm-vc)#inarp minutes
Example 7-8 combines the configuration of the two routers in your topology.
CCIE.book Page 193 Monday, May 12, 2003 8:29 AM
R5#show run
hostname R5
!
interface ATM3/0
no ip address
no ip directed-broadcast
no atm enable-ilmi-trap
no atm ilmi-keepalive
!
interface ATM3/0.1 point-to-point
ip address 172.100.1.1 255.255.255.0
pvc 1/200
inarp 10
!
R11#show run
hostname R11
!
interface ATM3/0
no ip address
no ip directed-broadcast
no atm enable-ilmi-trap
no atm ilmi-keepalive
!
interface ATM3/0.1 point-to-point
ip address 172.100.1.2 255.255.255.0
pvc 1/100
inarp 10
NOTE The Inverse ATM ARP mechanism works with IP and IPX only, but other protocols are not
included in the CCIE Security exam.
CCIE.book Page 194 Monday, May 12, 2003 8:29 AM
See Example 7-9 for the LS1010 switch acting as an ARP server configuration.
Example 7-9 RFC 2225 Switch Configuration
LS1010#show run
hostname ls1010
!
logging buffered 16384 debugging
!
interface ATM3/0/3
ip address 172.100.1.3 255.255.255.0
no keepalive
atm nsap-address 47.008181000000006170598A01.123456789000.00
atm arp-server self
As an alternative to a 20-byte-long NSAP address, you can choose to assign a shorter end-
system identifier (ESI), which has only 12 hexadecimal numbers and 2 hexadecimal selector
numbers that form the last 7 bytes of the ATM address. In this example, you also need to use
ILMI to automatically obtain a 13-byte prefix from the attached ATM switch.
The esi-address statement syntax is as follows:
R5(config-if)#atm esi-address esi.selector
If you are using ESI, make sure that the signaling and the ILMI PVCs are set up.
Then, you specify the full ATM address of the ATM ARP server. Your router uses this NSAP
address to establish a connection to the ARP server when the ATM interface comes up. The
syntax for the command is as follows:
R5(config-if)#atm arp-server nsap nsap-address
CCIE.book Page 195 Monday, May 12, 2003 8:29 AM
Example 7-10 demonstrates the client-side configuration of Classical IP and ARP in an SVC
environment.
Example 7-10 RFC 2225 Client-Side SVC Configuration
R5#show run
hostname r5
!
interface ATM3/0
ip address 172.100.1.1 255.255.255.0
no keepalive
atm esi-address 500000000000.00
pvc 0/5 qsaal
pvc 0/16 ilmi
atm arp-server nsap 47.008181000000006170598A01.123456789000.00
!
R11#show run
hostname r11
!
logging buffered 16384 debugging
!
interface ATM3/0
ip address 172.100.1.2 255.255.255.0
no keepalive
atm esi-address 300000000000.00
pvc 0/5 qsaal
pvc 0/16 ilmi
atm arp-server nsap 47.008181000000006170598A01.123456789000.00
Summary
In this chapter, you learned various implementations of Layer 3 protocols over ATM.
Specifically targeted toward the CCIE Security lab exam, the chapter concentrated on two
methods of ATM deployment: multiprotocol encapsulation (RFC 2684) and Classical IP (RFC
2225). RFC 2684 encompasses multiple protocols, and RFC 2225 focuses on IP only. Both of
these implementations included a discussion on permanent virtual circuits (PVCs) and switched
virtual circuits (SVCs), their configurations, and monitoring and troubleshooting techniques.
Review Questions
1 How many bits are used for VPI at UNI?
2 What form of addressing does a PVC use?
3 What are two forms of ATM global addresses?
4 Automatic ATM address registration is enabled via what?
5 Specifying an AAL5SNAP encapsulation type is a mandatory configuration step in the
RFC 2684 configuration using PVCs. True or false?
CCIE.book Page 196 Monday, May 12, 2003 8:29 AM
FAQs
Q — What is the difference in the implementation of RFC 2684 between SVCs and
PVCs?
A — The difference is in how addressing is referenced. With PVCs, the VPI/VCI num-
bers (using VCDs) are referenced. With SVCs, the globally significant NSAP
addresses are referenced.
Q — Are there any VPI/VCI space management guidelines?
A — Yes. Some of the guidelines are as follows:
• VCIs from 0 to 31 (inclusive) are reserved by the ITU-T and the ATM Forum,
and should not be used in a live network.
• On logical ports, the VPI for all VCs should equal the VPI of the tunneling VP.
On the CPU port, the VPI should be 0.
• The recommendation for PVCs is to use the VCI numbers in a higher range.
Q — What is Q.2931, and how is it used?
A — Q.2931 is the ATM signaling protocol. It is used to set up an SVC connection. In
such instances, the edge devices must have a PVC with the VCI of 5 defined for
Q.2931 to use.
Q — What are the valid types of ATM virtual connections?
A — The valid types are PVC, SVC, and Soft PVC. A PVC is a permanent circuit that is
created by the administrator. SVCs are dynamically established. A Soft PVC uses
PVCs to access the network that is interconnected through SVCs.
CCIE.book Page 197 Monday, May 12, 2003 8:29 AM
CCIE.book Page 198 Monday, May 12, 2003 8:29 AM
CCIE.book Page 199 Monday, May 12, 2003 8:29 AM
PA R T
III
IP Routing
Chapter 8 RIP
Chapter 9 EIGRP
Chapter 10 OSPF
Chapter 11 IS-IS
Chapter 12 BGP
Chapter 13 Redistribution
CCIE.book Page 200 Monday, May 12, 2003 8:29 AM
CHAPTER 8
RIP
This chapter assumes that, in your previous studies and work experience, you have already
encountered Routing Information Protocol (RIP) and, therefore, omits some of the basic
background information. Nonetheless, concepts that are considered pertinent to the topic
are covered. RIP is a part of the routing portion of the CCIE Security lab exam. RIP also
has a number of important security-related characteristics. This chapter’s discussion of RIP
encompasses general configuration of RIP as well as its security parameters.
RIP Structure
The following is an ultra-quick summary of RIP features. When reading this book, keep
these features in mind:
• RIP is the oldest routing protocol in use today.
• RIP is an interior gateway protocol that was created for small homogenous networks.
You will see the reasoning behind it when you read more about RIP’s structure in the
next few sections.
• RIP is a distance-vector routing protocol and, subsequently, uses the distance-vector
defined path determination and routing update techniques.
• Numerous RIP-like routing protocols exist—some even carry the same name—but
only IP RIP is of interest to you here.
• Two versions of RIP exist: RIPv1 and RIPv2. RIPv2 is an enhanced version of RIPv1.
You see more about this topic later in the section, “RIPv1 Versus RIPv2.”
Unlike the routing updates, periodic updates are transmitted regularly. Various timers control
such transmissions. The available timers and their defaults are as follows:
• Routing-update timer—The interval between periodic advertisements—about
30 seconds—but varies slightly to prevent all routers from simultaneously trying
to update their neighbors.
• Invalid timer—180 seconds. If an update for a route is not received for the specified
interval, the route is marked as unusable.
• Hold-down timer—180 seconds. If a router receives an update with a metric higher than
that recorded in its routing table, the route is forced into a hold-down.
• Route-flush timer—240 seconds. When the invalid timer expires, the route is not used
but it remains in the table. If no update occurs within the flush timer interval, the route is
removed from the table.
If timers’ defaults are changed on one router, you must change them in the entire RIP domain.
Carefully weigh the consequences before making such a change.
Routing Metric
RIP bases its routing decisions on a single metric: hop count. RIP distinguishes among different
available routes to a destination by the smallest number of routers (hops) that can be passed
through on the way. For example, a directly connected network has a metric of 0, and each
additional hop in a path is assigned a value of 1.
The way a router calculates hop count is that when it receives a routing update with a new or
changed destination network entry, it uses the IP address of the neighbor that sent an update as
the next hop. Next, the router takes the existing metric value contained in the update and adds
1 to it. Then, the router installs the route in its routing table. RIP only keeps the best route to a
destination in the table.
Keep in mind that a metric of 16 indicates an unreachable network. RIP is inadequate for large
networks with such a small range and the frequency and size of routing updates. This topic is
discussed in the next section.
Split-Horizon Issues
By its nature, RIP is prone to routing loops. However, it employs several useful mechanisms to
avoid the problem. First, it implements a hop limit, briefly mentioned in the preceding section.
The maximum number of hops is set at 15. If a router keeps receiving a routing update with a
topology change and keeps increasing the metric value by 1, the metric eventually reaches 16,
which is recognized as infinity, marking the network unreachable.
CCIE.book Page 203 Monday, May 12, 2003 8:29 AM
Hold-down timer and split horizon with poison reverse feature are also used to ensure stability
in a RIP network. Hold-down timer prevents information on a looped route from being forwarded.
Poison reverse rule is simple. It states that once a route is learned via an interface, it cannot be
advertised back through that same interface.
Configuring RIP
This section discusses the commands that are necessary to enable proper operation of RIP along
with the concepts and issues that can arise as a result of certain implementation and configuration.
The configuration tasks are divided into four major categories, as follows:
• Basic RIP configuration
• RIPv1 over router to PIX 5.2 connection
• RIPv2 over router to PIX 6.2 connection with authentication
• Advanced RIP configuration
CCIE.book Page 204 Monday, May 12, 2003 8:29 AM
Step 6 RIP route summarization, which includes turning off automatic route
summarization with RIPv2, creating a summary route, and the issue of
split horizon
Step 7 RIP authentication with and without MD5 encryption
The router rip command is the same for both versions of RIP. After a router command is in
place, you are forwarded into a router configuration mode. This is true for any routing protocol,
not just RIP.
Now you need to specify networks that are supposed to participate in RIP routing. You need to
repeat the following command for every network that you want to include:
R4(config-router)#network ip-address
CCIE.book Page 205 Monday, May 12, 2003 8:29 AM
%-
')*
,-. + +
!
" / '((
#$%& #$%&
,
%-
')*
" !
" ,
#$%&
Example 8-1 demonstrates that R4 configuration includes network statements for both the
140.100.0.0 network belonging to its Ethernet0 interface and the 4.0.0.0 network of Loopback4.
Because R7 is attached to five major networks (which include its loopback interfaces), five
network statements are included in its router configuration. Notice that networks are summarized
at class boundaries, even though Ethernet0 and Loopback444 of R7, for example, belong to
different subnets.
Example 8-1 Enabling RIP Routing on R4 and R7
R4#show run
hostname r4
!
interface Loopback4
ip address 4.4.4.4 255.255.255.0
!
interface Ethernet0
ip address 140.100.47.4 255.255.255.192
!
interface Serial0
ip address 150.100.33.4 255.255.255.248
encapsulation frame-relay
continues
CCIE.book Page 206 Monday, May 12, 2003 8:29 AM
r7#show run
hostname r7
!
interface Loopback1
ip address 7.1.1.7 255.255.255.0
!
interface Loopback2
ip address 17.1.1.7 255.255.255.0
!
interface Loopback3
ip address 27.1.1.7 255.255.255.0
!
interface Loopback4
ip address 37.1.1.7 255.255.255.0
!
interface Loopback444
ip address 140.100.9.1 255.255.255.224
!
interface Loopback777
ip address 7.7.7.7 255.255.255.0
!
interface Ethernet0
ip address 140.100.47.7 255.255.255.192
!
router rip
network 7.0.0.0
network 17.0.0.0
network 27.0.0.0
CCIE.book Page 207 Monday, May 12, 2003 8:29 AM
The passive-interface command does not apply to RIP only. You can use it with any IP routing
protocol except BGP, and it applies to both RIPv1 and RIPv2. An interface configured with the
passive-interface command still listens to RIP broadcasts and updates its routing table. However,
it does not respond to a RIP request received on that interface.
In your topology, R7 has the Serial0 interface. Its IP address of 140.100.48.1/24 is not on the
same subnet as Ethernet0. However, as far as RIP is concerned, Serial0 is a member of the same
Class B network as Ethernet0 and, therefore, is included in the RIP process with the network
140.100.0.0 command discussed previously. The same is true for the Loopback777 interface.
Its IP address of 7.7.7.7/24 is included with the Loopback1 interface because of their common
Class A network root. To prevent Serial0 and Loopback444 from participating in the RIP
updates process, you need to specify a passive-interface statement for each of them, as shown
in Example 8-2.
Example 8-2 Using the passive-interface Command on R7
R7#show run
hostname r7
!
interface Loopback1
ip address 7.1.1.7 255.255.255.0
continues
CCIE.book Page 208 Monday, May 12, 2003 8:29 AM
Suppose that you want to suppress the Loopback1 subnet on R7 from being advertised in R7’s
routing updates. First, you create an access list, which denies the 7.1.1.0/24 subnet and permits
all else. Then, in the router configuration mode, you call up your newly created access list
with the distribute-list command and specify that it applies to the outgoing advertisements.
Example 8-3 demonstrates this configuration in action.
Example 8-3 Filtering of Routes in Outgoing Updates
R7#show run
hostname r7
!
interface Loopback1
ip address 7.1.1.7 255.255.255.0
CCIE.book Page 209 Monday, May 12, 2003 8:29 AM
r7#show access-lists
Standard IP access list 1
deny 7.1.1.0, wildcard bits 0.0.0.255 log (101 matches) check=1230
permit any log (1230 matches)
For example, you might want R7 to dynamically learn a default route from R4. You can do so
by placing default-information originate on R4, as shown in Example 8-4.
Example 8-4 Default Route on R4
R4#show run
hostname r4
!
! Output omitted for brevity
!
router rip
network 4.0.0.0
network 140.100.0.0
default-information originate → Sends a default route to R7
CCIE.book Page 210 Monday, May 12, 2003 8:29 AM
When the show ip route rip command is executed on R7 and displayed in Example 8-5, you
can see that the default route is known via R4’s Ethernet0 interface.
Example 8-5 The show ip route rip Output on R7
As shown in Example 8-6, both routers specify version 2 in the router configuration mode as
their version of choice.
Example 8-6 Specifying the RIP Version
R4#show run
hostname r4
!
! Output omitted for brevity
!
router rip
version 2
network 4.0.0.0
network 140.100.0.0
default-information originate
R7#show run
hostname r7
!
! Output omitted for brevity
!
router rip
version 2
passive-interface Loopback444
passive-interface Serial0
network 7.0.0.0
network 17.0.0.0
network 27.0.0.0
network 37.0.0.0
network 140.100.0.0
CCIE.book Page 211 Monday, May 12, 2003 8:29 AM
Note that the version command governs the global RIP version in the router. To exercise more
control or override the global behavior on a per-interface basis, you can specify which RIP
version messages an interface sends or receives with the following commands:
R4(config-if)#ip rip send version [1 | 2 | 1 2 ]
R4(config-if)#ip rip receive version [1 | 2 | 1 2]
In Example 8-7, R4 and R7 Ethernet0 interfaces display version 2 for both send and receive
options in their configurations.
Example 8-7 Interface-Level RIP Version
R4#show run
hostname r4
!
! Output omitted for brevity
!
interface Ethernet0
ip address 140.100.47.4 255.255.255.192
ip rip send version 2
ip rip receive version 2
!
router rip
version 2
network 4.0.0.0
network 140.100.0.0
default-information originate
r7#show run
hostname r7
!
! Output omitted for brevity
!
interface Ethernet0
ip address 140.100.47.7 255.255.255.192
ip rip send version 2
ip rip receive version 2
!
router rip
version 2
passive-interface Loopback444
passive-interface Serial0
network 7.0.0.0
network 140.100.0.0
Example 8-8 displays the output of the show ip route rip command on R4 and R7. You can
see that with your current configuration, all existing subnets are summarized into their major
networks, with the exception of Loopback444, which is showing its true subnet of /27, as
explained later in this section.
Example 8-8 The show ip route rip Command Output of R4 and R7
To turn off summarization and allow subnets to be advertised for both routers, issue the
following command on each router:
R7(config-router)#no auto-summary
Example 8-9 shows the configuration of R7 with the no auto-summary command and indicates
how the RIP routing tables of both routers have changed as a result. (Assume that the same
configuration statement has been applied to R4). Specific subnets are now advertised.
Example 8-9 The no auto-summary Configuration and the Resulting Routing Tables
Example 8-9 The no auto-summary Configuration and the Resulting Routing Tables (Continued)
R 4.4.4.0/24 [120/1] via 140.100.47.4, 00:00:17, Ethernet0
R 4.0.0.0/8 [120/1] via 140.100.47.4, 00:01:14, Ethernet0
R* 0.0.0.0/0 [120/1] via 140.100.47.4, 00:00:17, Ethernet0
If you look closely at the RIP routing tables in Example 8-9, you see that the incorrect summary
routes, such as 4.0.0.0/8, are still showing up along with the subnetted routes. This occurs
because the following command has not been issued yet:
R7#clear ip route *
Example 8-10 presents the show ip route rip command output after the clear ip route *
command is issued. Notice that all incorrectly summarized routes are gone.
Example 8-10 The clear ip route * Command and the Resulting Routing Tables
Remember the detail that was mentioned earlier: Even before the no auto-summary command
has been issued, R7’s Loopback444 interface already had its subnet 140.100.9.0/27 advertised.
This occurred because the Loopback444’s subnet happens to be on the same Class B network
as R7’s Ethernet0 interface. RIPv2 recognizes the subnet information of Loopback444 and
separates it from the directly connected advertising Ethernet0 interface. If RIPv1 had been
used instead of RIPv2, the network 140.100.0.0 would have been excluded from the RIP
routing table.
Suppose you do not want to advertise the separate route for Loopback444 and would like to
summarize it into a common subnet. The method of summarization is used to improve scalability
and efficiency because fewer routes need to be included in the routing table. This reduces the
size of the table and lets it handle more routes. The way summary routes are handled by RIP
reduces processing time as well. The summary route command is placed in the interface con-
figuration of the forwarding interface, or Ethernet0 in this case. The syntax for the command is
as follows:
R7(config-if)#ip summary-address rip ip-address ip-network-mask
Example 8-11 demonstrates the change in the R7 configuration to include the summary route
of 140.100.0.0 255.255.0.0. If you later remember to issue the clear ip route * command,
your RIP routing table on R4 should look like the one shown in Example 8-12. The subnet
140.100.9.0/27 is no longer there.
CCIE.book Page 214 Monday, May 12, 2003 8:29 AM
R7#show run
hostname r7
!
interface Ethernet0
ip address 140.100.47.7 255.255.255.192
ip rip send version 2
ip rip receive version 2
no ip split-horizon
ip summary-address rip 140.100.0.0 255.255.0.0
!
router rip
version 2
passive-interface Loopback444
passive-interface Serial0
network 7.0.0.0
network 17.0.0.0
network 27.0.0.0
network 37.0.0.0
network 140.100.0.0
distribute-list 1 out
no auto-summary
Another issue related to route summarization is split horizon in RIP networks. RIP is a
broadcast-type protocol and is prone to routing loops. Therefore, split horizon is normally a
very useful feature that minimizes the possibility of routing loops and is enabled by default.
However, when a RIP interface is connected to a nonbroadcast network such as Frame Relay,
split horizon can prevent routers from communicating properly.
Example 8-13 illustrates the Serial 0 interface of R4 connected to a Frame Relay network
and configured as point-to-multipoint. In such instances, you need to disable split horizon.
CCIE.book Page 215 Monday, May 12, 2003 8:29 AM
Also, if you refer to Example 8-11, you notice that split horizon is manually disabled on the
Ethernet0 interface. This is because split horizon does not allow the summary route to be
advertised out Ethernet0 because it was learned via Ethernet0. If split horizon is enabled,
interface summary address does not work. To disable split horizon, use the following command:
R7(config-if)#no ip split-horizon
CCIE.book Page 216 Monday, May 12, 2003 8:29 AM
Keep in mind that the key chain name is locally significant and need not be the same on both
authenticating routers. To simplify the configuration in Example 8-14, the name ccie is used for
both R4’s and R7’s key chains. The next step is to select and number a key. Both routers have
key 6727 assigned. Now, you need to define a password or key-string of alphanumeric characters
for the key. In this case, that is also 6727. Key-string must be the same for both sides participat-
ing in authentication. The syntax for key definition is as follows:
R4(config-keychain)#key key-number
R4(config-keychain)#key-string password
r4#show run
service password-encryption
!
hostname r4
!
key chain ccie
key 6727
key-string 7 0759761E19
!
! Output omitted for brevity
r7#show run
service password-encryption
!
hostname r7
!
key chain ccie
key 6727
key-string 7 03520C5951
!
! Output omitted for brevity
Notice in the output in Example 8-14 that R4’s key-string is different from the key-string on R7.
This is because the service password-encryption command has been applied to R4, so the key-
string no longer appears in cleartext. It is a security test, after all.
CCIE.book Page 217 Monday, May 12, 2003 8:29 AM
Finally, you are ready to configure the RIP-related portion of authentication. RIPv2 authentication
is enabled on an interface by assigning the newly configured key-chain to it, as follows:
R4(config-if)#ip rip authentication key-chain name-of-chain
As you know, two modes of authentication are supported for RIP on Cisco routers: plain text
and MD5. The default is plain text authentication, so if you omit the next command, plain text
is assumed. However, plain text is obviously not recommended for security purposes. Always
specify the MD5 authentication mode, as follows, unless it is absolutely necessary to do
otherwise.
R4(config-if)#ip rip authentication mode [text | md5]
Example 8-15 shows the entire authentication configuration for R4 and R7. You can see that
authentication mode MD5 and key-chain ccie have been assigned to Ethernet0 interfaces.
Example 8-15 RIPv2 Authentication Configuration
r4#show run
service password-encryption
!
hostname r4
!
key chain ccie
key 6727
key-string 7 0759761E19
!
! Output omitted for brevity
!
interface Ethernet0
ip address 140.100.47.4 255.255.255.192
ip rip send version 2 → MD5 Only in RIPv2
ip rip receive version 2 → MD5 Only in RIPv2
ip rip authentication mode md5
ip rip authentication key-chain ccie
r7#show run
service password-encryption
!
hostname r7
!
key chain ccie
key 6727
key-string 7 03520C5951
!
! Output omitted for brevity
!
interface Ethernet0
ip address 140.100.47.7 255.255.255.192
ip rip send version 2 → MD5 Only in RIPv2
continues
CCIE.book Page 218 Monday, May 12, 2003 8:29 AM
Also, you have the option of configuring key management to make the router use different keys
at different times. This concept, however, is irrelevant to the task at hand and is not covered in
this book.
The working authentication debug output looks like the output shown in Example 8-17. The
comment received v2 update at the end indicates a successful exchange.
CCIE.book Page 219 Monday, May 12, 2003 8:29 AM
Example 8-17 The debug ip rip events Command Output with Successful Authentication
Besides debug ip rip events, a few other commands are used to verify the operation of RIP.
Example 8-18 displays the output of the show ip route rip command, which you encountered
earlier in this chapter. It is a good way to ensure that all the routes you expect to see are, in fact,
there, and those you don’t, aren’t.
Example 8-18 The show ip route rip Command Output
Example 8-19 illustrates the output of the show ip protocols command for R4 and R7.
Example 8-19 The show ip protocols Command Output
r4#show ip protocols
Routing Protocol is "rip"
Sending updates every 30 seconds, next due in 5 seconds
Invalid after 180 seconds, hold down 180, flushed after 240
Outgoing update filter list for all interfaces is
continues
CCIE.book Page 220 Monday, May 12, 2003 8:29 AM
r7#show ip protocols
Routing Protocol is "rip"
Sending updates every 30 seconds, next due in 3 seconds
Invalid after 180 seconds, hold down 180, flushed after 240
Outgoing update filter list for all interfaces is 1
Incoming update filter list for all interfaces is not set
Redistributing: rip
Default version control: send version 2, receive version 2
Interface Send Recv Triggered RIP Key-chain
Ethernet0 2 2 ccie
Loopback1 2 2
Loopback2 2 2
Loopback3 2 2
Loopback4 2 2
Loopback777 2 2
Automatic network summarization is not in effect
Address Summarization:
140.100.0.0/16 for Loopback444, Ethernet0 → Summary address
Maximum path: 4
Routing for Networks:
7.0.0.0
17.0.0.0
27.0.0.0
37.0.0.0
140.100.0.0
Passive Interface(s):
Loopback444
Serial0
Routing Information Sources:
Gateway Distance Last Update
140.100.47.4 120 00:00:18
Distance: (default is 120)
CCIE.book Page 221 Monday, May 12, 2003 8:29 AM
!
"
#$%&
R3#show run
hostname r3
!
interface Loopback0
ip address 3.3.3.3 255.255.255.0
!
interface Ethernet0
ip address 130.100.1.3 255.255.255.0
continues
CCIE.book Page 222 Monday, May 12, 2003 8:29 AM
R3#show run
hostname r3
!
router ospf 123
router-id 3.3.3.3
log-adjacency-changes detail
redistribute rip metric 1 subnets
network 3.3.3.0 0.0.0.255 area 0
network 150.100.33.0 0.0.0.7 area 0
!
router rip
version 1
redistribute ospf 123 metric 1
network 130.100.0.0
Example 8-22 shows the results of redistribution configuration on R3. Use the show ip rip
database command to verify the correct route information.
Example 8-22 The show ip rip database Command Output
NOTE Incidentally, you might have noticed the redistribution statements for R4 presented in Example 8-1
of Case Study 8-1. Although they were not discussed in Case Study 8-1, they are important
elements of configuration that enable reachability across the network. Now that you know how
to configure RIP redistribution, you can go back to R4 and add these statements to the R4’s
setup.
Assign the IP address of 130.100.1.1/24 to the outside interface. The syntax for the command
is as follows:
PIX1(config)#ip address interface-name ip-address subnet-mask
Finally, enable the RIP process on the PIX. The following command facilitates IP routing table
updates from received RIP broadcasts:
PIX1(config)#rip interface-name default | passive [version [1 | 2]]
CCIE.book Page 224 Monday, May 12, 2003 8:29 AM
The default keyword signifies the broadcast of a default route on the interface, and the passive
keyword means that the firewall listens for RIP routing broadcasts and uses that information to
populate its routing tables. In your configuration, you need to specify both. Verify that your
configuration matches Example 8-23. Note the statements rip outside passive version 1 and
rip outside default version 1, which are at the end of the output.
Example 8-23 RIPv1 PIX Configuration
PIX1#write terminal
PIX Version 5.2(3)
nameif ethernet0 outside security0
nameif ethernet1 inside security100
nameif ethernet2 dmz security10
hostname PIX1
It seems that all the necessary steps have been taken and the configuration should work. Use the
show route command on the firewall to display the available routes. Examine Example 8-24
for the results. Notice that the expected routes are missing. What happened?
Example 8-24 The show route Command Output on PIX1
Example 8-25 demonstrates the updated configuration of R3, which includes the neighbor
130.100.1.1 statement in its RIP configuration.
Example 8-25 Enabling Unicast Updates on R3
r3#show run
! Output omitted for brevity
router rip
version 1
redistribute ospf 123 metric 1
network 130.100.0.0
neighbor 130.100.1.1
Now if you repeat the show route command on PIX1, you see that all routes are there, as
demonstrated in Example 8-26.
Example 8-26 The show route Command Output on PIX1
NOTE The neighbor command is not just applicable in RIP for PIX 5.2.x. For RIP updates to reach
nonbroadcast networks such as Frame Relay, you would also have to explicitly permit the point-
to-point exchange of unicast updates with the neighbor command. You can use this command
in conjunction with the passive-interface command. To specify additional neighbors, use
multiple neighbor commands.
Case Study 8-3: RIPv2 over Router to PIX 6.2 Connection with
Authentication
The goal of this section is to teach you to use authentication techniques, not only for router-to-
router authentication but also for router-to-PIX. The topology involves PIX2 using version 6.2,
R5, R6, and, in a way, R8. R5 and R6 are running RIPv2 and OSPF in two different areas: area 1
and area 50. R5’s Ethernet0 interface is connected to VLAN 26 along with R6’s FastEthernet0/0
interface and PIX2 outside interface. R5 is also connected to R6 back-to-back via their serial
interfaces. This has no particular significance in this exercise, but it will become useful in other
CCIE.book Page 226 Monday, May 12, 2003 8:29 AM
chapters of this book. The inside interface of PIX2 is connected to Ethernet0 of R8. R8 is only
of interest to you here because it is injecting a loopback route of 8.8.8.8 into PIX2.
Figure 8-3 illustrates the current topology, which is a part of the full lab shown in Figure 8-1.
&
"
#
$
!
r5#show run
hostname r5
!
interface Loopback5
ip address 5.5.5.5 255.255.255.0
CCIE.book Page 227 Monday, May 12, 2003 8:29 AM
r6#show run
hostname r6
!
interface Loopback6
ip address 6.6.6.6 255.255.255.0
!
interface FastEthernet0/0
ip address 130.100.2.6 255.255.255.224
duplex auto
speed auto
!
interface Serial0/0
ip address 140.100.56.6 255.255.255.192
!
interface FastEthernet0/1
no ip address
duplex auto
speed auto
!
router ospf 123
router-id 6.6.6.6
continues
CCIE.book Page 228 Monday, May 12, 2003 8:29 AM
r5#show run
hostname r5
!
key chain ccie
key 1
key-string ccie
!
! Output omitted for brevity
!
interface Ethernet0
ip address 130.100.2.5 255.255.255.224
ip rip send version 2
ip rip receive version 2
ip rip authentication mode md5
ip rip authentication key-chain ccie
r6#show run
hostname r6
!
key chain ccie
key 1
key-string ccie
!
! Output omitted for brevity
!
interface FastEthernet0/0
ip address 130.100.2.6 255.255.255.224
ip rip send version 2
CCIE.book Page 229 Monday, May 12, 2003 8:29 AM
To verify that the authentication between routers is working, issue the show ip protocols
command on both routers. The output of this command, shown in Example 8-29, proves that
the key chain ccie has been applied.
Example 8-29 The show ip protocols Command Output
r5#show ip protocols
Routing Protocol is "ospf 123"
Invalid after 0 seconds, hold down 0, flushed after 0
Outgoing update filter list for all interfaces is
Incoming update filter list for all interfaces is
Redistributing: rip
Routing for Networks:
5.5.5.0/24
140.100.45.4/30
140.100.56.0/26
Routing Information Sources:
Gateway Distance Last Update
3.3.3.3 110 00:40:43
4.4.4.4 110 00:40:43
Distance: (default is 110)
Redistributing: rip
Default version control: send version 2, receive version 2
Interface Send Recv Triggered RIP Key-chain
Ethernet0 2 2 ccie
Automatic network summarization is not in effect
Routing for Networks:
130.100.0.0
Routing Information Sources:
Gateway Distance Last Update
130.100.2.6 120 00:00:05
130.100.2.2 120 00:00:21
Distance: (default is 120)
continues
CCIE.book Page 230 Monday, May 12, 2003 8:29 AM
Redistributing: rip
Default version control: send version 2, receive version 2
Interface Send Recv Triggered RIP Key-chain
FastEthernet0/0 2 2 ccie
Interface Send Recv Triggered RIP Key-chain
Automatic network summarization is not in effect
Routing for Networks:
130.100.0.0
Routing Information Sources:
Gateway Distance Last Update
130.100.2.5 120 00:00:14
130.100.2.2 120 00:00:02
Distance: (default is 120)
PIX2#show run
PIX Version 6.2(1)
nameif ethernet0 outside security0
nameif ethernet1 inside security100
hostname pix2
Example 8-31 demonstrates the show route PIX command output so that you see all the routes
being advertised to the firewall, including 8.8.8.8.
Example 8-31 The show route Command Output on PIX2
Now if you type show ip route or show ip route rip on either router, you see the default route
that is learned via the PIX2 outside interface. Example 8-32 proves that the route exchange is
working.
CCIE.book Page 232 Monday, May 12, 2003 8:29 AM
To verify whether the authentication process is truly operational between the routers and PIX,
execute the debug ip rip command on both routers and the debug rip command on the PIX.
Example 8-33 validates your configuration by displaying the successful MD5 packet exchange.
Example 8-33 The debug rip Command Output of PIX2
Adjusting Timers
Previously, in “Routing Updates and Timers,” you learned that RIP uses the following types of
timers to control its operation:
• An update timer
• A time-out or invalid timer
• A hold-down timer for split horizon
• A flush timer to rid a routing table of an invalid route
All of these timers have default settings, which you do not need to set. However, to change any
of the defaults, you must invoke the following command:
R1(config-router)#timers basic update invalid holddown flush
NOTE In this lesson, R1 refers to any router, rather than a specific router.
All the timers are measured in seconds. All four timers comprise the command. If you need to
make a change to just one of them, you still need to retype the values for all. Another drawback
to this command is the fact that once you have modified the defaults on one router, you must
also alter all routers in the RIP routing domain.
Example 8-34 shows the implementation of the timers basic command on a router.
Example 8-34 Adjusting RIP Timers on a Router
R1#show run
!
router rip
version 2
continues
CCIE.book Page 234 Monday, May 12, 2003 8:29 AM
Example 8-35 illustrates the application of the ip rip triggered command on a router.
Example 8-35 Enabling Triggered Updates on the RIP WAN Interface
R6#show run
interface Serial0/0
ip address 140.100.56.6 255.255.255.192
ip rip triggered
Example 8-36 exhibits the debug ip rip command output before and after the ip rip v2-
broadcast command has been enabled. The difference is clear: The address of 224.0.0.9 has
changed to 255.255.255.255.
Example 8-36 The debug ip rip Command Output
Summary
RIP is the oldest routing protocol out there, but it has proven resiliency. It is still widely used
and is an integral part of networking. The CCIE Security lab exam is not based solely on RIP,
but a good understanding of RIP theory and a knowledge of configuration are required.
In this chapter, you learned some of the most vital RIP concepts such as the mechanics of RIPv1
and RIPv2, configuration tasks for basic and advanced RIP networking, and some of the
security-related issues, such as RIP authentication and RIP router-to-PIX communication.
Review Questions
1 Manual summarization is supported in which version of RIP?
FAQs
Q — What is the major difference between RIPv1 and RIPv2?
A — The most critical difference between the two is RIPv2’s extended capabilities.
RIPv2’s major advantage over RIPv1 is its capacity to support authentication and to
understand subnet masks.
Q — What is the diameter limit of a RIP network?
A — A valid RIP network diameter can have up to 15 hops. A value of 16 is regarded as
infinity and indicates a routing loop.
Q — What is the purpose of key authentication?
A — Key authentication is used for security purposes. It ensures that the communication
is established only with a legitimate peer.
Q — What is the advantage of summarization?
A — Route summarization was designed to minimize the size of a routing table, where
instead of numerous separate routes, only one route, representing a group of other
routes, is installed. When implemented properly, summarization drastically reduces
processing time and memory requirements and enables expansion to large-size
networks.
CCIE.book Page 237 Monday, May 12, 2003 8:29 AM
CCIE.book Page 238 Monday, May 12, 2003 8:29 AM
CHAPTER 9
EIGRP
The Interior Gateway Routing Protocol (IGRP) is a proprietary distance vector routing
technology developed by Cisco Systems. IGRP is designed for deployment in TCP/IP and
OSI-compliant networks and is regarded as an Interior Gateway Protocol (IGP), but it has
been used successfully as an Exterior Gateway Protocol (EGP) for interdomain routing.
IGRP technology is based on the concept that each router in the network does not need to
know about all the router/link relationships in the entire network. Each router advertises
destinations with a corresponding distance. Upon receiving this information, each router
adjusts the distance and propagates this information to neighboring routers.
If you examined a routing update sent by IGRP, you would notice that it is a composite of
four items:
• Available bandwidth
• Delay
• Load utilization
• Link reliability
For a more in-depth explanation of IGRP, refer to the Cisco IOS IP and IP Routing
Protocols Configuration Guide for your particular Cisco IOS software version. It is
available on the Cisco website (www.cisco.com).
Enhanced Interior Gateway Routing Protocol (EIGRP) uses the same distance vector
technology found in IGRP; the underlying distance information is unchanged. How-
ever, EIGRP improves on IGRP’s convergence properties and operating efficiency by
allowing architecture improvement while retaining your existing investment in IGRP.
This chapter examines the many features of EIGRP and how you can configure them in
preparation for the CCIE Security lab exam.
CCIE.book Page 240 Monday, May 12, 2003 8:29 AM
An EIGRP Overview
EIGRP has many features:
• Variable-Length Subnet Mask (VLSM) support—EIGRP is a classless protocol and
carries subnet information in its updates.
• Incremental updates—EIGRP sends only information that has changed. It doesn’t
require full routing updates, unlike other routing protocols such as Routing Information
Protocol (RIP).
• Rapid convergence—By using Diffusing Update Algorithm (DUAL) and the concept of
a feasible successor, EIGRP can preselect the next best path to a destination.
• MD5 route authentication—Since Cisco IOS software Release 11.3, EIGRP
supports MD5 password authentication on routing updates.
• Automatic route summarization—Route summarization is done automatically on major
bit boundaries.
• Multiple protocol support—EIGRP provides support for IPX and AppleTalk along with
its support of IP.
EIGRP uses DUAL to obtain a loop-free network at any time throughout its route computation.
By providing this loop-freedom, every router in your network topology can synchronize its
tables at the same time. One important benefit of EIGRP is that routers that are not affected by
topology changes do not have to recompute their routing tables.
Another benefit of EIGRP is that it is network layer protocol-independent, thereby allowing
DUAL to support other protocol suites.
IP-EIGRP is composed of four basic components:
• Neighbor discovery/recovery—The process that routers use to dynamically learn of
other routers on their directly attached networks. This process uses a hello mechanism that
has the added benefit of allowing the router to know when a neighbor has become
unreachable.
• Reliable Transport Protocol—This protocol is responsible for guaranteed, ordered
delivery of EIGRP packets to all neighbors. It supports transmissions of multicast or
unicast packets with or without reliability.
• DUAL Finite State Machine (FSM)—The DUAL FSM is responsible for the decision
process for all route computations. It tracks metrics advertised by all neighbors so that it
can select the routes to be added to the route table. DUAL selects these routes through a
concept known as feasible successors. A successor is a neighboring router used for packet
forwarding that has a least-cost path to a destination that is guaranteed not to be part of a
CCIE.book Page 241 Monday, May 12, 2003 8:29 AM
routing loop. When there are no more feasible successors but there are neighbors adver-
tising the destination, a recomputation must occur to select a new successor. The amount
of time it takes to recompute the route affects the convergence time even though it is not
processor-intensive. Even so, you should try to avoid recomputation if it is not necessary.
• Protocol-dependent modules—These modules are responsible for network layer
protocol-specific requirements. For example, the IP-EIGRP module is responsible for
sending and receiving EIGRP packets encapsulated in IP.
Configuring EIGRP
Before we discuss the functionality of EIGRP in more detail, you need to complete Lesson 9-1,
in which you configure a simple EIGRP topology between R1 and R10 on an Ethernet network.
To configure simple EIGRP, follow these steps first on R1 and then on R10:
Step 1 To enable EIGRP, you must start the EIGRP autonomous system process on
your router. The syntax is
R1(config)#router eigrp autonomous-system
EIGRP sends updates out an interface only if its network is listed under
the EIGRP autonomous system.
Step 2 Because all the networks you will configure are included in a single Class B
network, you need to configure only a single network entry. You could
optionally configure three network commands by specifying the subnet mask
to be used for each network statement. The syntax you use is
R1(config-router)#network network-number [network-mask]
CCIE.book Page 242 Monday, May 12, 2003 8:29 AM
Step 3 Next, you need to configure the two loopback interfaces on R1. This step is
needed for output in later examples. Configuring a loopback interface is a
two-step process:
(a) Activate the loopback interface using the following syntax:
R1(config)#interface loopback 0-2147483647
R1#show ip protocol
Routing Protocol is "eigrp 234"
Outgoing update filter list for all interfaces is
Incoming update filter list for all interfaces is
Default networks flagged in outgoing updates
Default networks accepted from incoming updates
EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0
EIGRP maximum hopcount 100
EIGRP maximum metric variance 1
Redistributing: eigrp 234
Automatic network summarization is in effect
Routing for Networks:
133.100.0.0
Routing Information Sources:
Gateway Distance Last Update
133.100.1.10 90 00:01:03
Distance: internal 90 external 170
A few items to note from Example 9-1 are the networks that EIGRP is routing for and the
default distance in use.
Example 9-2 displays a configuration you can use to complete your simple EIGRP network
topology between the two routers.
Example 9-2 Simple EIGRP Configuration of R1 and R10
Packet Formats
EIGRP uses five different packet types:
• Hellos/acknowledgments—Hellos are the multicast neighbor discovery/recovery
mechanism used by EIGRP. A hello packet is sent to the multicast address of 224.0.0.10.
An acknowledgment is actually a hello packet that does not contain any data. Unlike the
hello, an acknowledgment is always sent using a unicast address and contains a nonzero
acknowledgment number.
• Update—Update packets are used to convey reachability information. In the case of new
neighbors, update packets are sent to a unicast address and are used to build the topology
table. In other cases, update packets are sent to a multicast address and are usually used to
convey updated information, such as link cost. In either case, update packets are sent
reliably.
CCIE.book Page 244 Monday, May 12, 2003 8:29 AM
• Query—Query packets are sent when a destination goes into the active state. Queries are
always multicast unless they are in response to a query. A response query is sent to the
successor that sent the original query through a unicast. Queries are also sent reliably.
• Reply—Reply packets are always sent unicast in response to queries to tell the originator
that it does not need to go into an active state because it has a feasible successor. Replies
are always sent reliably.
• Request—Request packets are used to request specific information from one or more
neighbors, usually from a route server application. Requests can be either multicast or
unicast and are transmitted unreliably.
TIP If you adjust the hello interval, the holdtime must be adjusted manually to three times the hello
interval, or you might receive unpredictable results.
EIGRP Tables
For EIGRP to provide a loop-free topology, it employs two separate tables to store routing
information along with the routing table:
• Neighbor table
• Topology table
The following sections describe both tables in more detail.
Neighbor Table
Each EIGRP router in your network is required to keep state information about its adjacent
neighbors. EIGRP uses a hello mechanism to form adjacencies with its neighbors. Unlike IGRP,
EIGRP does not need to send full routing updates on a periodic basis. It sends information about
link changes only to the neighbors who need to know the change information. The neighbor
table, one for each protocol-dependent module you enable, is used to record the address and
interface of each neighboring router in the neighbor data structure. When a neighbor sends a
hello packet to your network on multicast address 224.0.0.10, it advertises the amount of time
that a router treats a neighbor as reachable and operational.
By default, hellos are sent every 5 seconds on high-bandwidth links such as LAN interfaces, serial
interfaces greater than T1 speed, point-to-point serial links, and ATM and Frame Relay point-to-
point links. Hellos on nonbroadcast multiaccess (NBMA) media, such as serial links with a speed
less than T1, ATM and Frame Relay multipoint interfaces, ATM SVCs, and ISDN BRIs, are sent
every 60 seconds. If a hello packet isn’t heard within the defined holdtime—by default, three times
the hello interval, 15 seconds for high-bandwidth links, or 180 seconds for low-speed multipoint
links—the holdtime expires and DUAL is informed of the topology change.
CCIE.book Page 245 Monday, May 12, 2003 8:29 AM
NOTE Because EIGRP uses the multicast hello packet to communicate with other EIGRP neighbors,
you might receive the “not on common subnet” error message. This message appears when
EIGRP receives an EIGRP hello packet sourced from an IP address on a subnet that is different
from the subnet configured on its receiving interface:
timestamp: IP-EIGRP: Neighbor neighbor IP address not on common subnet for interface
When using secondary addressing, remember to configure the IP address that EIGRP will
use as its primary address on the same subnet as its neighbor. For example, the following
configuration results in this error:
R1:
interface ethernet0
ip address 10.1.1.1 255.255.255.0
!
router eigrp 1
network 10.0.0.0
CCIE.book Page 246 Monday, May 12, 2003 8:29 AM
R2:
interface ethernet0
ip address 10.1.2.2 255.255.255.0
!
router eigrp 1
network 10.0.0.0
R2:
interface ethernet0
ip address 10.1.1.2 255.255.255.0
!
router eigrp 1
network 10.0.0.0
Example 9-3 shows the output of a show ip eigrp neighbors command issued on R1.
Example 9-3 show ip eigrp neighbors Command Output from R1
As you can see, R1 has formed an adjacency with R10 across its Ethernet 0 interface. This
adjacency is the first step in the creation of the neighbor table.
Topology Table
The next table that EIGRP builds on your router is the topology table. It is populated by
protocol-dependent modules and is used by the DUAL finite state machine in its decision-
making process. It contains a list of all destinations advertised by neighboring routers with an
association of destination addresses to all neighbors that advertised the destination. For each
neighbor, the advertised metric that the neighbor is using in its routing table is recorded. One
rule that a distance vector routing protocol must follow is that it is not allowed to advertise a
route unless it is using that route in its own routing table to forward packets.
You should also notice that the destination is associated with the metric that the router uses to
reach the destination. This metric is the sum of the best-advertised metrics from all neighbors
plus the link cost to the best neighbor. This is the metric that your router will use in its routing
table and for advertisements to other routers.
CCIE.book Page 247 Monday, May 12, 2003 8:29 AM
By examining Example 9-4, you will notice that it contains information on all routes that
EIGRP knows about, both its local routes and routes learned from neighbors. The show ip eigrp
topology output contains a code field that defines the route’s state. You should pay attention to
the following codes:
• P—The EIGRP route is in the passive state. This is the ideal state, because EIGRP is not
performing any computations on the route.
• A—The EIGRP route is in the active state. This is not an ideal state, because the EIGRP
process is currently performing computations on the route.
• U—The EIGRP route is in the update state. This means that an update packet has been
sent to this destination.
• Q—The EIGRP route is in the query state. This means that a query packet has been sent
to this destination.
CCIE.book Page 249 Monday, May 12, 2003 8:29 AM
• R—The EIGRP route is in the reply state. This means that a reply packet was sent to this
destination.
You should also note that the output contains information about the route itself:
• Network address/mask—The IP address of the network that EIGRP knows about. You
will notice that the subnet mask information is included in this output, making EIGRP a
classless routing protocol.
• Successors—The number of successors for this route.
• FD—The feasible distance to the destination.
• Originating information—Identifies where the route was learned. In this case, only
routes from directly connected interfaces and from R10 are listed.
Example 9-5 illustrates an output of the show ip route command issued on R1. This example
is the product of EIGRP after the completion of DUAL computations. These routes identify
where EIGRP can send packets.
Example 9-5 show ip route Command Output from R1
R1#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
The output in Example 9-5 lists where the routes come from; the D identifies the router as an
EIGRP route. The IP address identifies the network, followed by the administrative distance;
90 is the default for an internal EIGRP route, and 170 is the default for an external EIGRP route.
The administrative distance is followed by the 32-bit composite metric. The via entry identifies
the neighbor the route was learned from, when the route was last updated, and the interface the
router learned the route from.
CCIE.book Page 250 Monday, May 12, 2003 8:29 AM
Feasible Successors
As soon as your router has its tables populated with the information it needs, it starts the
selection of feasible successors to populate its own routing table. A destination entry is moved
from the topology table to the routing table only when a feasible successor is identified and the
route is identified as the successor. EIGRP does this by taking all minimum-cost paths to the
destination and forming them into a set. From this set, EIGRP can identify neighbors that have
an advertised metric less than the current routing table metric, and it considers them feasible
successors.
Your router views a feasible successor as any neighbor that is downstream with respect to the
destination. If the neighbors meet all the requirements, they are placed in the forwarding table
along with their associated metrics.
You might be wondering what happens when a neighbor changes the metric it has been
advertising or if a topology change occurs in your network and EIGRP still has feasible
successors. If EIGRP has remaining entries in its set of feasible successors, they may be
reevaluated to avoid a new route recomputation.
Route States
When an entry is placed in the topology table, it can be in only one of two states: passive or
active. You want to see every route known by EIGRP put into the passive state. The passive state
tells you that EIGRP has a feasible successor and is not actively performing a route computation.
When a route is in the active state, it does not have a feasible successor, and the router undergoes
a route computation. If a feasible successor is always identified, a route never has to be placed
in the active state and avoids a route recomputation.
If for some reason a route doesn’t have a feasible successor, the route is placed in the active
state, and route recomputation must occur. When the router starts the route recomputation
process, a query packet is sent to all the router’s neighbors to see if they have a feasible
successor for the route in question. If the neighboring routers have a feasible successor, they
can either send a reply for the route in question or optionally return a query indicating that they
are also performing a route recomputation. One rule that you need to be aware of is while a
route is in the active state, the router cannot change the next-hop neighbor it is using to forward
packets. However, as soon as all replies are received for a given query, the destination can be
transitioned to the passive state, and a new successor can be selected.
NOTE If a link to a neighbor goes down and it is the only feasible successor, all routes with that
neighbor as the next hop start a route recomputation and enter the active state.
CCIE.book Page 251 Monday, May 12, 2003 8:29 AM
Route Tagging
Like many other routing protocols, EIGRP categorizes routes as internal or external. A route
is considered internal when it originates within your EIGRP autonomous system. A route is
considered external when it is learned from another routing protocol or is a static route in the
routing table. External routes are tagged individually with the identity of their origination.
External route tags are composed of the following information:
• The router ID of the EIGRP router that redistributed the route
• The autonomous system number where the destination resides
• A configurable administrator tag
• The protocol ID of the external protocol
• The metric from the external protocol
• Bit flags for default routing
By using the route tagging EIGRP offers, you are given flexibility in your policy controls,
which helps you customize your routing environment.
If the link between Router A and Router B fails, Router B sends a query informing its neigh-
bors that it has lost its feasible successor. Router D receives Router B’s query and determines
whether it has any other feasible successors. If it does not, it must start its own route compu-
tation and place the destination route in the active state. However, in this case, Router C is a
feasible successor, because its cost of 2 is less than Router D’s current cost of 3 to Router Z.
Router D can switch to Router C as its successor instead of starting a recomputation. Note
that Router A and Router C do not actively participate in this process, because they are unaf-
fected by the change.
By changing the scenario so that the link between Router A and Router C fails instead, you can
see that the sample topology has no choice but to rerun the computation. Router C determines
that it has lost its successor and has no other feasible successors. In this case, Router D is not
be considered a feasible successor because its advertised metric of 3 is greater than Router C’s
current cost of 2 to reach Router Z. Router C must perform a route computation to obtain a new
route to Router Z. Router C sends a query to its only neighbor, Router D in this case, and Router
D sends a reply because its successor has not changed. Note that Router D does not need to
perform a route computation. When Router C receives the reply, it knows that all neighbors
have processed the news about the failure to Router Z. At this point, Router C can choose its
new feasible successor, Router D, with a cost of 4 to reach Router Z. Note that Routers A and
B are unaffected by the topology change and that Router D simply needs to reply to Router C.
CCIE.book Page 253 Monday, May 12, 2003 8:29 AM
2.2.2.2 172.16.2.1
133.100.21.0/28
R2 .3
.3
133.100.100.1/28
As you can see from the figure, you will connect R2 to R1 with a simple Frame Relay
connection. You will also define two loopback interfaces on R2 and add them to the EIGRP
routing process to provide entries into the routing table. To add R2 to your EIGRP topology,
follow these steps on R1 and R2:
Step 1 Configure the required Frame Relay items on R1. You need to enter the
following on R1:
R1(config)#interface serial number
R1(config-if)#ip address ip-address mask
R1(config-if)#encapsulation frame-relay [cisco | ietf]
R1(config-if)#frame-relay interface-dlci dlci [ietf | cisco]
[voice-encap size] [voice-cir cir] [ppp virtual-template-name]
R1(config-if)#frame-relay lmi-type {ansi | cisco | q933a}
NOTE For an explanation of Frame Relay commands, including syntax, refer to Chapter 5, “Frame
Relay Connectivity.”
Example 9-6 illustrates the relevant commands entered into R1 and R2 to run EIGRP across a
serial interface.
Example 9-6 EIGRP Across a WAN
After you enter the following commands on each of your routers, when a neighbor becomes
unreachable for any reason, you see a message similar to the following in your log:
03:14:09: %DUAL-5-NBRCHANGE: IP-EIGRP 234: Neighbor 133.100.1.10 (Ethernet0) is
down: holding time expired
When a new adjacency is built, you should see a message similar to the following in your log:
03:15:54: %DUAL-5-NBRCHANGE: IP-EIGRP 234: Neighbor 133.100.1.10 (Ethernet0) is
up: new adjacency
NOTE To enable the logging of neighbor changes, you should complete this step for all three routers.
CCIE.book Page 256 Monday, May 12, 2003 8:29 AM
As you can see by examining the output in Example 9-7, R1 has two major bit boundaries con-
figured on it, 133.100.0.0/16 and 150.100.0.0/16. If you deploy your network so that discontin-
uous subnets are nonexistent, this default behavior should not be a problem. Unfortunately, in
most networks, avoiding discontinuous networks is not possible because of demands placed
on you, such as rapid deployment of resources, migrations of IP addressing, and mergers of
companies.
Example 9-7 show ip route with Auto-Summary Enabled
R1#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
By using the no auto-summary command, you prevent null routes from being created and
prevent summarized routes from being propagated.
You can see this behavior by following these steps:
Step 1 Disable automatic route summarization on R1 by entering the following
commands:
R1(config)#router eigrp 234
R1(config-router)#no auto-summary
Now, examining the routing table on R1, as shown in Example 9-8, you no longer see null
routes in your routing table, permitting you to have discontinuous subnets in your network. Just
remember that you should avoid using discontinuous subnets whenever possible.
Example 9-8 show ip route with Auto-Summary Disabled
R1#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
continues
CCIE.book Page 258 Monday, May 12, 2003 8:29 AM
The interesting thing about these commands is, because they are configured on an interface
basis, you can customize summaries to the needs of your network. For instance, a summary sent
from R1 to R2 can be completely different from the summary sent from R1 to R10.
You can summarize the routes learned from R1 for the 150.100.0.0/16 network on R10 to a
single entry by following these steps on R1:
Step 1 Summarize the three routes advertised out of R1’s Ethernet 0 interface by
adding the following commands to the configuration of R1:
Configuration changes on R1:
R1(config)#interface Ethernet0
R1(config-if)#ip summary-address eigrp 234 150.100.0.0 255.255.0.0
Step 2 Issue the show ip route command on R10 to see the results.
CCIE.book Page 259 Monday, May 12, 2003 8:29 AM
R10#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
As you can see from Example 9-9, after the summary is configured on R1, the routing table on
R10 is decreased by three entries.
• By redistributing a default static route into EIGRP. You can create the default static
route by using the ip route 0.0.0.0 0.0.0.0 next_hop_IP_address command in global
configuration mode. You also must enter the redistribute static command and a default
CCIE.book Page 260 Monday, May 12, 2003 8:29 AM
metric under the EIGRP autonomous system process. You can use the following
commands to accomplish this:
R1(config)# ip route prefix mask {address | interface} [distance] [tag tag]
[permanent]
R1(config)#router eigrp autonomous-system
R1(config-router)#redistribute static
R1(config-router)# default-metric bandwidth delay reliability loading mtu
• By marking a route as the default route. You can use the following command to specify
the default network to use:
R1(config)#ip default-network network-number
NOTE If you are working with Cisco IOS software earlier than Release 12.0, you also need to enable
classless routing before the router will forward packets it does not have explicit routes for. You
can enable classless routing by entering the ip classless command in global configuration
mode.
In this lesson, you will configure your EIGRP topology so that R1 advertises a default route of
150.100.32.2 to the other routers. Follow these steps to complete this task:
Step 1 Create a static route to network 0.0.0.0 0.0.0.0 using the following command:
R1(config)#ip route 0.0.0.0 0.0.0.0 150.100.32.2
Step 2 Configure EIGRP to redistribute the default route to the rest of the network
using the following commands:
R1(config)#router eigrp 234
R1(config-router)#redistribute static
R1(config-router)#default-metric 100000 100 255 1 1500
Step 3 Verify your configuration by issuing the show ip route command on R10.
NOTE Because summarizing a default route is applied on a per-interface basis, you can advertise a
different route on an interface without having to use a distribute list or another mechanism to
prevent this route from being propagated to your core. You must have a static route for the other
interfaces to use for a default route, or your router will drop all packets to destinations it does
not have a route for.
Example 9-10 shows R10’s routing table to verify the result after default routing is configured
on R1.
CCIE.book Page 261 Monday, May 12, 2003 8:29 AM
R10#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
You should notice in Example 9-10 that EIGRP has added a gateway of last resort to the routing
table and also an external route to the gateway of last resort.
The in and out keywords are applied from the view of the interface. To prevent a routing update
from being sent out an interface, use the out keyword. If you want to prevent an update from
coming into an interface, use the in keyword.
CCIE.book Page 262 Monday, May 12, 2003 8:29 AM
In this lesson, you will use a distribute list on R10 to deny the 133.100.200.0/28 route from
being placed in R10’s routing table without any configuration changes to R1. You can follow
these steps to complete this task:
Step 1 Create an access list to deny the route from R1:
R1(config)#access-list 10 deny 133.100.200.0
R1(config)#access-list 10 permit any
Note that a permit statement is required as the last statement for any EIGRP
routes to be included in the routing table.
Step 2 Associate the access list to your EIGRP autonomous system in the “in”
direction:
R1(config)#router eigrp 234
R1(config-router)#distribute-list 10 in
R10#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
Examining the output in Example 9-11, notice that the route for 133.100.200.0/28 no longer
appears in your router table, verifying that your distribute list is functioning correctly.
CCIE.book Page 263 Monday, May 12, 2003 8:29 AM
To use EIGRP authentication, you must use a key chain. Each key has its own key identifier,
which is used in combination with the interface to uniquely identify the authentication
algorithm and MD5 authentication in use.
You can configure multiple keys with different lifetimes. The router examines the configured
keys from the lowest to the highest until it encounters the first valid key. Here are a few points
to remember about authentication:
• A trailing space is a valid character for the key string. If you configure the space on one
router, it must be configured on all routers.
• Lifetimes should overlap to prevent a time in which authentication is not in effect.
• The routers must be synchronized with the same time for lifetimes to behave as expected.
You may use the Network Time Protocol (NTP) to accomplish this synchronization.
Use the following commands to enable the key chain and define the key string to be used for
authentication:
R1(config)#key chain name-of-chain
R1(config-keychain)#key number
R1(config-keychain-key)#key-string text
R1(config-keychain-key)#accept-lifetime start-time {infinite | end-time | duration
seconds}
R1(config-keychain-key)#send-lifetime start-time {infinite | end-time | duration
seconds}
CCIE.book Page 264 Monday, May 12, 2003 8:29 AM
After your key chain is defined, you can use the following commands to associate it with an
interface and specify the MD5 authentication mode for EIGRP:
R1(config-if)#ip authentication mode eigrp as-number md5
R1(config-if)#ip authentication key-chain eigrp as-number key-chain
To complete this lesson, configure R1 and R10 to use EIGRP MD5 authentication for your
autonomous system. You will configure a key chain called ccie with a key of 6727 and a string
of ccie_string. Follow these steps to configure this:
Step 1 Configure your key chain, and assign your key using the following
commands:
R1(config)#key chain ccie
R1(config-keychain)#key 6727
R1(config-keychain-key)#key-string ccie_string
Step 3 Verify proper operation of your EIGRP MD5 authentication by issuing the
show key chain command and debugging EIGRP packets.
Example 9-12 shows the results of configuring the key chain on R1.
Example 9-12 show key chain Output
If you used multiple keys in the key chain, you would need to configure the accept and send
lifetimes, but for this lesson, you do not need to.
with one or more distribution routers. The stub router responds to queries for summaries,
connected routes, redistributed static routes, external routes, and internal routes marked as
“inaccessible.” Like most stub domains, an EIGRP stub router can be configured to advertise
static and connected routes at the same time. The options you can choose from include the
following:
• receive-only—The stub router only receives updates. It does not send any to its neighbors.
• connected—The stub router advertises all connected routes to a single neighbor.
• static—The stub router advertises all static routes to a single neighbor.
• summary—The stub router advertises summary routes.
You are required to configure EIGRP stub routing only on the remote or spoke routers. The
distribution routers are still required to run EIGRP. The remote routers inform other routers that
they are stub routers.
To configure EIGRP stub routing, use the following command:
R10(config-router)#eigrp stub [receive-only | connected | static | summary]
In this lesson, you will turn R10 into an EIGRP stub router. You will configure it so that it
advertises connected, static, and summary routes that R10 knows about. Follow these steps to
accomplish this task:
Step 1 You need to configure stub routing only on the router that is actually the stub
router—in this case, R10. You can use the following commands to do this:
R10(config)#router eigrp 234
R10(config-router)#eigrp stub connected static summary
Step 2 Verify proper operation of stub routing through the use of the show ip eigrp
neighbor detail command on R1, the stub router’s neighbor.
Example 9-13 shows the results of Step 2.
Example 9-13 Stub Routing Verification on R1
You will configure a GRE tunnel between Router R1 and Router R10. You will configure the
tunnel to use the loopback 1 interfaces on each router as the destination. You will configure
the tunnel to use ISAKMP with a preshared key of cisco123. You will configure IPSec to run
in tunnel mode and allow GRE traffic to pass through it. For a complete explanation of the
ISAKMP and IPSec commands, see Chapter 19, “Virtual Private Networks.”
You can use the following steps to complete this scenario:
Step 1 Identify the interesting traffic to pass over the tunnel. Do this by defining an
access list that matches the traffic type you are interested in using the
following command:
R1(config)#access-list 101 permit gre host 133.100.100.1 host 133.100.110.1
Step 2 Create the ISAKMP policy to be used with your GRE tunnel using the
following commands:
R1(config)#crypto isakmp policy 25
R1(config-isakmp-group)#hash md5
R1(config-isakmp-group)#authentication pre-share
CCIE.book Page 267 Monday, May 12, 2003 8:29 AM
Step 3 Because you defined your authentication to use preshare, issue the following
commands to identify the peer and set the preshare key:
R1(config)#crypto isakmp key cisco123 address 133.100.110.1
Step 4 Create a transform set for use with IPSec using the following commands:
R1(config)#crypto ipsec transform-set ccielab esp-3des esp-sha-hmac
R1(cfg-crypto-trans)#mode transport
Step 5 Define your crypto map for IPSec using the following commands:
R1(config)#crypto map GRE 50 ipsec-isakmp
R1(config-crypto-map)#set peer 133.100.110.1
R1(config-crypto-map)#set transform-set ccielab
R1(config-crypto-map)#match address 101
Step 6 Because you are using a loopback interface instead of the physical interface,
issue the following command so that IPSec will use the loopback as the
identifying interface:
R1(config)#crypto map GRE local-address Loopback0
Step 7 Create the tunnel interface you will use to start and terminate the GRE tunnel
using the following commands:
R1(config)#interface tunnel 0
R1(config-if)#ip address 10.1.1.1 255.255.255.252
R1(config-if)#ip mtu 1440
R1(config-if)#tunnel source loopback 0
R1(config-if)#tunnel destination 133.100.110.1
R1(config-if)#tunnel mode gre ip
Step 8 Define the crypto map you will use for the GRE tunnel. Issue the following
command on both the tunnel 0 interface and the Ethernet 0 interface:
R1(config-if)#crypto map GRE
Step 9 Before your tunnel becomes established, your router needs to know where
the destination IP address resides. You can use the following command to
accomplish this:
R1(config)#ip route 133.100.110.0 255.255.255.240 133.100.1.10
Step 10 Set the authentication mode and key chain for EIGRP that were defined in
Lesson 9-9:
R1(config-if)#ip authentication mode eigrp 234 md5
R1(config-if)#ip authentication key-chain eigrp 234 ccie
Step 11 Enter the following commands on R10 to configure its tunnel interface:
R10(config)#crypto isakmp policy 25
R10(config-isakmp-group)#hash md5
R10(config-isakmp-group)#authentication pre-share
R10(config-isakmp-group)#crypto isakmp key cisco123 address 133.100.100.1.1
R10(config-isakmp-group)#exit
R10(config)#crypto ipsec transform-set ccielab esp-des esp-md5-hmac
CCIE.book Page 268 Monday, May 12, 2003 8:29 AM
R10(cfg-crypto-trans)#mode transport
R10(cfg-crypto-trans)#exit
R10(config)#crypto map GRE local-address Loopback0
R10(config-crypto-map)#crypto map GRE 50 ipsec-isakmp
R10(config-crypto-map)#set peer 133.100.100.1
R10(config-crypto-map)#set transform-set ccielab
R10(config-crypto-map)#match address 101
R10(config-crypto-map)#exit
R10(config)#interface tunnel0
R10(config-if)#ip address 10.1.1.2 255.255.255.252
R10(config-if)#ip mtu 1440
R10(config-if)#tunnel source loopback0
R10(config-if)#tunnel destination 133.100.100.1
R10(config-if)#crypto map GRE
R10(config-if)#ip authentication mode eigrp 234 md5
R10(config-if)#ip authentication key-chain eigrp 234 ccie
R10(config-if)#exit
R10(config)#interface ethernet0
R10(config-if)#crypto map GRE
R10(config-if)#exit
R10(config)#ip route 133.100.100.0 255.255.255.240 133.100.1.1
R10(config)#access-list 101 permit gre host 133.100.110.1 host 133.100.100.1
Step 12 Verify the GRE tunnel by issuing the show interfaces command.
Example 9-14 shows the results of issuing the show interfaces tunnel 0 command on R1.
Example 9-14 show interfaces tunnel 0 Command Output on R1
One other symptom of this problem is continuously flapping neighbors when the neighbors
reside across a GRE tunnel. To avoid this problem, configure static routes for your tunnel
destinations.
In this lesson, you will configure a secondary address of 10.10.10.10/24 on R10 and advertise
the network to the rest of the EIGRP autonomous system. To accomplish this task, follow these
steps:
Step 1 Configure the secondary address on R10 using the following command:
R10(config-if)# ip address 10.10.10.10 255.255.255.0 secondary
Step 2 Disable split horizon on the physical interface so that EIGRP can advertise
the network using the following command:
R10(config-router)#network 10.10.10.0 0.0.0.255
Step 3 Verify the proper operation by checking the routing table on R1.
Example 9-15 illustrates the effects of disabling split horizon for EIGRP.
Example 9-15 show ip route Command Output on R1 After Split Horizon Is Disabled on R10
R1#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Example 9-15 show ip route Command Output on R1 After Split Horizon Is Disabled on R10 (Continued)
D 2.2.2.0/28 [90/409600] via 133.100.100.3, 00:29:29, Serial0
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D 10.10.10.0/24 [90/297295616] via 133.100.1.10, 00:00:27, Tunnel0
133.100.0.0/28 is subnetted, 6 subnets
!Output omitted for brevity
As you can see, the secondary address you configured on R10 is now being sent to the rest of
the EIGRP autonomous system.
Troubleshooting EIGRP
When you are troubleshooting EIGRP, it helps to think about the process EIGRP uses in its
operation:
Step 1 EIGRP neighbor adjacencies must be established.
Step 2 Each router with EIGRP enabled—the EIGRP speaker—must build its
topological database.
Step 3 The feasible distance entries in a given router’s topology table must be
greater than the directly connected EIGRP neighbor’s advertised metric.
Step 4 The optimal topology table entries are used in the IP routing table.
If you need to reinitialize the EIGRP routing process, you can enter the following command:
R1#clear ip eigrp neighbors [ip-address | interface]
Example 9-16 shows the message you receive when clearing an EIGRP neighbor.
Example 9-16 clear ip eigrp neighbors Command Output
As you can see, the adjacency R10 had with R1 was cleared and then rebuilt.
CAUTION The clear ip eigrp neighbors command should be used with caution in a production environment,
because each adjacency your router has established with a neighbor needs to be reestablished.
This could cause dropped packets while the adjacency is established.
CCIE.book Page 271 Monday, May 12, 2003 8:29 AM
Many of the show commands you use with EIGRP have already been covered, but as a quick
reminder, here are the recommended show commands available to you:
• show ip eigrp neighbors [type number]—Shows the status of all neighbors.
• show ip eigrp topology [autonomous-system-number | [[ip-address] mask]]—Lists the
contents of the EIGRP topology table.
• show ip eigrp interfaces [interface] [as-number]—Displays information about interfaces
configured to run EIGRP.
• show ip eigrp traffic [autonomous-system-number]—Displays the number of packets
sent and received for EIGRP.
• show ip route [[ip-address [mask] [longer-prefixes]] | [protocol [process-id]] | [list
access-list-number | access-list-name]—Lists the router’s current route table.
• show ip protocols—Displays all routing protocols, detailed timer and metric information,
and routing update information.
You should be careful when debugging EIGRP in a production environment. The information
provided by debugging can quickly overwhelm you and your router. One of the most useful
debug commands is debug eigrp packets. To control what is debugged, enable logging and use
the optional keywords available with the debug ip eigrp command. The syntax of this
command is as follows:
R1#debug eigrp packets
R1#debug ip eigrp [neighbor as_neighbor IP_address_of_neighbor]
This sample output gives you an idea of the process EIGRP uses in operation—in this case,
between routers R1 and R10. You can see the router deciding which routes it will send to the
EIGRP neighbors, accepting routes in an incoming update, and an extra step that an EIGRP stub
router goes through—denying all the incoming routes except for the routes allowed to be stored
on a stub router.
CCIE.book Page 272 Monday, May 12, 2003 8:29 AM
Example 9-18 demonstrates debugging EIGRP packets, showing the hello mechanism used by
EIGRP.
Example 9-18 Debugging EIGRP Packets on R10 for Hello Processing
Note that in Example 9-18, because EIGRP is enabled on two loopback interfaces, EIGRP
sends hellos out every configured interface. Fortunately, EIGRP is smart enough to discard
packets sent to itself and to not try to form additional adjacencies.
Summary
This chapter looked at EIGRP support of Cisco IOS software. EIGRP is a classless routing
protocol that provides enhancements to the IGRP protocol originally developed by Cisco. You
started out by examining EIGRP’s need to form adjacencies with neighbors to create the tables
required by DUAL. These tables—the neighbor table and the topology table—and the routing
table can be viewed with the appropriate show command. You read about many optional
configuration items such as route control, redistribution, and split horizon. The chapter ended
with a look at EIGRP by examining commands used for troubleshooting.
Review Questions
1 What algorithm does EIGRP use to decide which route is put into the routing table?
2 Besides the routing table, what other tables does EIGRP use in its operation?
8 When using authentication with EIGRP, what is protected, and how is it protected?
FAQs 273
FAQs
Q — What does the eigrp log-neighbor-changes command do when you’re configuring
EIGRP?
A — This command makes it easier for you to determine why an EIGRP neighbor was
reset by logging error messages to wherever you have logging enabled.
Q — Does EIGRP support secondary addresses or only primary addressing?
A — EIGRP provides support for both primary and secondary addressing. However, it is
recommended that you configure all routers on a particular subnet with a primary
address that belongs to the same subnet because of EIGRP’s need to source data
packets from the primary address. Routers do not form EIGRP neighbors over
secondary networks because of the rules of split horizon. Therefore, if all routers’
primary IP addresses do not agree, problems can arise with neighbor adjacencies.
Q — Is a default network required for EIGRP to propagate a default route?
A — EIGRP redistributes default routes directly; therefore, a default network is not
required.
Q — Does EIGRP support route aggregation and VLSM?
A — Yes.
Q — Is more than one EIGRP autonomous system possible on the same router?
A — Although you can configure more than one EIGRP autonomous system on the same
router, this is not recommended. The recommended way to deploy EIGRP is to use
a single autonomous system as the internal routing protocol and use an external
router protocol, such as BGP, to connect two different EIGRP autonomous systems.
This is because multiple EIGRP autonomous systems on the same router using
mutual redistribution can cause discrepancies in the EIGRP routing tables.
Q — What does the EIGRP “stuck in active” message mean?
A — The EIGRP “stuck in active” (SIA) message means that EIGRP hasn’t received a
reply to a query it sent when it lost a route without having another feasible route in
its topology table. When the SIA error message occurs, your EIGRP routing proto-
col has failed to converge for the specified route. Usually this is caused by a flap-
ping interface, a configuration change, or dialup clients (the route loss is normal).
Your routing to other destinations is unaffected while the EIGRP process is in the
active state for the specified route. When the SIA timer for the neighbor that didn’t
reply expires, the neighbor is cleared (EIGRP doesn’t trust the state of a neighbor
that exceeds the timer). As a consequence, routes in the topology table beyond that
neighbor are cleared and must then reconverge. This means that the forwarding
table can be affected by an SIA and that packets can be dropped while the network
is converging.
CCIE.book Page 274 Monday, May 12, 2003 8:29 AM
CHAPTER 10
OSPF
The Open Shortest Path First (OSPF) Protocol offers you many configurable features and
parameters. Because of this, it has a position of importance in most Cisco lab scenarios.
This chapter is designed to provide the information that is needed to bring your network
topology online with any-to-any connectivity.
OSPF is an Interior Gateway Protocol (IGP) designed for IP networks. OSPF supports IP
subnetting, tagging of externally derived routing information, packet authentication, and
makes use of IP multicast when sending and receiving packets.
Cisco’s OSPF implementation conforms to the specifications outlined in RFC 2328, “OSPF
Version 2.” Some of the features supported in this implementation of OSPF include the
following:
• Stub areas—You can define stub areas. Remember that a stub area is an area where
information on external routes is not sent.
• Route redistribution—You can allow redistribution of routes learned via any IP
routing protocol into any other IP routing protocol.
• Authentication—You can implement authentication between neighbors within an
area using plain text or message digest algorithm 5 (MD5).
• Routing interface parameters—You have several configurable parameters that you
can change, including interface output cost, retransmission interval, interface transmit
delay, router priority, router dead and Hello intervals, and authentication key.
• Virtual links—You can define virtual links. A virtual link is used to connect an area
to the backbone, whether it is due to a break in connectivity or because you have
purposely added a partition.
• Not-so-stubby areas (NSSAs)—You can define NSSAs as described in RFC 1587,
“The OSPF NSSA Option.”
• OSPF over demand circuit—You can define demand circuits as described in RFC
1793, “Extending OSPF to Support Demand Circuits.”
CCIE.book Page 278 Monday, May 12, 2003 8:29 AM
Configuring OSPF
Configuring OSPF can be a complex process. In a minimal configuration, you can configure an
OSPF router with all the default parameter values, no authentication, and interfaces assigned to
an area. However, if you decide to customize your OSPF environment, you have to ensure the
configurations of your Area Border Routers (ABRs), which are routers connected to multiple
areas, and Autonomous System Boundary Routers (ASBRs), which are routers running multi-
ple routing protocols to connect an OSPF autonomous system to a non-OSPF autonomous
system, are compatible.
OSPF external routes fall into two categories: external Type 1 and external Type 2. The difference
between the two is the way the cost, or metric, of the route is calculated. The cost of a Type 2
route is always the external cost, irrespective of the interior cost to reach that route. A Type
1 cost is the addition of the external cost and the internal cost used to reach that route.
A Type 1 route is always preferred over a Type 2 route for the same destination.
OSPF uses a link-state advertisement (LSA) packet to describe routes to its neighbors. Table
10-1 lists the different type codes used by OSPF.
Table 10-1 OSPF Type Codes
Type
Code Description
1 Router LSA
2 Network LSA
3 Network Summary LSA
4 ASBR Summary LSA
5 AS External LSA
6 Group Membership LSA
7 NSSA External LSA
8 External Attributes LSA
9 Opaque LSA (link-local scope)
10 Opaque LSA (area-local scope)
11 Opaque LSA (AS scope)
This section discusses the commands necessary to enable proper operation of OSPF along with
the concepts and issues that can arise as a result of certain implementations and configurations.
The configuration tasks are divided into four major categories, as follows:
• Basic OSPF configuration
• OSPF and route summarization
CCIE.book Page 279 Monday, May 12, 2003 8:29 AM
• OSPF filtering
• OSPF and non-IP traffic over GRE
This case study involves routers R1, R2, R3, and R4. The routers are configured in a hub-
and-spoke topology, with R3 being the hub and the remaining routers performing the spoke
functionality.
The configuration steps discussed in this case study are as follows (Step 1 is required and the
others are optional):
Step 1 Enable OSPF
Step 2 Configure OSPF interface parameters
NOTE The process-id that you use when defining the OSPF process on a router is an arbitrary number
that matches across the OSPF autonomous system and is not related to OSPF area IDs.
To define an interface on which OSPF runs and define the area ID for that interface, use the
following command:
R2(config-router)#network ip-address wildcard-mask area area-id
Your first step in this case study is to configure your routers to enable Frame Relay, as dia-
gramed in Figure 10-1. You need to add the appropriate IP addressing and enable OSPF as
process-id 1. Example 10-1 shows the relevant configuration items that are required to complete
this step.
CCIE.book Page 281 Monday, May 12, 2003 8:29 AM
To specify the number of seconds between LSA retransmissions for adjacencies belonging to
an OSPF interface, use the following command:
R2(config-if)#ip ospf retransmit-interval seconds
To set the estimated number of seconds required to send a link-state update packet on an OSPF
interface, use the following command:
R2(config-if)#ip ospf transmit-delay seconds
To set the priority used to determine the OSPF-designated router for a network, use the
following command:
R2(config-if)#ip ospf priority number-value
To specify the length of time between the Hello packets that the Cisco IOS Software sends on
an OSPF interface, use the following command:
R2(config-if)#ip ospf hello-interval seconds
To set the number of seconds that a device must wait before it places a neighbor OSPF router
in the down state because it has not received a Hello packet, use the following command:
R2(config-if)#ip ospf dead-interval seconds
To enable OSPF MD5 authentication, the values for the key-id and key arguments must match
values specified for other neighbors on a network segment, as follows:
R2(config-if)#ip ospf message-digest-key key-id md5 key
To specify the authentication type for an interface, use the following command:
R2(config-if)#ip ospf authentication [message-digest | null]
OSPF performs a check to determine if its neighbor is using the same maximum transmission
unit (MTU) on its interface. This check is performed when neighbors exchange their Database
CCIE.book Page 283 Monday, May 12, 2003 8:29 AM
Descriptor (DBD) packets. If it receives an MTU in the DBD packet that is higher then the
IP MTU configured on the incoming interface, the OSPF adjacency is not established. Use
the following command to modify this behavior:
R2(config-if)#ip ospf mtu-ignore
In this section of the case study, you assign R3 to have a cost of 100, R1 has a cost of 10, and
R4 has a cost of 15. One additional command, the neighbor command, is introduced here. The
syntax of the neighbor command, used to assign a cost to a neighbor is as follows:
R3(config-router)#neighbor ip-address [cost number]
All configurations are to be completed on R3. Example 10-2 illustrates the commands that you
need to add to R3.
Example 10-2 OSPF Cost
You can display the neighbor relationships by using the show ip ospf neighbor command.
Example 10-3 shows the result of running this command on R3.
Example 10-3 The show ip ospf neighbor Command Output Using Broadcast
Even though OSPF supports NBMA networks, you are given the option of configuring your
network as a broadcast network. This statement also applies to both the X.25 and Frame
Relay network types when you configure the optional broadcast keyword in their respective
map statements. The following sections cover several different types of networks.
Once again, you can use the show ip ospf neighbor command to display the neighbor relation-
ships. Example 10-5 shows the output of this command when issued on R3.
Example 10-5 The show ip ospf neighbor Command Output from Nonbroadcast
To exit and return to global configuration mode so that you can enter the rest of the commands,
use the following command:
R2(config-if)#exit
To specify a neighbor and assign a cost to that neighbor, use the following command:
R2(config-router)#neighbor ip-address cost number
In this section, you create a network that enables R3 to communicate to R1 using data-link
connection identifier (DLCI) 301, to R2 using DLCI 302, and to R4 using DLCI 304 (refer to
Figure 10-1 for your topology). R1 uses DLCI 103 to communicate with R3 and DLCI 102 to
communicate with R2. R2 uses DLCI 203 to communicate with R3 and DLCI 201 to communicate
with R1. R4 uses DLCI 403 to communicate with R3. Example 10-7 shows you the configuration
items that are required to complete this portion of the case study.
Example 10-7 Point-to-Multipoint Broadcast Configuration
The DR is used to reduce the number of adjacencies required in large networks. The OSPF
router is responsible for generating the LSAs used in the multiaccess network, along with other
special functions. The BDR assumes the responsibilities in the event of a DR failure. If your
network does not use the broadcast capabilities that are available, you must configure special
parameters for the DR selection process to function correctly.
You are only required to configure these parameters on devices that are eligible to become the
DR or BDR, or any router with a nonzero router priority value.
To configure a router that interconnects to nonbroadcast networks, use the following command:
R2(config-router)#neighbor ip-address [priority number] [poll-interval seconds]
To exit and return to the global configuration mode to enter the rest of the commands, use the
following command:
R2(config-if)#exit
To specify a neighbor and assign a cost to that neighbor, use the following command:
R2(config-router)#neighbor ip-address [cost number]
You can repeat the last configuration item for each neighbor that you want to specify a cost for.
Otherwise, neighbors use the cost of the interface, which you can specify with the ip ospf cost
configuration command.
CCIE.book Page 290 Monday, May 12, 2003 8:29 AM
To enable MD5 authentication for an OSPF area, use the following command:
R2(config-router)#area area-id authentication message-digest
To assign a specific cost to the default summary route used for the stub area, use the following
command:
R2(config-router)#area area-id default-cost cost
For OSPF to operate correctly, coordination must exist between your internal routers, ABRs,
and ASBRs. At a minimum, you can accomplish this coordination by configuring your OSPF-
based routers with all default parameter values, with no authentication, and with interfaces
assigned to areas.
In this section, you configure a stand-alone router, R8, with a simple OSPF configuration that
enables OSPF and attaches Fast Ethernet interfaces 0/0 and 0/1 to area 0. Example 10-8 shows
a configuration example.
Example 10-8 Redistribution of RIP into OSPF
Each network area command entered is evaluated sequentially, so the order in which you
enter them is important. The address/wildcard-mask pair that you enter is also evaluated
sequentially.
Consider the configuration shown in Example 10-9. In this example, four area IDs are assigned
to four IP address ranges.
Example 10-9 The network area Command
Router(config)#router ospf 1
Router(config-router)#network 192.168.20.0 0.0.0.255 area 192.168.20.0
Router(config-router)#network 192.168.108.0 0.0.0.255 area 2
Router(config-router)#network 192.168.109.0 0.0.0.255 area 3
Router(config-router)#network 0.0.0.0 255.255.255.255 area 0
Router(config-router)#exit
Router(config)#interface ethernet 0
Router(config-if)#ip address 192.168.20.5 255.255.255.0
Router(config-if)#exit
Router(config)#interface ethernet 1
Router(config-if)#ip address 192.168.108.5 255.255.255.0
Router(config-if)#exit
Router(config)#interface ethernet 2
Router(config-if)#ip address 192.168.109.1 255.255.255.0
Router(config-if)#exit
Router(config)#interface ethernet 3
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#exit
Router(config)#interface ethernet 4
Router(config-if)#ip address 10.1.0.1 255.255.0.0
Looking at the first network area command that you configured, area ID 192.168.20.0 is con-
figured for the interface on which subnet 192.168.20.0 is located. This condition should cause
a match for Ethernet interface 0. Ethernet interface 0 is then attached to area 192.168.20.0 only.
The second network area command that you entered is evaluated next. For area 2, the same
evaluation process is applied to all interfaces, with the exception of Ethernet interface 0. Eval-
uation of the list results in OSPF being enabled for that interface and it being attached to area 2.
CCIE.book Page 292 Monday, May 12, 2003 8:29 AM
OSPF repeats this process of attaching interfaces to OSPF areas for all your network area
commands. You might wonder whether the format of the last network area command, network
0.0.0.0 255.255.255.255 area 0, in this example, is a typo. It is a special case that attaches all
available interfaces that are not explicitly attached to another area to area 0.
Use the following command to control summarization and filtering of Type 7 LSAs into Type
5 LSAs:
R2(config-router)#summary address prefix mask [not advertise] [tag tag]
You should consider the following items before you implement the OSPF NSSA feature:
• You are allowed to create a Type 7 default route that can be used to reach external
destinations. If you choose to do this, your router then generates a Type 7 default into the
NSSA or the NSSA ABR.
• You need to configure every router within the same area to be of the NSSA type; if not,
your router cannot communicate.
Figure 10-2 illustrates the topology that you will use for the next step in your case study.
In this step, you configure a basic OSPF network with three areas: area 0, area 2, and area 3.
This step assumes that you have a configured and operational Frame Relay network between
the routers. You configure authentication for each area. You create a stub area with area ID 2.
Finally, you configure authentication between routers on area 0, with a key of abcdefgh, and
routers on area 3, with a key of ijklmnop. Example 10-10 gives you solution for this scenario.
CCIE.book Page 293 Monday, May 12, 2003 8:29 AM
S0.2192.168.12.1/30
S0.2192.168.13.1/30 S0192.168.12.2/30
R1 S0.2192.168.14.1/30 R2
S4
E0172.16.0.1/30
S0 R10-Frame
S1 S3
S0192.168.14.2/30 R4
E0192.168.200.1/30
R3 S0192.168.13.2/30
E010.0.0.1/24
In this section, you set up the minimum configuration required to summarize the IP range of
192.168.16.0 through 192.168.31.0 to area 1.
Example 10-11 shows one solution.
Example 10-11 Route Summarization Between OSPF Areas
Router(config)#router ospf 1
Router(config-router)#area 1 range 192.168.16.0 255.255.255.240
When routes from other protocols are redistributed into OSPF (as described in Chapter 13,
“Redistribution”), each route is advertised individually in an external LSA. However, you can
configure the Cisco IOS Software to advertise a single route for all the redistributed routes that
are covered by a specified network address and mask. Doing so helps decrease the size of the
OSPF link-state database.
To specify an address and mask that cover redistributed routes so that only one summary route
is advertised, use the following command (you can use the optional not-advertise keyword to
filter out a set of routes):
R2(config-router)#summary-address {{ip-address mask} | {prefix mask}} [not-
advertise][tag tag]
You have the ability to redistribute routes from other protocols into your OSPF autonomous
system, with or without the use of route maps. The next few examples demonstrate how to
redistribute routes from IP and Connectionless Network Service (CLNS) routing protocols.
CCIE.book Page 295 Monday, May 12, 2003 8:29 AM
Example 10-12 shows you a redistribution scheme where OSPF external routes with tags 1, 2,
3, and 5 are redistributed into RIP with metrics of 1, 1, 5, and 5, respectively. OSPF routes with
a tag of 4 are not redistributed into RIP.
Example 10-12 OSPF to RIP Redistribution
Router(config)#router rip
Router(config-router)#redistribute ospf 1 route-map 1
Router(config-router)#exit
Router(config)#route-map 1 permit 10
Router(config-route-map)#match tag 1 2
Router(config-route-map)#set metric 1
Router(config-route-map)#exit
Router(config)#route-map 1 permit 11
Router(config-route-map)#match tag 3
Router(config-route-map)#set metric 5
Router(config-route-map)#exit
Router(config)#route-map 1 deny 12
Router(config-route-map)#match tag 4
Router(config-route-map)#exit
Router(config)#route map 1 permit 13
Router(config-route-map)#match tag 5
Router(config-route-map)#set metric 5
Figure 10-3 illustrates the topology that you will use to create a virtual link.
CCIE.book Page 296 Monday, May 12, 2003 8:29 AM
!
!"#$
!
!
The next part of your case study requires you to reconfigure your routers to enable MD5
authentication for OSPF. MD5 authentication is more secure than plain-text authentication.
Example 10-14 shows the commands that are required to make the change in authentication
methods.
Example 10-14 Virtual Link with MD5 Authentication
Example 10-15 shows how to use a route map to redistribute default information, such as a
default route. When used with the default-information command, this technique is referred to
as a conditional default origination. OSPF originates the selected default route with a Type 2
metric of 5 if 140.222.0.0 is in the routing table.
Example 10-15 Redistributing Default Information with a Route Map
address that is locally significant, making it easier to facilitate troubleshooting. If you have mul-
tiple loopback interfaces configured, OSPF chooses the highest IP address among all loopback
interfaces. However, you do not have the ability to configure OSPF to use any particular
interface.
Use the commands that are described in this section to configure an IP address on a loopback
interface.
To create a loopback interface, use the following command:
R2(config)#interface loopback 0
In this case study, you configure a loopback interface with an IP address of 10.10.10.10 with a
subnet mask of 255.255.255.255. Example 10-16 shows one solution to this case study.
Example 10-16 Configuring a Loopback Interface
Router(config)#interface loopback 0
Router(config-if)#ip address 10.10.10.10 255.255.255.255
In this step, change the auto-cost to 1000 instead of the default value to give an FDDI link a cost
of 10, while leaving a Gigabit Ethernet link with its value of 1.0 to area 1. Example 10-17 shows
one solution to this task.
Example 10-17 Auto-cost Configuration
Router(config)#router ospf 1
Router(config-router)#ospf auto-cost reference-bandwidth 1000
CCIE.book Page 300 Monday, May 12, 2003 8:29 AM
Figure 10-4 illustrates the topology that you will use for the next step in your case study.
You can use the administrative distance tag to influence the preference of a routing path. In this
step, you configure the links from R1 and R2 to have an external distance to 200, making this
path less trustworthy. Example 10-18 provides a possible solution for this step.
Example 10-18 Administrative Distance
In this step, you change the SPF timers that your router uses by default. You change the delay
from the 5-second default to a 10-second delay. You also change your hold-down time from the
default of 10 seconds to 20 seconds. Example 10-19 shows you one solution to this step.
Example 10-19 SPF Timer Tuning
Router(config)#router ospf 1
Router(config-router)#timers spf 10 20
CCIE.book Page 302 Monday, May 12, 2003 8:29 AM
If your router is part of a point-to-point topology, you are only required to configure one end of
the demand circuit with the ip ospf demand-circuit command. The one requirement is that all
your routers must have this feature loaded.
If your router is part of a point-to-multipoint topology, you are only required to configure the
multipoint end with this command.
You should consider the following caveats before implementing the OSPF over on-demand
circuits feature:
• You should place demand circuits in NSSAs or OSPF stub areas to isolate the demand
circuit from topology changes. Remember that LSAs that included topology changes are
flooded over your on-demand circuit.
• If you deploy your on-demand circuits within a stub area or NSSA, all of your routers in
the area must have this feature loaded. If you choose to deploy this feature within a regular
area, all other regular areas must also support this feature before the demand circuit func-
tionality can take effect, because Type 5 external LSAs are flooded throughout all areas.
CCIE.book Page 303 Monday, May 12, 2003 8:29 AM
You can also use the debug ip ospf adjacency command to display neighbor adjacency
changes. However, the log-adj-changes command provides you with a higher-level view of the
peer relationship with less output than the debug command displays. You can use the detail
keyword to display messages for each state change.
sending refreshes for every LSA the router generated, no matter how old the LSA was. This
process wasted CPU resources because, in most cases, only a small portion of the database
needed to be refreshed. Sending refreshes based on this single timer resulted in the age of all
LSAs becoming synchronized, creating a large amount of CPU processing at once. It could also
result in a sudden increase of network traffic when generating refreshes for a large OSPF
topology, consuming a large amount of network resources in a short period of time.
Example 10-20 shows how to change the OSPF pacing between LSA groups to 60 seconds.
Example 10-20 Changing OSPF Pacing
Router(config)#router ospf 1
Router(config-router)#timers lsa-group-pacing 60
You have the option of blocking OSPF flooding of LSAs in the following two ways, depending
on your type of network:
• On broadcast, nonbroadcast, and point-to-point networks, you can block flooding over
specified OSPF interfaces by using the following command:
R2(config-if)#ospf database-filter all out
Example 10-21 shows how to prevent flooding of OSPF LSAs to broadcast, nonbroadcast, or
point-to-point networks that are reachable through Ethernet interface 0.
Example 10-21 Preventing LSA Flooding Through an Interface
Router(config)#interface ethernet 0
Router(config-if)#ospf database-filter all out
Example 10-22 shows how to prevent flooding of OSPF LSAs to point-to-multipoint networks
to the neighbor at IP address 1.2.3.4.
Example 10-22 Preventing LSA Flooding to a Neighbor
Router(config)#router ospf 1
Router(config-router)#neighbor 1.2.3.4 database-filter all out
One hindrance to the scalability of OSPF is its need to refresh routes as they expire after 3600
seconds. To overcome this, some implementations of OSPF have reduced the frequency to
refresh from every 30 minutes to about every 50 minutes. This enhancement results in a reduc-
tion in the amount of refresh traffic but still requires at least one refresh before the LSA expires.
The OSPF flooding reduction feature further refines this concept by reducing unnecessary
refreshing and flooding of already known and unchanged information. To achieve this, the
LSAs are now flooded with the higher bit set, so the LSAs are now marked as “do not age.”
Use the following command to reduce unnecessary refreshing and flooding of LSAs on your
network:
R2(config-if)#ip ospf flood-reduction
MOSPF packets, you have the option to configure your router to ignore the packets, preventing
the syslog message from being generated. Use the following command to ignore MOSPF LSA
packets:
R2(config-router)#ignore lsa mospf
Example 10-23 shows how to configure the router to suppress the sending of syslog messages
when it receives MOSPF packets.
Example 10-23 Preventing MOSPF Error Messages
When you use the area command, you can summarize routes for the targeted area. The area
command produces a single summary route that can be advertised to other areas by your ABR.
In this manner, your routing information is condensed at area boundaries so that external to the
area, a single route is advertised for each address range. You can configure summarization
addresses for sets of areas by configuring multiple area commands with the range keyword.
CCIE.book Page 307 Monday, May 12, 2003 8:29 AM
To take advantage of summarization, you should assign network numbers in areas contiguously
to be able to lump these addresses into one range. To specify an address range, perform the
following task in router configuration mode:
R2(config-router)#area area-id range address mask
In this command, the area-id is the area containing the networks that you want to be
summarized. The address and mask are used to specify the range of addresses to be summarized
in one range.
Figure 10-5 illustrates the topology that you will use for the inter-area route summarization.
192.168.96.0/24
E0
E0
.2 R3
S1
.1 R4 .1
Area 2
192.168.45.0/30
.2 S0
192.168.64.0/24 Area 0
.1 R5
R6 .2
Area 1
In this portion of the case study, you configure inter-area route summarization on R5 for the
range of subnets from 192.168.64.0 to 192.168.95.0 into one range: 192.168.64.0 255.255.224.0.
You also configure R4 to generate summary address 192.168.96.0 255.255.224.0 into the
backbone using the same technique. Example 10-24 shows a solution to this complex problem.
Example 10-24 Inter-Area Route Summarization
After working through this scenario, it should be apparent that it would be difficult to configure
the summarization required if the subnets between area 1 and area 2 overlapped. Your backbone
area would receive summary ranges that overlap and would not know where to correctly send
the traffic based on the summary address. Also, note that the summary addresses are sent from
an area and not to an area.
If you use summarization with a Cisco IOS Software release prior to 12.1(6), you should man-
ually configure a discard static route for your summary address on your ABR to prevent any
possible routing loops. For example, using one of the summary routes from your case study, use
the following command:
R5(config)#ip route 128.213.64.0 255.255.224.0 null0
With Cisco IOS Software release 12.1(6) and higher, this discard route is generated automati-
cally by default. You still have the option of not using a discard route by using either of the
following commands:
R4(config-router)#[no] discard-route internal
R4(config-router)#[no] discard-route external
Figure 10-6 shows the topology that you will use to configure external route summarization in
this case study.
CCIE.book Page 309 Monday, May 12, 2003 8:29 AM
In this portion of the case study, you configure R4 and R8 to inject external routes received from
routers R4 and R8 into your OSPF autonomous system. R8 is injecting routes in the range of
192.168.64–95, and R4 is injecting routes in the range of 192.168.96–127. For an explanation
of the redistribute command used in this example, refer to Chapter 13. Example 10-25 shows
one solution to this scenario.
Example 10-25 External Route Summarization Example
As in the previous example, this configuration causes R5 to generate one external route
192.168.64.0 255.255.224.0 and causes R6 to generate 192.168.96.0 255.255.224.0.
CCIE.book Page 310 Monday, May 12, 2003 8:29 AM
To create a prefix list with the name specified for the list-name argument, use the following
command:
R2(config-router)#ip prefix-list list-name [seq seq-value] deny | permit network/len [ge
ge-value] [le le-value]
Use the next two commands to filter inter-area routes out of a specified area.
To configure the router to filter inter-area routes out of the specified area, use the following
command:
R2(config-router)#area area-id filter-list prefix prefix-list-name out
To create a prefix list with the name specified for the list-name argument, use the following
command:
R2(config-router)#ip prefix-list list-name [seq seq-value] deny | permit network/len [ge
ge-value] [le le-value]
In this portion of the case study, you configure R2 to filter inter-area routes in both incoming
and outgoing directions. You filter two routes in the outward direction, 10.25.0.0/8 and
172.16.0.0/20, and a single route on the inbound direction, 172.16.0.0/20. Example 10-26
shows a solution to this task.
CCIE.book Page 311 Monday, May 12, 2003 8:29 AM
In this portion of the case study, you configure R2 to prevent the flooding of LSAs to broadcast,
nonbroadcast, or point-to-point networks that are reachable through Ethernet interface 0.
Example 10-27 illustrates the commands that are necessary to complete this task.
Example 10-27 LSA Filtering for an Interface
In this portion of the case study, you configure R2 to filter LSAs going to R3 at address
133.100.23.2. Example 10-28 shows the commands that are necessary to do this.
Example 10-28 LSA Filtering to an OSPF Neighbor
R10-Frame
S3
S1
S0 R4
192.168.9.0/24 192.168.3.0/24 S1
R9-BB1 .2 .1 PIX1 .2 .1 R3 S0
Tunnel: 10.10.10.1 S0
Loopback 0: 192.168.254.253
Loopback 1: 172.16.254.253
R5
S1
Tunnel: 10.10.10.2
Loopback 0: 192.168.254.254
Loopback 1: 172.16.254.254 S0
.2 .1 .2 .1
R8 PIX2 F0/0 R6
192.168.8.0/24 192.168.6.0/24
In this case study, you configure a preshared key Virtual Private Network (VPN) between PIX1
and PIX2. Once this tunnel is established, you can run OSPF across the resulting GRE tunnel
between R8 and R9. Remember that you must configure a static route for the other router
CCIE.book Page 313 Monday, May 12, 2003 8:29 AM
because your routing protocol cannot exchange routes until the tunnel is established. R3, R5,
and R6 are considered to be service provider connections and are not required to run OSPF. The
configuration of these three routers is not covered in this section because they are transparent
to the OSPF protocol. Example 10-29 illustrates one configuration for successful completion of
this task.
Example 10-29 OSPF over a GRE Tunnel
To display the internal OSPF routing table entries of the ABR and ASBR, use the following
command:
R2#show ip ospf border-routers
To display lists of information related to the OSPF database, use the following commands:
R2#show ip ospf [process-id [area-id]] database
R2#show ip ospf [process-id [area-id]] database [database-summary]
R2#show ip ospf [process-id [area-id]] database [router] [self-originate]
R2#show ip ospf [process-id [area-id]] database [router] [adv-router [ip-address]]
R2#show ip ospf [process-id [area-id]] database [router] [link-state-id]
R2#show ip ospf [process-id [area-id]] database [network] [link-state-id]
R2#show ip ospf [process-id [area-id]] database [summary] [link-state-id]
R2#show ip ospf [process-id [area-id]] database [asbr-summary] [link-state-id]
R2#show ip ospf [process-id [area-id]] database [external] [link-state-id]
R2#show ip ospf [process-id [area-id]] database [nssa-external] [i]
R2#show ip ospf [process-id [area-id]] database [opaque-link] [link-state-id]
R2#show ip ospf [process-id [area-id]] database [opaque-area] [link-state-id]
R2#show ip ospf [process-id [area-id]] database [opaque-as] [link-state-id]
To display a list of LSAs waiting to be flooded over an interface to observe OSPF packet pacing,
use the following command:
R2#show ip ospf flood-list interface interface-type
To display OSPF neighbor information on a per-interface basis, use the following command:
R2#show ip ospf neighbor [interface-name] [neighbor-id] detail
To display a list of all LSAs requested by a router, use the following command:
R2#show ip ospf request-list [neighbor] [interface] [interface-neighbor]
To display a list of all LSAs waiting to be re-sent, use the following command:
R2#show ip ospf retransmission-list [neighbor] [interface] [interface-neighbor]
To display a list of all summary address redistribution information configured under an OSPF
process, use the following command:
R2#show ip ospf [process-id] summary-address
CCIE.book Page 316 Monday, May 12, 2003 8:29 AM
To clear redistribution based on the OSPF routing process ID, use the following command. If
the pid option is not specified, all OSPF processes are cleared:
R2#clear ip ospf [pid] {process | redistribution | counters [neighbor [neighbor-interface]
[neighbor-id]]}
Router#show ip ospf 1
Routing Process "ospf 1" with ID 172.16.0.1
Supports only single TOS(TOS0) routes
Supports opaque LSA
It is an area border router
SPF schedule delay 5 secs, Hold time between two SPFs 10 secs
Minimum LSA interval 5 secs. Minimum LSA arrival 1 secs
Number of external LSA 0. Checksum Sum 0x0
Number of opaque AS LSA 0. Checksum Sum 0x0
Number of DCbitless external and opaque AS LSA 0
Number of DoNotAge external and opaque AS LSA 0
Number of areas in this router is 2. 2 normal 0 stub 0 nssa
External flood list length 0
Area BACKBONE(0)
Number of interfaces in this area is 2
Area has no authentication
SPF algorithm executed 6 times
Area ranges are
10.0.0.0/8 Passive Advertise
Area-filter AREA_0_IN in
Area-filter AREA_0_OUT out
Number of LSA 5. Checksum Sum 0x29450
Number of opaque link LSA 0. Checksum Sum 0x0
Number of DCbitless LSA 0
Number of indication LSA 0
Number of DoNotAge LSA 0
Flood list length 0
By examining the output from Example 10-30, you can see that the feature is properly
configured because it has been enabled for the area filter in both the in and out directions.
CCIE.book Page 317 Monday, May 12, 2003 8:29 AM
To display information about a prefix list or prefix list entries, use the following command:
R2#show ip prefix-list
Summary
This chapter has reviewed the OSPF implementation that Cisco supports. OSPF is an Interior
Gateway Protocol (IGP) designed for IP networks that supports IP subnetting, tagging of
externally derived routing information, and packet authentication; it makes use of IP multicast
when sending and receiving packets. You began by examining the many items that you need to
make your OSPF design function in your environment. You covered the many features and
parameters that you can “tune” to make your OSPF implementation more robust in your
environment. You finished the chapter with a look at different ways that you can monitor
and maintain your OSPF configuration.
Review Questions
1 Why are loopback interfaces advertised as /32 in OSPF?
2 What are the route types used with OSPF?
3 Why do I receive the “cannot allocate router id” error message?
4 Why do I receive the “unknown routing protocol” error message?
5 What do the states DR, BDR, and DROTHER mean in the show ip ospf interface
command output?
6 Which router is responsible for generating the network LSA?
7 Why do neighbors show a state of 2-WAY/DROTHER when issuing the show ip ospf
neighbor command?
8 Why is it difficult to identify the DR or BDR on a serial link?
CCIE.book Page 318 Monday, May 12, 2003 8:29 AM
FAQs
Q — Is there a way to change the reference bandwidth in OSPF to more accurately
reflect my bandwidth?
A — Yes, you can use the ospf auto-cost reference-bandwidth command to change the
reference bandwidth from 100 Mbps to your bandwidth.
Q — Why would it be important to change the reference bandwidth?
A — OSPF uses the reference bandwidth to calculate the cost of a route. This formula is
reference bandwidth divided by interface bandwidth. If you were to use the ip ospf
cost <cost> command on your interface, it overrides this formulated cost.
Q — Can I enable the OSPF routing protocol to authenticate routing exchanges?
A — Yes, you can authenticate packets through simple passwords or through MD5 cryp-
tographic checksums. You can use the ip ospf authentication-key command to
configure simple passwords of up to eight octets for authentication of an area. You
must then enter the area <x> authentication command, where x is the area num-
ber, under your OSPF router process to enable authentication.
Q — Can I change the link-state retransmit interval?
A — Use the ip ospf retransmit-interval command to change the retransmit interval
from the default value of 5 seconds.
Q — I have an area that cannot be physically connected to the backbone area. How can
I make this work?
A — Virtual links in OSPF maintain connectivity to the backbone from nonbackbone
areas, whether by design or during times of network instability.
Q — I implemented OSPF and now I am seeing multicast IP address on my network.
Why is this?
A — OSPF sends all of its advertisements using multicast addressing. With the exception
of Token Ring, the multicast IP addresses are mapped to MAC-level multicast
addresses. Cisco uses MAC-level broadcast addresses for Token Ring implementations.
Q — I want to implement IP type of service (ToS)–based routing in my OSPF environ-
ment. Can I do this?
A — Yes and no. Cisco OSPF only provides support for ToS 0. This means that routers
route all packets on the ToS 0 path, eliminating the need to calculate nonzero ToS
paths.
CCIE.book Page 319 Monday, May 12, 2003 8:29 AM
FAQs 319
Q — How does OSPF generate a default route that is based on external information on a
router that does not itself have a default?
A — OSPF generates a default only if you configure it using the default-information
originate command and OSPF is redistributing a default network from a different
routing process on the device. The default route in OSPF is 0.0.0.0. Use the
default-information originate always command to enable your router to generate
a default route, even if it does not have a default route itself.
Q — I want to filter routes into or out of my OSPF routing process. Can I use the distrib-
ute-list in/out command to do this?
A — You cannot filter OSPF routes from entering your OSPF database. The distribute-
list in command only filters routes from entering your routing table, but it does not
prevent link-state packets from being propagated.
The distribute-list out command only works on the routes being redistributed by
the ASBR into OSPF. This means that you apply it to external Type 2 and external
Type 1 routes, but not to intra-area and inter-area routes.
Q — How does Cisco compensate for a partial-mesh topology when running OSPF on
Frame Relay networks?
A — You can tell OSPF whether to try to use its multicast facilities on a multiaccess
interface. If multicast is available, OSPF uses it for its normal multicasts.
You can also use subinterfaces with Frame Relay to tie a set of virtual circuits
(VCs) together to form a virtual interface. This causes the VCs to act as a single
IP subnet. You can also consider using the point-to-multipoint subinterface.
CCIE.book Page 320 Monday, May 12, 2003 8:29 AM
CHAPTER 11
IS-IS
The Intermediate System-to-Intermediate System (IS-IS) link-state protocol, specified in
ISO 10589, is a dynamic routing protocol designed for use with Connectionless Network
Service (CLNS) to facilitate hop-by-hop path selection. IS-IS is a standard intra-domain
routing protocol in the OSI protocol suite.
IS-IS provides a means to implement a hierarchical topology based on areas. Unlike OSPF,
which also uses the concept of areas, IS-IS only provides two areas—Level-1 and Level-2—
although you can have a router that is part of both the Level-1 and Level-2 areas, much like
the Area Border Router in OSPF. You can use a Level-1 area to break a large network into
more manageable sections, also known as Level-1 routing areas. You can use a Level-2 area
to provide the interconnections among different Level-1 areas, frequently referred to as the
backbone area.
This chapter provides an overview of IS-IS, followed by configuration tasks and trouble-
shooting techniques.
Configuring IS-IS
To configure IS-IS, you are only required to enable the IS-IS process and assign areas and
to enable IS-IS for IP routing for an interface. Once you have IS-IS up and running, you can
configure several optional items and, if you choose to do so, implement filtering of routing
information or specify route redistribution.
100.133.47.0/24
.7
R7
Loopback 0 172.16.7.7
CCIE.book Page 323 Monday, May 12, 2003 8:29 AM
Use the following steps to configure IS-IS for your case study:
Step 1 Enable IS-IS and define areas.
Step 2 Assign IS-IS to an interface.
The following sections guide you through each of these steps in more detail.
Area 2
Area 1
CCIE.book Page 324 Monday, May 12, 2003 8:29 AM
When you enable IS-IS on a router, you can tell that IS-IS is not like other routing protocols.
Enabling IS-IS is unique in one aspect: After you create the IS-IS routing process, you assign
interfaces to the process instead of assigning networks to the process. You are also given the
option of implementing a multi-area IS-IS configuration by specifying more than one IS-IS
routing process per router, with each process receiving its own options. You enable the IS-IS pro-
cess by entering the following commands:
R1(config)#router isis [area tag]
R1(config-router)#net network-entity-title
You use the area tag argument to identify the area to which this IS-IS router instance is
assigned. You are only required to enter a value for the area tag if you are going to configure
multiple IS-IS areas.
You should now complete the first step in configuring your case scenario. Example 11-1 shows
one example configuration.
Example 11-1 Enabling IS-IS for Case Study 1
unlike OSPF, where IP subnets define areas. ISs form adjacencies by sending and receiving
Intermediate System-Intermediate System Hellos (IIHs). ISs usually form Level-1 adjacencies
with other ISs in the same area but could be configured to form Level-2 adjacencies. A router-
to-router connection, where each router belongs to different areas, can only be a Level-2
adjacency, but each router is still able to form Level-1 adjacencies with other routers in their
respective areas. Note that the default behavior of interconnected Cisco routers is to form both
Level-1 and Level-2 adjacencies. This is done to prevent you from inadvertently partitioning an
area or even the backbone due to any type of misconfiguration.
If you implement multi-area IS-IS, your router can participate in routing in one of up to 29
Level-1 areas, as well as perform Level-2 routing for a single backbone area. The first IS-IS
instance that you configure is Level-1-2 by default. Any later instances are created automatically
as a Level-1.
You are given the option of configuring your router to act as a Level-1 router, as both a Level-1
router and a Level-2 router, or as a Level-2 router only.
To specify the router level that you are going to use, enter the following command:
R10(config-router)#is-type {level-1 | level-1-2 | level-2-only}
Your next step in creating your case study scenario is to assign each router to act as a Level-1-2
router. Because this is the default behavior for the first IS-IS area you create on a router, this
step is only included for completeness. Example 11-2 lists the steps that are necessary for
this task.
Example 11-2 Creating the Area Levels for Case Study 11-1
Note that you are required to configure an IP address on all interfaces that are in an IS-IS–
enabled area, even if they are not going to be configured to run IS-IS across them.
CCIE.book Page 326 Monday, May 12, 2003 8:29 AM
Now you can assign the IP addresses outlined in Figure 11-1 as well as enable IS-IS on the
respected interfaces. Example 11-3 illustrates the items that you need to configure to complete
the case study configuration.
Example 11-3 Assigning Interfaces to IS-IS
Once you have your loopback interfaces created, you need to make them passive under the
IS-IS process. Example 11-4 illustrates the commands that are necessary for this task.
Example 11-4 Making the Loopback Interfaces Passive in Case Study 11-1
Note that you did not enable IS-IS on the loopback interfaces that you created. By enabling
the IS-IS process on your router, you place all interfaces that you do not specifically assign to
an IS-IS area in passive mode. This means that IS-IS routing information is not sent out of these
interfaces, but they are advertised to neighboring routers.
You can use the show clns neighbor command to see the adjacencies that are formed by your
IS-IS–enabled router. Example 11-5 shows you the output that you receive from this command
on R3 and R7.
Example 11-5 The show clns neighbor Command Output from R3 and R7
From the output in Example 11-5, you can see that R7 recognizes R4 on its Ethernet 0 interface
with the adjacency type of L1/L2. Because they are both sending and receiving both Level-1
and Level-2 hellos, this satisfies the adjacency requirements that were outlined in your case
study. R4 recognizes R7 on its Ethernet 0 interface, and R3 on its Serial 0 interface. Because
R4 and R7 both reside on the same Ethernet interface, there is a Designated IS (DIS) for both
Level-1 and Level-2. You can use the show clns interface [int] command on R7 to verify this,
as shown in Example 11-6.
Example 11-6 The show clns interface [int] Command Output from R7
In the output of Example 11-6, R4 is the DIS. The DIS is responsible for generating the
pseudonode link-state packet (LSP) and is denoted with a nonzero LSP-ID: R4.01. This is
similar to the designated router (DR) in the Open Shortest Path First (OSPF) routing protocol,
with the exception that a backup DIS in not elected.
CCIE.book Page 328 Monday, May 12, 2003 8:29 AM
Note the following items about the output from Example 11-7:
• You can divide the LSP-ID, R7.00-00, into three sections: R7, 00, and 00.
— R7 is the system ID.
— The first 00 is the nonzero value for the pseudonode. Notice that R4.01-00 is the
pseudonode LSP.
— The second 00 represents the fragment number. In this case, 00 indicates that all
the data fits into a single LSP fragment, with no need to create more fragments.
If all the information had not fit into the first LSP, IS-IS would have created
more LSP fragments, such as 01, 02, and so on.
• The asterisk (*) indicates that the LSPs are being generated by R3. Also, because R4 is
running IS-IS as a Level-1 and Level-2 router, it contains both a Level-1 and Level-2
database.
Use the detail keyword to obtain more specific LSP information. See Example 11-8.
Example 11-8 The show isis database [lspid] detail Command Output from R4
Example 11-8 The show isis database [lspid] detail Command Output from R4 (Continued)
ISIS Level-2 LSP R4.00-00
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
R4.00-00 * 0x0000009A 0x5A69 103 0/0/0
Area Address: 49.0001
NLPID: 0xCC
Hostname: R4
IP Address: 172.16.4.4
Metric: 10 IS R4.01
Metric: 10 IS R3.00
Metric: 10 IP 172.16.7.7 255.255.255.255
Metric: 10 IP 172.16.3.3 255.255.255.255
Metric: 0 IP 172.16.4.4 255.255.255.255
Example 11-8 shows that the loopback address is advertised with a value of 0 because it is
advertised with a passive-interface command under the router IS-IS process, and the loopback
interface by itself is not enabled for IS-IS. All other IP prefixes have a value of 10, which is the
default cost on the interfaces that run IS-IS.
The calculation against the database is done by running the shortest path first (SPF) algorithm,
which is commonly known as the Dijkstra algorithm. The Dijkstra algorithm iterates on the
length of a path, examining the LSAs of all ISs, working outward from the host IS. The end
result of this computation is a connectivity tree that yields the shortest paths to each IS.
Pseudonodes 331
Pseudonodes
IS-IS has potential drawbacks when running it over a LAN. One of these drawbacks results
from the fact that each router on the LAN needs to announce a link to every other router on the
LAN. This could result in your IS-IS router having a table containing n*(n–1) links. Another
potential drawback is the fact the each router on the LAN reports the same list of end systems
(ESs) to each other, resulting in an enormous amount of duplication.
To combat these situations, IS-IS introduced a concept of virtual nodes, known as pseudonodes
(PSNs). A PSN is an IS on a link whose purpose is to reduce the number of full-mesh adjacencies
required between nodes on a multiaccess link. This node is called the Designated IS (DIS). All
routers on the multiaccess link, including the one elected to be the DIS, form adjacencies with
the PSN instead of forming n*(n–1)–order adjacencies with each other in a full mesh. Only the
PSN LSP includes the list of ESs on the LAN, eliminating the potential duplication problems.
Figure 11-3 shows a logical view of a network, with the PSN identified.
The election process for the DIS is based on the interface priority; the default is 64. The node
with the highest interface priority is elected the DIS. In the case of a tie in interface priorities,
the router with the highest subnetwork point of attachment (SNPA) is selected. In IS-IS, the
MAC addresses are used as SNPAs on LANs. On nonbroadcast networks such as Frame Relay,
the SNPA is the local data-link connection identifier (DLCI). In the case of multipoint Frame
Relay scenarios that have the DLCI value, the highest system ID is used as a tiebreaker,
independent of area ID.
CCIE.book Page 332 Monday, May 12, 2003 8:29 AM
DIS
Pseudonode
R6
You are given the option of influencing the election by configuring the priority used by your
router. You can also configure these priorities for Level-1 and Level-2 elections separately.
Use the following command to specify the value to use in the designated router election:
R3(config-if)#isis priority value {level-1 | level-2}
For your case study, you can set the priority of R4 so that it is always the DIS for both the
Ethernet and the LAN. Example 11-9 shows you how to do this.
Example 11-9 Setting the DIS Priority
When a router with a higher priority comes online, the DIS election is preemptive, meaning that
a newly connected router with a higher interface priority than the current DIS immediately takes
over and assumes the PSN functionality. One important restriction is that there is no dedicated
interface priority value for making a router ineligible to be the DIS. Preemptive assumption of
the DIS role is nondisruptive due to periodic synchronization on broadcast links.
The DIS’s responsibilities include the following:
• Generating PSN link-state packets, for reporting links to all systems on the broadcast
subnetwork
• Carrying out flooding over the LAN
A separate DIS is elected for Level-1 routing and for Level-2 routing.
CCIE.book Page 333 Monday, May 12, 2003 8:29 AM
IS-IS Addressing
CLNP uses a format of addressing, referred to as the network service access point (NSAP)
address, to identify individual nodes on a network. Figure 11-4 illustrates the NSAP packet.
The NSAP address has a maximum size of 160 bits (20 bytes) and is composed of the following
major parts:
• The initial domain part (IDP)—Made of a 1-byte authority and format identifier (AFI)
and a variable-length initial domain identifier (IDI)
• The domain specific part (DSP)—Composed of fields such as the area ID, system ID,
and the N-selector
NSEL
The NSEL is known as the NSAP selector, but it is also referred to as the N-selector or the SEL.
If you were to look as an NSAP frame, the NSEL is the last byte of the packet. The NSEL is
used to identify a network service user, most often a transport entity. An NSAP with an NSEL
value of 0 indicates that this is the network entity title (NET). The NET denotes that this is the
network entity or the routing layer.
System ID
The system ID can be referred to as the SysID. The system ID is used as the system identifier
of an IS in an area. The system ID can be of variable length, between 1 and 8 octets; however,
CCIE.book Page 334 Monday, May 12, 2003 8:29 AM
Cisco implements it as a fixed length in compliance with version 2.0 of U.S. Government OSI
Profile (GOSIP).
Area Address
The area address is a variable-length field that is composed of high-order octets of the NSAP,
excluding the system ID and NSEL fields. You use the area address to associate a single area
within the routing domain. You can see the area address for the router by issuing the show clns
protocol command.
Example 11-10 shows the output of the show clns protocol command from R1. R1 is config-
ured with a manual area of 49.0001 with two loopback interfaces and a subinterface on Serial 0.
Example 11-10 The show clns protocol Command Output from R1
As you can see from the output in Example 11-10, R1 has a manual area assigned and is routing
for this area.
Addressing Requirements
When designing an IS-IS addressing scheme, you must abide by the following requirements:
• All routers must use the same area address to be considered to be in the same area.
• An end system can be adjacent to a Level-1 router only if they both share a common area
address.
• Each node in an area must have its own unique system ID.
CCIE.book Page 335 Monday, May 12, 2003 8:29 AM
• All Level-2 routers in a domain must have their own unique system ID.
• All systems in a given domain must have system IDs of the same length in their NSAP
addresses.
• At a minimum, in a Cisco implementation, you must have at least 8 bytes to define the
NSAP on a router: 1 byte for area, 6 bytes for system ID, and 1 byte for the N-selector
field. The maximum size of an NSAP remains at 20 bytes.
• At least one NSAP is required per node.
• All NETs on the same router must have the same system ID.
Optionally, you can use a route map to conditionally advertise the default route, depending on
the existence of another route in the routing table of the router.
To configure a default route, use the following command:
R1(config-router)#default-information originate [route-map map-name]
In the next exercise, you configure R1 to originate a default route to 3.3.3.3. You configure R3
with a loopback interface with the 3.3.3.3 address and configure IS-IS to talk to R1. Example 11-12
shows you the relevant configuration items that are needed for R1 to generate a default route
pointing to R3.
Example 11-12 Default Router Configuration
R1#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Route Redistribution
Most of the time, you are not building your network from the ground up, or you are absorbing
a network from a purchased company into yours, so you must face redistributing one routing
protocol into another. Your routers support this sharing of routing information, known as route
redistribution, between multiple routing protocols and even between multiple instances of the
same routing protocol.
CCIE.book Page 338 Monday, May 12, 2003 8:29 AM
IS-IS supports enhanced route redistribution to provide you with improved administrative
control over methods by which routing information moves between your routing domains. One
of the most important features that you work with is the route map. A route map is a set of
instructions that you define to tell the router how routing information is to be redistributed
between two routing protocols or between two instances of the same routing protocol.
Route maps are based on a user-defined, ordered list of match conditions. The route map then
steps through each defined item in the list to see if any item matches the route being considered
for redistribution. If it finds a match, whatever action you defined for the match is performed
against the route. You are given the option to permit the route, deny the route, or attach addi-
tional information, called route tags, to the route. You can also mandate the use of certain route
metrics or route types and even modify the route’s destination in outgoing advertisements. You
can also use the same route map for different routing protocols.
Your next configuration task is to redistribute the default route that you generated in the last
example configuration using a route map if the route to 3.3.3.3 is in router R1’s routing table.
In this exercise, you configure R1 to redistribute the default route that you configured in
your last exercise to R10. Example 11-13 illustrates the relevant configuration items that are
necessary for R1 to redistribute the default route.
Example 11-13 Redistributing a Default Route
You are allowed to configure the hello interval independently for Level-1 and Level-2, except
when you are using serial point-to-point interfaces. (Because only a single type of hello packet
is sent on serial links, it is independent of Level-1 or Level-2.)
The one drawback to this command is that it does nothing when applied to serial point-to-point
interfaces; it is only in effect if the WAN connection is seen as a multiaccess meshed network.
The value that you specify needs to be an integer greater than the expected round-trip delay
between any two routers on the attached network.
You then configure area authentication and domain authentication on the topology that is
illustrated in Figure 11-6. You finish the case study by combining all the authentications on
the same topology, as illustrated in Figure 11-6.
Interface Authentication
When you configure IS-IS authentication on an interface level, you are given the option of
enabling the password support for Level-1, Level-2, or both Level-1/Level-2 routing. If you
do not specify a level, Level-1 is selected as the default authentication level. Use the following
command to enable interface authentication:
R1(config-if)#isis password password level
CCIE.book Page 341 Monday, May 12, 2003 8:29 AM
Your first step in this case study is to configure routers R1 and R8 to use interface authentication
between them. You use a password of isis-ia for this authentication and define your IS-IS to run
under the tag of ccie_lab. Example 11-14 illustrates a solution to this step.
Example 11-14 Interface Authentication Between R1 and R8
Area Authentication
When you configure IS-IS using area authentication, all the routers within that area must
have the same password configured on them. Use the following command to enable area
authentication:
R1(config-router)#area-password password
CCIE.book Page 342 Monday, May 12, 2003 8:29 AM
The next step in your case study is to configure area authentication between all the routers in
the area. Use a password of isis-aa for your area authentication and define your IS-IS to run
under the tag of ccie_lab. Example 11-15 illustrates a solution to this step.
Example 11-15 Area Authentication
Domain Authentication
When you configure IS-IS using domain authentication, all the routers within that domain must
have the same password configured on them. Use the following command to enable area
authentication:
R1(config-router)#domain-password password
The next task in your case study is to create three separate IS-IS domains and to configure
domain authentication between them. Routers R1 and R8 are in the IS-IS area 49.1234, R4 is
in the IS-IS area 49.5678, and R5 is in the IS-IS area 49.9999. You use the domain password of
isis-da. Example 11-16 shows one solution to this scenario.
Example 11-16 Domain Authentication
Authentication Problems
Sometimes when you are using IS-IS authentication in your network, you run across links
that do not appear to work correctly. One possible solution to this problem is to examine the
output of a show clns neighbor command, from one router’s perspective, which can show
the adjacency to be in the INIT state with type IS-IS while the other router has a full ES-IS
adjacency.
When you configure domain authentication, your router rejects the LSPs from routers that do
not have the same domain authentication configured. However, routers that do not have authen-
tication configured can accept the LSPs from the routers that have authentication configured.
You encounter the same scenario when you are using area authentication. Because only routers
configured for domain or area authentication reject LSPs from routers that do not have (the
same) authentication configured, these routers can have differing views of the network topology
because their link-state databases are not in sync.
One way you can tell that IS-IS authentication is working is to examine the output from the
show clns neighbor detail command. The protocol field shows up as ES-IS instead of IS-IS if
authentication is not working.
CCIE.book Page 346 Monday, May 12, 2003 8:29 AM
For example, the following command causes information about individual areas to be separated
by 14 dashes (-) in the display:
R1#isis display delimiter - 14
Monitoring IS-IS
You already covered most of the commands that are available for monitoring the tables and
databases. For your review, the following is a summary of the available commands:
R1#show isis database [level-1] [level-2] [l1] [l2] [detail] [lspid]
R1#show isis area-tag route
R1#show isis spf-log
R1#show isis area-tag topology
If you need to clear the state of your IS-IS adjacency, use the following command:
R1#clear isis *
Example 11-18 gives you a typical output that you should receive when entering the clear isis *
command on router R1.
Example 11-18 The clear isis * Command Output from R1
R1#clear isis *
03:48:27: %CLNS-5-ADJCLEAR: ISIS: All adjacencies cleared
03:48:30: %CLNS-5-ADJCHANGE: ISIS: Adjacency to R10 (Ethernet0) Up, new adjacency
03:48:35: %CLNS-5-ADJCHANGE: ISIS: Adjacency to R3 (Serial0.1) Up, new adjacency
As you can see from this output, the adjacency to routers R3 and R10 was cleared, and then
each router re-formed its adjacency with router R1.
Debugging IS-IS
In some cases, you must debug IS-IS to determine if your configurations are correct.
When you are examining problems related to building adjacencies, IS-IS offers you the
following command:
R1#debug isis adj-packets
CCIE.book Page 347 Monday, May 12, 2003 8:29 AM
Example 11-19 shows the output when running the debug command on router R1.
Example 11-19 The debug isis adj-packets Command Output for R1
You can see from this output that R1 is receiving and sending IIHs out all interfaces that IS-IS
is currently running over.
Excessive SPF calculations can be a sign that a problem exists with your IS-IS environment.
IS-IS offers you the following debug command, which can show you the steps that SPF goes
through during its calculations:
R1#debug isis spf-events
Example 11-20 illustrates the output from router R1 after enabling the debug isis spf-events
command.
Example 11-20 The debug isis spf-events Command Output from Router R1
By examining the output from the debug isis spf-events command, you can determine what
routes IS-IS is installing into the routing table and what neighbors it is accepting routes from.
Summary
In this chapter, you reviewed the configuration options that are available to you with the IS-IS
routing protocol. You covered three options that are available for running IS-IS in your environ-
ment: CLNS only, IP only, and CLNS with IP. You created a lab environment that went from
configuring simple IS-IS to a lab that included multiple IS-IS areas and configuration of
optional parameters. You concluded the chapter by looking at the available show and debug
commands.
Review Questions
1 What is IS-IS?
2 What is Dual IS-IS?
A. IIHs—IS-to-IS hellos
B. EIHs—ES-to-IS hellos
C. LSPs—link-state packets
D. FSNPs—fragmented sequence number packets
E. CSNPs—complete sequence number packets
F. PSNPs—partial sequence number packets
5 What algorithm does IS-IS use to determine “best” routes?
6 Which of the following are the three modes of operation that Integrated IS-IS can run in?
A. CLNS only
B. OSI only
C. IP only
D. Hybrid—CLNS with IP
E. IPX only
7 How can I tell who is acting as the PSN in a multiaccess network?
FAQs 349
FAQs
Q — When would you implement multiple NETs on a box?
A — Multiple NETs can be used when you are in the process of merging or splitting
areas. You should only use multiple NETs on a temporary basis.
Q — If I implement Dual IS-IS for IP only, do I still need to configure CLNS?
A — No, but you must still configure an NSAP for the router to determine its area.
Q — Can I use IS-IS for load balancing?
A — Yes, you can use IS-IS to support equal-cost load balancing. IP supports up to
6 equal cost paths, with 4 being the default. CLNS only supports a maximum
of 4 equal-cost paths.
Q — What is the process for electing the DIS?
A — The DIS election is based on the interface priority. The default priority is 64. In
the case of a tie, the IS with the higher SNAP (MAC address) is elected.
Q — Can I clear the IS-IS adjacency with a neighbor without affecting all the other
adjacencies?
A — Yes, by using the clear isis command in privileged mode, you can clear individual
adjacencies or an adjacency that you specify.
Q — Can I specify multiple areas in IS-IS like I can in OSPF?
A — No, IS-IS uses only two levels: Level-1 for intra-area routing and Level-2 for
inter-area routing.
CCIE.book Page 350 Monday, May 12, 2003 8:29 AM
CHAPTER 12
BGP
This chapter is dedicated to the Border Gateway Protocol (BGP) portion of the CCIE
Security lab exam and introduces concepts necessary to understand and implement BGP.
You will concentrate on BGP’s fundamental setup and security-related features.
Autonomous Systems
As far as BGP is concerned, an autonomous system is a group of networks under a single
technical administration, which implies using the same routing protocols and the same
routing policy. There can be multiple Interior Gateway Protocols (IGPs) for internal
autonomous system routing and an Exterior Gateway Protocol (EGP), such as BGP, for
routing outside the autonomous system.
The ARIN assigns public numbers to autonomous systems that need to appear unique on
the Internet. These numbers are in the form of 2 bytes and range from 1 to 65536. Also,
some private autonomous system numbers (64512 to 65535) have been allocated for use in
private networks. If private autonomous system numbers are used, they need to be
translated into globally unique numbers for Internet connectivity.
An autonomous system may fall into three general categories:
• Single-homed or stub—Connects to a single Internet service provider (ISP). In this
case, BGP is mostly used for future growth; otherwise, static routes are sufficient.
• Multihomed—Connects to two or more ISPs and requires the use of BGP for full
redundancy. Users in a multihomed network may reach other destinations on the
Internet via either an ISP through basic load sharing of traffic or through a policy that
determines the best route to any particular destination. When one ISP connection fails,
the other maintains full availability.
CCIE.book Page 352 Monday, May 12, 2003 8:29 AM
BGP Functionality
BGP is an enhanced distance vector protocol. It carries a list of the BGP autonomous
system numbers as an indication of the path to a destination network. Each BGP speaker adds
its own autonomous system to the list and then forwards it to a peer. This process is done for
loop detection purposes: If the same autonomous system number appears more than once in a
path, a loop exists. Routing policies can be used based on the autonomous system numbers in
the path.
BGP bases its forwarding decisions on IP destination address only. The source IP address does
not play a role in this. For instance, packets created in another autonomous system that use the
local autonomous system as a transit and packets created inside the local autonomous system
are treated equally and use the same next hop as long as they are destined for the same network.
Therefore, the shortest path does not necessarily mean the best path. Although a BGP router can
maintain multiple paths to a particular destination, only the best path is forwarded. When it
comes to BGP, the best path involves a complex metric consisting of various attributes and is
determined through a policy (you’ll read more about that in the “Configuring BGP” section).
Another important BGP fact is that it uses TCP as its transport protocol (port 179). TCP means
reliable transport. When a router running BGP sends an update, it is always acknowledged.
This eliminates the need for periodic updates; only information about a change is transmitted.
This makes BGP highly scalable and capable of handling colossal-sized networks, such as the
Internet. The drawback is the extra load on the CPU of the BGP-speaking routers and a slight
increase in network traffic, so convergence is somewhat an issue. However, scalability is more
important to BGP functionality, and it takes precedence over convergence.
BGP Updates
BGP routers exchange their full BGP routing tables when the session is first established. As
mentioned, the use of reliable TCP ensures that the sender is aware of the receiver actually
receiving and transmitting the information. Periodic updates are, therefore, unnecessary. After
the initialization, only incremental updates are sent, reflecting a change in the network topology
or a routing policy.
BGP maintains a BGP table version number. This number should be the same for all the BGP
peers. Whenever a new update is received, the version number is revised.
When BGP is in idle state, a peer can go down without TCP’s noticing because such an event
is detected only when traffic needs to be passed through that peer. To resolve this, BGP period-
ically sends small keepalive packets to ensure that the connection exists between the BGP peers.
You can manipulate a keepalive period to suit your particular topology. Keepalive packets are
also transmitted reliably. As a result, the peer router must reply with its own keepalive packet.
Configuring BGP
Figure 12-1 represents the complete topology used for BGP in this chapter. This topology will
be further broken down to better illustrate each case study. As you go along, you will notice how
section by section the case studies cover all nine routers and both PIX Firewalls.
AS 1 AS 2
AS 9
E0
R1 S0 R2 AS 1560
S0 ISP
R9-BB1 AS 3 Frame
Inside
Relay S0 E0 E0
Ethernet R4 R7-BB2
S1
S0
PIX1 Outside R3
S0
AS 456
R5
AS S1
6500
S0
Inside Outside
R8 E0 PIX2 Fa0/0 R6
CCIE.book Page 354 Monday, May 12, 2003 8:29 AM
Example 12-1 shows the router bgp command issued on R4 and R7. The highlighted lines
indicate that R4 is running BGP and belongs to AS 456 and that R7-BB2 is also running BGP
and belongs to AS 1560.
CCIE.book Page 355 Monday, May 12, 2003 8:29 AM
R4#show run
hostname R4
!
! Output omitted for brevity
!
interface Loopback4
ip address 4.4.4.4 255.255.255.0
!
interface Ethernet0
ip address 140.100.47.4 255.255.255.192
!
router bgp 456
R7#show run
hostname R7
!
interface Loopback1
ip address 7.1.1.7 255.255.255.0
!
interface Loopback2
ip address 17.1.1.7 255.255.255.0
!
interface Loopback3
ip address 27.1.1.7 255.255.255.0
!
interface Loopback4
ip address 37.1.1.7 255.255.255.0
!
interface Loopback100
ip address 209.112.65.1 255.255.255.0
!
interface Loopback101
ip address 209.112.66.1 255.255.255.0
!
interface Loopback102
ip address 209.112.67.1 255.255.255.0
!
interface Loopback103
ip address 209.112.68.1 255.255.255.0
!
interface Loopback104
ip address 209.112.69.1 255.255.255.0
!
interface Loopback105
ip address 209.112.70.1 255.255.255.0
!
interface Loopback200
ip address 156.46.1.1 255.255.255.0
!
continues
CCIE.book Page 356 Monday, May 12, 2003 8:29 AM
The remote-as number argument indicates to which autonomous system the specified neighbor
belongs. As shown in Example 12-2, both routers have neighbor statements pointing to one
another. To peer with R7, R4 associates R7’s E0 IP address of 140.100.47.7 with AS 1560, of
which R7 is a member.
Example 12-2 BGP Peer Configuration
R4#show run
hostname R4
!
! Output omitted for brevity
!
router bgp 456
bgp router-id 4.4.4.4
bgp log-neighbor-changes
neighbor 140.100.47.7 remote-as 1560
neighbor 140.100.47.7 description R7-BB2
R7#show run
hostname r7
!
! Output omitted for brevity
!
router bgp 1560
bgp router-id 7.7.7.7
bgp log-neighbor-changes
neighbor 140.100.47.4 remote-as 456
neighbor 140.100.47.4 description R4
A number of optional commands can be associated with a neighbor. After the neighbor com-
mand has been set, you can input these commands. In Example 12-2 the description of R7 and
R4 has been added to their neighbor configuration. The syntax for the description command is
as follows:
R4(config-router)#neighbor [ip-address | peer-group-name] description text
The bgp log-neighbor changes command is helpful because it logs a line indicating a change
in a neighbor status, such as the neighbor’s coming up or going down.
Before you get to the next step of advertising networks, you might want to assign a router ID to
the BGP process, as in Example 12-2. The router ID uniquely identifies each BGP router. This
number is normally selected from IP addresses available on a router. The highest numerical
address is the one chosen as the router ID. This can be a random, nondescriptive number that
is hard to troubleshoot because you can’t easily associate it with any particular router in your
mind.
CCIE.book Page 358 Monday, May 12, 2003 8:29 AM
To overwrite the router’s default behavior, assign the following command with an IP address of
your choosing:
R4(config-router)#bgp router-id ip-address
To verify whether your neighbor configuration is working properly and you are receiving the
information from your peer, issue the show ip bgp neighbors [ip-address] command, used in
Example 12-3.
Example 12-3 show ip bgp neighbors Output
Notice that both routers display the correct information on their neighbor. The IP address you
specified is associated with the autonomous system. The description for the neighbor you
entered locally and the router ID received from the neighbor are also displayed.
CCIE.book Page 359 Monday, May 12, 2003 8:29 AM
A common mistake when configuring new neighbor statements or making a change to existing
ones is to forget to reset the old neighbor connection. In this scenario, the neighbor configura-
tion on R4 and R7 is new. Had there been a previous configuration and you changed it, you
would need to reset the connection with one of the following commands:
R4#clear ip bgp neighbor-address
or
R4#clear ip bgp *
The first command clears the connection to a particular neighbor, and the second resets all
neighbor connections. If you don’t reset the previous neighbor connection, your new
configuration changes won’t take effect.
You have the option of specifying a subnet mask if your particular subnet differs from the major
network boundary. For instance, Example 12-4 omits the mask from the Class C 209 network
on R7 but includes it for all other network statements.
Example 12-4 Using the network Statement in BGP
R4#show run
hostname R4
!
! Output omitted for brevity
!
router bgp 456
bgp router-id 4.4.4.4
bgp log-neighbor-changes
network 140.100.47.0 mask 255.255.255.192
neighbor 140.100.47.7 remote-as 1560
neighbor 140.100.47.7 description R7-BB2
R7#show run
hostname R7
!
! Output omitted for brevity
continues
CCIE.book Page 360 Monday, May 12, 2003 8:29 AM
Step 4: Verification
After your configuration is complete, you need to verify the BGP operation and troubleshoot it
if necessary. You learned about the show ip bgp neighbors command in Step 2 of this case
study. You can use other helpful commands in a logical step-by-step order for the most efficient
verification and troubleshooting.
Use the following command to display the list of neighbors and the status of all BGP
connections:
R4#show ip bgp summary
In Example 12-5, the show ip bgp summary command is issued on R7 three times
consecutively. Each time, the state of the peer changes from idle to active to the number
of advertised prefixes.
Example 12-5 show ip bgp summary Output of R7
The number of received prefixes is a very useful clue in troubleshooting. Note the number of net-
works R4 receives from R7 in Example 12-6. Compare it to the number of network statements
in R7’s BGP configuration, and confirm that these numbers match. Seventeen network state-
ments are configured on R7 (as shown in Example 12-4), and 17 prefixes are received by R4.
Example 12-6 show ip bgp summary Output of R4
After checking the number of prefixes received from the neighbors, display the detailed
information on those routes in the BGP database with the following command:
R4#show ip bgp
R4#show ip bgp
BGP table version is 18, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Issuing the debug ip bgp updates command shows you exactly what’s going on with your
updating process. Example 12-8 shows R7 receiving routes from R4.
Example 12-8 debug ip bgp updates Output of R7
AS 1560
ISP
E0 E0
S0 .4 .7
R4 140.100.47.x/26 R7-BB2
140.100.45.0/26
S1
.4
.5
S0
S1
.5
.6
S0
R6
CCIE.book Page 364 Monday, May 12, 2003 8:29 AM
Check Example 12-9 to see how synchronization is disabled on R5. R4 and R6 have identical
synchronization disabling configurations applied.
Example 12-9 Disabling the Synchronization Feature
R5#show run
!
! Output omitted for brevity
!
router bgp 456
no synchronization
CCIE.book Page 365 Monday, May 12, 2003 8:29 AM
If for any reason you need to reenable synchronization, repeat this command without the no.
The route reflector communicates with two types of routers: clients and nonclients. At least one
route reflector and its clients create a cluster. Nonclients are routers that are not part of the clus-
ter (such as other route reflectors, external routers, and routers) that don’t understand the route-
reflector concept. The clients in a cluster form IBGP sessions only with their route reflector. A
cluster can have more than one route reflector. In this situation, clients need to peer with all their
route reflectors, and route reflectors need to peer with each other. An autonomous system can
also be divided into multiple clusters.
Cluster formation and route-reflector selection are dictated by the topology. In this case, R4,
R5, and R6 are combined into a single cluster with one route reflector within AS 456. It makes
sense to elect R5 as a route reflector so that it has a separate IBGP peering with R4 and R6.
First, you configure neighbor statements on R4 with R5 and configure neighbor statements on
R6 with R5. R5, as route reflector, peers with both R4 and R6. The need for peering between
R4 and R6 is eliminated, because R5 relays the updates coming from R4 and R6.
The route reflector is configured using the neighbor statement with an additional argument:
R5(config-router)#neighbor ip-address router-reflector-client
R5#show run
hostname R5
!
interface Loopback5
ip address 5.5.5.5 255.255.255.0
!
interface Serial0
ip address 140.100.45.5 255.255.255.192
!
interface Serial1
ip address 140.100.56.5 255.255.255.192
clockrate 64000
!
router bgp 456
no synchronization
bgp router-id 5.5.5.5
bgp log-neighbor-changes
network 140.100.45.0 mask 255.255.255.192
network 140.100.56.0 mask 255.255.255.192
neighbor 140.100.45.4 remote-as 456
neighbor 140.100.45.4 description R4
neighbor 140.100.45.4 route-reflector-client
neighbor 140.100.56.6 remote-as 456
neighbor 140.100.56.6 description R6
neighbor 140.100.56.6 route-reflector-client
CCIE.book Page 367 Monday, May 12, 2003 8:29 AM
Having the highlighted commands placed on it, R5 becomes the route reflector, and R4 and R6
become its clients. Clients don’t require any special configuration.
Example 12-11 shows how this command works on R4 and R6. R4 advertises R7’s networks
to R5 with itself as the next hop. Consequently, this information is passed on to R6 as well.
Now, R6 is also a border router connected to AS 65000. As such, it has the next-hop-self
statement directed to R5.
Example 12-11 Changing the Next-Hop Attribute
R4#show run
hostname R4
!
! Output omitted for brevity
!
interface Serial0
ip address 150.100.33.4 255.255.255.248
encapsulation frame-relay
frame-relay map ip 150.100.33.3 404 broadcast
frame-relay interface-dlci 404
frame-relay lmi-type ansi
!
interface Serial1
ip address 140.100.45.6 255.255.255.192
continues
CCIE.book Page 368 Monday, May 12, 2003 8:29 AM
R6#show run
hostname R6
!
interface Loopback6
ip address 6.6.6.6 255.255.255.0
!
interface FastEthernet0/0
ip address 130.100.26.6 255.255.255.224
speed 10
half-duplex
!
interface Serial0/0
ip address 140.100.56.6 255.255.255.192
!
router bgp 456
no synchronization
bgp router-id 6.6.6.6
bgp log-neighbor-changes
network 140.100.56.0 mask 255.255.255.192
neighbor 140.100.56.5 remote-as 456
neighbor 140.100.56.5 description R5_Route_Reflector
neighbor 140.100.56.5 next-hop-self
NOTE If you issue show ip bgp route on R6, you will notice that R7’s networks can be reached via
R4’s IP address, as you have configured it. For your troubleshooting techniques in the lab
environment, you might prefer to see the actual next hop, R5. In this case, you need to place the
next-hop-self statement on R5 as well.
CCIE.book Page 369 Monday, May 12, 2003 8:29 AM
The next step is to decide on the subnet boundary for the summarization. You will use /16 for
all three summarized networks: 150.100.0.0, 156.46.0.0, and 209.112.0.0. The syntax for the
route aggregation contains many optional keywords. The syntax of the command that is of use
to you here is
R4(config-router)#aggregate-address address mask [summary-only]
You need to realize the difference between inclusion and exclusion of the summary-only
keyword. When summary-only is omitted, BGP creates an aggregate address as specified but
also includes the more-specific routes that were there in the first place. In Example 12-12,
aggregate-address 150.100.0.0 255.255.0.0 is missing summary-only. On the other hand,
networks 156.46.0.0 and 209.112.0.0 aren’t. This means that for networks 156.46.x.x and
209.112.x.x, only aggregate addresses are propagated, and for network 150.100.x.x, all routes,
including the summary, are forwarded.
Example 12-12 aggregate-address Application
R4#show run
hostname R4
!
! Output omitted for brevity
!
router bgp 456
no synchronization
bgp router-id 4.4.4.4
bgp log-neighbor-changes
network 140.100.45.0 mask 255.255.255.192
network 140.100.47.0 mask 255.255.255.192
network 150.100.33.0 mask 255.255.255.248
aggregate-address 150.100.0.0 255.255.0.0
aggregate-address 156.46.0.0 255.255.0.0 summary-only
aggregate-address 209.112.0.0 255.255.0.0 summary-only
neighbor 140.100.45.5 remote-as 456
continues
CCIE.book Page 370 Monday, May 12, 2003 8:29 AM
If you issue the show ip bgp command on R4, as shown in Example 12-13, you will see that
the routes that are being summarized are still there but are marked with a letter “s.” This means
that they are suppressed from R4’s routing updates to other peers.
Example 12-13 show ip bgp Command on R4
R4#show ip bgp
BGP table version is 40, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
There are, however, other ways of suppressing routes such as through route filtering. You can
use route maps to filter updates. Only those routes permitted in the route map are propagated.
To begin configuring a route map, give it a case-sensitive name, such as PERMIT_SUMMARY,
in global configuration mode. Then you need to assign it a match statement that references con-
ditions set in an access list. The access list used here is numbered 10 and permits the summa-
rized routes of 150.100.x.x, 156.46.x.x, and 209.112.x.x and makes all other routes not
welcome.
Finally, you associate the route map with the specific neighbor and specify whether it is applied
to incoming or outgoing routes. Example 12-14 shows how the route map filtering is resolved
on R4. The route map configured is designed to filter all specific routes from entering R5 via R4.
Example 12-14 Route Map Filtering
The task of suppressing the specific routes of network 150.100.0.0 is now accomplished. Take
a look at Example 12-15, though. This is the output of the show ip route bgp and show ip bgp
commands on R5. Notice how only summary routes are displayed for all networks in the
routing table, but the BGP database still shows every route for 150.100.x.x. This is because in
the previous section, summary-only wasn’t included in the aggregate statement of 150.100.0.0.
Example 12-15 show ip route bgp and show ip bgp Commands on R5
R5#show ip bgp
BGP table version is 100, local router ID is 5.5.5.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 140.100.45.0/26 0.0.0.0 0 32768 i
* i140.100.56.0/26 140.100.56.6 0 100 0 i
*> 0.0.0.0 0 32768 i
*>i150.100.0.0 140.100.45.4 100 0 i
*>i150.100.33.0/29 140.100.45.4 0 100 0 1234 i
!
! Output omitted for brevity
!
CCIE.book Page 372 Monday, May 12, 2003 8:29 AM
R4#show run
hostname R4
!
router bgp 456
no synchronization
bgp router-id 4.4.4.4
neighbor 140.100.47.7 remote-as 1560
neighbor 140.100.47.7 description R7-BB2
!
! Output omitted for brevity
!
neighbor 140.100.47.7 distribute-list 11 out
!
access-list 11 permit 150.100.0.0 0.0.255.255 log
Example 12-17 shows the output of R7’s routing table after the distribute list has been applied
to R4. You can see that all routes that would have come from R4, aside from 150.100.0.0/16,
are gone.
Example 12-17 show ip route bgp Command on R7
During this case study, you will accomplish the following tasks:
Step 1 Configure R1, R2, and R3 for BGP routing
R1#show run
hostname R1
!interface Serial0.1 point-to-point
ip address 150.100.31.1 255.255.255.240
frame-relay interface-dlci 101
!
router bgp 1
network 150.100.31.0 mask 255.255.255.240
neighbor 150.100.31.3 remote-as 3 ←R3
neighbor 150.100.31.3 description R3
continues
CCIE.book Page 374 Monday, May 12, 2003 8:29 AM
R2#show run
hostname R2!
interface Loopback2
ip address 2.2.2.2 255.255.255.0
!
interface Serial0.1 point-to-point
ip address 150.100.32.2 255.255.255.224
frame-relay interface-dlci 202
!
router bgp 2
network 150.100.32.0 mask 255.255.255.224
neighbor 150.100.32.3 remote-as 3 ←R3
no auto-summary
R3#show run
hostname R3
!
interface Serial0.1 point-to-point
description Connection to R1
ip address 150.100.31.3 255.255.255.240
frame-relay interface-dlci 301
!
interface Serial0.2 point-to-point
description Connection to R2
ip address 150.100.32.3 255.255.255.224
frame-relay interface-dlci 302
!
interface Serial0.4 point-to-point
description Connection to R4
ip address 150.100.33.3 255.255.255.248
frame-relay interface-dlci 304
!
router bgp 3
network 150.100.31.0 mask 255.255.255.240
network 150.100.32.0 mask 255.255.255.224
network 150.100.33.0 mask 255.255.255.248
neighbor 150.100.31.1 remote-as 1
neighbor 150.100.31.1 description R1
neighbor 150.100.31.1 next-hop-self
neighbor 150.100.32.2 remote-as 2
neighbor 150.100.32.2 description R2
neighbor 150.100.32.2 next-hop-self
neighbor 150.100.33.4 remote-as 456
neighbor 150.100.33.4 description R4 IBGP -Link to AS456
no auto-summary
CCIE.book Page 375 Monday, May 12, 2003 8:29 AM
and
R1(config-router)#bgp confederation peers autonomous-system [autonomous-system]...
Example 12-19 demonstrates the application of the preceding commands on each router. Every
router is identified as a member of confederation 1234. R1 is peered with AS 2 and AS 3, R2
with AS 1 and AS 3, and R3 with AS 1 and AS 2.
Example 12-19 Confederation Setup
R1#show run
hostname R1
!
! Output omitted for brevity
!
router bgp 1
bgp log-neighbor-changes
bgp confederation identifier 1234
bgp confederation peers 2 3
network 150.100.31.0 mask 255.255.255.240
neighbor 150.100.31.3 remote-as 3
neighbor 150.100.31.3 description R3
no auto-summary
R2#show run
hostname R2
!
! Output omitted for brevity
!
router bgp 2
no synchronization
bgp log-neighbor-changes
bgp confederation identifier 1234
bgp confederation peers 1 3
network 150.100.32.0 mask 255.255.255.224
redistribute connected route-map loopback
neighbor 150.100.32.3 remote-as 3
no auto-summary
!
access-list 1 permit 2.2.2.0 0.0.0.255 log
route-map loopback permit 10
match ip address 1
continues
CCIE.book Page 376 Monday, May 12, 2003 8:29 AM
When you configure R4’s peer relationship with R3, everything stays the same, except instead
of associating R3’s IP address with AS 3, R4 uses AS 1234. Example 12-20 shows R4’s
configuration.
Example 12-20 Peering R4 with R3
R4#show run
hostname R4
!
router bgp 456
no synchronization
bgp router-id 4.4.4.4
bgp log-neighbor-changes
!
! Output omitted for brevity
!
neighbor 150.100.33.3 remote-as 1234
neighbor 150.100.33.3 description R3_Confederation peer
neighbor 140.100.47.7 distribute-list 11 out
!
access-list 11 permit 150.100.0.0 0.0.255.255 log
access-list 11 permit 2.2.2.0 0.0.0.255 log
access-list 11 permit 8.8.8.0 0.0.0.255 log
CCIE.book Page 377 Monday, May 12, 2003 8:29 AM
Step 3: Verification
Issue show ip bgp on R4, and you’ll notice that all routes arriving by way of R3 display 1234
as their autonomous system path attribute, not AS 3. This was the intended result of the
configuration scenario, as shown in Example 12-21.
Example 12-21 show ip bgp Command on R4
However, if you issue the same command on any of the confederation member routers, you’ll
see that routes coming from other members preserve their real autonomous system number in
parentheses under the autonomous system path, as shown in Example 12-22. This is done so
that routing information loops can be avoided inside the confederation.
Example 12-22 show ip bgp Command on R3
R3#show ip bgp
BGP table version is 98, local router ID is 172.16.3.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
AS 1560
ISP
E0 E0
R4 140.100.47.x/26 R7-BB2
140.100.45.0/26
S1
S0
AS 456
R5
140.100.56.0/26
S1
AS
6500 R8 Peer with R6 Over PIX2 GRE-Tunnel
S0
PIX2#show run
PIX Version 6.2.(2)
nameif ethernet0 outside security0
nameif ethernet1 inside security100
hostname PIX2
R6#show run
hostname r6
!
! Output omitted for brevity
!
interface Tunnel6
ip address 192.168.118.6 255.255.255.0
tunnel source 130.100.26.6
tunnel destination 192.168.1.1 ←R8
!
interface FastEthernet0/0
continues
CCIE.book Page 380 Monday, May 12, 2003 8:29 AM
R6#show run
hostname r6
!
interface Loopback6
ip address 6.6.6.6 255.255.255.0
!
interface Tunnel6
ip address 192.168.118.6 255.255.255.0
tunnel source 130.100.26.6
tunnel destination 192.168.1.1
!
interface FastEthernet0/0
ip address 130.100.26.6 255.255.255.224
!
interface Serial0/0
ip address 140.100.56.6 255.255.255.192
!
! Output omitted for brevity
!
router bgp 456
no synchronization
bgp router-id 6.6.6.6
bgp log-neighbor-changes
network 130.100.26.0 mask 255.255.255.224
network 140.100.56.0 mask 255.255.255.192
network 192.168.118.0 ←Tunnel Interface Network
neighbor 140.100.56.5 remote-as 456
neighbor 140.100.56.5 description R5_Route_Reflector
neighbor 140.100.56.5 next-hop-self
neighbor 192.168.118.8 remote-as 65000
neighbor 192.168.118.8 description R8_Private_AS
no auto-summary
!
ip classless
ip route 192.168.1.1 255.255.255.255 130.100.26.2
R8#show run
hostname R8
!
continues
CCIE.book Page 382 Monday, May 12, 2003 8:29 AM
The full syntax of this command is explained in Chapter 13, “Redistribution.” Of all the
available arguments for this command, the ones of interest to you here are protocol and route-
map. Because Loopback8 is configured on the router, it qualifies as connected; therefore, when
specifying redistribution, instruct the router to use connected as the keyword.
You learned about the concept of a BGP route map earlier, in Step 2 of Case Study 12-2.
However, in this case the route map is applied to redistribution instead of to a neighbor. The
route map loopback shown in Example 12-26 calls up access list 10, which names 8.8.8.0/24 as
the allowed network. When route map loopback is used in conjunction with the redistribution
command, it makes sure that only 8.8.8.0/24 is redistributed into BGP.
CCIE.book Page 383 Monday, May 12, 2003 8:29 AM
R8#show run
hostname R8
!
! Output omitted for brevity
!
interface Loopback8
ip address 8.8.8.8 255.255.255.0
!
router bgp 65000
no synchronization
bgp router-id 8.8.8.8
bgp log-neighbor-changes
network 192.168.1.0
network 192.168.118.0
redistribute connected route-map Loopback
no auto-summary
!
route-map Loopback permit 10
match ip address 10
!
access-list 10 permit 8.8.8.0 0.0.0.255 log
In Example 12-27, both R6 and R8 neighbor statements are configured with the ccie4460
password. On R8, it appears encrypted because of the service-password encryption command.
Example 12-27 MD5 Authentication
R6#show run
hostname R6
!
! Output omitted for brevity
!
continues
CCIE.book Page 384 Monday, May 12, 2003 8:29 AM
R8#show run
hostname R8
service password-encryption ← Encrypts password "ccie4460"
!
! Output omitted for brevity
!
router bgp 65000
no synchronization
bgp router-id 8.8.8.8
bgp log-neighbor-changes
network 192.168.1.0
network 192.168.118.0
redistribute connected route-map Loopback
neighbor 192.168.118.6 remote-as 456
neighbor 192.168.118.6 description R6
neighbor 192.168.118.6 password 7 15110805017E7F7278
no auto-summary
NOTE Adding a password to an existing session triggers it to be torn down, after which a new session
is set up.
R7#show ip bgp
BGP table version is 33, local router ID is 7.7.7.7
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
To hide private autonomous systems from service providers, issue the following command on
the border router, R4:
R4(config-if)#neighbor ip-address remove-private-as
Example 12-29 displays the portion of R4’s running configuration where this command has
been applied.
Example 12-29 Suppressing the Private Autonomous System
Now if you view R7’s BGP database, shown in Example 12-30, you’ll observe that AS 65000
no longer appears under the autonomous system path attribute.
Example 12-30 R7’s BGP Database After the Removal of the Private Autonomous System
R7#show ip bgp
BGP table version is 63, local router ID is 7.7.7.7
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
#
$
!
"
!
Step 7 Verification
NOTE The norandomseq option disables randomization of the TCP/IP packet sequence numbers.
Without it, there would be an issue with proper BGP operation through the PIX. Unfortunately,
in most cases the use of the norandomseq option diminishes security in the PIX Firewall.
PIX1#write terminal
PIX Version 5.2(3)
nameif ethernet0 outside security0
nameif ethernet1 inside security100
hostname PIX1
Observe that static routes are indicated for all routes sourced from R3 and network 9.9.9.0/24
sourced from R9. An access list allowing BGP routing, ICMP requests, Telnet, and traceroute
has been specified and applied to the incoming traffic on the outside interface. For a more
comprehensive explanation of PIX topics, read Chapter 23.
R9#show run
!
! Output omitted for brevity
!
ip route 130.100.1.0 255.255.255.0 10.1.1.1
R3#show run
!
! Output omitted for brevity
!
ip route 10.1.1.0 255.255.255.0 130.100.1.1
R3#ping 10.1.1.9
R3#show run
hostname R3
!
interface Loopback0
ip address 3.3.3.3 255.255.255.0
!
interface Ethernet0
ip address 130.100.1.3 255.255.255.0
!
interface Serial0
encapsulation frame-relay
frame-relay lmi-type ansi
!
CCIE.book Page 389 Monday, May 12, 2003 8:29 AM
R9#show run
hostname r9
!
interface Loopback9
ip address 9.9.9.9 255.255.255.0
!
interface Ethernet0
ip address 10.1.1.9 255.255.255.0
!
router bgp 9
bgp log-neighbor-changes
network 10.10.10.0 mask 255.255.255.0
redistribute connected
continues
CCIE.book Page 390 Monday, May 12, 2003 8:29 AM
Without ebgp-multihop, the neighbor session will not move forward to the active state from
its idle state. Example 12-34 demonstrates application of this command on both routers. The
optional TTL value of 2 signifies that two neighbors are one hop distant from each other. Other-
wise, the default value of 1 indicates that no packet routing takes place between the two neigh-
bors, because they are directly connected. The default TTL value is automatically changed with
the ebgp-multihop command and is set to a new default of 255 whenever it isn’t explicitly
specified.
Example 12-34 ebgp-multihop Command Configuration
R9#show run
hostname r9
!
! Output omitted for brevity
!
router bgp 9
neighbor 130.100.1.3 ebgp-multihop 2 ←to R3
R3#show run
!
! Output omitted for brevity
!
router bgp 3
neighbor 10.1.1.9 ebgp-multihop 2 ←to R9
CCIE.book Page 391 Monday, May 12, 2003 8:29 AM
Whenever the neighbors are separated by another hop, some kind of IGP or static routing should
also be configured so that the neighbors can reach one another. If you recall, a static route has
been configured on each router and PIX1 right before the BGP configuration. If you miss this
important step, you receive the error shown in Example 12-35.
Example 12-35 Result of No Available Routing
Example 12-36 shows the application of route-map prepend outgoing to R3. The route map’s
set statement specifies the add-on of autonomous system 93 to AS 9’s updates.
Example 12-36 Prepending an Autonomous System to the Autonomous System Path
R9#show run
!
! Output omitted for brevity
!
router bgp 9
neighbor 130.100.1.3 route-map Lilo out
!
route-map Lilo permit 10
set as-path prepend 93
Example 12-37 shows how this command is implemented on R9. R9 allows R3 to send up to
100 networks in its routing updates to AS 9. When the preset maximum is exceeded, R9
terminates the peering. If you wanted to bring up the peering again, you would need to issue the
clear ip bgp command. However, if the warning-only keyword were specified, the router
would only send a log message; it wouldn’t drop the session.
Example 12-37 Setting the Maximum Number of Incoming Routes
R9#show run
hostname R9
!
! Output omitted for brevity
!
router bgp 9
neighbor 130.100.1.3 maximum-prefix 100
Step 7: Verification
Because of the configuration steps taken in this case study, autonomous system 3 receives
updates about 9.9.9.0 and 10.1.1.0 with the path information of 9, 93. Compare the output of
the show ip bgp command on R9 and R3 shown in Example 12-38. On R9, networks 9.9.9.0
and 10.1.1.0 don’t indicate a path, because they are local. On the other hand, R3 displays the
path for these networks through a real AS 9 and a fictitious AS 93.
Example 12-38 BGP Databases of R3 and R9
R3#show ip bgp
Origin codes: i - IGP, e - EGP, ? - incomplete
To ensure a successful configuration, issue the show ip bgp summary command on R9 and R3.
Check if you are receiving the accurate number of routes from all configured neighbors.
Example 12-39 shows the output of show ip bgp summary issued on R9. You can see that R9
is receiving 13 prefixes from its neighbor R3.
Example 12-39 show ip bgp summary Command on R3 and R9
Then verify whether these routes appear correctly in the routing table, as shown in Example 12-40.
Example 12-40 show ip route bgp Command on R3 and R9
Finally, you need to confirm that inter-autonomous system reachability is working properly
throughout the full case study topology shown in Figure 12-1. By pinging R7 and R8 from R9
and tracing a route from R2 to AS 9, you can make certain that the autonomous systems that are
farthest away are still accessible.
Example 12-41 ICMP Requests and Traceroute Verification
R2#traceroute 10.1.1.9
Summary
This chapter presented some general information on Border Gateway Protocol (BGP). The
“Configuring BGP” section dealt with the important underlying BGP setup and advanced
security aspects.
BGP is a highly scalable protocol with numerous configuration and filtering features, some
of which are impossible and unnecessary to cover in this book. However, this chapter was
designed to give you a firm grasp of many security concepts achieved with the help of BGP
and also some of the necessary and common configuration tasks without which BGP simply
wouldn’t work. Reading and understanding the material covered here and completing the exer-
cises suggested in Chapter 26, “Sample Lab Scenarios,” should make you very comfortable
with the level of BGP offered in the CCIE Security lab exam.
Review Questions
1 What are the applications of a route map in BGP?
FAQ 395
FAQ
Q — When a route reflector is configured, does it change the next-hop information for a
route it’s reflecting?
A — No. Not unless the next-hop-self command is specified.
Q — When the show ip bgp command is issued, what does a next hop of 0.0.0.0 mean?
A — 0.0.0.0 shows that a network is of local origin. The means by which a network can
be locally originated include redistributing Interior Gateway Protocol (IGP) into
BGP and a network or aggregate command in the BGP configuration.
Q — What are the rules for resetting a particular BGP session?
A — When you make a change to the inbound/outbound policy for a BGP session, you
should clear that session. There are several ways of doing this. To clear a BGP ses-
sion for outbound changes, issue the clear ip bgp neighbor-address soft out com-
mand. To clear a BGP session for inbound changes, issue the clear ip bgp
neighbor-address command or the clear ip bgp neighbor-address soft in command
if the neighbor supports it.
Q — In what order are filtering techniques applied to a BGP neighbor?
A — It depends on whether they are applied to inbound or outbound updates. For inbound
updates, the route map is tried first, and then the distribute list. For outbound updates,
this order is reversed.
CCIE.book Page 396 Monday, May 12, 2003 8:29 AM
CHAPTER 13
Redistribution
In this chapter, you look at the redistribution of routes from one protocol or autonomous
system to another. Redistribution of routes from one routing protocol or autonomous sys-
tem into another is an integral part of the CCIE Security lab exam. You will be asked to
redistribute the routes from one protocol into another and to possibly modify their metrics
and/or filter the routes injected into or from a routing protocol.
Redistribution occurs whenever you use a routing protocol to advertise routes that are
learned by some other means such as by another routing protocol, static routes, or directly
connected routes. Many reasons exist for the use of redistribution, including some of the
most common reasons for running multiprotocol routing, mergers, multiple departments
managed by multiple network administrators, and multivendor environments.
Each routing protocol in use can have different characteristics such as metrics, administrative
distance, and classful and classless capabilities, which can have a distinct effect on
redistribution. You must take these differences into consideration to ensure success in
your redistribution efforts.
Metrics
Protocol metrics play an important role in redistribution of routes. Each routing protocol
can make use of different metrics. For example, Routing Information Protocol (RIP) uses
hop count as its metric, while Interior Gateway Routing Protocol/Enhanced Interior Gate-
way Routing Protocol (IGRP/EIGRP) bases its metric on bandwidth and delay. Because
these differences exist, when you distribute routes, you must define an artificial metric that
the receiving protocol can understand and use. With Cisco IOS Software, two ways of
defining metrics when redistributing routes are as follows:
• You can define the metric for that specific redistribution only.
• You can use the same metric as a default for all redistributions.
CCIE.book Page 398 Monday, May 12, 2003 8:29 AM
The supported automatic metric translations between the routing protocols, assuming that you
have not defined a default redistribution metric, are as follows:
• RIP can automatically redistribute static routes and assigns them a metric of 1.
• Border Gateway Protocol (BGP) does not normally send metrics in its routing updates.
• IGRP can automatically redistribute static routes, with the same metric as a directly
connected route, and information from other IGRP-routed autonomous systems. IGRP
does not change the metrics of routes derived from IGRP updates from other autonomous
systems.
• Automatic metric translation occurs between IGRP and EIGRP.
Administrative Distance
The following is an area of concern when redistributing routes: What happens when your router
learns a route to the same destination using both routing protocols? Which route will be selected
over the other, or is it possible to create a routing loop? Adding to this dilemma is the fact that
each protocol uses its own metric type to determine the best route, making it impossible to
compare routes with different metric types. To alleviate this problem, Cisco IOS Software uses
the administrative distance of the route to determine which one is placed in the routing table.
Administrative distances are assigned so that the routing table can ensure that the route from
the most preferred source is chosen as the best path.
While administrative distances are helpful with route selection among different routing proto-
cols, they can cause problems when you configure your network to use redistribution. Some of
these problems take the form of routing loops, convergence issues, or inefficient routing.
Once you have the route map defined, you have the option of defining one or more match com-
mands and one or more set commands to control traffic. If you do not define a match command,
then everything matches. If you do not define a set command, nothing else is done to the routes.
Use at least one of the following match commands to define conditions for redistributing routes
from one routing protocol into another.
To match a BGP autonomous system path access list, use the following command:
R2(config-route-map)#match as-path path-list-number
To match a next-hop router address passed by one of the access lists specified, use the following
command:
R2(config-route-map)#match ip next-hop {access-list-number | access-list-name} [access-
list-number | access-list-name]
To match the specified next-hop route out one of the interfaces specified, use the following
command:
R2(config-route-map)#match interface interface-type interface-number [interface-type
interface-number]
To match the address specified by the advertised access lists, use the following command:
R2(config-route-map)#match ip route-source {access-list-number | access-list-name}
[access-list-number | access-list-name]
Use at least one of the following set commands to define conditions for redistributing routes
from one routing protocol into another.
To set the communities attribute, use the following command:
R2(config-route-map)#set community {community-number [additive]} | none
To specify the BGP weight for the routing table, use the following command:
R2(config-route-map)#set weight weight
To modify the BGP autonomous system path, use the following command:
R2(config-route-map)#set as-path {tag | prepend as-path-string}
To specify the address of the next hop, use the following command:
R2(config-route-map)#set next-hop next-hop
To enable automatic computing of the tag table, use the following command:
R2(config-route-map)#set automatic-tag
CCIE.book Page 401 Monday, May 12, 2003 8:29 AM
To specify the areas in which to import routes, use the following command:
R2(config-route-map)#set level {level-1 | level-2 | level-1-2 | stub-area | backbone}
To set the metric value to give the redistributed routes for any protocol except IGRP or EIGRP,
use the following command:
R2(config-route-map)#set metric metric-value
To set the metric value to give the redistributed routes for IGRP or EIGRP only, use the
following command:
R2(config-route-map)#set metric bandwidth delay reliability loading mtu
To set the metric type to give redistributed routes, use the following command:
R2(config-route-map)#set metric-type {internal | external | type-1 | type-2}
To set the Multi-Exit Discriminator (MED) value on prefixes advertised to exterior BGP
neighbors to match the Interior Gateway Protocol (IGP) metric of the next hop, use the
following command:
R2(config-route-map)#set metric-type internal
To set the tag value to associate with the redistributed routes, use the following command:
R2(config-route-map)#set tag tag-value
Use the following commands to distribute routes from one routing domain into another and to
control route redistribution.
To redistribute routes from one routing protocol to another routing protocol, use the following
command:
R2(config-router)#redistribute protocol [process-id] {level-1 | level-1-2 | level-2}
[metric metric-value] [metric-type type-value] [match internal | external type-value]
[tag tag-value] [route-map map-tag] [weight number-value] [subnets]
To cause the current routing protocol to use the same metric value for all redistributed routes
(BGP, OSPF, RIP), use the following command:
R2(config-router)#default-metric number
To cause the IGRP or EIGRP routing protocol to use the same metric value for all non-IGRP
redistributed routes, use the following command:
R2(config-router)#default-metric bandwidth delay reliability loading mtu
To disable the default redistribution of default information between IGRP processes, use the
following command:
R2(config-router)#no default-information {in | out}
CCIE.book Page 402 Monday, May 12, 2003 8:29 AM
By looking at the routing table of R6, you can see that it is learning these two routes from BGP,
as shown in Example 13-2.
Example 13-2 The show ip route Command Output from R6 for Internal Routes
R6#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
continues
CCIE.book Page 404 Monday, May 12, 2003 8:29 AM
Example 13-2 The show ip route Command Output from R6 for Internal Routes (Continued)
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default
U - per-user static route, o - ODR
Now you need to change the configuration of router R5 so that it only redistributes OSPF
external routes into BGP. You redistribute the OSPF external Type 1 route 100.1.1.0/24 and
the OSPF external Type 2 route 100.1.2.0/24 into BGP. Example 13-3 shows a possible
configuration to make this lesson work.
Example 13-3 Redistributing Type 1 and Type 2 External Routes into BGP
After completing these configuration changes, reissuing the show ip route command on R6
shows that it is learning these two OSPF external routes from BGP, as shown in Example 13-4.
Example 13-4 The show ip route Command Output from R6 for External Routes
R6#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default
U - per-user static route, o - ODR
Note that you could have entered the following command under your BGP configuration and
seen the same results:
R5(config-router)#redistribute ospf 1 match external
CCIE.book Page 405 Monday, May 12, 2003 8:29 AM
This is because redistribution of external routes, by default, includes both Type 1 and Type 2.
If you only want to redistribute one type, you must specify it when you define your
redistribution command.
In this lesson, you configure redistribution of OSPF internal and external routes into BGP.
Example 13-5 shows the changes required for R5 to make this operational.
Example 13-5 Redistributing Internal and External OSPF Routes into BGP
Upon completion of these changes, router R6 shows that it is learning all OSPF routes from
BGP, as shown in Example 13-6.
Example 13-6 The show ip route Command Output from R6 for Internal and External Routes
R6#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default
U - per-user static route, o - ODR
In this lesson, you configure router R5 to redistribute routes learned from the NSSA
(100.1.1.0/24 and 100.1.2.0/24). Example 13-7 shows a possible solution to this lesson.
Example 13-7 Redistribution of NSSA Routes into BGP
After completion of the lesson, examining the show ip route command output from router R6
shows you that it is learning the routes from the NSSA, as expected. Example 13-8 shows this
output.
Example 13-8 The show ip route Command Output from R6 Showing NSSA Routes
R6#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
CCIE.book Page 407 Monday, May 12, 2003 8:29 AM
Example 13-8 The show ip route Command Output from R6 Showing NSSA Routes (Continued)
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default
U - per-user static route, o - ODR
Note that you could have entered the following command under your BGP configuration and
seen the same results:
R5(config-router)#redistribute ospf 1 match nssa-external
This is because redistribution of NSSA external routes, by default, includes both Type 1 and
Type 2. If you only want to redistribute one type, you must specify it when you define your
redistribution command.
RIP OSPF
R1
R3 R4
RIP
R7-BB2
R9-BB1
CCIE.book Page 408 Monday, May 12, 2003 8:29 AM
For this lesson, you assume that OSPF is using a longer subnet mask for the same network that
RIP is using. Configure router R4 so that you can inform RIP of the routes that OSPF is using
in the 200.100.0.0 network. Example 13-9 shows the configuration items on R4 that make this
possible.
Example 13-9 OSPF with Longer Subnet Mask Redistributed to RIP
This configuration still works, even though you pointed the static route to null0, because router
R4 has more specific routes to the destination networks through information obtained through
OSPF.
You can also use this method of tricking the classful routing protocol when you use EIGRP
instead of OSPF, and IGRP instead of RIP. You do not see this problem if the masks of both
protocols are the same or if all the protocols that you are using support variable-length subnet
masks (VLSMs).
Example 13-11 Redistributing Between IGRP and EIGRP of Different Autonomous Systems (Continued)
Configuration items for R1:
R1(config)#router igrp 100
R1(config-router)#network 133.100.41.0 0.0.0.255
R1(config-router)#network 100.100.2.0 0.0.0.255
Figure 13-6 Redistribution Between EIGRP and IGRP in the Same Autonomous System
Example 13-12 Redistribution Between IGRP and EIGRP on the Same Autonomous System
R4 is redistributing the IGRP route into EIGRP. When reviewing the configuration in Exam-
ple 13-12, remember that IGRP and EIGRP can automatically redistribute routes into each
other if you define the same autonomous system numbers as the process ID. If two routes, one
from IGRP and one from EIGRP, have the same metric, after scaling the IGRP route by 256,
the router prefers the EIGRP route. This is because the router always prefers the path with the
lowest-cost metric and ignores the administrative distance.
100.133.42.0/30 100.100.2.0/24
.2 .1
R2 R4
In this lesson, R4 is configured with a static route to network 100.100.2.0/24 configured through
interface Serial 0. R4 needs to advertise this route to R2 without distributing any other static
routes it can have. Example 13-13 shows a solution to this scenario.
Example 13-13 Redistributing Static Routes to Interfaces with EIGRP
Now you can examine the output on R2 to see that the route is included in the routing table as
an internal EIGRP route. Example 13-14 shows the output of the show ip route command
issued on R2.
Example 13-14 The show ip route Command Output on R2
R2#show ip route
....
100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 100.100.42.0/304 is directly connected, Serial0
D 100.100.2.0 [90/2169856] via 100.100.42.1, 00:00:47, Serial0
When you use this command, you should also specify a metric to be used.
The second method of redistribution of directly connected routes involves the use of a routing
protocol. As long as the directly connected route is defined in one of the routing protocols and
mutual redistribution is in use, both protocols can learn the routes through the redistribution.
Figure 13-8 illustrates the topology that you will use for this lesson.
CCIE.book Page 414 Monday, May 12, 2003 8:29 AM
In this lesson, you use a routing protocol to redistribute your connected networks. Because R8
has two Ethernet interfaces, you configure Ethernet 0 in network 100.133.38.0/24 and Ethernet
1 in network 100.133.18.0/24. You ensure that R8 is running EIGRP with R3, and OSPF with
R1. You configure R8 so that it is mutually redistributing between the EIGRP and OSPF pro-
cesses. Example 13-15 shows you only the pertinent configuration information for R8.
Example 13-15 Redistributing Directly Connected Networks
Now, if you issue the show ip route command on your routers, you get an output similar to the
one shown in Example 13-16.
Example 13-16 The show ip route Command Output for Redistributing Directly Connected Networks
R8#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
CCIE.book Page 415 Monday, May 12, 2003 8:29 AM
Example 13-16 The show ip route Command Output for Redistributing Directly Connected Networks (Continued)
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
R3#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default
U - per-user static route, o - ODR
R1#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
From the configuration and the routing table output from R8, you should notice the following:
• The networks in question are in R8’s routing table as directly connected networks.
• Network 100.133.38.0/24 is part of the EIGRP process, and network 100.133.18.0/24 is
part of the OSPF process.
• R8 is mutually redistributing between EIGRP and OSPF.
CCIE.book Page 416 Monday, May 12, 2003 8:29 AM
Now, examining the routing tables for routers R1 and R3, you should see the following:
• R1 is learning the network 100.133.18.0/24 via EIGRP.
• R3 is learning the network 100.133.38.0/24 via OSPF.
This means that although R8 is not configured with the redistribute connected command, it
does advertise the network 100.133.38.0/24, which is part of the EIGRP process redistributed
into OSPF. Similarly, R8 advertises network 100.133.18.0/24, which is part of the OSPF
process redistributed into EIGRP.
Because route filtering works by controlling the routes that are entered into or advertised out of
your route table, it has a different effect when used on link-state routing protocols than when
used on distance-vector protocols. If your router is running a distance-vector protocol, which
advertises routes based on what is in its route table, a route filter influences which routes your
router advertises to its neighbors.
If your router is running a link-state protocol, which determines routes based on information in
its link-state database, a route filter has no effect on link-state advertisements or on the link-
state database.
In an Internet service provider (ISP) or large enterprise network, the distribution routers can
have more than 200 interfaces. Before the Default Passive Interface feature was introduced, two
possibilities for obtaining routing information from these interfaces existed:
• You could configure a routing protocol such as OSPF on the backbone interfaces and
redistribute the connected interfaces.
• You could configure the routing protocol on all interfaces and manually set most of them
as passive.
Problems existed in these large networks with either of these scenarios. The first scenario could
allow the flooding of a large number of Type 5 LSAs, because you could not always summarize
these LSAs at your router level, where your redistribution occurs.
The second scenario could allow flooding of large Type 1 LSAs into the area. Your Area Border
Router (ABR) creates a Type 3 LSA for each Type 1 LSA and floods them onto your backbone.
With this scenario, it is possible to inject a unique summary route into the backbone at your
ABR level.
By introducing the Default Passive Interface feature, it eliminated the requirement to manually
configure a passive interface command on each interface (by using a single passive-interface
default command) and then enable individual interfaces where an adjacency is desired) by
using the no passive-interface command).
Use the following commands to set all interfaces as passive by default and then activate only
those interfaces that need to have adjacencies set.
To configure the routing protocol on the network, use the following command:
R2(config)#router protocol process-id
To activate only those interfaces that need to have adjacencies set, use the following command:
R2(config-router)#no passive-interface interface-type
To specify the list of networks for the routing process, use the following command:
R2(config-router)#network network-address [options]
To verify that the interfaces you enabled as active, use the following command:
R2#show ip interface
CCIE.book Page 418 Monday, May 12, 2003 8:29 AM
You use the distribute-list in command to control which routes are processed in incoming
routing updates. Note that the access list that you are referencing is applied to the contents of
the update, not to the source or destination of the routing update packets. Your router decides
whether to include the contents in its routing table based on the access lists, for example, if you
have the following configuration on a router:
access-list 1 permit 100.0.0.0 0.255.255.255
router rip
distribute-list 1 in
Any inbound RIP update received is checked against access-list 1, and only routes that match
a 100.xxx.xxx.xxx format are placed in your routing table.
For every routing process that is defined on your router, you can define one inbound interface-
specific distribute list per interface and define one globally defined distribute list. In this case,
if the route is denied by either distribute list, it is not allowed into the routing table. The route
must be allowed by both lists. For example, you can configure the following combination on
one of your routers:
access-list 1 permit 100.0.0.0 0.255.255.255
access-list 2 permit 100.133.3.0 0.0.0.255
router rip
distribute-list 2 in ethernet 0
distribute-list 1 in
In this case, your router checks the interface on which the update comes in. If the update comes
in on Ethernet 0, access-list 2 is applied before it is allowed into the routing table. If the network
is denied by access-list 2, no further checking is needed. However, if distribute-list 2 allows the
network, then distribute-list 1 is also checked. If both distribute lists allow the network, it is
CCIE.book Page 419 Monday, May 12, 2003 8:29 AM
placed into your routing table. The following algorithm is followed when multiple distribute
lists are used:
1 Extract the next network from the inbound update.
a. If yes, is the network denied by that list? If yes, the network does not make it; return
to Step 1. If no, the network is allowed; continue to Step 4.
b. If no, continue to Step 4.
4 Does a global distribute list exist?
a. If yes, is the network denied by that list? If yes, the network does not make it; return
to Step 1. If no, the network is allowed; return to Step 1.
b. If no, return to Step 1.
You use the distribute-list out command to control which routes are included in outgoing
routing updates. For example, assume that you have the following configuration on a router:
access-list 1 permit 100.0.0.0 0.255.255.255
router rip
default-metric 1
redistribute igrp 20
distribute-list 1 out igrp 20
Now you have routes from the IGRP 20 routing process being redistributed into RIP. Any
outbound routing update originally sourced from the IGRP 20 routing process is checked
against access-list 1. Only routes that match a 100.xxx.xxx.xxx format are sent.
As with the distribute list in command, you can specify multiple distribute lists for a given
routing process if they are applied to different interfaces, or globally. So, for any given routing
protocol, you can define one interface-specific distribute list per interface and one protocol-
specific distribute list for each process/autonomous system pair. For example, you can
configure the following combination on one of your routers:
access-list 1 permit 100.0.0.0 0.255.255.255
access-list 2 permit 100.133.3.0 0.0.0.255
router rip
distribute-list 2 in ethernet 0
distribute-list 1 in
In this case, your router only sends routes pertaining to network 100.133.3.0 out of its Ethernet
0 interface. It also sends any routes pertaining to network 100.0.0.0 out all its other interfaces,
including the 100.133.0.0 network. The following algorithm is used when multiple distribute
lists are used:
1 Select the next network to receive an outbound update.
a. If yes, is the network denied by that list? If yes, the network does not go out; return to
Step 1. If no, the network is allowed; continue to Step 4.
b. If no, continue to Step 4.
4 Check the routing process or autonomous system from which you derive the route.
a. If yes, is the network denied by that list? If yes, the network does not go out; return to
Step 1. If no, the network is allowed, continue to Step 6.
b. If no, continue to Step 6.
6 Does a global distribute list exist?
a. If yes, is the network denied by that list? If yes, the network does not go out; return to
Step 1. If no, the network is allowed, return to Step 1.
b. If no, return to Step 1.
NOTE A router performs many different checks, not just against a distribute list but also against
distance-vector routes, before it includes it in the routing table or in an update. Some of these
checks include tests for desirability, policies, split horizon, and other factors.
While no general guidelines exist for assigning the administrative distances that you use, you
must determine a reasonable matrix of administrative distances for your individual network
requirements. Table 13-1 lists the default administrative distances assigned by Cisco IOS
Software for various routing information sources.
CCIE.book Page 421 Monday, May 12, 2003 8:29 AM
Summary 421
You can also use the administrative distance value to rate the routing information from routers
running the same routing protocol. Be careful when using administrative distance values in this
application because unfamiliarity with it can result in inconsistent routing information, includ-
ing forwarding loops. In the following example, you want the default metric assigned to IS-IS
to be reassigned to a value of 90. More preference is given to these IP routes compared to the
routes with the default administrative distance value of 110:
router isis
distance 90 ip
Summary
In this chapter, you learned about redistribution between routing protocols. You looked at such
items as metrics, administrative distances, and avoiding problems with redistribution. While
redistribution usually occurs without problems, there are a few exceptions such as redistribution
between OSPF and BGP. You looked at the EIGRP routing protocol as the template for other
routing protocols and stepped through many scenarios involving mutual redistribution. You
concluded the chapter with a look at filtering routing updates in both the in and out directions.
CCIE.book Page 422 Monday, May 12, 2003 8:29 AM
Review Questions
1 What metric is used by RIP?
2 Which routing protocols can redistribute static routes automatically without any
additional configuration?
3 What happens if you do not include a match statement with a route map?
FAQs 423
FAQs
Q — Why would I want to redistribute a routing protocol instead of running a single
routing protocol in my network?
A — While a goal for many network administrators is to simplify their network configu-
ration through the use of a single routing protocol, many reasons still exist in
today’s networks for the use of redistribution, including some of the most common
reasons for running multiprotocol routing, mergers, multiple departments managed
by multiple network administrators, and multivendor environments.
Q — Why do I loose the metrics when I redistribute BGP routes?
A — Unlike other routing protocols, BGP does not automatically redistribute metrics
with routes.
Q — What are some of the problems that can arise from incorrect redistribution of
routes?
A — Some of the problems you can see include routing loops, slow convergence, and
suboptimal routing paths. You can use filtering to avoid many of these problems.
Q — What is the access list used for when I define a route map?
A — The access list is used to match routing updates for further processing by the route
map. It does not match the source of the routing updates, as you might expect.
Q — I cannot see any of my subnets when I redistribute from EIGRP into OSPF. Why is
this happening?
A — You must use the subnet keyword when you define the redistribution with OSPF or
it only redistributes any major networks that have not been divided into subnets.
Q — Why is RIP not redistributing my OSPF routes?
A — When redistributing routes between OSPF and RIP, a problem arises if OSPF has a
different mask than RIP. Because RIP is a classful routing protocol, it does not
redistribute these routes. You can use static routing as a patch for this problem.
CCIE.book Page 424 Monday, May 12, 2003 8:29 AM
CCIE.book Page 425 Monday, May 12, 2003 8:29 AM
PA R T
IV
Security Practices
Chapter 14 Security Primer
Chapter 15 Basic Cisco IOS Software and Catalyst 3550 Series Security
Chapter 17 IP Services
CCIE.book Page 426 Monday, May 12, 2003 8:29 AM
CHAPTER 14
Security Primer
In this chapter, you are given a brief overview of the security technologies that you might
be exposed to throughout your career. Many topics related to security are covered, includ-
ing an overview of security in Cisco IOS and CatalystOS (CatOS) and technologies such
as VPNs, AAA, and IDS. Some of the topics that are included in this chapter are not
required for the CCIE Security lab exam but are covered for completeness of the subject.
One of the most exciting times in the career of a network administrator is the introduction
of new technology into their infrastructure. This is also the time that some of the worst secu-
rity nightmares begin. While today’s technology revolution continues to improve produc-
tivity in work and enhances quality of life, it also introduces new and unique ways for
unauthorized people to gain access to privileged and private information. The previously
happy network administrator must now spend more time trying to keep this information
secure in the face of these overwhelming odds. The administrator must now spend more
time analyzing network traffic that is coming to and going from the network, trying to keep
one step ahead of the latest vulnerability, patching devices for things never heard of before,
reading mailing lists, and so on.
Today’s security specialist must be able to sort through mounds of information to determine
what type of threat to his organization is real and what type of threat is only an urban
legend. This is done through continuing education, participation in security groups and/or
mailing lists, the CIA website at www.cia.gov, and most of all, personal experience. Many
forums exist where the administrator can express opinion or get answers to questions, but
like anything else that is free, some of the advice and answers should be taken for what they
are worth.
Good security practices result in minimizing the chance of a security incident occurring and
minimizing the impact of a security incident through the protection of information, systems,
and services against mistakes, disasters, and manipulation. While many ways exist to
ensure security, the components that make up excellent security practices include integrity,
confidentiality, and availability.
Integrity requires that some type of control must exist to ensure that business-critical items
are accurate and in a workable condition. No one wants to find out that the Intrusion Detec-
tion System (IDS) server was compromised by an attacker and now cannot be trusted to
report accurate and complete information. Integrity practices apply to almost any device
that is capable of running a TCP/IP stack.
CCIE.book Page 428 Monday, May 12, 2003 8:29 AM
Confidentiality, on the other hand, requires controls to ensure that access restrictions are enforced
so that only authorized personal are allowed to see or use sensitive items. Confidentiality is one
of the harder items in security to implement due to the curious nature of humans. While every-
one agrees that security is needed, no one wants to believe that it should personally apply.
While availability does not seem like it would apply to security, it is in fact one of the bigger
targets on the Internet today. Many different types of threats exist to undermine the controls that
a company puts in place to ensure that services are available when needed. Redundancy in the
design of the network and systems, UPS power backup, and a verified system backup routine
are integral components of availability.
of some physical characteristic of the individual and, if you believe what you see on TV,
a quick DNA testing of the prospective user. Authentication is usually the first step that is
performed in all forms of access control to a system or its data.
• Authorization—Authorization is a methodology that uses a person or process to ensure
that a user or process has sufficient right or permission to perform a specific event or
action. However, in the case of a person that can authorize an action, it is an unacceptably
high-risk situation for that person to be given the power to create new actions and then to
authorize those same entries. The scenario could be disastrous.
• Certificate Authority (CA)—A CA is a trusted third-party clearinghouse that issues dig-
ital certificates and digital signatures, which are commonly used for nonrepudiation of
transactions. These certificates include your organization’s name and public key, a serial
number, and an expiry date. The CA is also responsible for issuing the Certificate Revo-
cation List (CRL) of expired or compromised certificates.
• Cipher—Cipher describes either the means of encrypting data or the encrypted text itself.
Encryption ciphers use one of many different algorithms that can, along with a key of
some type, create cipher text from clear text. The receiver must also have knowledge of
the same key and algorithm that are used to create the cipher text to decipher the text back
to clear text, which is much easier for most people to read and understand.
• Confidentiality—Confidentiality, a synonym for encryption, is the assurance that
information is transmitted securely so that it is not altered or tampered with and is
accessed only by authorized individuals or applications.
• Cryptography—The primary function of cryptography is to maintain the privacy of
communications by ensuring the confidentiality of the data. This book does not discuss
cryptography in detail. For more details, refer to Cryptography and Network Security:
Principles and Practice, Second Edition, by Dr. William Stallings (ISBN: 0138690170,
Prentice Hall, 1998).
• Data Encryption Standard (DES)—DES is a data encryption standard that was devel-
oped by IBM, in cooperation with the National Security Agency (NSA) in 1974, that is
used in the scrambling of data to protect its confidentiality. In 2000, restrictions that were
originally imposed by the U.S. Government regarding export from the United States were
lifted for the countries of the European Union (EU) and a number of other countries.
Export restrictions still exist for a number of countries. See also Triple DES (3DES),
later in this section.
• Diffie-Hellman (DH)—DH is a public-key cryptography protocol that allows the estab-
lishment of a shared secret key over an insecure communications channel between two
parties. DH is a component of the Oakley key exchange, a key establishment protocol
based on the DH algorithm, that is used by Internet Key Exchange (IKE) to establish
session keys. DH is available on Cisco platforms in a 768-bit, 1024-bit, or 1536-bit DH
group.
CCIE.book Page 430 Monday, May 12, 2003 8:29 AM
NOTE Cisco IOS Software is based on over 200 industry standards and provides support of multiple
protocols such as TCP/IP, AppleTalk, IPX, and SNA.
Cisco IOS Software performs sophisticated classification, encoding, prioritization, and route
selection of network traffic. Moreover, it can recognize a particular application as the applica-
tion requests network resources and ensures that the resources are provided through the use
of intelligent network services. This section focuses on the VPN and security portions of
Cisco’s Intelligent Network Services, which offer a comprehensive suite of network services
such as security, quality of service (QoS), voice, video, and replication, among many others, as
outlined in Figure 14-1.
"
. %
!
"##
0,
%
!# &
/
'" ()*
+'
*
+ # +#
,
*
-
IOS provides its security services through the use of items such as ACLs, AAA, IPSec, and the
Cisco IOS firewall feature set.
CCIE.book Page 434 Monday, May 12, 2003 8:29 AM
The security that is provided by IOS is designed to enable secure communications either
between two parties or between an administrator and the network device itself. IOS provides
this confidentiality by supporting features such as link-layer encryption, IPSec, VPN, and SSL
to protect the communications between two parties. The recent addition of support for secure
shell (SSH) in IOS software enables the administrator to establish secure communications from
the workstation to the network device. Use Table 14-1 as a cross reference for further
information regarding Cisco IOS Software security features.
Table 14-1 Cisco IOS Security Features
Chapter Topic
15 Basic Cisco IOS Software and Catalyst 3550 Series Security
16 Access Control Lists
17 IP Services
22 Cisco IOS Firewall
Many people overlook these features, often not realizing that security should be implemented
both as close to the sources as possible and enforced at any point in the network that is capable
of supporting security enforcement. Use Table 14-2 as a cross reference for further information
regarding CatalystOS security features.
Table 14-2 CatalystOS Security Features
Chapter Topic
4 Layer 2 and Layer 3 Switching and LAN Connectivity
15 Basic Cisco IOS Software and Catalyst 3550 Series Security
16 Access Control Lists
18 AAA Services
24 IDS on the Cisco PIX Firewall and IOS Software
VPN Overview
As external connections to your internal networks become an everyday occurrence instead of
the exception and as more of your business colleagues work from home, you must establish a
new, cost-effective method of extending your security and management policies to these con-
nections. One way to accomplish this is through the use of the Virtual Private Network (VPN)
technology, which can offer a secure, reliable connection over a shared public network infra-
structure, such as the Internet, at a lower cost than over dedicated private networks. Cisco VPNs
can be established across most networking infrastructure platforms, security environments, net-
work services, network appliances, and management scenarios that you are likely to encounter.
A VPN can be simply defined as an enterprise network deployed on a shared infrastructure that
uses the same security, management, and throughput policies that are applied in a private net-
work. VPNs provide an alternative to the WAN infrastructure that you can use to replace or aug-
ment your existing private networks. VPNs are not meant to change your WAN requirements,
such as support for multiple protocols, high reliability, and extensive scalability, but VPNs give
you a means to meet these requirements in a more cost-effective manner and to provide greater
flexibility. The functionality of a VPN is defined primarily by the equipment that is deployed at
the edge of your network and feature integration across the WAN, not by the WAN transport
protocol itself.
VPNs can be segmented into three separate categories, as follows:
• Remote access—Remote-access VPNs provide connectivity to telecommuters, mobile
users, or even smaller remote offices.
• Intranets—An intranet VPN provides connectivity to fixed locations and branch and
home offices.
• Extranets—An extranet extends limited access of your computing resources to business
partners, enabling access to shared information.
CCIE.book Page 436 Monday, May 12, 2003 8:29 AM
Each type of VPN has different security and bandwidth management issues for you to consider.
Use Table 14-3 as a cross reference for further information regarding VPN features.
Table 14-3 VPN Features
Chapter Topic
16 Access Control Lists
18 AAA Services
19 Virtual Private Networks
21 Virtual Private Dial-Up Networks
AAA Overview
AAA is a framework that is designed to implement authentication, authorization, and account-
ing (AAA) in a consistent but modular fashion. You can configure authentication without the
use of an external AAA server, such as a Cisco Secure ACS, but if you need to implement a
backup authentication method or use one of the security protocols (RADIUS, TACACS+, or
Kerberos), you must use the external AAA server.
Detailed configuration of AAA services is covered in Chapter 18, “AAA Services.” Cisco
recommends the use of AAA services whenever possible for more granular control of network
devices.
IDS Fundamentals
Intrusion detection is the ability to detect different types of attacks launched against your
network infrastructure. These attacks can be divided into three distinct types:
• Access attacks—When an intruder attacks networks or systems to retrieve data, gain
access, or escalate his access privilege
• Denials of service (DoS) attacks—Designed to attack the network in way that damages
or corrupts your computer system, or denies you and others access to your networks,
systems, or services
• Reconnaissance attacks—An attempt to discover and map systems, services, or
vulnerabilities
The Cisco Secure Intrusion Detection System (IDS) is designed to prevent, detect, and react to
activity that matches configured signatures. The IDS then has the choice of logging the activity,
resetting the connection, applying a dynamic Access Control List to a device that can support
it, or any combination of these three items. The Cisco Secure IDS line of IDS appliances and
software can meet the needs of small, medium, and large businesses.
CCIE.book Page 437 Monday, May 12, 2003 8:29 AM
Use Table 14-4 as a cross reference for further information regarding Cisco IDS features.
Table 14-4 Cisco IDS Features
Chapter Topic
22 Cisco IOS Firewall
23 Cisco PIX Firewall
24 IDS on the Cisco PIX Firewall and IOS Software
Summary
This chapter took you through a high-level overview of the many security offerings that Cisco
has implemented throughout its line of security products. You took a brief look at the reasons
behind the need for network security and defined the roles of the security players. You learned
terms such at black hat, white hat, and gray hat and defined each of the roles they play in
security. You looked at the many built-in security features of the IOS and the Catalyst Operating
System (CatOS). This chapter also defined a VPN and briefly touched on the services that AAA
can give in your efforts to provide authentication, authorization, and accounting in your
network.
The chapter wrapped up with a brief overview of an Intrusion Detection System (IDS) and how
the IDS accomplishes its task of network traffic analysis. Throughout the rest of this book, you
learn in detail and with examples how these technologies and products are brought together in
the CCIE Security lab exam.
Review Questions
1 What are the three ways to ensure security in your network environment?
4 What three types of security server protocols are currently supported by Cisco devices?
7 What two types of traffic analysis procedures are available on Cisco’s IDS products?
FAQs
Q — Why do I need to consider availability as part of my overall security policy?
A — Confidentiality, integrity, and availability all help ensure the security of your net-
work environment. Availability is included because a service that is not available
when needed is as harmful to a company as that company being hacked. A denial-
of-service attack is one example of an attack aimed at availability.
Q — Why would I use a digital signature?
A — Digital signatures are a way for an individual to electronically sign an electronic
transaction. The digital signature provides the nonrepudiation service of an elec-
tronic transaction through the validation of the sender as well as places a time
stamp on the message.
Q — Why would I use an Intrusion Detection System?
A — An Intrusion Detection System (IDS) is designed to give you a mechanism to detect
misuse of your network resources.
Q — Why would my company choose to implement VPNs instead of private WANs?
A — Virtual Private Networks (VPNs) provide you with a secure, reliable connection
over a shared public network infrastructure, such as the Internet, at a lower cost
than you would pay for dedicated private networks.
CCIE.book Page 439 Monday, May 12, 2003 8:29 AM
CCIE.book Page 440 Monday, May 12, 2003 8:29 AM
CHAPTER 15
Basic Cisco IOS Software and
Catalyst 3550 Series Security
Routers and Catalyst 3550 series switches are the predominant hardware components used
in the CCIE Security lab exam. This chapter covers some of the basic security features that
are available in Cisco IOS Software for routers and 3550 switches. The chapter is divided
into two major parts:
• Cisco IOS Software security
• Catalyst 3550 security
The first part deals with the introduction and configuration of some of the basic router
security features. The second part discusses configuration of basic security features on the
3550 switches. Although many more basic security features are available for routers and
switches than those included in this chapter, here you concentrate on those features that are
most likely to appear on the CCIE Security exam.
442 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
Password Management
To control who can access the router command prompt, you can set various passwords for
various access points to the router. You can configure the passwords for local console access or
remote access via Telnet. This is done to prevent unauthorized changes to a router’s behavior
and also to protect information that can be learned by looking at the network statistics on a
router. This chapter’s password discussion concentrates on three types of passwords:
• Enable password
• Per-user passwords and privilege levels
• Line passwords
Enable Password
Enable password secures the privileged EXEC mode of a router. At this level, an administrator
can view and change anything on the router. That is why such access needs to be closely
guarded.
Privilege Levels
Additional controls are available in Cisco IOS Software to limit administrative access with var-
ious privilege levels. You can define different privilege levels for different passwords that permit
a certain subset of commands to be configured by a user. Once the password is entered, the user
is able to operate at the corresponding level. Cisco IOS Software supports a total of 16 privilege
levels, ranging from 0 to 15. The default levels are 1 and 15. Level 1 is basic (or nonprivileged),
and 15 is the privileged EXEC mode that was discussed in the preceding section.
Line Passwords
For remote administration, you can access Cisco routers via Telnet. Telnet occurs over virtual
terminal lines (vty). Most Cisco IOS Software versions have five virtual terminals—0 through 4—
CCIE.book Page 443 Monday, May 12, 2003 8:29 AM
that support five simultaneous Telnet sessions. You should explicitly configure all the virtual
terminals for security purposes. No password is configured on vty ports by default to deny all
attempts to log in to a router remotely.
Access Lists
Cisco IOS Software uses access lists, also known as Access Control Lists (ACLs), as security
filters to permit or deny specific traffic from entering or exiting parts of the network. Access
lists are used heavily on Cisco routers for restricting access to a router’s services and for filter-
ing traffic passing through the router. The router looks at each packet and determines whether
to forward or drop the packet, based on the conditions that are specified in the access lists.
Access lists can include the source and destination addresses of the traffic, the protocol type,
and so on. Access lists contain a list of statements that are arranged in sequential order that
establishes the matching criteria. Each packet is checked against the list in the same order that
the statements are positioned. When a match is found, the router processes the packet accord-
ingly and does not go through the remainder of the statements. Therefore, you need to call out
specific conditions before the more general ones. For more on access lists, refer to Chapter 16,
“Access Control Lists.”
Secure Shell
Secure Shell (SSH) service is a newer Cisco IOS Software feature that is intended for use in
secure remote administration. To create a secure link between a client and a server, SSH uses
Rivest, Shamir, and Adelman (RSA) public key cryptography. Therefore, the communication
between the administrator’s host and the router is encrypted. SSH is also used to prevent various
kinds of network attacks. Currently, Cisco implements only version 1 of SSH, but remember to
check for future updates.
NOTE The SSH client has been available since the Cisco IOS Software 12.1.3.T release.
444 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
Step 9 Verification
After the line passwords are set, you need to take care of the privileged EXEC level. You should
not use the enable password command because it is not secure and can give away a system
password. Instead, opt for the following command:
R8(config)#enable secret string
The enable secret command, as well as the username passwords described in “Creating User
Accounts,” later in this lesson, can be up to 25 characters long, including spaces, and are case
sensitive. Example 15-1 demonstrates the application of passwords on R8. Note that both the
console and the vty passwords appear scrambled. This is because service password-encryption
is enabled on the router to hide the real string from a passerby.
Example 15-1 Password Application on a Router
R8#show run
version 12.2
service timestamps debug uptime
service timestamps log uptime
service password-encryption
continues
CCIE.book Page 445 Monday, May 12, 2003 8:29 AM
In Example 15-2, the console and auxiliary (aux) port are both configured to time out after a
5-minute interval.
Example 15-2 Configuring a Timeout Period
R8#show run
!
! Output omitted for brevity
!
line con 0
exec-timeout 5 0
password 7 05080F1C2243185E4B52
line aux 0
transport input all
exec-timeout 5 0
NOTE When you are in a lab-testing environment, a constant timeout can turn into a nuisance. If
security is not an immediate concern, you can choose to set the timeout interval to infinity
by using the exec-timeout 0 0 command. However, you should never do so in real-world
networking.
446 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
Applying an access list to vtys can effectively limit access to the router by specifying which
connections are allowed. The command for assigning an access list to vtys is as follows:
R8(config-line)#access-class access-list in
Some of the protocols supported by the vtys (for example, rlogin and web) are not secure. To
minimize the security risk, you can confine the acceptable type of connection to Telnet only
with the following command:
R8(config-line)#transport input [telnet]
Example 15-3 shows IP access-list 5, which permits host 192.168.1.8. Applying access-list 5 to
vty lines for inbound connections means that only one particular host can Telnet to R8.
Example 15-3 The vty Configuration
R8#show run
!
! Output omitted for brevity
!
access-list 5 permit 192.168.1.8
!
line vty 0 4
access-class 5 in
exec-timeout 5 0
password 7 01302F377824
transport input telnet
NOTE While configuring these commands, make sure that you are connected via an aux or console
port. If you perform the commands while logged in to the router via Telnet, you might inadvert-
ently disconnect yourself.
In Example 15-4, five administrators are assigned to the database. When they attempt to log in,
they are authenticated by their username and corresponding password and are authorized to
operate on the prescribed level.
CCIE.book Page 447 Monday, May 12, 2003 8:29 AM
R8#show run
!
! Output omitted for brevity
!
hostname R8
!
username admin privilege 3 password 7 02100A175809
username Sam privilege 15 password 7 05080F1C2243
username Jessie privilege 15 password 7 13061E010803
username Terry privilege 15 password 7 030752180500
username Joe privilege 5 password 7 01100F175804
Keep in mind that for security reasons, you should move some commands that allow too much
freedom for a lower level to a higher level, not the other way around. If you move higher-level
commands, such as the configure command, down, you might enable a user to make unautho-
rized changes by letting him modify his own level to a higher one. Example 15-5 shows how
privilege level 3 is limited to three commands:
• telnet
• show ip route
• show startup
CCIE.book Page 448 Monday, May 12, 2003 8:29 AM
448 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
R8#show run
!
! Output omitted for brevity
!
hostname R8
!
aaa new-model
aaa authentication login default local
aaa authorization config-commands
aaa authorization exec default local
aaa authorization commands 3 default local if-authenticated
!
username admin privilege 3 password 7 02100A175809
CCIE.book Page 449 Monday, May 12, 2003 8:29 AM
NOTE User admin is authorized to operate at privilege level 3 only if the user accesses the router via
vty. If the same user attempted to access R8 via console, the user would receive privilege
level 15.
The first command specifies the local interface that is set up for the FTP connection. The two
subsequent commands create the username and password for authentication on the FTP server.
Example 15-7 shows the FTP configuration on R8.
Example 15-7 Configuring FTP
R8#show run
!
! Output omitted for brevity
!
ip ftp source-interface FastEthernet0/0
ip ftp username anonymous
ip ftp password 7 1511021F0725
Step 9: Verification
Example 15-8 demonstrates the output of the debug aaa authentication command followed by
the debug aaa authorization command. The combination of these two commands shows the
process a router goes through while authenticating and authorizing a user admin logging in
from the remote host 192.168.1.6, permitted by access-list 5.
CCIE.book Page 450 Monday, May 12, 2003 8:29 AM
450 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
Note that the aaa authorization config-commands commands and aaa authorization
commands 3 default local if-authenticated commands of this scenario’s AAA configuration
were not yet set at the time the debug commands from Example 15-8 were issued. This resulted
in the debug output not displaying the user’s activity after the user has been authorized.
Example 15-9 shows the debug command output after aaa authorization config-commands
commands and aaa authorization commands 3 default local if-authenticated commands
have been applied. You can see that the user has issued the show startup-config command
authorized for their privilege level.
Example 15-9 Debugging AAA after the authorization config-commands Commands
R8#show debug
General OS:
AAA Authentication debugging is on
AAA Authorization debugging is on
CCIE.book Page 451 Monday, May 12, 2003 8:29 AM
Example 15-9 Debugging AAA after the authorization config-commands Commands (Continued)
Sep 28 17:40:45: AAA/AUTHEN (1358087791): status = GETUSER
Sep 28 17:40:45: AAA/AUTHEN/CONT (1358087791): Method=LOCAL
Sep 28 17:40:45: AAA/AUTHEN (1358087791): status = GETPASS
Sep 28 17:40:47: AAA/AUTHEN/CONT (1358087791): continue_login (user='admin')
Sep 28 17:40:47: AAA/AUTHEN (1358087791): status = GETPASS
Sep 28 17:40:47: AAA/AUTHEN/CONT (1358087791): Method=LOCAL
Sep 28 17:40:47: AAA/AUTHEN (1358087791): status = PASS
Sep 28 17:40:47: tty66 AAA/AUTHOR/EXEC (1731500233): Port='tty66' list='' service=EXEC
Sep 28 17:40:47: AAA/AUTHOR/EXEC: tty66 (1731500233) user='admin'
Sep 28 17:40:47: tty66 AAA/AUTHOR/EXEC (1731500233): send AV service=shell
Sep 28 17:40:47: tty66 AAA/AUTHOR/EXEC (1731500233): send AV cmd*
Sep 28 17:40:47: tty66 AAA/AUTHOR/EXEC (1731500233): found list "default"
Sep 28 17:40:47: tty66 AAA/AUTHOR/EXEC (1731500233): Method=LOCAL
Sep 28 17:40:47: AAA/AUTHOR (1731500233): Post authorization status = PASS_ADD
Sep 28 17:40:47: AAA/AUTHOR/EXEC: Processing AV service=shell
Sep 28 17:40:47: AAA/AUTHOR/EXEC: Processing AV cmd*
Sep 28 17:40:47: AAA/AUTHOR/EXEC: Processing AV priv-lvl=3
Sep 28 17:40:47: AAA/AUTHOR/EXEC: Authorization successful
Sep 28 17:40:55: tty66 AAA/AUTHOR/CMD (1039984762): Port='tty66' list='' service=CMD
Sep 28 17:40:55: AAA/AUTHOR/CMD: tty66 (1039984762) user='admin'
Sep 28 17:40:55: tty66 AAA/AUTHOR/CMD (1039984762): send AV service=shell
Sep 28 17:40:55: tty66 AAA/AUTHOR/CMD (1039984762): send AV cmd=show
Sep 28 17:40:55: tty66 AAA/AUTHOR/CMD (1039984762): send AV cmd-arg=startup-config
Sep 28 17:40:55: tty66 AAA/AUTHOR/CMD (1039984762): send AV cmd-arg=<cr>
Sep 28 17:40:55: tty66 AAA/AUTHOR/CMD (1039984762): found list "default"
Sep 28 17:40:55: tty66 AAA/AUTHOR/CMD (1039984762): Method=LOCAL
Sep 28 17:40:55: AAA/AUTHOR (1039984762): Post authorization status = PASS_ADD
452 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
• NTP service
• BOOTP server
• Configuration auto-loading
• Proxy ARP
• IP source routing
• IP directed broadcast
• IP unreachables, redirects, and mask replies
Disabling CDP per interface is a nice feature because it allows you to still run CDP for the parts
of the network that need it.
Finger Server
Next, you need to make sure that the Cisco IOS Software support for the UNIX finger protocol
is disabled. Having the finger service enabled allows a user to view other active users. There are
CCIE.book Page 453 Monday, May 12, 2003 8:29 AM
many known ways that the service can be misused and the information can fall into the wrong
hands. To keep your network security in full force, you should consider turning off the finger
service. After all, those who are not authorized to log in to the router have no business looking
up those who do. Use the following command to disable the finger service:
R8(config)#no ip finger
NTP Service
If NTP, described earlier in “Network Time Protocol Security,” is not used in the network,
disable it with the following interface command:
R8(config-if)#ntp disable
BOOTP Server
In theory, BOOTP service might sound like a good idea. It is meant for use in networks where
a centralized strategy of Cisco IOS Software deployment is implemented. One router can be
used by other routers to load its operating system. However, the BOOTP protocol is seldom
used, and it gives a hacker an opportunity to steal an IOS image. Therefore, in most situations,
you should disable it using the following command:
R8(config)#no ip bootp server
Configuration Auto-Loading
The routers can find their startup configuration either in their own NVRAM or load it over the
network. Obviously, loading in from elsewhere is taking a security risk. To disable the router’s
ability to get its configuration from the network, apply the following commands:
R8(config)#no boot network
R8(config)#no service config
Proxy ARP
Proxy Address Resolution Protocol (ARP) replies are sent to an ARP request destined for
another device. When an intermediate Cisco device knows the MAC address of the destination
device, it can act as a proxy. When an ARP request is destined for another Layer 3 network, a
proxy ARP device extends a LAN perimeter by enabling transparent access between multiple
LAN segments. This presents a security problem. An attacker can issue multiple ARP requests
and use up the proxy ARP device’s resources when it tries to respond to these requests in a
denial-of-service (DoS) attack.
Proxy ARP is enabled on Cisco router interfaces. Disable it with the following interface
command whenever it is not needed:
R8(config-if)#no ip proxy-arp
CCIE.book Page 454 Monday, May 12, 2003 8:29 AM
454 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
NOTE If, however, static routes use the interface as the destination instead of a next-hop router, proxy
ARP is required.
IP Source Routing
An option is found in the header of every IP packet. The Cisco IOS Software examines the
option and acts accordingly. Sometimes an option indicates source routing. This means that
the packet is specifying its own route. Even though it is the default, this feature has several
drawbacks. First, to allow source routing in the ISP environment means that a customer selects
a route as they please. Also, this feature poses a known security risk, such as a hacker taking
control of a packet’s route and directing it through his network. So, if source routing is not
necessary in your network, you should disable it on all routers by using the following
command:
R8(config)#no ip source-route
IP-Directed Broadcast
If IP directed broadcast is enabled on a router’s interface, it allows the interface to respond to
the Internet Control Message Protocol (ICMP) requests directed to a broadcast address of its
subnet. This can cause excessive traffic and possibly bring a network down, which is a tool often
used by hackers in a smurf attack.
NOTE During a smurf attack, the ping requests sent to a broadcast address are forwarded to up to 255
hosts on a subnet. Because the return address of the ping request is spoofed to be the address of
the attack target, all hosts that receive the ping requests reply to the attack target, flooding it
with replies.
You can turn off IP directed broadcast capability on every interface with the following
command:
R8(config-if)#no ip directed-broadcast
rized individual. Attackers commonly use the following three types of ICMP message response
features:
• Unreachable—A response to a nonbroadcast packet that uses an unknown protocol
known as Protocol Unreachable, or a response to a packet that a responding device failed
to deliver because there is no known route to a destination (Host Unreachable)
• Redirect—A response to a packet that notifies the sender of a better route to a destination
• Mask Reply—A response from a network device that knows a subnet mask for a partic-
ular subnet in an internetwork to a Mask Request message from a device that requires such
knowledge
To disable the automatic messaging feature on interfaces, use the following commands:
R8(config-if)#no ip unreachables
R8(config-if)#no ip redirects
R8(config-if)#no ip mask-reply
Verification
Example 15-10 shows that all the services discussed in this lesson are disabled on R8. You do
not see some of them in the running configuration output because of the default settings in this
particular version of Cisco IOS Software.
Example 15-10 Disabling Unnecessary Services
R8#show run
version 12.2
hostname R8
!
! Output omitted for brevity
!
!
username admin privilege 3 password 7 02100A175809
username Sam privilege 15 password 7 05080F1C2243
username Jessie privilege 15 password 7 13061E010803
username Terry privilege 15 password 7 030752180500
username Joe privilege 5 password 7 01100F175804
no ip source-route
!
ip ftp source-interface FastEthernet0/0
ip ftp username anonymous
ip ftp password 7 1511021F0725
no ip domain-lookup
!
interface FastEthernet0/0
ntp disable
no cdp enable
!
interface FastEthernet0/1
continues
CCIE.book Page 456 Monday, May 12, 2003 8:29 AM
456 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
Syslog Logging
You can choose to enable the logging of a router’s events to a syslog server, including the
HTTP-related activity. To specify syslog logging, use the following set of commands:
R8(config)#logging on
R8(config)#logging facility [syslog]
R8(config)#logging source-interface local-interface
R8(config)#logging syslog-server-address
R8(config)#logging trap [alerts]
The first command on the list, logging on, turns the logging on. The logging facility [syslog]
command names a syslog server as the logging monitor. The logging source-interface local-
interface command identifies local interface that forwards logs to the server. The logging
syslog-server-address command points to the syslog server’s IP address. The logging trap
command sets up the trap level.
Verification
Example 15-11 displays the running configuration of R8. Notice the resolution of the HTTP
commands. For example, the port number is changed to 8080. Access-list 11, permitting host
192.168.1.8, was created on R8. FastEthernet0/1 forwards logs to the server.
Example 15-11 HTTP Configuration
R8#show run
!
! Output omitted for brevity
!
ip http server
ip http port 8080
ip http access-class 1
ip http authentication local
access-list 11 permit 192.168.1.8
!
logging facility syslog
logging source-interface FastEthernet0/1
logging 192.168.1.7
logging trap alerts
Now that the HTTP server has been successfully configured, an authorized user can log in.
Figures 15-1 and 15-2 show the browser login prompt and the postlogin screen, respectively.
CCIE.book Page 458 Monday, May 12, 2003 8:29 AM
458 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
in-depth demonstration of the NTP protocol. The main goal is to achieve a functional, secure
NTP configuration between the three routers using MD5 authentication.
!
"
Step 6 Verification
Then, on all participating routers, set the time zone as compared to the Coordinated Universal
Time (UTC). Also, configure the routers to automatically switch to daylight-saving time when
appropriate. The following two commands identify the time zone and configure daylight-saving
time for that zone:
R5(config)#clock timezone zone hours [minutes]
R5(config)#clock summer-time zone recurring [week day month hh:mm week day month hh:mm
[offset]]
CCIE.book Page 460 Monday, May 12, 2003 8:29 AM
460 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
This scenario uses Pacific Standard Time (PST), offset 8 hours from the UTC. The summertime
clock comes into effect on the first and ends on the second specified day every year, as shown
in Example 15-12.
Example 15-12 Coordinating Clocks
R5#show run
!
! Output omitted for brevity
!
clock timezone PST -8
clock summer-time PDT recurring
To implement redundancy, two routers act as masters: R5 and R8. When an NTP client is
configured with several NTP masters, the stratum level of a master is the deciding factor. The
stratum level of R5 is 1, and the stratum level of R8 is 3; this means that R5 takes precedence
over R8.
Next, you need to set up peering between routers for clock synchronization. Use the following
command:
R5(config)#ntp peer ip-address
Each router in the network has been peered up with the two other routers, as shown in
Example 15-13.
Example 15-13 NTP Router Relationships
R5#show run
!
! Output omitted for brevity
!
ntp peer 130.100.26.8 ←R8
ntp peer 140.100.56.6 ←R6
In Example 15-14, you can see that inside and outside interfaces have been assigned their IP
addresses. R6 was associated with IP address 130.100.26.6 with the name 130.100.26.6 R6
statement. Inside-to-outside Network Address Translation (NAT) has been enabled with the
global (outside) 10 interface and nat (inside) 10 0.0.0.0 0.0.0.0 0 0 commands. The static
(inside,outside) 130.100.26.8 192.168.1.1 netmask 255.255.255.255 0 0 command specifies
the outside IP address to be translated to the inside for packet forwarding to R8. The route
outside 0.0.0.0 0.0.0.0 R6 1 command designates R6 as the default gateway to the outside.
Finally, the access list permitting NTP traffic destined for R8 has been applied to the inbound
traffic of the outside interface.
Example 15-14 PIX2 Configuration for NTP
PIX2#show run
!
! Output omitted for brevity
!
nameif ethernet0 outside security0
nameif ethernet1 inside security100
name 130.100.26.6 R6
interface ethernet0 10full
interface ethernet1 auto
access-list outside_access_in permit udp any host 130.100.26.8 eq ntp
ip address outside 130.100.26.2 255.255.255.224
ip address inside 192.168.1.222 255.255.255.0
static (inside,outside) 130.100.26.8 192.168.1.1 netmask 255.255.255.255 0 0
access-group outside_access_in in interface outside
global (outside) 10 interface
nat (inside) 10 0.0.0.0 0.0.0.0 0 0
route outside 0.0.0.0 0.0.0.0 R6 1
R6#show run
!
! Output omitted for brevity
!
interface FastEthernet0/0
ip address 130.100.26.6 255.255.255.224
continues
chpt_15.fm Page 462 Tuesday, May 13, 2003 11:26 AM
462 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
Step 2 Specify the NTP authentication-key, MD5 authentication type and string.
To accomplish these tasks, use the following commands and review their application on the
routers shown in Example 15-16:
R5(config)#ntp authenticate
R5(config)#ntp authentication-key number md5 value
R5(config)#ntp trusted-key key-number
R5(config)#ntp peer ip-address [key keyid]
R5#show run
hostname R5
!
! Output omitted for brevity
!
ntp authentication-key 6727 md5 cisco
ntp authenticate
CCIE.book Page 463 Monday, May 12, 2003 8:29 AM
Step 6: Verification
To verify that your NTP configuration is working properly, issue the following commands on
any of the routers (see Example 15-17):
R5#show ntp associations
R5#show ntp status
R5#show clock
R5#show clock
.21:14:12.900 PDT Sat Sep 28 2002
R8#show clock
.21:14:14.600 PDT Sat Sep 28 2002
NOTE If you make any changes to the master or the client NTP configuration, they do not take effect
until you restart the router in question.
CCIE.book Page 464 Monday, May 12, 2003 8:29 AM
464 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
Step 5 Verification
In other words, the login local command indicates to the router that when a user is trying to
connect via SSH, the router uses the local database configured with the username admin
privilege 15 password cisco command to authenticate the said user.
At the next prompt, specify R5.cisco.com as the name for the keys and the default of 512 bits
accepted for the key modulus. By generating the RSA key pair, you automatically enabled SSH
on the router. To exercise further control over your SSH, use the commands described in the
next step.
If a user logs in incorrectly several times, the router drops the connection. The default for
authentication attempts is 3, and the maximum is 5. In this example, the default is kept, but the
syntax for the command is as follows:
R5(config)#ip ssh authentication-retries number
In Lesson 15-1, you allowed Telnet as the type of connection over vtys on R8. Here, you specify
SSH as the connection of choice in the following manner:
R5(config-line)#transport input ssh
Step 5: Verification
Example 15-18 shows the output of the running configuration of R5. All the steps that have been
covered in this case study are displayed.
Example 15-18 SSH Configuration
R5(config)#hostname
hostname R5
R5(config)#ip
ip domain-name cisco.com
R5(config)#access-list
access-list 15 permit 140.100.56.6 log ← Only R6
R5(config)#line
line vty 0 4
R5(config-line)#access-class
access-class 15 in
R5(config-line)#login
login local
R5(config-line)#transport
transport input ssh
R5(config-line)#exit
R5(config)#username
username admin privilege 15 password cisco
R5(config)#crypto
crypto key generate rsa
The name for the keys will be: R5.cisco.com
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
a few minutes.
continues
CCIE.book Page 466 Monday, May 12, 2003 8:29 AM
466 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
R5(config)#
Sep 29 22:26:42: %SSH-5-ENABLED: SSH 1.5 has been enabled
R5(config)#ip
ip ssh authentication-retries 3
R5(config)#ip
ip ssh time-out 60
R5(config)#
To determine whether the configuration is working, the next logical step is to try to connect to
R5 from R6 via SSH. Issue the following statement on R6, as shown in Example 15-19:
ssh –c des –l admin 140.100.56.5
Once you are successfully connected, you can input show ssh on R5 to verify that SSH has been
successfully enabled and check that your session is using SSH. Example 15-20 shows the out-
put of the show ssh command, which displays the status of SSH server connections, and the
show ip ssh command, which demonstrates the version and configuration data for SSH.
Example 15-20 The show ssh and show ip ssh Commands on R5
R5#show ssh
Connection Version Encryption State Username
0 1.5 DES Session started cisco
R5#show ip ssh
SSH Enabled - version 1.5
Authentication timeout: 60 secs; Authentication retries: 3
If you use the Cisco IOS Software debug ip ssh command, you can monitor the SSH operation.
Example 15-21 illustrates the output of the debug ip ssh client command. The first part of the
output is the display of user activity, and the second is the log line that was recorded after the
user exited the SSH server.
CCIE.book Page 467 Monday, May 12, 2003 8:29 AM
468 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
exceeded, additional traffic is blocked until the continuing monitoring determines that incom-
ing traffic fell below the threshold level, and traffic is then allowed to be forwarded again.
The switch handles separate storm control thresholds for broadcast, multicast, and unicast
traffic. Interestingly, when broadcast or unicast thresholds are reached, traffic is suppressed for
only that specific type. On the other hand, when the multicast traffic rate exceeds the threshold,
all incoming traffic, except spanning-tree packets, including broadcast and unicast, is throttled
until the level drops below the specified threshold.
Storm control on an interface is enabled separately for each type of traffic. The configured
threshold level is the percentage of total available bandwidth that you want to serve as a limit
indicator. The percentage can be from 1 to 100, with an optional fraction. The higher the level,
the more packets are allowed to pass through. The default is no storm control, which translates
into 100 percent threshold. In contrast, a value of 0.0 means that all port traffic is blocked for a
particular type. The syntax for configuring traffic suppression is as follows:
3550-A(config-if)#storm-control [broadcast | multicast | unicast] level level [.level]
Then, enable port security on that interface by using the following command:
3550-B(config-if)#switchport port-security
Placement of the following three commands is optional because the exact commands you
choose depend on the desired functional effect. The following command specifies the maxi-
mum number of secure MAC addresses for the interface (the number ranges from 1 to 128, with
128 being default):
3550-B(config-if)#switchport port-security maximum value
Next, you can configure the interface to take one of the following actions in case of a security
violation:
• The protect keyword causes the packets with unknown source addresses to be dropped
when the maximum threshold is reached.
• The restrict keyword increments a violation counter.
• The shutdown keyword, the default, deactivates the port immediately and sends an
SNMP trap notification.
3550-B(config-if)#switchport port-security violation [protect | restrict | shutdown]
NOTE If a secure port has been shut down as a result of a security violation, you can bring it out of this
state by entering the errdisable recovery cause psecure-violation global configuration
command, or you can manually reenable it by entering the shutdown and no shut down
interface configuration commands.
CCIE.book Page 470 Monday, May 12, 2003 8:29 AM
470 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
Finally, to enter a secure MAC address for the interface, use the following command. If the
number of manually defined addresses is less than the configured maximum, the rest are learned
dynamically.
3550-B(config-if)#switchport port-security mac-address mac-address
Verification
The following examples display the outputs from a number of show commands on both
switches that assist in the verification and monitoring of port-based traffic control.
Example 15-22 captures a portion of the 3550-A running configuration for interface
FastEthernet0/1.
Example 15-22 Running Configuration of 3550-A
interface FastEthernet0/1
switchport mode access
switchport port-security maximum 2
switchport port-security mac-address 1000.2000.3000
switchport port-security violation protect
switchport port-security aging time 600
no ip address
storm-control broadcast level 10.00
storm-control multicast level 10.00
storm-control unicast level 10.00
Example 15-23 shows a portion of the 3550-B running configuration for interface FastEthernet0/2.
CCIE.book Page 471 Monday, May 12, 2003 8:29 AM
interface FastEthernet0/2
switchport mode dynamic auto
switchport block multicast
switchport block unicast
no ip address
Example 15-24 shows the output of the show interfaces fastEthernet switchport command
for the 0/1 and 0/2 ports.
Example 15-24 The show interfaces fastEthernet switchport Command Output
Protected: false
Unknown unicast blocked: enabled
Unknown multicast blocked: enabled
Example 15-25 shows the output of the show storm-control command. You can use this
command to view your storm control configuration per port.
CCIE.book Page 472 Monday, May 12, 2003 8:29 AM
472 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
3550-A#show storm-control
Interface Filter State Level Current
--------- ------------- ------- -------
Fa0/1 Forwarding 10.00% 0.00%
Fa0/2 inactive 100.00% N/A
Fa0/3 inactive 100.00% N/A
Fa0/4 inactive 100.00% N/A
Fa0/5 inactive 100.00% N/A
Fa0/6 inactive 100.00% N/A
Fa0/7 inactive 100.00% N/A
Fa0/8 inactive 100.00% N/A
Fa0/9 inactive 100.00% N/A
Fa0/10 inactive 100.00% N/A
Summary
In this chapter, you were introduced to several features of basic Cisco IOS Software and
Catalyst 3550 security. On routers, these features include the following:
• Password management
• Disabling unnecessary services
• Setting up secure HTTP and NTP services
• SSH
On 3550 switches, controlling traffic on ports was also discussed.
For some of you, the basic IOS security features might have seemed too basic. Remember,
however, that these service features are essential to overall network security and are, or might
become, an integral part of the CCIE Security lab exam. Likewise, the HTTP and NTP case
studies were included to demonstrate how you can apply security to various Cisco IOS Software
CCIE.book Page 473 Monday, May 12, 2003 8:29 AM
services. You can consult plenty of references to find out more information. Some of them are
suggested in the Appendix E, “Security-Related RFCs and Publications.”
This chapter was designed to make you comfortable with basic IOS security and to help you
realize that network security can be enhanced with as few as one or two commands.
Review Questions
1 What is the NTP standard time zone?
6 You can disable the Cisco Discovery Protocol (CDP) globally or per interface.
True or false?
7 You can exercise storm control on the 3550 switch ports for which type(s) of traffic?
CCIE.book Page 474 Monday, May 12, 2003 8:29 AM
474 Chapter 15: Basic Cisco IOS Software and Catalyst 3550 Series Security
FAQs
Q — What is basic Cisco IOS Software security?
A — Basic IOS security comprises the features that are available in Cisco IOS Software
to protect your router and, in turn, your network from unauthorized activities. It is
the first line of software defense that is relatively easy to implement and should
always be used unless your particular circumstances dictate otherwise.
Q — How do I protect my NTP services?
A — You can protect your NTP services by applying an access list to NTP for access
restriction. You can also apply an access list that specifies NTP services to an inter-
face. MD5 encryption is used for authenticating NTP peers to ensure their identity.
Q — Why do I need HTTP services on the router?
A — To simplify the tasks of router access and management, HTTP offers web-based
services with a browser look and feel.
Q — What kind of password-management techniques does Cisco IOS Software have?
A — Cisco IOS Software supports enable passwords, which control access to adminis-
trative-level commands on a router. There are also line passwords, which control
access to a router, be it locally via a console port or remotely through an auxiliary
port or virtual terminal access.
Q — What is the purpose of SSH?
A — SSH is an alternative to Telnet service. Telnet service sends traffic in cleartext and
can easily be intercepted by an attacker. SSH is implemented to provide security by
encrypting traffic between the SSH server and a client. It is available in the newer
versions of Cisco IOS Software.
Q — Why do I need to disable some services on the router?
A — Unused services on the router always present a security risk. They can be manipu-
lated in a variety of ways to aid an attacker in his pursuit. If a service is not used,
you should turn it off. If you must use the service, make securing that service one of
your primary concerns.
Q — Why do I need port security on the switch?
A — Port security on the switch is a way to limit access to a port to only those devices
whose MAC addresses are explicitly allowed, either through manual configuration
or by being dynamically learned.
CCIE.book Page 475 Monday, May 12, 2003 8:29 AM
CCIE.book Page 476 Monday, May 12, 2003 8:29 AM
CHAPTER 16
The router tests packets against the conditions in an ACL one by one. It uses the first match to
determine whether to accept or reject the packets. If no matching condition exists, an implied
deny at the end of the ACL rejects the packets.
You can use a packet’s source or destination address, the upper-layer protocol, or many other
types of information to define the criteria to use for matching. Just remember that ACLs are not
the magic answer where security is concerned; a sophisticated user or application might be able
to successfully evade or fool basic ACLs because no authentication is required. ACLs can also
have an impact on the performance of the device when it is required to compare a packet to a
lengthy ACL. One other drawback to using ACLs to define your network security is that typical
ACLs do not maintain state information on traffic flows, possibly allowing a crafted packet to
bypass the access control defined by the ACL.
While switches traditionally operate at Layer 2 only, the Catalyst 3550 switch has the capability
to perform Layer 3 operations with an enhanced multilayer software image installed. This
means that the switch first bridges the packet, then routes the packet internally, and then bridges
the packet again to send it along the way to its destination. During this process, the switch can
apply ACLs that you define against all packets it switches, including packets that are bridged
within a virtual LAN (VLAN).
NOTE By using the Catalyst 3550 switch along with routers in your network design, you can configure
your ACLs on either your routers or switches to provide basic security for your network.
!!
!!
" #$%&
'(%&
You can use ACLs for security purposes, such as allowing only certain hosts to access a device
via Simple Network Management Protocol (SNMP) or Telnet, to a more complex implementa-
tion where you allow a host to connect to e-mail on a server, but not allow it to view the server
through NetBIOS.
Basic ACLs
You can use basic ACLs to allow only specified traffic through the device; other traffic is simply
dropped. You have the capability to specify individual hosts or subnets that should be allowed
into your network, and you can specify what type of traffic they should be allowed to use on
your network.
Basic ACLs accomplish access control by using the packet’s source and destination address and
protocol type to determine which traffic to filter. At a minimum, you should implement a basic
ACL for all network protocols that are to be routed through your networking device such as IP,
IPX, AppleTalk, and so on. However, be aware that the Catalyst 3550 switch is not capable of
filtering some types of network protocols, even though you can configure them.
Basic ACLs for IOS software and the 3550 switch include the following:
• Standard IP ACL—Uses the source address for matching operations. This can be a
numbered or named ACL.
• Extended IP ACL—Uses the source and destination addresses for matching operations
and uses optional protocol type information for finer granularity of control. This can be a
numbered or named ACL.
• MAC Extended ACL—Used to match source and destination MAC addresses and
optional protocol type information.
The following sections discuss the ACLs that you can configure in greater detail.
CCIE.book Page 481 Monday, May 12, 2003 8:29 AM
ACLs on the IOS Router and the Catalyst 3550 Switch 481
Advanced ACLs
The advanced ACLs that you can configure provide sophisticated and dynamic traffic-filtering
capabilities for a stronger, more flexible network security implementation.
CCIE.book Page 483 Monday, May 12, 2003 8:29 AM
Time-of-Day ACLs
You have the option of implementing ACLs based on the time of day and week using the time-
range configuration command. You would first define the name and times of the day and week
of the time range, and then reference the time range by name in an ACL to apply the restrictions.
You are currently restricted to using only a named or numbered extended ACL to implement
time ranges. The time range function allows you to define when the permit or deny statements
in your ACL are active.
The time range function can provide the following benefits:
• You have greater control over permitting or denying a user access to resources such as an
application, policy routing, or on-demand link.
• You can set time-based security policies, including the following:
— Perimeter security using the Cisco IOS Firewall feature set or ACLs.
— Data confidentiality with Cisco Encryption Technology or IP Security Protocol
(IPSec).
CCIE.book Page 484 Monday, May 12, 2003 8:29 AM
Lock-and-Key ACLs
Lock-and-key is a traffic-filtering security feature that you can use to dynamically filter IP
traffic. You configure lock-and-key by using IP dynamic extended ACLs. You can use lock-
and-key in conjunction with other standard ACLs and static extended ACLs.
When you configure lock-and-key, you designate which users, whose IP traffic is normally
blocked, can gain temporary access through the device. When lock-and-key is triggered, it
reconfigures the interface’s existing IP ACL to permit designated users to reach their designated
host(s). Afterward, lock-and-key reconfigures the IP ACL to its original state until its next use.
A user can trigger lock-and-key to obtain temporary access by first using a standard Telnet
session to the device. When the Telnet session reaches the device, lock-and-key automatically
attempts to authenticate the user. If the user is granted access, temporary access is then gained
through the device and can reach the destination host.
Lock-and-key uses the following process in its operation:
1 The user opens a Telnet session to a border (firewall) router configured for lock-and-
key. The user connects via one of the virtual terminal ports on the router.
2 The software receives the Telnet packet, opens a Telnet session, prompts for a password,
and completes a user authentication process. The user must pass authentication before
access through the router is permitted. The authentication process can be done locally by
the router or by a central access security server such as a TACACS+ or RADIUS server.
3 When the user passes authentication, the user is logged out of the Telnet session and the
software creates a temporary ACE statement in the dynamic ACL. (Per your configuration,
this temporary ACE can limit the range of networks to which the user is given temporary
access.)
4 The user exchanges data through your firewall.
5 The software deletes the temporary ACL ACE when a configured timeout is reached or
when the system administrator manually clears it. The configured timeout can be either an
idle timeout or an absolute timeout.
CCIE.book Page 485 Monday, May 12, 2003 8:29 AM
• password and login—You can use the password and login commands to provide authen-
tication. This method is the least effective because the password is configured for the port,
not for the user. Therefore, any user who knows the password can authenticate successfully.
Maintaining Lock-and-Key
The dynamic ACL that is used with lock-and-key can grow and shrink as entries are added and
deleted. You should ensure that these entries are being deleted in a timely manner because,
while these dynamic entries exist, your risk of a spoofing attack is increased. A large amount of
entries in your dynamic ACL can also have a bigger performance impact on your router.
Reflexive ACLs
You can use the reflexive ACL, also known as IP session filtering, to filter network traffic based
on IP upper-layer protocol session information. You can use reflexive ACLs to permit only
sessions that originate from within your network while denying sessions that originate from
outside your network.
You can only define a reflexive ACL through an extended named IP ACL. You cannot use the
numbered or standard named IP ACLs with other protocol ACLs. However, you can use reflex-
ive ACLs in conjunction with other standard and static extended ACLs.
Reflexive ACLs are similar to any other ACL that you can use. Reflexive ACLs contain condi-
tion statements that you use to define the criteria for permitting IP packets into your network.
Just like other ACLs, these entries are evaluated in order, and when a match occurs, no more
entries are evaluated.
However, reflexive ACLs have some significant differences that set them apart from other
types of ACLs. Reflexive ACLs only contain temporary entries that are automatically created
when a new IP session begins, and the entries are removed when the session ends. You do not
apply reflexive ACLs directly to an interface, but “nest” them within an extended named IP ACL
that you apply to the interface. Finally, reflexive ACLs do not have the usual implicit “deny all
traffic” statement at the end of the list, due to the nesting with an extended named IP ACL.
NOTE You can approximate the session-filtering capabilities of the reflexive ACL with the static
extended ACLs, when you use the established keyword with the permit command. The
established keyword filters TCP packets based on whether the ACK or RST bits are set. This
type of filter criterion would be part of an ACL that is applied permanently to an interface. Be
aware that the established keyword is available only for the TCP upper-layer protocol and can
pose a security risk because the ACL is always present. This means that, for the other upper-
layer protocols (such as UDP, ICMP, and so on), you need to either permit all incoming traffic
or define all possible permissible source/destination host/port address pairs for each protocol.
(Besides being an unmanageable task, this could exhaust NVRAM space.)
You trigger the reflexive ACL when a new IP upper-layer session is initiated from inside your
network to an external network. Once triggered, the reflexive ACL generates a new, temporary
entry. This entry permits returning traffic that is part of a previously established session to enter
your network, but does not permit any traffic to enter your network if the traffic is not part of
the session.
The characteristics of these temporary ACEs are as follows:
• The entry is always a permit entry.
• The entry must specify the same protocol as the original outbound TCP packet.
CCIE.book Page 489 Monday, May 12, 2003 8:29 AM
• The entry must specify the same source and destination addresses as the original outbound
TCP packet, except that the addresses are swapped.
• The entry must specify the same source and destination port numbers as the original
outbound TCP packet, except that the port numbers are swapped. These characteristics
apply only to TCP and UDP packets. Other protocols, such as ICMP and IGMP, do not
have port numbers, and other criteria are specified. For example, for ICMP, type numbers
are used instead.
• Inbound TCP traffic is evaluated against the entry, as long as the entry is valid.
Temporary reflexive ACEs are removed at the end of the session. For TCP sessions, the entry is
removed by default 5 seconds after 2 set FIN bits are detected, or immediately after matching
a TCP packet with the RST bit set. Or, the temporary entry is removed after no packets of the
session have been detected for a configurable length of time (the timeout period).
Because UDP and other protocols do not use port numbers, the end of the session is determined
differently than for TCP. The end of a session is determined when there are no longer any
detectable packets in the session for a configurable length of time (the timeout period).
Router ACLs
You can configure a router ACLs for use on a Switch Virtual Interface (SVI), which is the
Layer 3 interface to a VLAN; on a physical Layer 3 interface; and on a Layer 3 EtherChannel
interface. Just like the ACLs that you would use on a router, router ACLs on a 3550 switch are
applied on interfaces for either the inbound or outbound direction.
You are restricted to only applying one IP ACL in each direction, although you can define an
ACL to be used with multiple features for a given interface and you can use one feature for
multiple ACLs. Be aware though, when you use a single router ACL with multiple features, it
is examined multiple times.
The router ACL uses the standard IP ACL for matching the source address and the extended
IP ACL for matching the source and destination address as well as optional protocol type
information.
Your switch examines ACLs associated with features that are configured on a given interface
and a direction. As these packets enter your switch on an interface, any ACLs that you associate
with all inbound features configured on that interface are examined. After the packets are routed
and before they are forwarded to the next hop, all ACLs associated with outbound features that
are configured on the egress interface are examined.
Port ACLs
The 3550 switch also supports an ACL that you can associate with a Layer 2 interface on your
switch. These ACLs, referred to as port ACLs, are only supported on a physical interface and
not on EtherChannel interfaces. You can apply port ACLs only on an interface in the inbound
direction. You can define the following types of ACLs on a Layer 2 interface:
• Standard IP ACLs
• Extended IP ACLs
• MAC extended ACLs
If you apply a port ACL to a trunk port, the ACL filters traffic on every VLAN that is present
on that trunk port. If you apply a port ACL to a port with voice VLAN, the ACL filters traffic
on both data and voice VLANs.
NOTE When you configure a port ACL, you can filter IP traffic by using IP ACLs and non-IP traffic
on the same Layer 2 interface, by using MAC addresses or by applying both an IP ACL and
a MAC ACL to the interface. However, you cannot apply more than one IP ACL and one
MAC ACL to a Layer 2 interface.
CCIE.book Page 491 Monday, May 12, 2003 8:29 AM
VLAN Maps
The 3550 switch offers you a powerful feature, called the VLAN map, that you can use to access
control all traffic on a switch. You can apply a VLAN map to examine all packets that are
routed into or out of a VLAN or are bridged within a VLAN. You would use a VLAN map
strictly for security packet filtering. Unlike the router ACL, a VLAN map is not defined by
the input or output direction.
You can configure a VLAN map to match a Layer 3 address for IP traffic. You can configure
access control for all non-IP protocols through their MAC address and Ethertype using a MAC
VLAN map. You can only enforce a VLAN map on packets that are going through the switch;
you cannot enforce a VLAN map on traffic between hosts on a hub or on another switch that is
connected to this switch.
You configure filtering in a VLAN through the use of a VLAN map. The VLAN map does not
have a direction associated with it. To filter your traffic in a specific direction by using a VLAN
map, you must include an ACL with specific source or destination addresses.
Follow these guidelines when configuring VLAN maps:
• If you do not define a router ACL to deny traffic on a routed VLAN interface, whether it
is for input or output traffic, and you have not configured a VLAN map, all traffic is
permitted.
• Each VLAN map that you create consists of a series of entries. The order of entries for a
VLAN map is important. Just like an ACL, a packet that comes into the switch is tested
against the first entry in the VLAN map. If it results in a match, the action specified for
that part of the VLAN map is taken. If it does not result in a match, the packet is tested
against the next entry in the map.
• If you define at least one match clause for a particular type of packet, IP or MAC, and the
packet does not match any of these match clauses, the default is to drop the packet. If no
match clause exists for that type of packet in the VLAN map, the default is to forward the
packet.
• Your switch can take longer to boot if you configure a very large number of ACLs on it.
• If you have an IP ACL or a MAC ACL applied to a Layer 2 interface, you are allowed to
create VLAN maps, but you are not allowed to apply a VLAN map to any of the switch
VLANs.
When you use VLAN maps in combination with a router ACL, if one of your packet flows
matches a deny statement of a VLAN, regardless of the router ACL configuration, the packet
flow is denied.
When you configure router ACLs in conjunction with VLAN maps on the same VLAN, you
should consider a few guidelines. These guidelines do not apply to cases where you configure
router ACLs and VLAN maps on different VLANs:
• Because the switch hardware can only provide one lookup for security ACLs for each
direction, input and output, you must merge a router ACL and a VLAN map when you
place them on the same VLAN. This merging of the router ACL with the VLAN map can
significantly increase the number of ACEs.
• If possible, write the ACL with all entries having a single action except for the final,
default action of the other type. That is, write the ACL using one of these two forms:
— permit...
— permit...
— permit...
— deny ip any any
or
— deny...
— deny...
— deny...
— permit ip any any
• Group each action type together when you are defining multiple actions in an ACL
(permit, deny) to reduce the number of entries.
• Due to complications in the merging process, try to avoid including Layer 4 information
in an ACL. Your best merge results can be obtained if the ACLs are filtered based on IP
addresses (source and destination) and not on the full flow (source IP address, destination
IP address, protocol, and protocol ports). You can also use “don’t care” bits in the IP
address, whenever possible.
• If you must specify the full-flow mode and the ACL contains both IP ACEs and TCP/
UDP/ICMP ACEs with Layer 4 information, place the Layer 4 ACEs at the end of the list.
This gives priority to the filtering of traffic based on IP addresses.
CCIE.book Page 493 Monday, May 12, 2003 8:29 AM
Logging ACLs
When working with any kind of ACL, consider the fact that a router or switch can provide
logging messages about packets that are permitted or denied by the ACL. This logging could
provide you with invaluable information when you are trying to determine what happened or if
you are trying to get real-time alerts about what is currently happening on your network.
When using logging, because routing is done in hardware and logging is done in software, if a
large number of packets match a permit or deny ACE that contains a log keyword, the software
might not be able to match the hardware processing rate, and not all packets will be logged. The
first packet that triggers the ACL causes a message to be logged immediately, while subsequent
packets are collected over 5-minute intervals before they are displayed or logged. The logging
message includes the access list number, whether the packet was permitted or denied, the source
IP address of the packet, and the number of packets from that source that were permitted or
denied in the prior 5-minute interval. Your performance can also be impacted, depending on the
level of logging that you enable. Logging at a level of debugging can have a larger impact on
your performance than logging at the informational level. A few restrictions to this are that an
output ACL cannot log multicast packets and logging is not supported for ACLs that are applied
to a Layer 2 interface.
CCIE.book Page 495 Monday, May 12, 2003 8:29 AM
Logging for router and regular ACLs on the 3550 switch is supported in two variations. You can
use the log keyword to send an informational logging message to the console about the packet
that matches the entry, or you can use the log-input keyword to include the input interface
information in the log entry. Logging is not supported for the port ACL.
Defining ACLs
Although you can create an ACL for many types of protocols that you might want to filter, you
are only going to concentrate on IP ACLs in this chapter. For a complete explanation of ACLs
that are used by other protocols, refer to either the Cisco IOS Security Configuration Guide for
your appropriate IOS level or Configuring Network Security with ACLs for your appropriate
3550 software release.
Your first consideration when creating an ACL is to decide whether the ACL is to be applied to
inbound traffic or outbound traffic. The direction is referenced as to whether the packet is
entering or exiting an interface.
When creating your ACL, you are defining logically ordered ACEs that comprise the ACL. The
ACEs are what your device uses when evaluating whether to forward or block each packet.
Typically, your ACEs are based on a packet’s source address, destination address, or the upper-
layer protocol of the packet.
When defining a single ACL, you can define multiple matching criteria in multiple, separate
ACE statements. You tie these ACEs together by referencing the same identifying name or num-
ber. You can define as many ACEs as you want; however, you are limited by the available mem-
ory of the device and can experience a performance impact with an ACL that has a large amount
of ACEs defined. Remember that the more ACE statements you create, the more difficult it is
to comprehend and manage your ACLs at a later date.
CAUTION When you define an inbound ACL for traffic filtering, you should include explicit ACE
statements to permit routing updates. If you fail to do this, you can lose communication from
the interface when routing updates are blocked by the implicit “deny all traffic” statement at the
end of the ACL.
CCIE.book Page 496 Monday, May 12, 2003 8:29 AM
When you are using Cisco IOS Software, follow these guidelines:
• IP allows you to apply up to two ACLs on an interface: one inbound ACL and one
outbound ACL.
• If you apply the ACL inbound, when the device receives a packet, it checks the ACL’s ACE
statements for a match. If the packet is permitted by the ACL, the software continues to
process the packet. If the packet is denied by the ACL, the software discards the packet.
• If you apply the ACL outbound, after receiving and routing a packet to the outbound
interface, the device checks the ACL’s ACE statements for a match. If the packet is
permitted by the ACL, the software transmits the packet. If the packet is denied by the
ACL, the software discards the packet.
With the Catalyst 3550 switch, you can associate ACLs with Layer 2 or Layer 3 interfaces. You
can apply these ACLs either outbound or inbound on Layer 3 interfaces, but you can only apply
them inbound on Layer 2 interfaces.
Use the following guidelines when applying your IP ACLs to your 3550 switch:
• When using an ACL to control access to a line, you must use a numbered ACL.
• When using an ACL to control access to an interface, you can use a name or number.
• Use identical restrictions on all the virtual terminal lines to prevent possible security
issues.
• If you apply an ACL to a Layer 3 interface and the enhanced multilayer software image is
not installed on your switch, the ACL only filters packets that are intended for the CPU
such as SNMP, Telnet, or web traffic. The enhanced image is not required when applying
ACLs to Layer 2 interfaces.
• You cannot use port ACLs on the same switch with input router ACLs and VLAN maps.
• You cannot apply an ACL to a Layer 2 interface on a switch that has an input Layer 3 ACL
or a VLAN map applied to it; you can apply an ACL to a Layer 2 interface if the switch
has output Layer 3 ACLs applied.
• You cannot apply an ACL to an input Layer 3 interface on a switch that has a Layer 2 ACL
applied to it; you can apply an ACL to an output Layer 3 interface if the switch has Layer
2 ACLs applied.
• You can apply one IP ACL to the input of a Layer 2 interface; a single IP ACL can be
applied to the input and a single IP ACL can be applied to the output of a Layer 3 interface.
• You can apply a port ACL only to a physical Layer 2 interface; you cannot apply port
ACLs to EtherChannel interfaces.
CCIE.book Page 498 Monday, May 12, 2003 8:29 AM
One important security item to note is that, by default, a router sends an Internet Control
Message Protocol (ICMP) unreachable message, ICMP message type 3, when a packet is
denied by an access group. When someone is attempting a reconnaissance attack against your
network, these messages can provide them with invaluable information. If you do not have a
specific requirement for these messages, they should be disabled on any exposed interfaces. For
an IOS software device or Catalyst 3550 switch, use the following commands:
3550A(config)#interface vlan number
3550A(config-if)#no ip unreachables
or
R2(config)#interface type number
R2(config-if)#no ip unreachables
In the case of the Catalyst 3550 switch, access group denied packets are not dropped in
hardware but are bridged to the switch CPU so that it can generate the ICMP unreachable
message. To drop access group denied packets in hardware, you must disable ICMP
unreachables.
To create a numbered extended IP ACL in IOS or a 3550 switch, use one of the following
commands:
3550A or R2(config)#access-list access-list-number {deny | permit} protocol
source source-wildcard destination destination-wildcard [precedence precedence]
[tos tos] [fragments] [log] [log-input] [time-range time-range-name] [dscp dscp]
You can use the remark keyword to include your comments about any entries that you place in
any IP standard or extended ACL. Each of your remark lines is limited to 100 characters and
can be placed before or after the statement that you are commenting about.You can apply a
remark to a numbered IP ACL in IOS or a 3550 switch by using the following command:
3550A or R2(config)#access-list access-list-number remark remark
To create a named standard IP ACL in IOS or a 3550 switch, use the following command:
3550A or R2(config)#ip access-list standard name
3550A or R2(config-std-nacl)# deny source [source-wildcard]
or
3550A or R2(config-std-nacl)# permit source [source-wildcard]
Use the following commands to delete an ACE from a named standard IP ACL in IOS or a 3550
switch:
3550A or R2(config)#ip access-list standard name
3550A or R2(config-std-nacl)#no deny source [source-wildcard]
or
3550A or R2(config-std-nacl)#no permit source [source-wildcard]
To create a named extended IP ACL in IOS or a 3550 switch, use the following command:
3550A or R2(config)#ip access-list extended name
3550A or R2(config-ext-nacl)#deny protocol source source-wildcard destination
destination-wildcard [precedence precedence] [tos tos] [log]
or
3550A or R2(config-ext-nacl)#permit protocol source source-wildcard destination
destination-wildcard [precedence precedence] [tos tos] [log]
CCIE.book Page 500 Monday, May 12, 2003 8:29 AM
Use the following commands to delete an ACE from a named extended IP ACL in IOS or a 3550
switch:
3550A or R2(config)#ip access-list extended name
3550A or R2(config-ext-nacl)#no deny protocol source source-wildcard destination
destination-wildcard [precedence precedence] [tos tos] [log]
or
3550A or R2(config-ext-nacl)#no permit protocol source source-wildcard destination
destination-wildcard [precedence precedence] [tos tos] [log]
You can also apply a remark to a named IP ACL in IOS or a 3550 switch by using the following
command:
3550A or R2(config-ext-nacl)#remark remark
The following list specifies features that you can optionally enable, depending on the individual
requirements of your organization:
• type mask
• lsap lsap mask
• aarp | amber | dec-spanning | decnet-iv | diagnostic | dsm | etype-6000 | etype-8042 |
lat | lavc-sca | mop-console | mop-dump | msdos | mumps | netbios | vines-echo |vines-
ip | xns-idp
• cos cos
Use the following command to remove a MAC extended ACL:
3550A(config)#no mac access-list extended name
In this lesson, you define a fictitious named extended access list called ccie_lab on a router of
your choice. You allow the host at 10.10.10.10 to talk to 192.168.10.10 on TCP port 1023.
Example 16-1 shows you the commands that are necessary to complete these requirements.
Example 16-1 Named Extended Access List
Use the following commands to remove access restrictions on a terminal line in IOS software
or a 3550 switch:
3550A or R2(config)#line [console | vty] line-number
3550A or R2(config-line)#no access-class access-list-number {in | out}
Use the following commands to apply an IP ACL to an interface in IOS software or a Layer 2
or Layer 3 interface on a 3550 switch:
R2(config)#interface interface-id
R2(config-if)#ip access-group {access-list-number | name} {in | out}
Use the following commands to remove the IP ACL from an interface in IOS software or a
Layer 2 or Layer 3 interface on a 3550 switch:
3550A(config)#interface interface-id
3550A(config-if)#no ip access-group {access-list-number | name} {in | out}
Use the following commands to remove the MAC ACL from an interface:
3550A(config)#interface interface-id
3550A(config-if)#no mac access-group {name} {in}
In this lesson, you apply the fictitious ccie_lab IP ACL to filter packets that are entering
FastEthernet 0/3 on the 3550A switch.
Example 16-2 demonstrates the configuration items that are needed on the 3550A switch.
Example 16-2 Applying a Named IP ACL to Switch 3550A
If you were applying this IP ACL to a Layer 3 interface, a Switched Virtual Interface (SVI), a
Layer 3 EtherChannel, or a routed port, you must have an IP address already configured on the
interface. Layer 3 access groups filter packets that are routed or are received by Layer 3 processes
on the CPU. These IP ACLs do not affect packets that are bridged within a VLAN. Example 16-3
shows the steps that are necessary to add the ccie_lab access list to the VLAN 1 Layer 3
interface.
CCIE.book Page 502 Monday, May 12, 2003 8:29 AM
Example 16-4 illustrates the configuration items and displays the results on the 3550 switch.
Example 16-4 Standard IP ACL on Switch 3550A
As you can see from the output of the show access-lists command in Example 16-4, the IP host
133.100.3.102 is now denied access while other IP hosts are allowed access.
Example 16-5 illustrates this configuration and displays the resulting ACL.
Example 16-5 Numbered Extended ACL on R3
As you can see from the output of the show command in Example 16-5, the numbered extended
IP ACL 102 is denying exactly what you desired while permitting all other traffic.
or
3550A or R2(config-time-range)#periodic days-of-the-week hh:mm to
[days-of-the-week] hh:mm
You can repeat these steps to create multiple items so that you can have the desired effect at
different times.
In this lesson, you configure time ranges for your company’s work hours, 8:00 a.m. to noon and
1:00 p.m. to 5:00 p.m. on weekdays, and for your company holidays, which include the
following days:
• New Year’s Day, January 1
• Thanksgiving Day, November 22
• Christmas Eve and Christmas Day, December 24–25
You complete this lesson by verifying your configuration.
Example 16-8 shows you the output of your lesson.
Example 16-8 Time-Based ACLs Using Numbered ACLs on Switch 3550A
Example 16-8 Time-Based ACLs Using Numbered ACLs on Switch 3550A (Continued)
3550A(config-time-range)#absolute start 00:00 24 Dec 2000 end 23:50 25 Dec 2000
3550A(config-time-range)#exit
3550A(config)#access-list 188 deny tcp any any time-range new_year_day_2000
3550A(config)#access-list 188 deny tcp any any time-range thanskgiving_2000
3550A(config)#access-list 188 deny tcp any any time-range christmas_2000
3550A(config)#access-list 188 permit tcp any any time-range workhours
3550A(config)#exit
3550A#show time-range
time-range entry: christmas_2000 (inactive)
absolute start 00:00 24 December 2000 end 23:50 25 December 2000
time-range entry: new_year_day_2000 (inactive)
absolute start 00:00 01 January 2000 end 23:59 01 January 2000
time-range entry: thanksgiving_2000 (active)
absolute start 00:00 22 November 2000 end 23:59 23 November 2000
time-range entry: workhours (inactive)
periodic weekdays 8:00 to 12:00
periodic weekdays 13:00 to 17:00
3550A#show access-lists
Extended IP access list 188
deny tcp any any time-range new_year_day_2000 (inactive)
deny tcp any any time-range thanskgiving_2000 (active)
deny tcp any any time-range christmas_2000 (inactive)
permit tcp any any time-range workhours (inactive)
As you can see from the output of the show commands in Example 16-8, your time ranges are
behaving correctly. Because the time and date on the 3550 switch is configured for November 22
at 6:00 a.m., the Thanksgiving ACL is active.
Example 16-9 illustrates the same configuration, but uses the named ACL instead.
Example 16-9 Time-Based ACLs Using Named ACLs on Switch 3550A
Example 16-9 Time-Based ACLs Using Named ACLs on Switch 3550A (Continued)
3550A#show ip access-lists
As you can see from the output of Example 16-9, the Thanksgiving time range is once again
active.
In this lesson, you configure lock-and-key to use a TACACS+ server. Example 16-10 illustrates
the required configuration to accomplish this.
Example 16-10 Lock-and-Key Using TACACS+
or
R2(config)#line [aux | console | tty | vty] line-number [ending-line-number]
R2(config-line)#password password
R2(config-line)#autocommand access-enable host [timeout minutes]
To configure a reflexive ACL for your external interface, follow these steps:
Step 1 Define the reflexive ACL in an outbound IP extended named ACL. You
should apply this extended named IP ACL to the outbound traffic. Use the
following commands to accomplish this:
R2(config)#ip access-list extended nameR2(config-ext-nacl)#permit protocol any
any reflect name [timeout seconds]
CCIE.book Page 508 Monday, May 12, 2003 8:29 AM
You can repeat this step for each IP upper-layer protocol; you can use the
same name for multiple protocols. Note that you must use the reflect
keyword in this application.
NOTE When you mix reflexive ACLs with other permit or deny statements, if the packet matches an
entry prior to the reflexive permit entry, the packet is not evaluated by the reflexive permit
entry, and no temporary entry is created for the reflexive ACL (reflexive filtering is not
triggered).
If your extended named IP ACL is not applied to the selected interface, you
must also apply the extended named IP ACL to the interface.
Use the following command to apply the extended named IP ACL to your
designated interface:
R2(config-if)#ip access-group name out
Use the evaluate command after each reflexive ACL to point to each reflexive
ACL name that you previously defined.
The order in which you place your entries is important. Under normal
circumstances, when a packet is evaluated against ACEs in an ACL, the ACEs
are evaluated in sequential order, with no more ACEs evaluated once a match
occurs. When a reflexive ACL is nested within an extended ACL, the
extended ACL ACEs are evaluated sequentially up to the nested entry, then
the reflexive ACEs are evaluated sequentially, and then the remaining entries
in the extended ACL are evaluated sequentially.
CCIE.book Page 509 Monday, May 12, 2003 8:29 AM
If your extended named IP ACL has never been applied to the interface, use
the following command to apply the ACL to the selected interface:
R2(config-if)#ip access-group name in
The reflexive ACL uses a timeout period, a certain length of time during
which no packets are detected for a session, to remove its temporary ACEs.
You are given the option of specifying the timeout for a particular reflexive
ACL when you define the reflexive ACL. However, if you do not specify the
timeout for a given reflexive ACL, the list instead uses the global timeout
value, 300 seconds by default.
To change the global timeout value, use the following command to set it to a
positive value from 0 to 2,147,483:
R2(config)#ip reflexive-list timeout seconds
Figure 16-4 illustrates the second possible topology that you can use. In this
topology, you would configure your reflexive ACLs for the internal interface.
This allows external traffic to access the services that are offered in your
demilitarized zone (DMZ) but prevents IP traffic from entering your internal
network, unless the traffic is part of a session that is already established from
within your internal network.
!! ""#$ %
CCIE.book Page 510 Monday, May 12, 2003 8:29 AM
To configure a reflexive ACL for your internal interface, follow these steps:
Step 1 Define the reflexive ACL in an inbound IP extended named ACL.
Figure 16-5 illustrates the topology that you will use to configure reflexive ACLs. In this lesson,
configure a reflexive ACL on your external interface of R1 so that it only allows inbound and
outbound TCP traffic at interface Serial 0, but only if the first packet of the session originates from
inside of your network. You should also allow EIGRP and BGP without requiring evaluation. You
should deny any ICMP packet from your network. Interface Serial 0 connects to R3 through the
Frame Relay for testing purposes.
!
Example 16-11 shows the configuration that is necessary and demonstrates its functionality
through the use of show commands.
Example 16-11 Reflexive ACL External Interface Configuration
! The following show command is before the reflexive ACL has been triggered:
R1#show access-list
Extended IP access list inboundfilters
permit tcp any any eq bgp
permit eigrp any any
deny icmp any any
evaluate tcptraffic
CCIE.book Page 511 Monday, May 12, 2003 8:29 AM
! The following show command was issued after a Telnet connection is initiated
! from within your network to R3:
R1#show access-list
Extended IP access list inboundfilters
permit tcp any any eq bgp (2 matches)
permit eigrp any any
deny icmp any any
evaluate tcptraffic
Extended IP access list outboundfilters
permit tcp any any reflect tcptraffic
Reflexive IP access list tcptraffic
permit tcp host 172.19.99.67 eq telnet host 192.168.60.185 eq 11005 (5 matches)
(time left 115 seconds)
As you can see from the shaded text in Example 16-11, the reflexive ACL tcptraffic now appears
and displays the temporary entry that is generated when the Telnet session initiated with an
outbound packet. Before this, the output did not show any reflexive ACL entries.
Example 16-13 illustrates logging is enabled by using a show command to view the
buffered log.
CCIE.book Page 512 Monday, May 12, 2003 8:29 AM
Example 16-13 The show logging Command Output on Switch 3550A with log
3550A#show logging
<output truncated>
You can see from the shaded text in Example 16-13 that your ACL is denying the correct
traffic. You should also notice that each entry has a hit count that is appended to the end of the
line. You could use a permit access list entry to give you a rough estimate of traffic flow through
an interface, if desired.
Example 16-14 demonstrates the use of the log-input keyword when used with logging.
Example 16-14 The show logging Command Output on Switch 3550A with log-input
R1#show logging
00:04:21:%SEC-6-IPACCESSLOGDP:list ccie1 permitted icmp 10.1.1.10
(Vlan1
Vlan1 0001.42ef.a400) -> 10.1.1.61 (0/0), 1 packet
You can see from the preceding output that the interface, in this case VLAN1, is now included
in the output.
3550A#show access-lists
When you create a VLAN map, you have the option of specifying a number after the name. This
number represents the sequence number of the entry that is assigned to it within the map. If you
do not assign a number to it, the switch assigns a number to the entry sequentially in increments
of 10. You can then reference this number when modifying or deleting map entries.
To remove a VLAN map, or one of its entries, use one of the next three commands.
Use the following command to delete the entire map:
3550A(config)#no vlan access-map name
Use the following command to delete a single sequence entry from within the map:
3550A(config)#no vlan access-map name number
After you have your VLAN map defined, you must associate it with a VLAN. Use the following
commands to accomplish this:
3550A(config)#vlan filter mapname vlan-list list
In this lesson, you create two separate ACLs and a VLAN map to deny any packet that is not
TCP or UDP. In the first ACL, any TCP packets match the VLAN_TCP ACL. The second ACL
matches any UDP packets using the VLAN_UDP ACL. You then apply the VLAN map to
VLAN 8.
Example 16-16 illustrates the creation of these two ACLs.
Example 16-16 VLAN Map with a Named Extended IP ACL
In this scenario, any IP packets that do not match either of your defined ACLs are dropped.
Maintaining ACLs
After you have defined and applied ACLs, you can display various information about them,
such as what ACLs are configured on the switch, what interfaces and VLANs an ACL is applied
to, and information about configuration conflicts or resource usage related to your ACLs.
To display the contents of one or all current IP and MAC address ACLs or a specific ACL,
numbered or named, use the following command:
3550A#show access-lists [number | name]
CCIE.book Page 515 Monday, May 12, 2003 8:29 AM
To display detailed configuration and status information of an interface, use the following
command. Note that if IP is enabled on the interface and ACLs have been applied by using
the ip access-group interface configuration command, the access groups are included in the
display.
3550A#show ip interface interface-id
To display the contents of the configuration file for the switch or the specified interface, including
all configured MAC and IP ACLs and which access groups are applied to an interface, use the
following command:
3550A#show running-config [interface interface-id]
To display MAC ACLs that are applied to all Layer 2 interfaces or the specified Layer 2
interface, use the following command:
3550A#show mac access-group [interface interface-id]
You can also display information about VLAN access maps or VLAN filters.
To display information about all VLAN access maps or the specified access map, use the
following command:
3550A#show vlan access-map [mapname]
To display information about all VLAN filters or about a specified VLAN or VLAN access map,
use the following command:
3550A#show vlan filter [access-map name | vlan vlan-id]
or
3550A#show fm interface interface-id
To display information about the identified label, including which of the configured ACL
features fit into hardware, use one of the following commands:
3550A#show fm vlan-label label-id
CCIE.book Page 516 Monday, May 12, 2003 8:29 AM
or
3550A#show fm port-label label-id
To display information about the input or output ACL regions of Ternary Content Addressable
Memory (TCAM), use the following command. Note that you might not be able to interpret the
results of this command without help from the Cisco Technical Assistance Center (TAC).
3550A#show tcam {inacl | outacl} tcam-id {{port-labels [label-id]} | size |{statistics
[entries | hits | labels | masks]} | {vlan-labels [label-id]}}
When an attempt to apply an ACL to a Layer 2 interface has failed, use the show fm interface
command for an interface to determine if a possible ACL configuration conflict exists or to learn
the port-label number for the port. You can then use the show fm port-label command to
display more details, as shown in Example 16-18.
Example 16-18 Troubleshooting Failed ACL Association to a Layer 2 Interface
As you can see from the output of the show commands in Example 16-18, you are able to
identify the conflict.
Example 16-19 shows the result of trying to apply ACL 101 to an SVI, VLAN 10, when the
switch already has ACLs applied to Layer 2 interfaces.
Example 16-19 Failed Attempt to Apply an ACL to an SVI Interface
You can look further into this error by entering the show fm vlan command for a VLAN to
display the conflict and to determine the VLAN label-ids, and then enter the show fm vlan-
label command to obtain more detailed information, as shown in Example 16-20.
Example 16-20 Troubleshooting Failed ACL Association to a Layer 2 Interface
Once again, you can examine the output of the show commands and identify what is in conflict.
Once this happens, the switch software attempts to fit a simpler configuration into the hardware,
but this simpler configuration does not do all the filtering that has been configured; instead, the
configuration sends some or all packets to the CPU to be filtered by software. By doing this, all
of your configured filtering is still accomplished, but the performance of the 3550 switch can
be greatly decreased when the filtering is done in software.
For example, if the combination of an input router ACL that is applied to a VLAN interface and
a VLAN map that is applied to the same VLAN does not fit into the hardware, the following
results might occur:
• If your VLAN map alone fits in the hardware, the software sets up the hardware to send
to the CPU all packets that need to be routed for filtering and possible routing. Packets that
only require bridging within the input VLAN are still handled entirely by the hardware
and are not sent to the CPU.
• If your VLAN map does not fit in the hardware, all packets on that VLAN must be both
filtered and forwarded by the software.
Any problem that the switch encounters in fitting the configuration into the hardware is logged.
You can use the show fm commands to determine if any interface configuration or VLAN
configuration did not fit into the allocated hardware.
To allocate the maximum hardware resources for ACL configuration, use the sdm prefer access
configuration command to set the Switch Database Management feature to the access template.
The access template is typically used on an access switch in which your route table size might
not be substantial.
Summary
This chapter has reviewed traffic filtering with ACLs. The ACL is a powerful tool that you can
use in your pursuit of a secure network environment. The chapter began by examining the many
different types of ACLs that are available, including the numbered and named IP ACLs that you
can use on both the 3550 switch and an IOS software device, the lock-and-key and reflexive
ACLs that you can use on IOS, and the router, port, and VLAN ACLs for use on the 3550
switch. The chapter covered the configuration of these ACLs and discussed how to associate
them to an interface along with the VLAN mapping feature that is available on the 3550 switch.
You looked at optional items such as logging of ACLs. The chapter concluded with a look at
monitoring and troubleshooting VLANs and the unsupported items on the 3550 switch.
Review Questions
1 What feature allows you to provide access control on a network device that determines
what traffic is permitted to enter or exit your network?
2 How is the 3550 switch able to filter IP packets?
5 Which ACL grants a user access to a specific source or destination based on a user
authentication process?
6 What is a Switched Virtual Interface?
8 When you use a VLAN map with a router ACL and one of your packet flows matches a
deny statement of a VLAN, what happens to the packet flow?
9 What is the function of a VLAN map?
10 Which ACL can provide filtering based on the IP upper-layer protocol “session”
information?
CCIE.book Page 520 Monday, May 12, 2003 8:29 AM
FAQs
Q — I have an ACL with an unusually large amount of entries in it. How many entries
should I have in one ACL?
A — The number of entries that you can define in a single ACL is limited only by the
amount of available memory of your device. Other factors that are a result of large
ACLs include the processing time used to send a packet, the amount of time that
your device takes to load its configuration at bootup or reboot, the ability of some-
one to comprehend the ACL, and the troubleshooting of a large ACL.
Q — I want to define an ACL that denies access to a host but allows access to the rest of
the subnet. Does it matter what order I place the entries in the ACL?
A — Yes, ACLs use the first match to determine the disposition of a packet. If you were
to allow the subnet first and deny the host second, the host would still be allowed
access due to the first match. When designing your ACLs, it is best to define more
specific and frequently used matches first and then generalized matches last.
Q — After applying an ACL to my interface, my routing table gets corrupted. When I
remove the ACL, my routing table returns to normal. Why is this happening?
A — At the end of an ACL is an implied deny all traffic ACE. This implied statement is
placed there by the software automatically, perhaps to prevent a misconfiguration
from compromising your network security. You must explicitly permit routing pro-
tocol traffic to correct this situation. You can also add an explicit deny any any log
statement to the end of your ACL to help troubleshoot situations like this.
Q — I have an existing ACL that I need to edit. How do I accomplish this task?
A — If your ACL is a numbered ACL, you must completely remove the ACL and reapply
it with the desired changes. One way to make this easier is to complete your
changes on a TFTP server and then retrieve it from the TFTP server. Remember that
your first statement should delete the existing ACL, or all of your new entries will
be placed at the end of the existing ACL. If your ACL is a named ACL, you have
some editing functionality that you can use; however, if you are making a large
number of editing changes, it can be easier to use the TFTP method previously dis-
cussed.
Q — I defined a named ACL to control Telnet access to my 3550 switch. Whenever I try to
associate it with a line, I get an error message. Why does this occur?
A — You are only allowed to associate a numbered ACL to a VTY. Remember to use the
same security restrictions across all VTYs or you might open an unexpected hole
into your switch. You can associate a numbered or named ACL to an interface.
CCIE.book Page 521 Monday, May 12, 2003 8:29 AM
FAQs 521
CHAPTER 17
IP Services
In this chapter, you review many of the IP services that you need to make your lessons, case
studies, and eventually, your CCIE lab function correctly.
The following optional IP services are available:
• Managing IP connections
• Hot Standby Router Protocol (HSRP)
• IP accounting
• TCP performance parameters
• IP over WANs
• MultiNode Load Balancing Forwarding Agent
• Network Address Translation (NAT)
Each of these items is optional, and each can be configured to better customize your
network according to your needs. Remember that certain features are not available in all
releases of Cisco IOS Software; consult the release notes to determine their availability.
Managing IP Connections
With the IP suite that is available in Cisco IOS Software, a number of services are available
to help control and manage your IP connections. Internet Control Message Protocol (ICMP)
provides many of these services. ICMP does this by sending messages to hosts or other
routers when a problem is discovered with the Internet header. For more detailed informa-
tion about ICMP, refer to RFC 950, “Internet Standard Subnetting Procedure.”
Some of the services that can help you manage various aspects of IP connections include
the following:
• ICMP unreachable messages
• ICMP redirect messages
• ICMP mask reply messages
• IP Path MTU Discovery
• MTU packet size
CCIE.book Page 524 Monday, May 12, 2003 8:29 AM
• IP source routing
• Simplex Ethernet interfaces
• Director Response Protocol (DRP) server agents
The next sections describe these services in more detail.
Use the following command to limit the rate of ICMP destination unreachable messages that
are generated:
R2(config)#ip icmp rate-limit unreachable [df] milliseconds
NOTE ICMP unreachables can be used by unauthorized individuals to gain valuable information about
your network, such as what hosts are available. You should only enable this service after you
have a complete understanding of this service.
NOTE IP Path MTU Discovery is a process that is initiated by end hosts. If an end host does not
support IP Path MTU Discovery, the receiving device cannot avoid fragmenting datagrams
generated by the end host, as long as the DF bit is not set in the packet, in which case, the packet
is discarded.
Fragmenting packets can slow the performance of your router. By enabling IP Path MTU
Discovery on all the hosts in your network and configuring the largest possible MTU on the
interfaces of your router, you can prevent this slowdown on your router.
You only need to enable IP Path MTU Discovery for your router when it acts as a host.
CCIE.book Page 526 Monday, May 12, 2003 8:29 AM
IP Source Routing
You router examines all the IP header options that are included in every packet. It supports the
following IP header options, as defined in RFC 791, “IP Protocol”:
• Strict Source Route—Used to route a packet based on information supplied by the
source, without any deviation in the path
• Loose Source Route—Used to route a packet based on information supplied by the
source, with deviation allowed so that a gateway can choose any path to reach the next
address specified
• Record Route—Used to record, in the packet, the route that a packet takes to a destination
• Time Stamp—Used to record a time stamp
If your router discovers a packet with one of these options enabled, it performs the appropriate
action. If your router discovers a packet with an invalid option, it sends an ICMP parameter
problem message to the source of the packet and discards the packet.
Source routing is an IP option that allows the source IP host to specify a route through the IP
network. If source routing is enabled on your router, it forwards the packet according to the
specified source route. Source routing is almost never used with legitimate traffic and can be
used to bypass security mechanisms that you have in place. The default in Cisco IOS Software
is to perform source routing.
Use the following command to enable the IP source-route header option if you have previously
disabled it:
R2config)#ip source-route
CCIE.book Page 527 Monday, May 12, 2003 8:29 AM
router. The active router is the router that is used to route packets; the standby router is a router
that can take over the routing duties when an active router fails or when your predefined
conditions are met.
HSRP is most useful when used with hosts that do not support a router discovery protocol, such
as ICMP Router Discovery Protocol (IRDP), and do not have the ability to switch to a new
router when their selected router reloads or loses power. One other benefit of HSRP is that
existing TCP sessions can survive the HSRP failover, providing a more transparent recovery
for hosts than dynamically choosing a next hop for routing IP traffic.
HSRP works because it provides a virtual MAC address and an IP address, referred to as the
virtual IP, which is shared among a group of routers running it. One device out of the group is
selected by HSRP to function as the active router. The active router receives and routes packets
that are destined for the MAC address of the group. For n routers running HSRP, n+1 IP and
MAC addresses are assigned.
HSRP can detect a failure of the active router and select a standby router to assume control of
the MAC and IP addresses that are assigned to the HSRP group. If applicable, a new standby
router is selected at this time.
A multicast UDP-based hello mechanism is used by the devices that are running HSRP to detect
router failure and to designate active and standby routers.
You can configure multiple HSRP groups on an interface, enabling you to make full use of
redundant routers and load sharing. You do this by specifying a unique group number for each
HSRP command that you configure for the interface.
NOTE You can only assign three HSRP groups on a Token Ring interface: 0, 1, and 2.
Before configuring HSRP, the next section provides the information that you need to understand
how ICMP redirect messages are handled on interfaces that are configured to run HSRP.
ICMP redirect messages through HSRP, where the next-hop IP address can be changed to an
HSRP virtual IP address.
MAC address in the original packet to make this determination. Under certain conditions, such
as when you use the standby use-bia command, ICMP redirects cannot be sent. In this case,
the HSRP groups use the interface MAC address as their virtual MAC address and are unable
to determine if the default gateway of the host is the real IP address or one of the HSRP virtual
IP addresses that are active on the interface.
IP Accounting Overview
IP accounting can provide you with basic IP accounting functions, such as seeing the number
of bytes and packets that are switched through the Cisco IOS Software based on the source and
destination IP address. One limitation of this is that only IP traffic that is using the device as a
transition point can be measured and then, only on the outbound direction; traffic that is generated
by the software or that terminates in the software is not included in the accounting statistics.
Two accounting databases are used to maintain accurate accounting totals: the active and the
checkpointed database.
When you use IP accounting, you can also obtain information that identifies IP traffic that fails
your IP Access Control Lists (ACLs). This feature requires you to enable IP accounting of ACL
violations by using the ip accounting access-violations command. Your users can then display
the number of bytes and packets from a single source that attempted to breach security against
the ACL for the source destination pair. By default, IP accounting displays the number of
packets that have passed access lists and were routed.
IP MAC Accounting
MAC address accounting provides you with accounting information for IP traffic based on the
source and destination MAC addresses on LAN interfaces. MAC accounting calculations can
provide the total packet and byte counts for a LAN interface that receives or sends IP packets
to or from a unique MAC address. This information is time stamped for the last packet that is
received or sent.
Use the next two commands to configure the interface for IP accounting based on the MAC
address.
Use the following command to specify the interface (or subinterface) and enter interface
configuration mode:
R2(config)# interface type number
Use the following command to configure IP accounting based on the MAC address of received
(input) or transmitted (output) packets:
R2(config-if)#ip accounting mac-address {input | output}
Use the show interface mac command to display MAC accounting information for interfaces
that are configured for MAC accounting.
CCIE.book Page 531 Monday, May 12, 2003 8:29 AM
IP Precedence Accounting
Precedence accounting provides you with accounting information for IP traffic based on the
precedence on any interface. Precedence accounting calculates the total packet and byte counts
for an interface that receives or sends IP packets and sorts the results based on the IP precedence
that is assigned to the packets.
Use the commands that are described in this section to configure the interface for IP accounting
based on IP precedence.
To specify the interface (or subinterface) and enter interface configuration mode, use the
following command:
R2(config)#interface type number
Use the show interface precedence command to display precedence accounting information
for interfaces that are configured for precedence accounting.
that have a large percentage of small packets. Use the following command to enable TCP header
compression:
R2(config-if)#ip tcp header-compression [passive]
Remember that this command only compresses the TCP header; it has no effect on UDP packets
or other protocol headers. You can use the TCP header compression technique on serial lines
using High-Level Data Link Control (HDLC) or PPP encapsulation, but it must be enabled on
both ends of the connection.
To optionally specify outgoing packets to be compressed only if TCP incoming packets on the
same interface are compressed, you can specify the passive keyword.
• By default, when using Frame Relay encapsulation, there can be only 128 two-way header
compression connections, or 256 one-way header compression connections. This
maximum value is fixed; you cannot configure it.
• By default, when using PPP or HDLC encapsulation, there are only 16 two-way header
compression connections or 32 one-way header compression connections allowed by the
software. You can change this default, up to a maximum of 256 header compression
connections.
To specify the total number of TCP header compression connections that can exist on an
interface, use the following command:
R2(config-if)#ip tcp compression-connections number
You can use the ip tcp path-mtu-discovery command to enable Path MTU Discovery for
connections that are initiated by your router when it is acting as a host.
The age-timer keyword represents the time interval for how often TCP should reestimate the
path MTU with a larger maximum segment size (MSS). The default Path MTU Discovery is 10
minutes, with a maximum configurable value of 30 minutes. You can use the infinite setting to
turn off this timer.
CCIE.book Page 534 Monday, May 12, 2003 8:29 AM
Use the following command to enable CEF on devices that support dCEF:
R2(config)#ip cef distributed
This command enables CEF globally, but you can still disable CEF on a particular interface if
you desire, such as when you enable GRE tunnels and IPSec that use loopback addresses in
their configuration.
To specify the interface and enter interface configuration mode, use one of the following
commands:
R2(config)#interface type slot/port-adapter/port
or
R2(config)#interface type slot/port
CCIE.book Page 537 Monday, May 12, 2003 8:29 AM
While the default size of the NetFlow cache meets most of your needs, you can use the
following command to increase or decrease the number of entries that are maintained in the
cache:
R2(config)#ip flow-cache entries number
The number of entries that are maintained in the cache can be from 1024 to 524,288, with a
default of 64,536.
Use the following command to join a multicast group. Use this command on all interfaces that
listen for the services manager multicasts with the group address matching the address that is
configured on the services manager:
R2(config-if)#ip igmp join-group group-address
To adjust the memory that is allocated for the affinity pools of the Forwarding Agent, use the
following command:
R2(config-casa)# forwarding-agent pools initial-affinity-pool max-affinity-pool
depletion of IP address space and scaling in routing. By using NAT, your IP network appears
to the outside as if it is coming from a different IP address space. This means that you are allowed
to use the private IP address ranges reserved in RFC 1918, “Address Allocation for Private
Internets,” on your network without having to worry about them not being routable in a public
space. NAT takes your private addresses and translates them into a routable IP address range,
which is normally supplied by your ISP. One other benefit of NAT is a way to gracefully
renumber your internal IP network when changing service providers or when you are voluntarily
renumbering into a classless interdomain routing (CIDR) block.
If you are running Cisco IOS Software release 12.1(5)T or later, the NAT feature supports all
H.225 and H.245 message types, including FastConnect and Alerting, as part of the H.323
version 2 specification, as well as provides full support for NetMeeting Directory (Internet
Locator Service).
When you configure a router to use NAT, you configure one interface to the inside of your
network and another to the outside of your network. The term inside refers to the networks that
you own and that must be translated. The term outside refers to those networks to which the
stub network connects, and are generally not under your control. The following are the different
types of addressing that are associated with NAT:
• Inside local address—An IP address that is assigned to a host on your inside network
• Inside global address—A legitimate IP address that represents one or more of your inside
local IP addresses to the outside world
• Outside local address—An IP address of an outside host as it appears to your inside
network
• Outside global address—An IP address that is assigned to a host on the outside network
by the owner of the host that is allocated from globally routable address or network space
In a typical implementation, you configure NAT on the exit router between a stub domain and
backbone, such as the Internet. When a packet leaves your domain, NAT translates the locally
significant source address into a globally unique address. When a packet enters your domain,
NAT translates the globally unique destination address into a local address. Remember, if you
have more than one exit point on your domain, each NAT must have the same translation table.
If NAT runs out of available addresses, the packet is dropped and an ICMP host unreachable
message is returned to the originator of the packet.
When your router is configured to use NAT, it must not advertise local networks to the outside.
However, routing information that NAT receives from the outside can still be advertised in the
stub domain as usual.
CCIE.book Page 539 Monday, May 12, 2003 8:29 AM
Configuring IP Services
The next lessons teach you how to configure various IP services, including the following:
• Configuring ICMP redirects
• Configuring the DRP Server Agent
• Configuring HSRP
• Configuring IP accounting
• Configuring NAT
In this lesson, you enable the DRP Server Agent on R3. Example 17-2 shows a configuration
that you can use to complete this task.
Example 17-2 Enabling the DRP Server Agent
In this step, you use an access list to limit who can be the source of DRP queries from the host
192.168.254.250. Example 17-3 shows a sample configuration to make this scenario work.
Example 17-3 Using Access Lists with DRP
To identify a key chain which must match the name that is configured in the preceding
command, use the following command:
R2config)#key chain name-of-chain
To optionally specify the time period during which the key can be received, use the following
command:
R2(config-keychain-key)#accept-lifetime start-time {infinite | end-time | duration
seconds}
To optionally specify the time period during which the key can be sent, use the following
command:
R2(config-keychain-key)#send-lifetime start-time {infinite | end-time | duration seconds}
To complete this lab, configure authentication for DRP queries and responses by using the key
ccie_lab. Example 17-4 shows a sample configuration to make this scenario work.
Example 17-4 Authenticating DRP
One way of implementing HSRP is to configure load sharing. Figure 17-1 illustrates the
topology that you will use for your this lesson.
R3 R4
192.168.3.3 192.168.3.4
HSRP1: 192.168.3.1 HSRP1: 192.168.3.1
HSRP2: 192.168.3.2 HSRP2: 192.168.3.2
In this lesson, half of your clients are configured to use R3 and half of your clients are
configured to use R4 as their gateway. In this manner, both routers are used to establish two
HSRP groups. Example 17-5 shows you a possible configuration for this step.
Example 17-5 Configuring Multiple HSRP Groups
To configure the time between hello packets and the hold time before other routers declare the
active router to be down, use the following command:
R2(config-if)#standby [group-number] timers [msec] hellotime [msec] holdtime
Use the following command to set the Hot Standby priority—a value from 1 to 255 with a
default of 100, where a higher number is given priority—used in choosing the active router:
R2(config-if)#standby [group-number] priority priority
To configure a preemption delay, after which the Hot Standby router preempts and becomes the
active router, use the following command:
R2(config-if)#standby [group-number] preempt [{delay} [minimum delay] [sync delay]]
Use the following command to configure the interface to track other interfaces so that if one of
the other interfaces goes down, the Hot Standby priority of the device is lowered:
R2(config-if)#standby [group-number] track type number [interface-priority]
To select an authentication string to be carried in all HSRP messages, use the following
command:
R2(config-if)#standby [group-number] authentication string
To configure the delay period before the initialization of HSRP groups, use the following
command:
R2(config-if)#standby delay minimum [min-delay] reload [reload-delay]
To specify a virtual MAC address for the virtual router, use the following command:
R2(config-if)#standby [group-number] mac-address macaddress
Use the following command to configure HSRP to use the burned-in address (BIA) of an
interface as its virtual MAC address instead of the preassigned MAC address, as on Ethernet
and FDDI, or the functional address, as on Token Ring:
R2(config-if)#standby use-bia [scope interface]
In this step, you enter the required configuration so that if either router becomes unavailable,
you ensure that the other router becomes active and assumes the packet-transfer functions of
the router that is unavailable. For group 1, make R3 the default active router and R4 the standby
router. For group 2, make R4 the default active router and R3 the standby router. Example 17-6
shows the configuration that is necessary to complete these tasks.
Example 17-6 Tuning HSRP Groups
continues
CCIE.book Page 544 Monday, May 12, 2003 8:29 AM
To specify the recipient of an SNMP notification operation, and that HSRP notifications are to
be sent to the host, use the following command:
R2(config)#snmp-server host host community-string hsrp
In this step, you configure the HSRP MIB trap feature on R3 and R4. You configure the SNMP
host as 192.168.3.254. Example 17-7 illustrates a solution to this scenario.
CCIE.book Page 545 Monday, May 12, 2003 8:29 AM
Use the commands that are described in this section on the PE routers to define the VPN.
To enter VRF configuration mode and assign a VRF name, use the following command:
R2(config)#ip vrf vrf-name
To create a list of import or export route target communities for the specified VRF, use the
following command:
R2(config-vrf)#route-target {import | export | both} route-target-ext-community
To specify an interface and enter interface configuration mode, use the following command:
R2(config)# interface type number
Figure 17-2 lays out the next topology that you will use for this lesson.
VPN Cloud
R1 R2
S0 S0
S0 S0
R3 R4
192.168.3.3 192.168.3.4
HSRP1: 192.168.3.1 HSRP1: 192.168.3.1
HSRP2: 192.168.3.2 HSRP2: 192.168.3.2
VRF:1 VRF:1
In this lesson, you configure R3 and R4 to function as PEs while continuing to use your
previous HSRP configuration on their VRF interfaces. This way, you could configure your CE
to use the HSRP virtual IP address as its default route. Configure HSRP to track the interfaces
that connect the PEs to the rest of the provider network. Assume that R1 and R2 are correctly
configured to act as the PE routers or as one of your service provider’s core routers to which
your edge devices attach. Example 17-8 illustrates a possible configuration for these
requirements.
CCIE.book Page 547 Monday, May 12, 2003 8:29 AM
You final configuration step in this lesson is to enable ICMP redirects for your two defined
HSRP groups. Example 17-9 shows a solution to these requirements.
Example 17-9 HSRP with ICMP Redirect
To enable IP accounting with the ability to identify IP traffic that fails IP ACLs, use the
following command:
R2(config-if)#ip accounting access-violations
Use the following three optional commands to configure other IP accounting functions.
To set the maximum number of accounting entries to be created, use the following command:
R2(config)#ip accounting-threshold threshold
To control the number of transit records that are stored in the IP accounting database, use the
following command:
R2(config)#ip accounting-transits count
Use the following command to display IP access violations for a specific IP accounting
database:
R2#show ip accounting [checkpoint] access-violations
You must use the access-violations keyword to display IP access violations; otherwise, you
only see the default display. The default display shows the number of packets that have passed
ACLs and were routed toward their destination. The access violations output displays the
number of the ACL that failed the last packet for the source and destination pair. The number
of packets reveals how aggressive the attack is on a specific destination.
Use the show ip accounting command to display the active accounting database. Use the show
ip accounting checkpoint command to display the checkpointed database. The clear ip
accounting command clears the active database and creates the checkpointed database.
In the following lesson, you enable IP accounting on R4 based on the source and destination
MAC address and based on IP precedence for received and transmitted packets. You also enable
identification of the IP address that commits the violation. Example 17-10 shows an example
configuration.
Example 17-10 IP Accounting
You also have the option of monitoring and maintaining NAT on your network.
The following sections describe each of these steps.
To specify the inside interface and enter interface configuration mode, use the following
command:
R2(config)#interface type number
CCIE.book Page 550 Monday, May 12, 2003 8:29 AM
To mark the interface as connected to the inside, use the next command:
R2(config-if)#ip nat inside
To specify the outside interface and enter interface configuration mode, use the following
command:
R2(config)#interface type number
To mark the interface as connected to the outside, use the following command:
R2(config-if)#ip nat outside
While these steps are the minimum that you must configure to implement NAT static
translation, you can use multiple inside and outside interfaces if necessary.
To define a standard access list that permits addresses that require translation, use the following
command:
R2(config)#access-list access-list-number permit source [source-wildcard]
To establish dynamic source translation, specifying the access list that was defined in the
preceding command, use the following command:
R2(config)#ip nat inside source list access-list-number pool name
Once your definitions are configured, apply them to your inside and outside interfaces, as
demonstrated in the previous section.
In this lesson, you configure R2 to translate all source addresses that pass through an access
list to an address from the pool named ccie-net. The source addresses originates from the
10.10.10.0/24 network and the pool contains addresses from 192.168.2.201 to 192.168.2.215.
Example 17-11 gives one solution to this lesson.
Example 17-11 Dynamic Inside Translation
To establish dynamic source translation, specifying the access list that was defined with the
preceding command, use the following command:
R2(config)#ip nat inside source list access-list-number pool name overload
Once configured, apply NAT to your inside and outside interfaces, as previously discussed in
Step 1.
In this lesson, you add the ability of overloading to NAT. You create a pool of addresses named
ccie-net. The pool contains addresses from 192.168.2.201 to 192.168.2.215. You use an access
list to allow packets that have a source address from the 10.10.10.0/24 network. If a current
translation does not exist, packets that match your access list are translated to an address from
the pool. You enable the overload feature to allow the router to use the same global address for
any amount of addresses. Example 17-12 gives an example configuration for this scenario.
Example 17-12 Overloading Inside Global Addresses
Once you have configured your outside static, apply NAT to your inside and outside interfaces,
as previously discussed in Step 1.
Use the following series of commands to configure dynamic outside source address translation.
To define a pool of local addresses to be allocated as needed, use the following command:
R2(config)#ip nat pool name start-ip end-ip {netmask netmask | prefix-length prefix-
length}
To establish dynamic outside source translation, specifying the access list that was defined with
the preceding command, use the following command:
R2(config)#ip nat outside source list access-list-number pool name
Once you have configured your dynamic translation, apply NAT to your inside and outside
interfaces, as previously discussed in Step 1.
In this lesson, there are addresses on your LAN, in the 192.168.2.0 range, that are being used
legitimately by someone else on the Internet. Configure your NAT to allow an extra translation
to the 100.100.100.0 range so that you can gain access to that external network. Example 17-
13 gives one solution to this problem.
CCIE.book Page 553 Monday, May 12, 2003 8:29 AM
To define an access list that permits the address of the virtual host, use the following command:
R2(config)#access-list access-list-number permit source [source-wildcard]
To establish dynamic inside destination translation, specifying the access list that was defined
with the preceding command, use the following command:
R2(config)#ip nat inside destination list access-list-number pool name
Once you have configured TCP load distribution, apply NAT to your inside and outside
interfaces, as previously discussed in Step 1.
CCIE.book Page 554 Monday, May 12, 2003 8:29 AM
In this lesson, you configure TCP load distribution to servers with addresses from 10.10.10.2
to 10.10.10.15. You define a virtual address, 10.10.10.1, which distributes connections among
the set of real hosts. If an active translation does not already exist, TCP packets from serial
interface 0, whose destination matches the access list, are translated to an address from the pool.
Example 17-14 illustrates a possible configuration for this lesson.
Example 17-14 TCP Load Distribution
When you use overloading, you have more control over translation entry timeout, because each
entry contains more context about the traffic that is using it. Use the remaining commands
described in this section to change timeouts on extended entries.
To change the UDP timeout value from the default of 5 minutes, use the following command:
R2(config)#ip nat translation udp-timeout seconds
To change the DNS timeout value from 1 minute, use the following command:
R2(config)#ip nat translation dns-timeout seconds
To change the TCP timeout value from 24 hours, use the following command:
R2(config)#ip nat translation tcp-timeout seconds
To change the Finish and Reset timeout value from 1 minute, use the following command:
R2(config)#ip nat translation finrst-timeout seconds
To change the ICMP timeout value from 1 minute, use the following command:
R2(config)#ip nat translation icmp-timeout seconds
CCIE.book Page 555 Monday, May 12, 2003 8:29 AM
To change the Synchronous (SYN) timeout value from 1 minute, use the following command:
R2(config)#ip nat translation syn-timeout seconds
Use the following command to verify that the correct IP address is entered into the CEF table
for your HSRP virtual address:
R2#show ip cef vrf vrf_name
Example 17-15 shows the output when you execute these two show commands to verify that
the HSRP virtual IP address of 10.2.0.1 is in the correct ARP and CEF tables.
Example 17-15 Verifying ARP and CEF Entries
R2#show ip arp vrf vrf1
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.2.0.1 - 00d0.bbd3.bc22 ARPA Ethernet0/2
Internet 10.2.0.20 - 0000.0c07.ac01 ARPA Ethernet0/2
As you can see from this output, the virtual IP address of 10.2.0.1 is in both tables.
To display information regarding compiled access lists, including the state of each compiled
access list, use the following command:
R2#show access-list compiled
To display the contents of current IP access lists, use the following command:
R2#show ip access-list [access-list-number | name]
To display the active IP accounting or checkpointed database, use the following command:
R2#show ip accounting [checkpoint]
To display the address of the default router and the address of hosts for which an ICMP redirect
message has been received, use the following command:
R2#show ip redirects
To display the status of the standby router, use the following command:
R2#show standby [interface [group]] [active | init | listen | standby] [brief]
To display HSRP information about delay periods, use the following command:
R2#show standby delay [type number]
To display information about the DRP Server Agent, use the following command:
R2#show ip drp
To display the operational status of the Forwarding Agent, use the following command:
R2#show ip casa oper
To display statistical information about the Forwarding Agent, use the following command:
R2#show ip casa stats
Summary 559
To clear a simple dynamic translation entry that contains an inside translation or both an inside
and outside translation, use the following command:
R2#clear ip nat translation inside global-ip local-ip [outside local-ip global-ip]
To clear a simple dynamic translation entry that contains an outside translation, use the
following command:
R2#clear ip nat translation outside local-ip global-ip
Summary
This chapter has reviewed the services for IP that are offered in Cisco IOS Software. IP services
allow you to fine-tune the functionality of IP to meet your individual requirements. You began
by examining the many optional items that you can use, including ICMP protocol messages, IP
source routing, the DRP Server Agent, HSRP, and NAT, among others. You finished the chapter
with a look at different ways that you can monitor and maintain your IP services configuration.
CCIE.book Page 560 Monday, May 12, 2003 8:29 AM
Review Questions
1 Why would you use NAT to connect to the Internet?
4 Where would the ICMP redirect message provide the most use?
5 Is it possible to use a single IP address for NAT translations?
6 What four terms are used to describe addresses that are used with NAT?
7 What is CEF?
9 Why would you use the Express TCP Header Compression feature?
FAQs 561
FAQs
Q — Is there a way to change the MTU of an interface?
A — You can use the mtu command to set the MTU value that you want on an interface.
By using this command, you can also change the value of the IP MTU value so that
it continues to match the MTU value of the interface.
Q — I think that someone is using an IP feature to guide packets around the security
measures that I have in place in an attempt to bypass them. Can I configure any-
thing else on my router to help prevent this?
A — Source routing is an IP option that allows the source IP host to specify a route
through the IP network. If source routing is enabled on your router, it forwards the
packet according to the specified source route. Although the default in Cisco IOS
Software is to perform source routing, you can disable it by using the no ip source-
route global configuration command.
Q — I am interested in using the DistributedDirector on my network to redirect users to
the closest service. How do I enable my routers to communicate with it?
A — You can use the DRP Server Agents on a border router, or as a peer to a border router,
that support the geographically distributed servers for which DistributedDirector
service distribution is desired. Note that, because DistributedDirector makes deci-
sions based on BGP and IGP information, your DRP Server Agents must have
access to full BGP and IGP routing tables.
Q — I want to provide router redundancy on my network without having to use hosts that
support the Router Discovery Protocol. Can this be done?
A — Yes, by using the Hot Standby Router Protocol (HSRP), you can provide high net-
work availability because it has the ability to route IP traffic for your hosts, whether
they are on Ethernet, FDDI, or Token Ring networks, without relying on the avail-
ability of any single router. You use HSRP to group routers so that they can select
an active router and a standby router. The active router is the router that is used to
route packets; the standby router is a router that takes over the routing duties when
an active router fails, or when your predefined conditions are met.
Q — Can I use HSRP with MPLS VPNs?
A — Yes, you can still use HSRP in support of an MPLS VPN when an Ethernet is con-
nected between two provider edge (PE) devices when either of the following condi-
tions are met:
• Your customer edge (CE) device has a default route to the HSRP virtual IP
address.
• One or more hosts are configured with the HSRP virtual IP address as their
default gateway.
CCIE.book Page 562 Monday, May 12, 2003 8:29 AM
PA R T
V
Authentication and Virtual Private
Networks
Chapter 18 AAA Services
CHAPTER 18
AAA Services
In this chapter, you will learn the mechanics of configuring advanced authentication,
authorization, and accounting (AAA). “Advanced AAA” means that this chapter does not
dwell on the basic concepts or installation of AAA. Instead, you will concentrate on
practical applications and techniques required for your CCIE Security exam. This book
assumes that you are either already familiar with AAA basics or can easily find a good
reference on AAA theory and basic configuration. (See Appendix E, “Security-Related
RFCs and Publications.”)
The introduction portion of this chapter is confined to the discussion of differences between
TACACS+ and RADIUS. Otherwise, the main focus of this chapter is configuring AAA.
You might wonder why some of the earlier chapters had a fairly large introduction by
comparison. This is because you are expected to have a good understanding of routing
before configuring any security-related services during your lab examination.
Underlying Protocols
RADIUS uses User Datagram Protocol (UDP) as the protocol for communications between
the client and the security server, and TACACS+ uses Transmission Control Protocol (TCP).
TACACS+ runs over TCP port 49, and RADIUS over UDP port 1812. However, in some
cases port 1645 is used for RADIUS. The fact that these protocols use different communi-
cation protocols results in some protocol-specific behavior. TCP, for instance, is connection-
oriented, and UDP offers best-effort delivery. TCP makes TACACS+ more scalable, but
RADIUS UDP is simpler to implement.
CCIE.book Page 568 Monday, May 12, 2003 8:29 AM
Packet Encryption
With RADIUS, only the user password is encrypted in the NAS-to-server access-request
packet. Information such as username, authorized services, and accounting that comprises the
remainder of the packet is sent in the clear. Furthermore, client-to-NAS communications are not
covered by this encryption method.
In contrast, TACACS+ encrypts the entire packet with the exception of a header. The unen-
crypted TACACS+ header contains a field specifying whether the payload of that packet is
encrypted.
Router Management
RADIUS was not designed by Cisco, so it doesn’t understand the IOS command-line interface
(CLI). Therefore, RADIUS can’t authorize a user to execute commands on a router.
TACACS+, on the other hand, allows authorization on a user or group level for the specific
commands you may enter on a router. This can be done in the following two ways:
• By specifying privilege levels for commands on a router and having a TACACS+ server
approve a user for a certain privilege level
• By specifying permissible commands for a user or group on a TACACS+ server
For a discussion of privilege levels, review Chapter 15, “Basic Cisco IOS Software and Catalyst
3550 Series Security.”
Interoperability
RADIUS offers support for many different vendor-specific attributes aside from the standard
ones. Not all vendors implement the complete list of standard attributes, and not all of them
stick to the standard attributes alone. RADIUS, therefore, lacks interoperability between
vendors. If using multiple vendors is a requirement, verify whether all standard attributes are
CCIE.book Page 569 Monday, May 12, 2003 8:29 AM
supported by those vendors, and don’t use the vendor-specific attributes not understood by the
other vendor.
TACACS+ was created specifically for Cisco and therefore is not commonly used by other
vendors.
Traffic
By now you probably realize that because of their inherent differences discussed so far in this
chapter, RADIUS and TACACS+ process information between server and client differently and
subsequently generate different amounts of traffic. TACACS+, for instance, is capable of a much
finer level of control than RADIUS, but at the same time it involves a multistep negotiation pro-
cess between a client and a server, creating more traffic and taking longer than RADIUS.
Configuring AAA
If you feel that the overview section of this chapter was a little short, don’t worry. This section
is a comprehensive guide to the following:
• Simplified AAA configuration using RADIUS
• Configuring AAA on a PIX Firewall
• Configuring VPN client remote access
• Authentication proxy with TACACS+
• Privilege levels with TACACS+
• Configuring PPP callback with TACACS+
• Using RADIUS server for PPP callback
• New AAA features
RADIUS
TACACS+
192.168.1.7
8.8.8.8
R8 Inside
RADIUS 192.168.1.0/24
Authentication
Authorization
Accounting
with Privilege Level 7
Next, you need to add all the necessary information for the user, including the password and
other parameters, as shown in Figure 18-3. In this case study, the password cisco is used for
both the CiscoSecure PAP and Separate fields. Choose the group to which the user will be
assigned from the drop-down menu at the bottom of the screen. For this case study, the default
group has been renamed Radius_Group.
After creating a user account, you need to specify R8 as RADIUS’s client under the Network
Configuration setup. To get to the Network Configuration setup, click the Network Configu-
ration button on the left side of the screen. In Figure 18-4, R8 is identified as the client using
its Loopback8 address of 8.8.8.8 and is assigned a key of cisco6727. The Log RADIUS Tun-
neling Packets from this AAA Client option is checked to allow the server to log the packets
rejected during authentication into its accounting reports.
After making any changes to a client setup, including adding a new client, click the Submit +
Restart button to force the server to reload. Figure 18-5 shows an existing client configuration
on the RADIUS server. To add new clients, click the Add Entry button.
As soon as the server-side configuration tasks are complete, you need to address the client-side
AAA configuration of R8 (discussed in the next step).
As soon as you execute the aaa new-model command, you can configure other AAA features.
CCIE.book Page 573 Monday, May 12, 2003 8:29 AM
Before you become familiar with the numerous methods of authentication, you need to under-
stand the differences between default and list-name. Whenever the default keyword is speci-
fied after login, it implies that all the router’s interfaces, including console and vty lines, accept
the authentication methods assigned to the default statement. Conversely, if the list-name string
is used instead, the methods designated in that authentication command can be applied on a per-
interface basis. The list is not actually activated until it is applied to an interface. After it is
applied, however, it takes precedence over the default methods for that particular interface.
To apply login authentication to a line, use the following command in line configuration mode:
R8(config-line)#login authentication {default | list-name}
Make certain that the list names in the global aaa authentication command and the line
authentication match.
Example 18-1 presents AAA authentication using no_login as the list name and its function on
a console port. All users’ passwords as well as the line passwords are “cisco.”
CCIE.book Page 574 Monday, May 12, 2003 8:29 AM
NOTE In a real-life network, you would want to assign different passwords to different users and
access methods. However, to save time in the lab environment, it is recommended that you use
the same password repeatedly.
R8#show run
hostname R8
!
aaa new-model
aaa authentication login no_login local enable line none
!
username Sam privilege 15 password 7 05080F1C2243
username Jessie privilege 15 password 7 13061E010803
username Alex privilege 15 password 7 030752180500
!
line con 0
password 7 05080F1C2243185E4B52
login authentication no_login
Example 18-1 has four different authentication methods configured with the no_login list. There
are a total of ten available authentication methods:
• enable—Authenticates via the enable password.
• krb5—Authenticates using Kerberos 5.
• krb5-telnet—Authenticates using Kerberos 5 Telnet authentication protocol for a Telnet
connection to the router.
• line—Authenticates via the line password.
• local—Authenticates using the local username database.
• local-case—Authenticates using the case-sensitive local username.
• none—No authentication is required.
• group radius—Authenticates using the list of all RADIUS servers.
• group tacacs+—Authenticates using the list of all TACACS+ servers.
• group group-name—Authenticates using a group of RADIUS or TACACS+ servers
defined by the aaa group server radius or aaa group server tacacs+ command.
Methods are always used sequentially. If the first method returns an error, the next one in line
is used, and so on. Remember that as soon as one of the methods denies access with authenti-
cation failure, the rest of the methods aren’t queried. Likewise, when access is granted by the
CCIE.book Page 575 Monday, May 12, 2003 8:29 AM
first method, the second is of no consequence. Only when a method can’t respond does AAA
use the following one.
In Example 18-1, console authentication is accomplished in the following manner:
• local—The first method to be tried.
• enable—If local authentication returns an error, a router’s enable password is used. See
Chapter 15 for a discussion of enable passwords.
• line—If the enable password returns an error, the line password (console) takes its turn.
• none—If all the previous methods fail, this grants access without authentication.
NOTE To simplify the AAA configuration in the lab environment, you might want to assign a list
specifying local authentication methods such as the one shown in Example 18-1 for your
console instead of the default RADIUS or TACACS+ unless instructed otherwise.
R8#show run
hostname R8
!
aaa new-model
aaa authentication login no_login local enable line none
!
username user1radius privilege 7 password 7 104D000A0618
!
privilege configure level 7 snmp-server
privilege exec level 7 configure
privilege exec level 7 configure terminal
privilege exec level 7 ping
!
continues
CCIE.book Page 576 Monday, May 12, 2003 8:29 AM
Example 18-3 demonstrates the radius-server host command with the arguments used for
this specific scenario. The server’s IP address of 192.168.1.7 is identified as the host, and
authentication and accounting destination UDP port numbers have been assigned as 1645 and
1646, respectively. If you wanted to assign several host entries to a single IP address, you would
need to specify different port numbers for each new occurrence.
In this example, no timeout and retransmit values are set with the radius-server host command.
This means that the global value is used instead. The key is the secret string used between the
router and the RADIUS server for mutual authentication. To work, the string must match the
one used on the RADIUS server. Therefore, the cisco6727 key is specified on both the server
and R8.
Example 18-3 Configuring Server Specifics on R8
R8#show run
hostname R8
!
! Output omitted for brevity
!
radius-server host 192.168.1.7 auth-port 1645 acct-port 1646 key cisco6727
radius-server retransmit 3
ip radius source-interface Loopback8
CCIE.book Page 577 Monday, May 12, 2003 8:29 AM
NOTE The key needs to appear last in the radius-server host command because all spaces within and
at the end of the key are recognized as being part of the key. However, any spaces before the
key aren’t taken into account.
Some of the keywords you should already know from Step 3 of this case study. The new key-
words symbolize the authorization types, of which exec, shown in Example 18-4, is one. Spec-
ifying exec entitles a user to an EXEC terminal session.
Example 18-4 Configuring Authorization
R8#show run
hostname R8
!
! Output omitted for brevity
!
aaa new-model
aaa authentication login default group radius
aaa authentication login no_login local enable line none
aaa authorization exec default local if-authenticated
The router is told to look in the local database for the authorization method instead of, say,
RADIUS because RADIUS is incapable of understanding CLI, as you learned in the introduc-
tory section of this chapter. Therefore, privilege level 7, which has been assigned a subset of
commands, doesn’t mean anything to the RADIUS server.
CCIE.book Page 578 Monday, May 12, 2003 8:29 AM
The if-authenticated keyword is another failover method in case the local database doesn’t
come through. This means that if a user has been successfully authenticated, the user is
permitted to enter the shell.
NOTE The if-authenticated method is particularly useful with the callback scenarios.
The aaa accounting command offers multiple choices when it comes to the accounting type.
Here, you concentrate on the exec type. As the name suggests, EXEC accounting provides
information about user EXEC terminal sessions on the network access server (NAS). The
tracked elements include username, date, start and stop times, total session time, the IP address
of the access server, and the caller ID for dial-in users.
The available record types are as follows:
• start-stop—The most comprehensive record type. It directs the accounting method to
send an accounting notice both at the start and end of a session.
• stop-only—Indicates the end-of-event accounting notice.
• none—Disables accounting.
The choice of methods used for accounting is considerably smaller than that of authentication
and authorization. It offers only RADIUS or TACACS+ servers as accounting tools.
Example 18-5 presents the default method list for EXEC accounting that specifies start-stop as
the record type and tells R8 to send accounting information to the RADIUS security server.
Example 18-5 AAA Accounting
R8#show run
hostname R8
!
! Output omitted for brevity
!
aaa new-model
aaa authorization exec default local if-authenticated
aaa accounting exec default start-stop group radius
CCIE.book Page 579 Monday, May 12, 2003 8:29 AM
R8#show privilege
Current privilege level is 7
R8#config t
Enter configuration commands, one per line. End with CNTL/Z.
R8(config)#?
Configure commands:
call Configure Call parameters
default Set a command to its defaults
end Exit from configure mode
exit Exit from configure mode
help Description of the interactive help system
no Negate a command or set its defaults
snmp-server Modify SNMP parameters
R8(config)#
To view the AAA processes as they happen on the router, you may issue debug commands such
as debug radius, debug aaa authentication, and debug aaa authorization. Their simulta-
neous output is shown in Example 18-7. You can see that user1radius requests authentication
and, after being authenticated, is granted permission to operate at privilege level 7.
Example 18-7 debug Command Output on R8
R8#debug radius
Radius protocol debugging is on
continues
CCIE.book Page 580 Monday, May 12, 2003 8:29 AM
R8#
05:40:08: AAA: parse name=tty66 idb type=-1 tty=-1
05:40:08: AAA: name=tty66 flags=0x11 type=5 shelf=0 slot=0 adapter=0 port=66
channel=0
05:40:08: AAA/MEMORY: create_user (0x826ECEF8) user='NULL' ruser='NULL' ds0=0
port='tty66' rem_addr='192.1
68.1.100' authen_type=ASCII service=LOGIN priv=1 initial_task_id='0'
05:40:08: AAA/AUTHEN/START (1008895964): port='tty66' list='' action=LOGIN
service=LOGIN
05:40:08: AAA/AUTHEN/START (1008895964): using "default" list
05:40:08: AAA/AUTHEN/START (1008895964): Method=radius (radius)
05:40:08: AAA/AUTHEN (1008895964): status = GETUSER
05:40:12: AAA/AUTHEN/CONT (1008895964): continue_login (user='(undef)')
05:40:12: AAA/AUTHEN (1008895964): status = GETUSER
05:40:12: AAA/AUTHEN (1008895964): Method=radius (radius)
05:40:12: AAA/AUTHEN (1008895964): status = GETPASS
05:40:13: AAA/AUTHEN/CONT (1008895964): continue_login (user='user1radius')
user='user1radius'
05:40:13: AAA/AUTHEN (1008895964): status = GETPASS
05:40:13: AAA/AUTHEN (1008895964): Method=radius (radius)
05:40:13: RADIUS: ustruct sharecount=1
05:40:13: Radius: radius_port_info() success=1 radius_nas_port=1
05:40:13: RADIUS: added cisco VSA 2 len 5 "tty66"
05:40:13: RADIUS: Initial Transmit tty66 id 73 192.168.1.7:1645, Access-Request,
len 97
05:40:13: Attribute 4 6 08080808
05:40:13: Attribute 5 6 00000042
05:40:13: Attribute 26 13 0000000902077474
05:40:13: Attribute 61 6 00000005
05:40:13: Attribute 1 13 75736572
05:40:13: Attribute 31 15 3139322E
05:40:13: Attribute 2 18 DC34997A
05:40:13: RADIUS: Received from id 73 192.168.1.7:1645, Access-Accept, len 26
05:40:13: Attribute 8 6 FFFFFFFF
05:40:13: RADIUS: saved authorization data for user 826ECEF8 at 826E446C
05:40:13: AAA/AUTHEN (1008895964): status = PASS
05:40:13: tty66 AAA/AUTHOR/EXEC (2776044849): Port='tty66' list='' service=EXEC
05:40:13: AAA/AUTHOR/EXEC: tty66 (2776044849) user='user1radius'
05:40:13: tty66 AAA/AUTHOR/EXEC (2776044849): send AV service=shell
05:40:13: tty66 AAA/AUTHOR/EXEC (2776044849): send AV cmd*
05:40:13: tty66 AAA/AUTHOR/EXEC (2776044849): found list "default"
05:40:13: tty66 AAA/AUTHOR/EXEC (2776044849): Method=LOCAL
05:40:13: AAA/AUTHOR (2776044849): Post authorization status = PASS_ADD
05:40:13: AAA/AUTHOR/EXEC: Processing AV service=shell
05:40:13: AAA/AUTHOR/EXEC: Processing AV cmd*
05:40:13: AAA/AUTHOR/EXEC: Processing AV priv-lvl=7
05:40:13: AAA/AUTHOR/EXEC: Authorization successful
05:40:13: RADIUS: ustruct sharecount=3
05:40:13: Radius: radius_port_info() success=1 radius_nas_port=1
05:40:13: RADIUS: added cisco VSA 2 len 5 "tty66"
CCIE.book Page 581 Monday, May 12, 2003 8:29 AM
To check the accounting record on the RADIUS server, choose Reports > RADIUS
Accounting. The resulting screen should look similar to Figure 18-6.
RADIUS
TACACS+
192.168.1.7
8.8.8.8 6.6.6.6
R8 Inside PIX2 Outside R6
192.168.1.0/24 130.100.26.x/27
Step 4 Check the Single Connect TACACS+ AAA Client (Record stop in
accounting failure) box to allow multiple requests from a client to be
transported over a single session rather than establishing a separate session
for every TACACS+ request.
CCIE.book Page 583 Monday, May 12, 2003 8:29 AM
After the PIX Command Authorization Set has been defined, return to the Group Setup screen
by clicking the Group Setup button on the left side of the screen. You see the screen shown in
Figure 18-11. Check the PIX Shell (pixshell) checkbox. In the PIX Command Authorization
CCIE.book Page 585 Monday, May 12, 2003 8:29 AM
Set section, select the Assign a PIX Command Authorization Set for any network device bullet,
and choose the configured authorization set, cisco, from the drop-down menu. When you are
done, click Submit + Restart.
NOTE If the PIX Shell (pixshell) checkbox does not appear on the Group Settings screen, click the
Interface Configuration button on the left side of the screen. On the Interface Configuration
screen under the TACACS+ Services category, select the PIX Shell (pixshell) checkbox for
User, Group, or both. Click the Submit button. This causes the PIX Shell (pixshell) option to
show up in your Group Settings layout.
PIX2(config)#show run
PIX Version 6.2(2)
hostname PIX2
names
continues
CCIE.book Page 586 Monday, May 12, 2003 8:29 AM
The nameif command identifies each interface. You may choose a default name or assign your
own, such as DMZ2 for Ethernet2. The security level defaults are accepted in this example—0
for the outside network, 100 for the inside network, and 10 and 15 for the peripherals. Line
speeds for a couple of interfaces are explicitly stated to get better performance. IP addresses are
assigned to all interfaces.
The PIX Firewall is named with the hostname PIX2 command. Name recognition is enabled,
and R6 is specified as the source of the 130.100.26.6 address. The global (outside) and nat
(inside) statements allow inside IP addresses to be recognized on the outside network. static
(inside,outside) forms a one-to-one mapping between an internal network address and an
external one. Each mapping needs its own dedicated address on the outside network. The
default route for the outside network is defined, as well as a network route for the inside
network. Finally, the enable password is set to restrict access to privileged mode. Notice that
the password appears scrambled because of the encrypted keyword at the end of the line.
Access lists can be named or numbered. They can be applied to interfaces. However, their usage
in the AAA configuration is what’s important here (this is discussed in the next step). When
used with AAA services, rather than directly permitting or denying a way in, access lists set up
criteria to be matched by the incoming traffic. Permitting certain kinds of traffic causes the
access lists to be evaluated by the AAA process. Conversely, denial of the access lists cancels
control over that type of traffic by the AAA.
Example 18-9 shows the PIX access lists definition. To identify them by their function, named
access lists were chosen for this scenario. You can count three separate access lists. Each of
them is identified for future use with authentication, authorization, and accounting.
Example 18-9 PIX Access Lists
PIX2(config)#show run
!
! Output omitted for brevity
!
access-list inside_authentication_TACACS+ permit tcp any any eq telnet
access-list inside_authentication_TACACS+ permit tcp any any eq www
access-list inside_authorization_TACACS+ permit tcp any any eq telnet
access-list inside_authorization_TACACS+ permit tcp any any eq www
access-list inside_accounting_TACACS+ permit tcp any any eq telnet
access-list inside_accounting_TACACS+ permit tcp any any eq www
NOTE You may choose to edit a server’s name. In such a case, the newly named server appears in the
running configuration along with the default statements. Should you choose to rename a default
server, make sure that the name corresponds to the authentication, authorization, and
accounting statements. The format of this command is
PIX2(config)#aaa-server group_tag protocol auth_protocol
CCIE.book Page 588 Monday, May 12, 2003 8:29 AM
The group_tag argument is replaced with the name of the server group in the actual
configuration.
The telnet and ssh options are discussed in Steps 5 and 6 of this case study. Here you can define
aaa authentication serial console. This enables authentication for the PIX2 serial console.
When this type of authentication is specified, it presumes that a username and password have
already been set in the database referred by the group_tag argument.
Define the access list match type of AAA authentication. This type is ruled by the criteria
defined in the inside_authorization_TACACS+ access list configured in the previous step.
The syntax for the command is
PIX2(config)#aaa authentication match acl_name [inbound | outbound | if_name
group_tag]
In Example 18-10, the inside argument defines the interface name from which to authenticate
users. This means that the users on network 192.168.1.0 starting Telnet and web connections
from the inside interface are asked for their usernames and passwords before being allowed
access.
The example also designates TACACS+ as the server of choice; the inside interface name is
placed in parentheses as the server’s resident interface, and the host argument points to the IP
address of the TACACS+ server. The key value, cisco6727, is the same as on the TACACS+
server. The timeout interval accepts the default of 5 seconds. That means that the PIX Firewall
retries access to the AAA server within four 5-second intervals before giving up and selecting
the next AAA server.
CCIE.book Page 589 Monday, May 12, 2003 8:29 AM
PIX2(config)#show run
!
! Output omitted for brevity
!
aaa-server TACACS+ protocol tacacs+
aaa-server TACACS+ (inside) host 192.168.1.7 cisco6727 timeout 5
aaa-server RADIUS protocol radius
aaa-server LOCAL protocol local
aaa authentication match inside_authentication_TACACS+ inside TACACS+
aaa authentication telnet console TACACS+
aaa authentication ssh console TACACS+
aaa authentication serial console TACACS+
The aaa authorization command statement lets authorized users access services specified by
the ACS server. Similar to the authentication command, aaa authorization doesn’t actually
set security policy. Instead, it establishes conditions for traffic selection that need to use the
specified services. Example 18-11 shows the command listing for configuring authorization on
the network from Figure 18-7.
NOTE Don’t save your configuration until you are sure that the authorization feature works properly.
If a configuration mistake locks you out, you can still recover by restarting the PIX Firewall to
get back to the previously saved configuration.
The aaa accounting command uses an access list to find a match. Although it clearly has its
own function, the syntax is identical to the authentication and authorization commands, with
the exception of the accounting keyword:
PIX2(config)#aaa accounting match acl_name [inbound | outbound | if_name group_tag]
CCIE.book Page 590 Monday, May 12, 2003 8:29 AM
Example 18-11 shows the application of the aaa authorization and aaa accounting commands
on PIX2.
Example 18-11 AAA Authorization and Accounting on PIX2
PIX2(config)#show run
!
! Output omitted for brevity
!
aaa authorization match inside_authorization_TACACS+ inside TACACS+
aaa accounting match inside_accounting_TACACS+ inside TACACS+
In Example 18-12, the PIX2 configuration lets a host with source IP addresses of 192.168.1.100
and 192.168.1.51 access the inside interface. This example also shows the configuration of the
passwd command on PIX2. The keyword encrypted specifies whether the password appears
scrambled or in clear text in the output. You can see that the password cisco has in fact been
encrypted and is currently unreadable.
Example 18-12 Telnet Configuration on PIX2
PIX2(config)#show run
!
! Output omitted for brevity
!
enable password 2KFQnbNIdI.2KYOU encrypted
passwd 2KFQnbNIdI.2KYOU encrypted
telnet 192.168.1.100 255.255.255.255 inside
telnet 192.168.1.51 255.255.255.255 inside
CCIE.book Page 591 Monday, May 12, 2003 8:29 AM
PIX2(config)#show run
!
! Output omitted for brevity
!
aaa authentication telnet console TACACS+
!
auth-prompt prompt You are about to access the Internet
auth-prompt accept Welcome to the Internet
auth-prompt reject Nice Try, Try Again
SSH version 1 (SSH v.1) on the PIX Firewall for it to act as a server (never a client), provided
that the following components are in place:
• Host name
• Domain name
• Telnet password
The Telnet password configured in the previous section “Setting a Password for Telnet” is
necessary for the SSH configuration as well. Refer to Example 18-12 for its implementation
on PIX2.
After you’ve generated the RSA key, save the key using this command:
PIX2(config)#ca save all
You can see that the telnet keyword is replaced with ssh. The client’s source address, mask, and
PIX2’s receiving interface fill their appropriate spaces in the real configuration.
The next command specifies the idle timeout period in minutes. The SSH connection drops if
no activity has been detected for the configured time interval:
PIX2(config)#ssh timeout mm
CCIE.book Page 593 Monday, May 12, 2003 8:29 AM
Now that the SSH on PIX configuration steps are complete, you can view the results in
Example 18-14.
Example 18-14 SSH on PIX2 Configuration
PIX2(config)#show run
!
! Output omitted for brevity
!
hostname pix2
domain-name cisco.com
aaa authentication ssh console TACACS+
ssh 192.168.1.100 255.255.255.255 inside
ssh 192.168.1.51 255.255.255.255 inside
ssh timeout 5
Another method of IKE authentication is to use a digital certificate instead of a preshared key.
This is discussed in Chapter 23, “Cisco PIX Firewall.”
Before you begin this case study’s PIX configuration procedure, be aware that the entire
arrangement of commands from the previous case study remains the same. Figure 18-12 shows
the network topology used in this case study.
!
"# %
&
Step 8 Configure Cisco VPN Client 3.x policy attributes to download to the Cisco
VPN Client.
Step 9 Permit IPSec traffic.
(inside) host 192.168.1.7 cisco6727 timeout 5 specifies that the authentication server with the
IP address 192.168.1.7 resides on the inside interface and is in the default TACACS+ server
group. The key cisco6727 is used between the TACACS+ server and the PIX Firewall to encrypt
data between them. Refer to Example 18-10 for the command placement.
The interface on which Internet Security Association and Key Management Protocol (ISAKMP)
negotiation needs to be established for communication between the IPSec peer and the PIX
Firewall is the outside interface, so the syntax applicable to this case study is isakmp enable
outside.
The next command specifies the parameter by which the PIX Firewall identifies itself to the
remote peer when IKE is used to establish IPSec security associations between them. The PIX
can be identified by its IP address or its host name. You need to make sure that the identity types
are the same for the PIX and its peer whether it’s IP address or a host name. The command
syntax is as follows:
PIX2(config)#isakmp identity {address | hostname}
The next set of isakmp commands lets you set the rules for negotiating IPSec security associ-
ations and enabling IPSec secure communications. There are too many variables available for
the isakmp policy priority command to show the general syntax. For that reason, each policy
statement used is discussed separately. Keep in mind that each IKE policy is uniquely identified
by a priority argument. It can be a number in the range of 1 to 65,534, from highest to lowest.
In this case study, two policies are defined: policy 10 and policy 20. Their configuration is very
similar. Therefore, most isakmp policy statements are explained for policy 10 and are simply
replicated for policy 20.
The first command in the isakmp policy priority set is isakmp policy 10 authentication pre-
share. It specifies the authentication method within an IKE policy and sets it to a preshared key
applied by a dynamic crypto map. Dynamic crypto maps are covered in the next section.
The next command, isakmp policy 10 encryption des, identifies the policy encryption algo-
rithm. DES and 3DES are the two encryption options available. DES is the chosen algorithm
for policy 10. The isakmp policy 10 hash md5 command indicates the hash algorithm to be
used in an IKE policy. Besides MD5, the SHA-1 algorithm is offered as an option.
CCIE.book Page 596 Monday, May 12, 2003 8:29 AM
The isakmp policy 10 group 2 command is employed to define the Diffie-Hellman group 1 or 2
for an IKE policy. Group 1 uses 768 bits, and group 2 uses 1024 bits. Group 2 is for Cisco VPN
Client version 3.x, and group 1 is for Cisco VPN Client 3000 version 2.5/2.6 and earlier.
The isakmp policy 10 lifetime 86400 command specifies the lifetime of an IKE security
association before it expires. The lifetime parameter is set in seconds, where 86,400 seconds
translates into one day. If two IPSec peers have different lifetimes configured, the shorter of the
two is used. Before the current association expires, the new association is renegotiated.
Consider Example 18-15 for the current isakmp policy configuration. You can see that IKE
policy 20 uses group 1; therefore, policy 20 was created for the version 2.5/2.6 VPN client.
Example 18-15 IKE Policy Parameters
PIX2#show run
!
! Output omitted for brevity
!
aaa-server TACACS+ (inside) host 192.168.1.7 cisco6727 timeout 5
!
isakmp enable outside
isakmp identity address
isakmp policy 10 authentication pre-share
isakmp policy 10 encryption des
isakmp policy 10 hash md5
isakmp policy 10 group 2
isakmp policy 10 lifetime 86400
isakmp policy 20 authentication pre-share
isakmp policy 20 encryption des
isakmp policy 20 hash md5
isakmp policy 20 group 1
isakmp policy 20 lifetime 86400
Make sure that the aaa-group_tag name is the same as the one in the aaa-server statement.
In this scenario, the crypto map is configured as crypto map mymap client authentication
TACACS+. This means that Xauth is enabled at the crypto map mymap, and the server used for
user authentication is specified in the TACACS+ group.
CCIE.book Page 597 Monday, May 12, 2003 8:29 AM
The following command is used to apply the newly configured crypto map to an interface:
PIX2(config)#crypto map map-name interface interface-name
This scenario dictates that the crypto map mymap is applied to the outside interface.
The sequence number associates certain commands with the dynamic crypto map statement.
transform-set-name1 specifies the name of a transform set. For instance, in this scenario, the
dynamic crypto map statement takes on the form crypto dynamic-map dynmap 10 set
transform-set ccie.
When an ESP protocol is defined in a transform set, as is the case here, you may specify both
an ESP encryption transform and an ESP authentication transform by using crypto ipsec
transform-set ccie esp-des esp-md5-hmac.
transform-set-name was discussed in the preceding section.
Adding the Dynamic Crypto Map Set to a Static Crypto Map Set
When a PIX Firewall peer sends an IKE negotiation request, the PIX checks the request for a
crypto map entry match. If no match is found, the PIX rejects the request. To solve this problem,
a dynamic crypto map can be referenced in a static crypto map:
PIX2(config)#crypto map map-name seq-num [ipsec-isakmp | ipsec-manual] [dynamic
dynamic-map-name]
CCIE.book Page 598 Monday, May 12, 2003 8:29 AM
After you create a dynamic crypto map, such as dynmap in the “Creating a Dynamic Crypto
Map” section, you can use the crypto map ipsec-isakmp dynamic command to add the
dynamic crypto map name set to a static crypto map. This results in a statement resembling
crypto map mymap 10 ipsec-isakmp dynamic dynmap.
Example 18-16 shows the complete crypto map and transform set configuration for this case
study.
Example 18-16 Crypto Map Statements
PIX2#show run
!
! Output omitted for brevity
!
aaa-server TACACS+ (inside) host 192.168.1.7 cisco6727 timeout 5
crypto ipsec transform-set ccie esp-des esp-md5-hmac
crypto dynamic-map dynmap 10 set transform-set ccie
crypto map mymap 10 ipsec-isakmp dynamic dynmap
crypto map mymap client authentication TACACS+
crypto map mymap interface outside
The local pool in this scenario consists of IP addresses in the 192.168.2.0/24 network. It is
spelled out in the ip local pool ippool 192.168.2.1-192.168.2.254 command.
the NAT translation with nat(inside)10 0.0.0.0 0.0.0.0 0 0. To create an exception, you need to
specify a nat_id of 0 in an additional statement:
PIX2(config)#nat [(if_name)] 0 access-list acl_name
To narrow the excluded network to 192.168.2.0, apply access list 101 in the following manner:
nat (inside) 0 access-list 101 (see Example 18-17).
Example 18-17 Local Address Pool Configuration
PIX2#show run
!
! Output omitted for brevity
!
ip local pool ippool 192.168.2.1-192.168.2.254
access-list 101 permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0
nat (inside) 0 access-list 101
NOTE Although it is possible to accomplish the same task by specifying the network/mask combination
instead of an access list, the newer versions of the PIX Firewall highly recommend using the
latter for greater security and flexibility.
Step 8: Configuring Cisco VPN Client 3.x Policy Attributes to Download to the
Cisco VPN Client
The Cisco VPN 3000 Client needs to receive the policy information such as the DNS, WINS,
default domain, and split tunnel mode attributes, from the PIX Firewall. This is made possible
by a vpngroup command.
The vpngroup command on the PIX can set several key Cisco VPN 3000 Client policy
attributes. These attributes are combined into a named group. When the Cisco VPN 3000 Client
references the same group name, it receives the attributes associated with that group. The
vpngroup commands used in this example are discussed briefly one-by-one as they are set.
The following command translates into vpngroup vpn address-pool ippool to suit the current
scenario. The keyword vpn is the name of a VPN group. ippool is the name of the local pool
configured earlier in Step 6:
PIX2(config)#vpngroup group_name address-pool pool_name
The following command specifies the IP address of the DNS server, which in this case is
156.46.10.10:
PIX2(config)#vpngroup group_name dns-server dns_ip_prim [dns_ip_sec]
The next command is very similar in syntax and discloses the WINS server information:
PIX2(config)#vpngroup group_name wins-server wins_ip_prim [wins_ip_sec]
CCIE.book Page 600 Monday, May 12, 2003 8:29 AM
The default domain name is specified in the next command. In this case study, cisco.com
is used:
PIX2(config)#vpngroup group_name default-domain domain_name
The next command allows the VPN client to forward encrypted traffic destined for the corporate
network and at the same time access the Internet in the clear. This capability is called split
tunneling. The PIX Firewall references the access list in its vpngroup command to enable a
split tunnel. When the client receives the specifications included in the access list, it sends only
the traffic specified in that access list via an IPSec tunnel and sends the rest in the clear. When
the PIX Firewall receives the encrypted stream on the outside interface, it decrypts the packets
and sends them to the access-list-defined internal network.
PIX2(config)#vpngroup group_name split-tunnel acl_name
Without split tunneling, all traffic between the VPN client and the PIX Firewall is tunneled, so
the client doesn’t have access to the Internet. With split tunneling enabled, the VPN client can
do both. To define split tunneling for the remote client in this case study, use vpngroup vpn
split-tunnel 101.
The following command forces the VPN client to perform perfect forward secrecy (PFS). This
means that each new IPSec security association key is not based on any of the previous keys. If
a new Diffie-Hellman exchange is performed every time, none of the previous or subsequent
keys are compromised.
PIX2(config)#vpngroup group_name pfs
The next command specifies the VPN group’s preshared key for IKE authentication. It should
be the same as the group password entered during the VPN client configuration:
PIX2(config)#vpngroup group_name password preshared_key
You can view the combination of vpngroup commands on PIX2 in Example 18-18.
Example 18-18 VPN Client Policy Attributes
PIX2#show run
!
! Output omitted for brevity
!
vpngroup vpn address-pool ippool
vpngroup vpn dns-server 156.46.10.10
vpngroup vpn wins-server 10.1.1.1
vpngroup vpn default-domain cisco.com
vpngroup vpn split-tunnel 101
vpngroup vpn pfs
vpngroup vpn idle-time 1800
vpngroup vpn password ********
CCIE.book Page 601 Monday, May 12, 2003 8:29 AM
Example 18-19 demonstrates the entire PIX Firewall configuration covered in this case study,
including the preceding command in the form of sysopt connection permit-ipsec.
Example 18-19 PIX Firewall Configuration for VPN Client Remote Access
PIX2#show run
!
! Output omitted for brevity
!
nat (inside) 10 0.0.0.0 0.0.0.0 0 0
access-list 101 permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0
nat (inside) 0 access-list 101aaa-server TACACS+ (inside) host 192.168.1.7
cisco6727 timeout 5
sysopt connection permit-ipsec
no sysopt route dnat
crypto ipsec transform-set ccie esp-des esp-md5-hmac
crypto dynamic-map dynmap 10 set transform-set ccie
crypto map mymap 10 ipsec-isakmp dynamic dynmap
crypto map mymap client authentication TACACS+ ← Forces authentication to AAA
crypto map mymap interface outside
Step 2 You see the Connection Entry Wizard dialog box, shown in Figure 18-14.
Enter the name of the connection in the space provided. You may enter a
description for the connection under the name. Click Next.
Step 3 At the next prompt, enter the IP address of the PIX2 outside interface,
130.100.26.2, as shown in Figure 18-15. Click Next.
Step 4 In the next dialog box, shown in Figure 18-16, select Group Access
Information to input the VPN group options, such as the group name and the
shared password already configured on the PIX Firewall. Refer to Example
18-18 to see how the VPN group information was configured on PIX2. Click
Next.
CCIE.book Page 603 Monday, May 12, 2003 8:29 AM
Step 5 The final screen of the New Connection Entry Wizard displays the new
connection name, as shown in Figure 18-17. If you are sure that the
parameters you’ve entered are correct, click Finish.
CCIE.book Page 604 Monday, May 12, 2003 8:29 AM
Step 6 Now you can attempt to establish a connection using your new configuration.
At the Cisco Systems VPN Client main screen, shown in Figure 18-18,
choose the name of the desired connection, CCIE_Security_VPN, from the
drop-down menu. Click Connect.
CCIE.book Page 605 Monday, May 12, 2003 8:29 AM
Figure 18-18 Connecting from the Cisco Systems VPN Client Screen
Step 7 Next you need to enter the username and password to authenticate to the
TACACS+ server, as shown in Figure 18-19. The PIX Firewall commands
that make this possible are
aaa-server TACACS+ protocol tacacs+
aaa-server TACACS+ (inside) host 192.168.1.7 cisco6727 timeout 5
crypto map mymap client authentication TACACS+
Step 8 View the client authentication on the PIX Firewall by entering the debug
command. To see the IPSec negotiations of phase 2, enter debug crypto
ipsec 1. To see the ISAKMP negotiations, enter debug crypto isakmp 1.
The debug crypto engine command shows the traffic that is encrypted. The
debug command output is shown in Example 18-20. It is followed by the show
uauth command output, which shows the currently authenticated user and
the host IP to which the user is bound.
Example 18-20 debug Output on PIX2
Step 9 After you are connected, view your Client Connection Status, as shown in
Figure 18-21. Notice that the client has received an internal IP address from
a local pool.
Step 10 Select the Statistics tab in the Client Connection Status window, as shown in
Figure 18-22, to monitor the network connection and the packet exchange
between the VPN client and the internal network.
CCIE.book Page 609 Monday, May 12, 2003 8:29 AM
Step 11 Verify your connection by pinging R8’s internal address behind the firewall,
as shown in Figure 18-23.
CCIE.book Page 610 Monday, May 12, 2003 8:29 AM
5.5.5.5
HTTP Server
R5
140.100.56.0/26
S1
RADIUS
TACACS+
192.168.1.7
S0
prompts the user for a username and password. This causes the user’s specific authorization pro-
files to be automatically obtained from a AAA server and temporarily applied at an inbound
interface. Whatever services are permitted in the profile are available to the user for the duration
of the connection.
The dynamic user profiles remain active for as long as the user’s traffic is detected. After the
idle timer expires, the user profile information is removed, and the client’s traffic is no longer
allowed to pass. The user must initiate another HTTP request to reconnect.
In the event of authentication failure, the user gets four more chances to enter the right
username/password combination.
NOTE Even though after being authenticated the users can access any services for which they are
authorized, the authentication proxy itself is triggered by the HTTP connections only. Also,
HTTP services must be enabled on the standard HTTP port 80.
Step 3 As shown in Figure 18-27, under the Interface Configuration setup, choose the
Shell (exec) option in both the User and Group columns. To define the authen-
tication proxy, choose a new service option, and specify the auth-proxy key-
word. When you are happy with this part of the setup, click Submit.
CCIE.book Page 613 Monday, May 12, 2003 8:29 AM
Step 4 Next you enter the Group Setup and define authentication proxy attributes, as
shown in Figure 18-28. In the window, create a numbered proxy access list
with the proxyacl#n keyword. These access lists only allow the permit key-
word. The source IP address should be substituted with the keyword any.
This way, it is replaced with the actual source IP address of the host request-
ing the proxy authentication. Also, the privilege level for the users must be
set to 15.
In this case, the syntax implemented is aaa authorization auth-proxy default group tacacs+.
NOTE When configuring aaa authorization auth-proxy, ensure that aaa authorization exec isn’t
enabled as well. If this rule is violated and both are specified, interference results when the
HTTP service tries to authenticate. As a result, the authentication fails.
CCIE.book Page 614 Monday, May 12, 2003 8:29 AM
As part of authentication proxy AAA configuration, the following two tasks need to be
completed:
• Authentication proxy accounting
• Configuration of TACACS+ server features
The hostname argument specifies the name or IP address of the server host—130.26.100.7 is
used in this example. The optional key argument is used for the authentication and encryption
between the router and the server. It has to match the key at the TACACS+ server.
The difference between the key portion of the host command and the universal tacacs-server
key command shown next is that the universal key command dictates the key for all server
hosts. The host key command, on the other hand, names the key for a specific host and takes
precedence over the universal key command.
R6(config)#tacacs-server key key
Example 18-21 demonstrates the AAA portion of the authentication proxy configuration.
Example 18-21 AAA Configuration
R6#show run
hostname R6
!
aaa new-model
!
! Output omitted for brevity
!
aaa authentication login default group tacacs+
aaa authentication login no_login enable local line none
aaa authentication enable default group tacacs+
aaa authorization auth-proxy default group tacacs+
aaa authorization configuration default group tacacs+
aaa accounting auth-proxy default start-stop group tacacs+
aaa accounting exec default start-stop group tacacs+
!
tacacs-server host 130.26.100.7 key cisco6727
The authentication proxy uses the HTTP server to communicate with the client for user
authentication. Then you need to get the HTTP server to use AAA as the authentication method.
Use the following command:
R6(config)#ip http authentication aaa
This command sets the idle timer for the authentication proxy. When the specified minutes
elapse with no traffic passed, the user authentication entries are removed.
The following command is optional. It displays the name of the router in the authentication
login dialog box.
R6(config)#ip auth-proxy auth-proxy-banner
Next you create rules that govern authentication proxy. The name of the authentication proxy
specified in the following command is associated with the HTTP protocol traffic:
R6(config)#ip auth-proxy name auth-proxy-name http
Without an access list option used with the ip auth-proxy name command, as is the case with
this scenario, the named authentication proxy rule applies to all HTTP request traffic received
at the configured interface, regardless of the source.
Example 18-22 combines the global and interface authorization proxy configuration with the
HTTP server configuration.
Example 18-22 Authentication Proxy Configuration
R6#show run
hostname R6
!
! Output omitted for brevity
!
ip auth-proxy auth-proxy-banner
ip auth-proxy auth-cache-time 5
ip auth-proxy name auth http
!
interface FastEthernet0/0
ip address 130.100.26.6 255.255.255.224
ip auth-proxy auth
!
ip http server
ip http authentication aaa
When the user profiles are dynamically added to the interface, the authentication proxy displays
a notification of the successful login, as shown in Figure 18-29.
R6#show run
hostname R6
!
continues
CCIE.book Page 618 Monday, May 12, 2003 8:29 AM
Because the theory behind most of the keywords has already been explained, Table 18-1 is a
quick recap of what each command is supposed to accomplish.
Table 18-1 Authentication Command Summary
Command Definition
aaa authentication login Specifies the TACACS+ server as the authentication method at login for
default group tacacs+ all interfaces.
aaa authentication login Configures the method list named no_login. It’s effective on those
no_login enable local line interfaces where it’s applied, and it overrides the default method. The
none sequence of authentication methods is as follows: the enable password
is tried first, and then the local database is consulted, and then the line
password. Finally, if all these methods return an error, the user is granted
permission without authentication.
aaa authentication enable Enables user ID and password checking by all TACACS+ hosts for users
default group tacacs+ requesting privileged EXEC level.
R6#show run
!
! Output omitted for brevity
!
aaa authorization config-commands
aaa authorization exec default group tacacs+ if-authenticated
aaa authorization commands 3 default group tacacs+
aaa authorization commands 15 default group tacacs+
aaa authorization auth-proxy default group tacacs+
aaa authorization configuration default group tacacs+
Command Definition
aaa authorization config-commands Defines authorization for all EXEC mode commands,
including those related to a specific privilege level. Privilege
level configuration is introduced in the following section.
aaa authorization exec default Tells the router to contact the TACACS+ server to determine
group tacacs+ if-authenticated whether the user is permitted to use an EXEC shell. In case
of an error from the TACACS+ server, the user is allowed
to enter the shell anyway with proper authenticated.
aaa authorization commands 3 Consults the TACACS+ server to enable authorization for
default group tacacs+ specific, individual EXEC commands associated with levels
aaa authorization commands 15 3 and 15.
default group tacacs+
aaa authorization configuration Downloads configurations from the TACACS+ server.
default group tacacs+
R6#show run
!
! Output omitted for brevity
!
privilege configure level 3 snmp-server
privilege configure level 3 config t
privilege configure level 3 config terminal
privilege exec level 3 show start
privilege exec level 3 write memory
privilege exec level 3 config terminal
You can see that the user EXEC and global configuration modes at privilege level 3 have been
enabled for three commands each.
Now the combined start-stop records take the form of EXEC-start, network-start, network-stop,
EXEC-stop.
The following command generates an accounting “stop” record for users who failed authenti-
cation. It overrides the default of generating records for only those who passed authentication:
R6(config)#aaa accounting send stop-record authentication failure
CCIE.book Page 621 Monday, May 12, 2003 8:29 AM
The next command presented prevents accounting records from being generated for users who
do not have usernames associated with them. Sometimes because of protocol translation, the
user’s username string is NULL. By default, the Cisco IOS software issues accounting records
for all users on the system. The following command ensures that those with the NULL
username won’t have the accounting records generated for them:
R6(config)#aaa accounting suppress null-username
The following command forces the interim accounting records for the system users to be sent
to the AAA server:
R6(config)#aaa accounting update [newinfo] [periodic min]
When the keyword newinfo is specified, the records are sent every time new information is
recorded. When you add periodic, interim accounting records are sent periodically as well.
Example 18-26 shows all the AAA accounting commands discussed in this case study.
Example 18-26 AAA Accounting
R6#show run
!
! Output omitted for brevity
!
aaa accounting suppress null-username
aaa accounting send stop-record authentication failure
aaa accounting nested
aaa accounting update newinfo periodic 5
aaa accounting auth-proxy default start-stop group tacacs+
aaa accounting exec default start-stop group tacacs+
aaa accounting connection default start-stop group tacacs+
aaa accounting system default start-stop group tacacs+
aaa accounting resource default start-stop group tacacs+
%& %
#$$'(#)* %& % #$$'(#)* $
"#$ % "#$ %
" ""
While configuring PPP callback with TACACS+, you follow these steps:
Step 1 Configure the ACS server.
Also, check the options for PPP IP and PPP LCP under the TACACS+ Settings of the
User Setup, as shown in Figure 18-32. In the PPP LCP category, check the Callback rotary
box and enter the rotary group number that matches the rotary group number configured on
your callback server. In this case study, you use the number 10. When you are done, click
Submit to make the changes take effect.
R6#show run
hostname R6
!
username R8 password 0 cisco
!
isdn switch-type basic-ni
!
interface BRI0/0
no ip address
encapsulation ppp
dialer pool-member 1
isdn switch-type basic-ni
isdn tei-negotiation first-call
isdn spid1 6661 6666
isdn spid2 6662 6666
no cdp enable
ppp authentication chap
!
interface Dialer1
ip address 172.22.85.2 255.255.255.0
encapsulation ppp
ip ospf cost 65535
ip ospf demand-circuit
dialer pool 1
dialer idle-timeout 60
dialer string 8888
dialer hold-queue 20
dialer-group 1
no peer default ip address
no cdp enable
ppp callback request
ppp authentication chap
ppp chap hostname R6
ppp chap password 0 cisco
!
dialer-list 1 protocol ip permit
Notice that the username command is configured on the router. This is because R6
authenticates R8 locally via PPP CHAP.
CCIE.book Page 625 Monday, May 12, 2003 8:29 AM
R8#show run
hostname R8!
isdn switch-type basic-ni
!
interface BRI0/0
no ip address
encapsulation ppp
ip ospf cost 65535
dialer rotary-group 10
isdn switch-type basic-ni
isdn spid1 8881 8888
isdn spid2 8882 8888
no cdp enable
ppp authentication chap
!
interface Dialer10
ip address 172.22.85.1 255.255.255.0
encapsulation ppp
ip ospf cost 65535
dialer in-band
dialer idle-timeout 60
dialer enable-timeout 5
dialer hold-queue 20
dialer-group 1
no peer default ip address
ppp callback accept
ppp authentication chap callin
!
dialer-list 1 protocol ip permit
You can specify a number of PPP login authentication methods. Among them is group tacacs+,
used in this case study. The specific format of the command applied to this scenario is aaa
authentication ppp default group tacacs+. This command designates the TACACS+ server
as the default method of authenticating the caller.
The aaa authorization network command enables authorization for all network-related
service requests, such as Serial Line Internet Protocol (SLIP), PPP, PPP Network Control
Protocol (NCP), and Apple Remote Access Protocol (ARAP). As a result, the aaa
authorization network default group tacacs+ command used in Example 18-29 defines the
network default authorization method, which specifies that TACACS+ authorization is used on
serial connections using PPP. Also shown in Example 18-29, the method list is called login.
Example 18-29 Callback Server AAA Configuration
R8#show run
!
! Output omitted for brevity
!
aaa new-model
aaa authentication login none
aaa authentication ppp default group tacacs+
aaa authorization network default group tacacs+
aaa authorization configuration default group tacacs+
aaa accounting network default start-stop group tacacs+
aaa accounting system default start-stop group tacacs+
!
tacacs-server host 192.168.1.7
tacacs-server directed-request
tacacs-server key cisco6727
The dialer aaa command lets the dialer interface access the AAA server and retrieve the user
profile from there. Example 18-30 shows how this command fits into the dialer interface
configuration.
Example 18-30 Interface Dialer Configuration with the dialer aaa Command
R8#show run
!
! Output omitted for brevity
!
interface Dialer10
ip address 172.22.85.1 255.255.255.0
ip ospf cost 65535
encapsulation ppp
dialer in-band
dialer idle-timeout 60
dialer enable-timeout 5
CCIE.book Page 627 Monday, May 12, 2003 8:29 AM
Example 18-30 Interface Dialer Configuration with the dialer aaa Command (Continued)
dialer hold-queue 20
dialer aaa
dialer-group 1
no peer default ip address
ppp callback accept
ppp authentication chap callin
Summary
In this chapter you learned how to configure authentication, authorization, and accounting
(AAA). This includes configuring the ACS server, VPN 3000 Client, Cisco router, and PIX
Firewall.
AAA is an essential element of network security and an important component of the CCIE
Security lab exam. This chapter has given you a broad range of the AAA setup combinations.
It serves as a solid base in your preparation for becoming a network security expert.
Review Questions
1 What port does Cisco’s implementation of TACACS use?
7 What do you need to do to enable the PIX Shell (pixshell) option for the Group Setup?
8 What is the syntax for configuring a Telnet password on the PIX Firewall?
10 What does the aaa authorization exec default group tacacs+ if-authenticated
command tell the router to do?
CCIE.book Page 628 Monday, May 12, 2003 8:29 AM
FAQs
Q — Can RADIUS understand Cisco IOS authorization?
A — No. RADIUS was developed by Livingston for multivendor use. It doesn’t under-
stand Cisco IOS and therefore can’t understand different privilege levels for use
with command authorization.
Q — Can TACACS+ understand Cisco IOS authorization?
A — Yes. TACACS+ is a Cisco product and was designed to understand Cisco IOS,
including command authorization.
Q — Why do I need accounting in AAA?
A — Accounting is used to track user activity, create billing information, and protect
against repudiation by providing a record of user activity.
Q — What is the reason to assign privilege levels with AAA?
A — Privilege levels are meant to authorize users at a certain privilege level to a limited
set of commands for security purposes.
Q — Can PIX Firewall use TACACS+ or RADIUS?
A — Yes. The PIX Firewall software can make equally good use of the TACACS+ and
RADIUS-offered services.
Q — Why do I need SSH authentication?
A — SSH authentication is deployed to force a user to identify himself before gaining
access via Secure Shell.
Q — Why do I need to use NAT 0 for VPN Client networks?
A — NAT 0 means “do not translate.” In the context of VPN Client networks, it prevents
the pool of reserved inside addresses that outside clients use to access the internal
network from being translated back into the outside addresses.
Q — What is the main command to query AAA authorization for callback under
interface?
A — Use the dialer aaa command. Don’t forget to set it under the interface configura-
tion. Otherwise, your AAA configuration for callback won’t work.
CCIE.book Page 629 Monday, May 12, 2003 8:29 AM
CCIE.book Page 630 Monday, May 12, 2003 8:29 AM
CHAPTER 19
Site-to-Site VPNs
When you have two or more business locations that require connectivity between them, you
can either use a traditional connectivity method such as Frame Relay, ISDN, or ATM, or
consider implementing a VPN. A site-to-site VPN provides permanent connectivity between
two VPN endpoints, effectively directly connecting the two networks. A VPN endpoint
CCIE.book Page 632 Monday, May 12, 2003 8:29 AM
device is located at each location; these are responsible for the VPN creation and the delivery
of encrypted traffic over the VPN. Where more than two sites need to be linked, site-to-site
VPNs are deployed in either hub-and-spoke or full-mesh topologies. Figure 19-1 shows a hub-
and-spoke and fully meshed VPN.
! " #
Site-to-site VPNs can be further broken into two subtypes—intranet and extranet:
• Intranet VPNs link enterprise customer headquarters, remote offices, and branch offices to
a central internal network over a public network such as the Internet using dedicated
connections. Intranet VPNs differ from extranet VPNs in that they allow access only to the
company’s employees.
• Extranet VPNs link outside customers, suppliers, partners, or communities of interest to
an enterprise customer’s network over a shared infrastructure using dedicated encrypted
tunnels to ensure data security and privacy. Extranet VPNs differ from intranet VPNs in
that they allow access to users outside the enterprise.
The key benefits of site-to-site VPNs over traditional connectivity methods are cost savings and
scalability. With traditional connectivity methods, as your business grows, the requirement for
extra connectivity requires a large number of private circuits. These private circuits can be
either physical lines or logical virtual circuits, but either way, the costs increase greatly with
each additional connected site. In an organization that is geographically dispersed or that has
international costs, private circuits can be even more prohibitively expensive.
With site-to-site VPNs, connectivity is established between sites using the public Internet
connection. The VPN endpoints create the VPN tunnel and transfer encrypted data between the
required sites over the existing Internet connection. As you add more sites to the VPN, you must
make a configuration change on the VPN endpoint. There might also be a requirement to invest
further in the Internet connections at the VPN endpoints to ensure that adequate bandwidth is
available for the VPN traffic.
CCIE.book Page 633 Monday, May 12, 2003 8:29 AM
Remote-Access VPNs
Remote-access connectivity is traditionally implemented using a dial-based infrastructure over
the Public Switched Telephone Network (PSTN). This design has serious scalability issues that
are directly related to cost. The more simultaneous connections you require, the more lines you
have to provision into the network access server (NAS). You also have to ensure that adequate
interfaces exist on the NAS and that the NAS has sufficient capacity to take the number of
required interfaces.
A remote-access VPN typically uses the Internet to provide secure connectivity to remote and
home-based users. Remote users connect to the Internet using their Internet service provider
(ISP) and then launch a VPN client application to create the VPN tunnel to the central site,
ensuring that all communications between the user’s PC and the office are passed via a secure
encrypted tunnel. After this is established, the user can access network resources as though they
were directly connected to the business network, unless access controls have been applied to
limit his or her access.
The central site no longer requires a separate dial platform, because each remote-access user
enters the corporate network over the public Internet connection. This reduces the number of
perimeter entry points to one—the public Internet connection. Because every perimeter access
point to a network is considered a security risk, using a remote-access VPN allows security to
be improved and more accurately controlled and monitored. In addition, some of the financial
savings from not having to provide a dial infrastructure can be used to provide resilience on the
main Internet connection in case of failure. A popular method of user connectivity is to use
existing ISP flat-rate dial service offerings.
It is important to remember that the use of a remote-access VPN might require the Internet
bandwidth at the central site to be increased to support the remote users. This is becoming more
of a problem as high-bandwidth connectivity options such as DSL are becoming more available
to the home user.
IPSec Overview
IPSec is a developing open framework of protocols from the IETF, as outlined in RFC 2401,
Security Architecture for the Internet Protocol. (Visit www.ietf.org to search for other IPSec-
related RFCs and information.) Cisco has used this framework to incorporate IPSec protocol
suite features into its Cisco IOS software and PIX software.
IPSec acts at the network layer, protecting and authenticating IP packets between a VPN
endpoint and other participating VPN endpoints running IPSec such as other PIX Firewalls,
Cisco routers, the Cisco VPN Client, or the VPN 3000 Concentrator series.
CCIE.book Page 634 Monday, May 12, 2003 8:29 AM
NOTE One important point to remember is that AH does not provide encryption. AH also does not
function in tunnel mode over NAT. Because of these limiting factors, AH is rarely used in
today’s VPNs, although it might appear on the lab exam.
The AH function is applied to the entire packet except for any mutable IP header fields that
change in transit, such as Time To Live (TTL) fields that are modified by the routers along the
transmission path. AH works like this:
1 The IP header and data payload are hashed.
2 The hash is used to build a new AH header, which is prepended to the original packet.
CCIE.book Page 635 Monday, May 12, 2003 8:29 AM
The peer router hashes the IP header and data payload, extracts the transmit-
ted hash from the AH header, and compares the two hashes. The hashes must
match exactly. If even 1 bit is changed in the transmitted packet, the hash out-
put on the received packet changes, and the AH header does not match.
Figure 19-2 illustrates this process.
! "
! "
#$%&' #$%&'
(
("
("
$
NOTE A common problem is whether to use AH or ESP. The basic rule is that if you require data
confidentiality through encryption, you must use ESP.
CCIE.book Page 636 Monday, May 12, 2003 8:29 AM
In addition to DES, 3DES, and AES, IPSec uses other existing security standards to make up a
protocol suite. These are explained in the next sections.
NOTE IKE is synonymous with Internet Security Association and Key Management Protocol
(ISAKMP) in Cisco router or PIX Firewall configurations.
A common value used by all authentication methods is the peer identity (ID), which helps
identify the peer. Some ID values used are as follows:
• The peer’s IP address (four octets), such as 172.30.2.2
• The fully qualified domain name (FQDN), such as demo@example.com
Diffie-Hellman (DH)
Diffie-Hellman (DH) is a public-key cryptography protocol. It allows two parties to establish a
shared secret key used by encryption algorithms (DES and MD5, for example) over an insecure
communications channel. DH is used within IKE to establish session keys. 768-bit (group 1),
1024-bit (group 2), and 1536-bit (group 5) DH groups are supported in the Cisco routers and
PIX Firewall. The 1536-bit group is more secure.
Preshared Keys
With preshared keys, the same preshared key is configured on each IPSec peer. IKE peers
authenticate each other by computing and sending a keyed hash of data that includes the
preshared key. If the receiving peer can independently create the same hash using its preshared
key, it knows that both peers must share the same secret, thus authenticating the other peer.
Configuring preshared keys is easier than manually configuring IPSec policy values on each
IPSec peer, yet preshared keys do not scale well because each IPSec peer must be configured
with the preshared key of every other peer it establishes a session with.
RSA Signatures
The RSA signatures method uses a digital signature in which each device digitally signs a set of
data and sends it to the other party. RSA signatures use a certificate authority (CA) to generate
a unique identity digital certificate that is assigned to each peer for authentication. The identity
CCIE.book Page 639 Monday, May 12, 2003 8:29 AM
digital certificate is similar in function to the preshared key but provides protection against the
generation of a weak preshared key, improved key storage, and scalability.
RSA Encryption
The RSA-encrypted nonces method uses the RSA encryption public key cryptography stan-
dard. It requires that each party generate a pseudorandom number (a nonce) and encrypt it in
the other party’s RSA public key. Authentication occurs when each party decrypts the other
party’s nonce with a local private key (and other publicly and privately available information)
and then uses the decrypted nonce to compute a keyed hash. This system provides for deniable
transactions. That is, either side of the exchange can plausibly deny that it took part in the
exchange. Cisco IOS software is the only Cisco product that uses RSA encrypted nonces for
IKE authentication. RSA encrypted nonces use the RSA public key algorithm.
The following are some examples of when to use tunnel or transport mode (see Figure 19-3):
• Tunnel mode is most commonly used to encrypt traffic between secure IPSec gateways,
such as between Cisco router A and PIX Firewall B in Figure 19-3. The IPSec devices
proxy IPSec for the devices behind them, such as Terry’s PC and the HR servers in the
figure. Terry connects to the HR servers securely through the IPSec tunnel set up between
the gateways.
• Tunnel mode is also used to connect an end station running IPSec software, such as the
Cisco VPN Client, to an IPSec gateway. In this instance, Terry’s PC would form an IPSec
tunnel with PIX Firewall B.
• Tunnel mode can also be used to set up an IPSec tunnel between Cisco router A and a
server, such as the HR server, running IPSec software. Note that Cisco IOS software and
the PIX Firewall set tunnel mode as the default IPSec mode.
• Transport mode is used between end stations supporting IPSec, or between an end station
and a gateway if the gateway is being treated as a host. For example, transport mode would
be run between router A and PIX B in Figure 19-3.
IPSec Operation
IPSec involves many component technologies and encryption methods, but its operation can be
broken into five main phases:
1 Interesting traffic initiates the IPSec process—Traffic is deemed interesting when
the IPSec security policy configured in the IPSec peers starts the IKE process. This is
normally traffic that meets a special configured access list in the same way that dial traffic
meets a dial access list to initiate a dial-on-demand routing (DDR) connection.
2 IKE phase 1—IKE authenticates IPSec peers and negotiates IKE SAs during this phase,
setting up a secure channel for negotiating IPSec SAs in phase 2.
3 IKE phase 2—IKE negotiates IPSec SA parameters and sets up matching IPSec SAs in
the peers.
CCIE.book Page 641 Monday, May 12, 2003 8:29 AM
4 Data transfer—Data is transferred between IPSec peers based on the IPSec parameters
and keys stored in the SA database.
5 IPSec tunnel termination—IPSec SAs terminate through deletion or by timing out.
Each phase of this process is described in more detail in the following sections.
IKE Phase 1
The basic purpose of IKE phase 1 is to authenticate the IPSec peers and to set up a secure
channel between the peers to enable IKE exchanges. IKE phase 1 performs the following
functions:
• Authenticates and protects the identities of the IPSec peers
• Negotiates a matching IKE SA policy between peers to protect the IKE exchange
• Performs an authenticated Diffie-Hellman exchange that results in matching shared secret
keys
• Sets up a secure tunnel to negotiate IKE phase 2 parameters
IKE phase 1 occurs in two modes: main mode and aggressive mode.
Main Mode
Main mode has three two-way exchanges between the initiator and receiver:
1 The algorithms and hashes used to secure the IKE communications are agreed on in
matching IKE SAs in each peer.
2 The second exchange uses a Diffie-Hellman exchange to generate shared secret key
material that generates shared secret keys and to pass nonces, which are random numbers
that are sent to the other party and then are signed and returned to prove their identity.
3 The third exchange verifies the other side’s identity. The identity value is the IPSec peer’s
IP address in encrypted form.
CCIE.book Page 642 Monday, May 12, 2003 8:29 AM
The primary outcome of main mode is matching IKE SAs between peers to provide a protected
pipe for subsequent protected ISAKMP exchanges between the IKE peers. The IKE SA
specifies the following values for the IKE exchange:
• The authentication method used
• The encryption and hash algorithms
• The Diffie-Hellman group used
• The lifetime of the IKE SA in seconds or kilobytes
• The shared secret key values for the encryption algorithms
The IKE SA in each peer is bidirectional.
Aggressive Mode
In aggressive mode, fewer exchanges are done and with fewer packets. On the first exchange,
almost everything is squeezed into the proposed IKE SA values: the Diffie-Hellman public key,
a nonce that the other party signs, and an identity packet that can be used to verify their identity
via a third party. The receiver sends back everything that is needed to complete the exchange.
The only thing left is for the initiator to confirm the exchange. The weakness of using aggressive
mode is that both sides exchange information before there is a secure channel. Therefore, it is
possible to sniff the wire and discover who formed the new SA. However, aggressive mode
is faster than main mode.
IKE Phase 2
The purpose of IKE phase 2 is to negotiate IPSec SAs to set up the IPSec tunnel. IKE phase 2
performs the following functions:
• Negotiates IPSec SA parameters protected by an existing IKE SA
• Establishes IPSec security associations
• Periodically renegotiates IPSec SAs to ensure security
• Optionally performs an additional Diffie-Hellman exchange
IKE phase 2 has one mode—quick mode. Quick mode occurs after IKE establishes the secure
tunnel in phase 1. It negotiates a shared IPSec policy, derives shared secret key material used
for the IPSec security algorithms, and establishes IPSec SAs. Quick mode exchanges nonces
that provide replay protection. The nonces generate new shared secret key material and prevent
replay attacks from generating bogus SAs.
Quick mode is also used to renegotiate a new IPSec SA when the IPSec SA lifetime expires.
Base quick mode refreshes the key material that creates the shared secret key based on the key
material derived from the Diffie-Hellman exchange in phase 1.
CCIE.book Page 643 Monday, May 12, 2003 8:29 AM
NOTE If perfect forward secrecy (PFS) is specified in the IPSec policy, a new Diffie-Hellman exchange
is performed with each quick mode, providing key material that has greater entropy (key
material life) and thereby greater resistance to cryptographic attacks. Each Diffie-Hellman
exchange requires large exponentiations, thereby increasing CPU use and exacting a
performance cost.
Tunnel Termination
IPSec SAs terminate through deletion or by timing out. An SA can time out when a specified
number of seconds have elapsed or when a specified number of bytes have passed through the
tunnel. When the SAs terminate, the keys are also discarded. When subsequent IPSec SAs are
needed for a flow, IKE performs a new phase 2 negotiation and, if necessary, a new phase 1
negotiation. A successful negotiation results in new SAs and new keys. New SAs can be
established before the existing SAs expire so that a given flow can continue uninterrupted.
You will start by looking at a basic IOS-to-IOS IPSec configuration and a basic PIX-to-PIX
IPSec configuration, both using preshared keys. Basic show and debug commands will be
explained for each technology.
You then will expand on these initial configurations and cover more-advanced scenarios.
!
R4
hostname R4
interface Ethernet0
ip address 192.168.1.1 255.255.255.0
no ip directed-broadcast
interface Serial1
ip address 20.0.0.4 255.0.0.0
ip route 0.0.0.0 0.0.0.0 Serial1
line con 0
exec-timeout 0 0
transport input none
line aux 0
line vty 0 4
CCIE.book Page 645 Monday, May 12, 2003 8:29 AM
R4 and R5 are both set up as the single egress point from the network, so they both have static
default routes pointing to their respective serial interfaces.
Both of the routers’ serial interfaces are publicly addressed and connected. Before you start the
IPSec configuration, you have to ensure that these routers can communicate with each other.
For the IPSec peer relationship to be formed, Layer 3 communications must be established
between both peers. The best way to check this is to ping the remote IPSec peer from the local
IPSec peer at each end, as shown in Example 19-2.
Example 19-2 Testing Connectivity
R4#ping 20.0.0.5
R5#ping 20.0.0.4
You can see from Example 19-2 that R4 can ping R5’s serial interface and vice versa. This
confirms that communication between these peers exists.
Now that you have a working routing configuration, you will add the IPSec components to get
to a stage where you have a fully working IPSec configuration. When you reach this point, you
will introduce errors to the configuration and compare the results.
CCIE.book Page 646 Monday, May 12, 2003 8:29 AM
You will now look at IPSec’s configuration. Like the steps described in the section “IPSec
Operation,” IPSec configuration also can be broken into steps. Four steps are involved in
configuring IPSec:
Step 1 Prepare for IKE and IPSec.
• Task 3—Configure preshared keys with the crypto isakmp key command and associated
commands.
• Task 4—Verify the IKE configuration with the show crypto isakmp policy command.
The priority argument uniquely identifies the IKE policy and assigns it a priority. Use an integer
from 1 to 10000, with 1 being the highest priority and 10000 being the lowest.
NOTE Assign the most-secure policy the lowest-priority number so that the most-secure policy finds
a match before any less-secure policies are configured.
The crypto isakmp policy command invokes the IKE policy configuration command mode
(config-isakmp), where you can set IKE parameters. If you do not specify one of these com-
mands for a policy, the default value is used for that parameter.
While in config-isakmp command mode, the keywords described in Table 19-1 are available to
specify the parameters in the policy.
CCIE.book Page 648 Monday, May 12, 2003 8:29 AM
lifetime Can specify any 86,400 seconds ISAKMP-established SA’s lifetime. You
number of seconds. (one day) can usually leave this value at the
default.
exit — — Exits config-isakmp mode.
NOTE Versions of the Cisco IOS software starting from 12.2(13)T might support AES.
You can configure multiple ISAKMP policies on each peer participating in IPSec. ISAKMP peers
negotiate acceptable ISAKMP policies before agreeing on the SA to be used for IPSec.
When the ISAKMP negotiation begins in IKE phase 1 main mode, ISAKMP looks for an
ISAKMP policy that is the same on both peers. The peer that initiates the negotiation sends all
its policies to the remote peer, and the remote peer tries to find a match with its policies. The
remote peer looks for a match by comparing its own highest-priority policy against the other
peer’s received policies in its ISAKMP policy suite. The remote peer checks each of its policies
in order of priority (highest-priority first) until a match is found.
A match is made when both policies from the two peers contain the same encryption, hash,
authentication, and Diffie-Hellman parameter values, and when the remote peer’s policy
specifies a lifetime less than or equal to the lifetime in the policy being compared. (If the
lifetimes are not identical, the shorter lifetime from the remote peer’s policy is used.) Assign
the most-secure policy the lowest-priority number so that the most-secure policy finds a match
before any less-secure policies are configured.
If no acceptable match is found, ISAKMP refuses negotiation, and IPSec is not established. If
a match is found, ISAKMP completes the main mode negotiation, and IPSec SAs are created
during IKE phase 2 quick mode.
CCIE.book Page 649 Monday, May 12, 2003 8:29 AM
The address keyword sets the ISAKMP identity to the IP address of the interface that is used
to communicate with the remote peer during ISAKMP negotiations. This keyword typically is
used when the peer uses only one interface for ISAKMP negotiations and the IP address is
known.
The hostname keyword sets the ISAKMP identity to the host name concatenated with the
domain name (for example, myhost.domain.com). This keyword should be used if more than
one interface on the peer might be used for ISAKMP negotiations, or if the interface’s IP
address is unknown (such as with dynamically assigned IP addresses).
If you use the host name identity method, you might need to specify the host name for the
remote peer if a DNS server is unavailable for name resolution. Here’s an example:
R4(config)#ip host R5.domain.com 172.30.2.1
Configure a preshared authentication key with the crypto isakmp key global configuration
command. You must configure this key whenever you specify preshared keys in an ISAKMP
policy. Use the no form of this command to delete a preshared authentication key. The
command syntax is as follows:
R4(config)#crypto isakmp key keystring address peer-address
R4(config)#crypto isakmp key keystring hostname peer-hostname
The keystring argument specifies the preshared key. Use any combination of alphanumeric
characters up to 128 bytes. This preshared key must be identical at both peers.
The peer-address argument specifies the IP address of the remote peer.
The peer-hostname argument specifies the host name of the remote peer. This is the peer’s host
name concatenated with its domain name (for example, myhost.domain.com).
NOTE A given preshared key is shared between two peers. At a given peer, you could specify the same
key to share with multiple remote peers; however, a more secure approach is to specify different
keys to share between different pairs of peers.
CCIE.book Page 650 Monday, May 12, 2003 8:29 AM
Example 19-3 shows IKE and preshared keys for R4 and R5. Note that the keystring of
cisco1234 matches. The address identity method is specified. The IKE policies are compatible.
Default values do not have to be configured.
Example 19-3 IKE and Preshared Keys
The transform-set-name argument specifies the name of the transform set to create (or modify).
The transform1, transform2, and transform3 options specify up to three transforms. These
transforms define the IPSec security protocol(s) and algorithm(s).
This command invokes crypto-transform configuration mode.
You can configure multiple transform sets and then specify one or more in a crypto map entry.
The transform set defined in the crypto map entry is used in the IPSec SA negotiation to protect
the data flows specified by that crypto map entry’s ACL. During the negotiation, the peers
search for a transform set that is the same at both peers. When such a transform set is found, it
is selected and applied to the protected traffic as part of both peers’ IPSec SAs.
When ISAKMP is not used to establish SAs, a single transform set must be used. The transform
set is not negotiated.
Transform sets are limited to one AH transform and one or two ESP transforms. Some sample
combinations follow.
The following example uses ESP encryption with 56-bit DES. The transform set is called
simple:
R4(config)#crypto ipsec transform-set simple esp-des
CCIE.book Page 652 Monday, May 12, 2003 8:29 AM
The following example uses ESP authentication with MD5 and ESP encryption with 56-bit DES:
R4(config)#crypto ipsec transform-set noAH esp-md5-hmac esp-des
An alternative method is to reenter the transform set with the new transforms, as shown in
Example 19-5.
Example 19-5 Transform Sets
! Change it:
R4(config)#crypto ipsec transform-set R4 esp-des
R4(cfg-crypto-trans)#exit
R4(config)#
! Now:
crypto ipsec transform-set R4 esp-des
Transform sets are negotiated during quick mode in IKE phase 2 using the transform sets you
previously configured. Configure the transforms from most-secure to least-secure as per your
policy. IPSec peers agree on one transform proposal per SA (unidirectional).
can change global IPSec security association lifetime values using the crypto ipsec security-
association lifetime global configuration command. To reset a lifetime to the default value, use
the no form of the command. The command syntax is as follows:
R4(config)#crypto ipsec security-association lifetime {seconds seconds | kilobytes
kilobytes}
seconds seconds specifies the number of seconds a security association lives before expiring.
The default is 3600 seconds (one hour).
kilobytes kilobytes specifies the volume of traffic (in kilobytes) that can pass between IPSec
peers using a given security association before that security association expires. The default is
4,608,000 kilobytes.
Cisco recommends that you use the default lifetime values. Individual IPSec SA lifetimes can
be configured using crypto maps, which are covered in the “Creating Crypto Maps” section.
The permit keyword causes all IP traffic that matches the specified conditions to be protected
by crypto, using the policy described by the corresponding crypto map entry. The deny
keyword instructs the router to route traffic in the clear.
source and destination, including the wildcards, are networks, subnets, or hosts.
CCIE.book Page 654 Monday, May 12, 2003 8:29 AM
CAUTION Cisco recommends that you avoid using the any keyword to specify source or destination
addresses. The permit any any statement is strongly discouraged, because it causes all
outbound traffic to be protected (and all protected traffic sent to the peer specified in the
corresponding crypto map entry) and requires protection for all inbound traffic. Then, all
inbound packets that lack IPSec protection are silently dropped, including packets for routing
protocols, NTP, echo, echo response, and so on.
Cisco recommends that you configure mirror-image crypto ACLs for use by IPSec. Both
inbound and outbound traffic are evaluated against the same “outbound” IPSec ACL. The ACL’s
criteria are applied in the forward direction to traffic exiting your router and in the reverse
direction to traffic entering your router. When a router receives encrypted packets back from an
IPSec peer, it uses the same ACL to determine which inbound packets to decrypt by viewing
the source and destination addresses in the ACL in reverse order.
NOTE You can apply only one crypto map set to a single interface.
If you create more than one crypto map entry for a given interface, use each map entry’s
sequence number (seq-num) to rank the map entries: The lower the seq-num, the higher the
priority. At the interface that has the crypto map set, traffic is evaluated against higher-priority
map entries first.
You must use the crypto map global configuration command to create or modify a crypto map
entry and enter crypto map configuration mode. Set the crypto map entries referencing dynamic
maps to be the lowest-priority entries in a crypto map set (that is, to have the highest sequence
numbers). Use the no form of this command to delete a crypto map entry or set. The command
syntax is as follows:
R4(config)#crypto map map-name seq-num ipsec-manual
R4(config)#crypto map map-name seq-num ipsec-isakmp [dynamic dynamic-map-name]
R4(config)#no crypto map map-name [seq-num]
map-name is the name you assign to the crypto map set, and seq-num is the number you assign
to the crypto map entry.
The ipsec-manual keyword indicates that ISAKMP is not used to establish the IPSec security
associations for protecting the traffic specified by this crypto map entry.
ipsec-isakmp indicates that ISAKMP is used to establish the IPSec security associations for
protecting the traffic specified by this crypto map entry.
dynamic and dynamic-map-name are optional. dynamic specifies that this crypto map entry
references a preexisting static crypto map. If you use this keyword, none of the crypto map
configuration commands are available. dynamic-map-name specifies the name of the dynamic
crypto map set that should be used as the policy template.
When you enter the crypto map command, you invoke crypto map configuration mode with
the available commands shown in Example 19-6.
Example 19-6 crypto map Commands
R4(config-crypto-map)#?
default Set a command to its defaults
description Description of the crypto map statement policy
exit Exit from crypto map configuration mode
match Match values.
no Negate a command or set its defaults
reverse-route Reverse Route Injection.
set Set values for encryption/decryption
CCIE.book Page 656 Monday, May 12, 2003 8:29 AM
The following command has crypto map configuration mode with the commands and syntax
shown in Table 19-2:
R4(config)#crypto map
Command Description
set peer [hostname | ip-address] Specifies the allowed IPSec peer by IP address or host name.
set pfs [group1 | group2] Specifies Diffie-Hellman Group 1 or Group 2.
set transform-set [set_name(s)] Specifies a list of transform sets in order of priority. For an
ipsec-manual crypto map, you can specify only one
transform set. For an ipsec-isakmp or dynamic crypto map
entry, you can specify up to six transform sets.
set security-association lifetime Sets security association lifetime parameters in seconds or
kilobytes.
match address [access-list-id | name] Identifies the extended ACL by its name or number. The value
should match the access-list-number or name argument of a
previously defined IP-extended ACL being matched.
description Gives the crypto map a text description.
default Sets a command to its default value.
reverse-route Configures reverse route injection.
no Deletes commands entered in the crypto map.
exit Exits crypto map configuration mode.
After you define crypto map entries, you can assign the crypto map set to interfaces using the
crypto map interface configuration command.
NOTE ACLs for crypto map entries tagged as ipsec-manual are restricted to a single permit entry;
subsequent entries are ignored. The security associations established by that particular crypto
map entry are for only a single data flow. To be able to support multiple manually established
security associations for different kinds of traffic, define multiple crypto ACLs, and then apply
each one to a separate ipsec-manual crypto map entry. Each ACL should include one permit
statement defining what traffic to protect.
interface configuration mode. Use the no form of the command to remove the crypto map set
from the interface. The command syntax is as follows:
R4(config-if)#crypto map map-name
The map-name argument identifies the crypto map set and is the name assigned when the crypto
map is created.
As soon as you apply the crypto map, the SAs initialize. Only one crypto map set can be
assigned to an interface. If multiple crypto map entries have the same map-name but a different
seq-num, they are considered part of the same set and are all applied to the interface. The crypto
map entry with the lowest seq-num is considered the highest priority and is evaluated first.
CAUTION Be aware that applying the crypto map to an interface you are connecting through in-band
terminates your session to the router if you do not have IPSec configured on your system.
Because of this fact, Telnet sessions to configure IPSec should be used with caution, because it
is possible to cut yourself off from Telnet access to the router if you apply the crypto map to the
wrong interface. This is something to watch for on the lab exam.
R4(config)#interface serial 1
R4(config-if)#crypto map mymap
R4(config-if)#exit
R4(config)#
Example 19-7 shows that the crypto map called mymap has been applied to the Serial 1
interface on the router.
• Display the current state of your IPSec SAs with the show crypto ipsec sa command.
• View your configured crypto maps with the show crypto map command.
• Show the crypto engine information with the show crypto engine connections active
command.
• Debug crypto engine events with the debug crypto engine command.
• Debug IKE and IPSec traffic through the Cisco IOS software with the debug crypto ipsec
and debug crypto isakmp commands.
After you complete these tasks, you have the finished IPSec configurations, as shown in
Example 19-8.
Example 19-8 Finished IPSec Configurations
R4
crypto isakmp policy 110
authentication pre-share
hash md5
crypto isakmp key thisshouldbeaverysecurekey address 20.0.0.5
crypto ipsec transform-set MySet esp-des esp-md5-hmac
crypto map MyMap 10 ipsec-isakmp
set peer 20.0.0.5
set transform-set MySet
match address 100
interface Serial1
ip address 20.0.0.4 255.0.0.0
crypto map MyMap
access-list 100 permit ip 192.168.1.0 0.0.0.255 172.16.0.0 0.0.255.255
R5
crypto isakmp policy 110
authentication pre-share
hash md5
crypto isakmp key thisshouldbeaverysecurekey address 20.0.0.4
crypto ipsec transform-set MySet esp-des esp-md5-hmac
crypto map MyMap 10 ipsec-isakmp
set peer 20.0.0.4
set transform-set MySet
match address 100
interface Serial0
ip address 20.0.0.5 255.0.0.0
crypto map MyMap
access-list 100 permit ip 172.16.0.0 0.0.255.255 192.168.1.0 0.0.0.255
With this configuration in the routers, you can verify that Host A can successfully ping Host B
using the VPN.
CCIE.book Page 659 Monday, May 12, 2003 8:29 AM
The output in Example 19-10 shows the configured crypto map called MyMap. The information
here pertains to the remote IPSec peer and also to the access list that controls the encryption of
the IPSec traffic.
CCIE.book Page 660 Monday, May 12, 2003 8:29 AM
In Example 19-11, you can see the default policy (priority 65535, which is not shown) and the
configured ISAKMP policy of 110. You can see that you are using preshared keys and Diffie-
Hellman group 1.
Example 19-11 show crypto isakmp policy Command
Example 19-13 shows the output of the show crypto ipsec sa command. This command pre-
sents a lot of information. The first part shows the interface and crypto map name that are asso-
ciated with the interface. Then the inbound and outbound SAs are shown. These are either AH
or ESP SAs. In this case, because you used only ESP, there are no AH inbound or outbound SAs.
You can also see next to the PERMIT statement that a condition met by an ACL initiated the
IPSec connection.
Example 19-13 show crypto ipsec sa Command
interface: Serial1
Crypto map tag: MyMap,
MyMap local addr. 20.0.0.5
continues
CCIE.book Page 662 Monday, May 12, 2003 8:29 AM
outbound ah sas:
You can see from Example 19-14 that both of these routers have two ISAKMP policies, or
protection suites. The first has a priority of 110, and the default has a priority of 65535 (this
value is not shown). You can also see that the values for the priority 110 suite all match between
Routers 4 and 5. This is essential for ISAKMP negotiation.
The values controlled by the ISAKMP policy are
• Encryption algorithm
• Hash algorithm
• Authentication method
• Diffie-Hellman group
• SA lifetime
All these values can be set from ISAKMP configuration mode on the Cisco IOS router. The
output in Example 19-15 shows the available commands from ISAKMP configuration mode on
the router.
Example 19-15 Commands Available from ISAKMP Configuration Mode
ISAKMP commands:
authentication Set authentication method for protection suite
default Set a command to its defaults
continues
CCIE.book Page 664 Monday, May 12, 2003 8:29 AM
In addition to the show commands, the command debug crypto isakmp is useful when
troubleshooting ISAKMP issues. This command actually displays the full ISAKMP exchange
as it occurs in the router. The full debug output for a ping from the E0 interface of R4 to the E0
interface of R5 is shown in Example 19-16.
Example 19-16 debug crypto isakmp Command
In this output, notice the highlighted section. It shows that the ISAKMP values are acceptable,
and then the router continues with the ISAKMP negotiation process.
Example 19-16 shows what the debug output looks like in a working configuration. If you
change a value in the ISAKMP policy, though, you change the hash value from MD5 to SHA
on R4. Then observe the output from the debug crypto isakmp command.
First, look at the newly configured ISAKMP policy on R4 in Example 19-17.
Example 19-17 show crypto isakmp policy Command
The shaded line shows that the hash algorithm has been changed from MD5 to SHA. Now carry
out the same ping as before and look at the debug output (see Example 19-18).
Example 19-18 debug crypto isakmp Command
You can see from this debug output that there was a failure in the ISAKMP negotiation.
Check that the authentication method on both routers is set to preshared key; you can see from
the shaded lines in the example that it is. If the authentication methods do not match between
the routers, the ISAKMP negotiation fails, as outlined in the previous section.
You know that the routers are both using preshared keys as their authentication method. You
will now look at the preshared keys on both routers with the show crypto isakmp key
command (see Example 19-20).
Example 19-20 show crypto isakmp key Command
Example 19-20 shows the preshared keys for both R4 and R5. You can see that they match. You
now will change the key value for R4 to wrongkey. Example 19-21 shows the new output of the
show crypto isakmp key command on R3.
Example 19-21 show crypto isakmp key Command
This output shows that the preshared key for the IPSec peer 20.0.0.5 is now wrongkey.
After this configuration change, when you try to ping from Host A to Host B, R4 displays the
following debug message:
%CRYPTO-4-IKMP_BAD_MESSAGE:
IKE message from 20.0.0.5 failed its sanity check or is malformed
R4#show ip access
Extended IP access list 100
permit ip 192.168.1.0 0.0.0.255 172.16.0.0 0.0.255.255
This access list encrypts traffic from the 192.168.1.0/24 network that is destined for the
172.16.0.0/16 network. You will make a subtle change to this access list that will break the
IPSec process. You will remove the existing access list and add the following line of
configuration:
R4(config)#access-list 100 permit ip 192.168.2.0 0.0.0.255
172.16.0.0 0.0.255.255
Note that this line encrypts traffic from the 192.168.2.0/24 network and not the original
192.168.1.0/24 network. After you make this change, Host A attempts to ping Host B.
Obviously, this fails.
If you are ever faced with a real-world problem similar to this, your first step should always be
to ascertain whether the VPN is established between the IPSec peers. There are various ways
to accomplish this on a Cisco IOS router. The easiest way is to use the show crypto engine
connections active command. This command displays the current state of the IPSec connec-
tions (if any). Example 19-23 shows the result of running this command on R3.
CCIE.book Page 669 Monday, May 12, 2003 8:29 AM
You can see that there are no active IPSec connections. If you can verify that relevant traffic has
passed the connection that should start the IPSec process, the problem is with the IPSec access
list. A simple sanity check of the IPSec access list should be enough to remedy the problem.
This command makes the interface a VPN termination point. Any traffic leaving this interface
is checked against the IPSec access list. If the traffic matches the IPSec access list, it is encrypted
to the standard defined in the related transform set and is delivered to the IPSec peer as defined
in the crypto map. A useful command for looking at the crypto map applied to an interface is
show crypto map interface serial 1. Example 19-24 shows this command run on R4.
Example 19-24 show crypto map Command
You can see from the output in Example 19-24 that crypto map MyMap is applied to the Serial 1
interface. The output of this command also shows the IPSec access list, IPSec peer, SA settings,
PFS status, and the related transform set.
If there is a problem with IPSec traffic and you have confirmed that the IPSec access list is
correct, the crypto map placement might be a good next thing to check. If the crypto map is not
applied to the outbound interface, traffic will never get encrypted for IPSec to forward it to its
peer.
CCIE.book Page 670 Monday, May 12, 2003 8:29 AM
NOTE If physical as well as logical interfaces are involved in carrying outgoing traffic, the crypto map
needs to be applied to both.
One example of this is if you use a GRE tunnel. The GRE tunnel interface uses a tunnel source
and tunnel destination. In this case, apply the crypto map to both the tunnel interface and the
physical interface that the tunnel traffic is routed over.
Routing Issues
You must address two routing issues—routing to the IPSec peer and routing the required
packets to the interface with the crypto map applied. Both these issues can cause problems that
result in the failure of the IPSec process.
Layer 3 communication must be established between the IPSec peers. This was covered at the
start of this chapter when VPNs were introduced. You learned that a simple ping between the
IPSec peers is adequate to confirm this. If the IPSec peers cannot establish Layer 3 communi-
cations, the IPSec process will never be complete, and the peers will never be adjacent to each
other.
The other routing issue is related to the delivery of the packets from the local router to the
remote network over the IPSec tunnel. In this scenario, Host A is on network 192.168.1.0/24
and Host B is on network 172.16.0.0/16 (refer to Figure 19-5 if you need to refresh your mem-
ory). For Host A to communicate with Host B, a valid route has to exist in R3’s IP routing table
to the Host B network address. This follows basic IP routing principles. Looking at the IP rout-
ing table shown in Example 19-25, you can see that a default route exists out of the Serial 0
interface.
Example 19-25 show ip route Command
R4#show ip route
C 20.0.0.0/8 is directly connected, Serial1
C 192.168.1.0/24 is directly connected, Ethernet0
S* 0.0.0.0/0 is directly connected, Serial1
Because you are using a static default route, this should not cause a problem with the routing
of the packets. Host A sends a packet with a source address of 192.168.1.2 and a destination
address of 172.16.0.2. R3 does not have a specific route for the 172.16.0.0/16 network, but the
default route directs it at the Serial 0 interface. The crypto map is applied to the Serial 0 inter-
face, and the traffic matches the IPSec access list so that it gets encrypted and tunneled to the
destination.
The important part to remember is that you have to ensure that the router forwards the packet
to the interface where the crypto map exists. A default route or a specific route for the remote
network normally suffices in this situation.
CCIE.book Page 671 Monday, May 12, 2003 8:29 AM
This concludes the explanation of how to configure a basic IOS-to-IOS IPSec VPN. In the next
section, you configure a basic PIX-to-PIX IPSec VPN.
"#$% *# '
*# "#$%
'
"#$% !()
' *#
!
*#
'
-. $
*#
"#$%
*#
"#$%
' $+,
$+,
" " $+,
$$ -.
"#$% "#$%
You now will look at the configuration of IPSec on the PIX Firewall. The configuration of IPSec
on the PIX follows the same four steps as the configuration of IPSec on IOS routers:
Step 1 Prepare for IKE and IPSec.
The next sections cover these four steps with a view to the configuration of a Cisco PIX
IPSec VPN.
Example 19-26 shows the initial configurations.
Example 19-26 Initial PIX Configurations
PIX1#write terminal
PIX Version 6.1
nameif ethernet0 outside security0
nameif ethernet1 inside security100
enable password 8Ry2YjIyt7RRXU24 encrypted
passwd 2KFQnbNIdI.2KYOU encrypted
hostname PIX1
interface ethernet0 auto
interface ethernet1 auto
ip address outside 130.100.1.1 255.255.255.0
ip address inside 10.1.1.1 255.255.255.0
global (outside) 1 interface
nat (inside) 1 0.0.0.0 0.0.0.0 0 0
route outside 0.0.0.0 0.0.0.0 130.100.1.3 1
PIX2#write terminal
PIX Version 6.1
nameif ethernet0 outside security0
nameif ethernet1 inside security100
enable password 8Ry2YjIyt7RRXU24 encrypted
passwd 2KFQnbNIdI.2KYOU encrypted
hostname PIX2
interface ethernet0 auto
interface ethernet1 auto
ip address outside 130.100.26.1 255.255.255.224
ip address inside 192.168.1.1 255.255.255.0
global (outside) 1 interface
nat (inside) 1 0.0.0.0 0.0.0.0 0 0
route outside 0.0.0.0 0.0.0.0 130.100.26.6 1
Both of these firewalls are set up as the single egress point from the network, so both have static
default routes pointing to their respective next-hop routers.
Both next-hop routers are connected via a routing protocol. This provides the connectivity
required to form communication between PIX1 and PIX2. Before you start the IPSec configu-
ration, ensure that the PIX Firewalls can communicate with each other. For the IPSec peer rela-
tionship to be formed, Layer 3 communications must be established between both peers.
The best way to check this is to ping the remote IPSec peer from the local IPSec peer at each
end, as shown in Example 19-27.
CCIE.book Page 673 Monday, May 12, 2003 8:29 AM
PIX1#ping 130.100.26.1
130.100.26.1response received -- 0ms
130.100.26.1response received -- 0ms
130.100.26.1response received -- 0ms
PIX2#ping 130.100.1.1
130.100.1.1response received -- 0ms
130.100.1.1response received -- 0ms
130.100.1.1response received -- 0ms
You can see from the results that PIX1 can ping the outside interface of PIX2 and vice versa.
This confirms that communication between these peers exists.
Now that you have a working routing configuration, you will add the IPSec components to get
to a stage where you have a fully working IPSec configuration. After you have reached this
point, you will then introduce errors to the configuration and compare the results.
Specify the PIX Firewall interface on which the IPSec peer will communicate. IKE is enabled
by default for individual PIX Firewall interfaces.
Use the no isakmp enable interface-name command to disable IKE.
You might want to disable IKE on interfaces that do not terminate IKE and IPSec to prevent
possible DoS attacks on those interfaces.
NOTE PIX Firewall version 5.1 and later supports IPSec termination on any interface.
Step 6 Specify the IKE security association’s lifetime. The default is 86400:
PIX1(config)#isakmp policy priority lifetime seconds
CCIE.book Page 675 Monday, May 12, 2003 8:29 AM
NOTE PIX Firewall software has preset default values. If you enter a default value for a given
policy parameter, it is not written in the configuration. If you do not specify a value for a
given policy parameter, the default value is assigned. You can observe configured and default
values with the show isakmp policy command.
The isakmp key command assigns a keystring and the peer address. The pre-
shared keystring must be identical at both peers. You can use any combination
of alphanumeric characters up to 128 bytes for keystring. You can specify the
peer-address as the host or wildcard address. The keystring is any combina-
tion of alphanumeric characters up to 128 bytes. The peer-address should
point to the IPSec peer’s IP address. A wildcard peer address of 0.0.0.0 may
be configured to share the preshared key among many peers. However, Cisco
strongly recommends using a unique key for each site-to-site VPN peer.
Remote-access VPNs can use the wildcard preshared key, as with a remote-
access VPN; you might not know the remote peer’s IP address.
You can also use the peer’s host name for the preshared key. Preshared keys
are easy to configure but are not scalable.
CCIE.book Page 676 Monday, May 12, 2003 8:29 AM
PIX1#write terminal
hostname pix1
isakmp enable outside
isakmp key cisco1234 address 130.100.26.1 netmask 255.255.255.255
isakmp policy 10 authentication pre-share
isakmp policy 10 encryption des
isakmp policy 10 hash sha
isakmp policy 10 group 1
isakmp policy 10 lifetime 86400
The show isakmp policy command displays configured and default policies.
The show isakmp command, shown in Example 19-29, displays configured policies much as
they would appear with the write terminal command.
Example 19-29 show isakmp Command
PIX1(config)#show isakmp
isakmp enable outside
isakmp key cisco1234 address 130.100.26.1 netmask 255.255.255.255
isakmp policy 10 authentication pre-share
isakmp policy 10 encryption des
isakmp policy 10 hash sha
isakmp policy 10 group 1
isakmp policy 10 lifetime 86400
• Task 3—Configure global IPSec SA lifetimes with the crypto ipsec security-association
lifetime command (optional).
• Task 4—Configure crypto maps with the crypto map command.
• Task 5—Apply crypto maps to the terminating/originating interface with the crypto map
map-name interface command.
• Task 6—Verify IPSec configuration with the various show commands.
Use the sysopt connection permit-ipsec command in IPSec configurations to permit IPSec
traffic to pass through the PIX Firewall without a check of the conduit or access-list command
statements.
By default, any inbound session on a PIX Firewall must be explicitly permitted by a conduit or
access-list command statement. With IPSec protected traffic, the secondary access list check
could be redundant. To allow an IPSec authenticated/cipher inbound session to always be
permitted, enable sysopt connection permit-ipsec. Inbound traffic, even though it bypasses
any external conduits or access lists, still is checked by the PIX Adaptive Security Algorithm
(ASA), and security is still maintained.
The no sysopt connection permit-ipsec command disables this option.
access-list-name is name or number of an access list. deny does not select a packet for IPSec
protection. It prevents traffic from being protected by crypto in the context of that particular
crypto map entry. permit selects a packet for IPSec protection and causes all IP traffic that
matches the specified conditions to be protected by crypto, using the policy described by the
corresponding crypto map entry.
protocol is the name or number of an IP protocol. It has to be the keyword ip because the PIX
can only tunnel based on the IP protocol. The icmp keyword cannot be used for IPSec because
IKE does not negotiate ICMP.
CCIE.book Page 678 Monday, May 12, 2003 8:29 AM
source and destination refer to the address of the network or host where the packet is being sent
or from where the packet was received. There are three other ways to specify the source or
destination:
• Use a 32-bit quantity in four-part dotted-decimal format.
• Use the keyword any as an abbreviation for a source and source-netmask or destination-
netmask of 0.0.0.0 0.0.0.0. This keyword is normally not recommended for use with IPSec.
• Use host source or host destination as an abbreviation for a source and source-netmask
of 255.255.255.255 or a destination and destination-netmask of 255.255.255.255.
NOTE Although the access list syntax is unchanged from access lists applied to PIX Firewall
interfaces, the meanings are slightly different for crypto access lists: permit specifies that
matching packets must be encrypted, and deny specifies that matching packets need not be
encrypted.
The transform-set-name argument specifies the name of the transform set to create (or modify).
transform1, transform2, and transform3 specify up to three transforms. These transforms define
the IPSec security protocol(s) and algorithm(s).
Some additional details for transform sets are as follows:
• Sets are limited to up to one AH and up to two ESP transforms.
• The default mode is tunnel.
• Configure matching transform sets between IPSec peers.
• If you specify an ESP protocol in a transform set, you can specify just an ESP encryption
transform or both an ESP encryption transform and an ESP authentication transform.
The PIX Firewall supports the following IPSec transforms:
• AH:
— ah-md5-hmac—AH-HMAC-MD5 transform
— ah-sha-hmac—AH-HMAC-SHA transform
CCIE.book Page 679 Monday, May 12, 2003 8:29 AM
• ESP:
— esp-des—ESP transform using DES cipher (56 bits)
— esp-3des—ESP transform using 3DES (EDE) cipher (168 bits)
— esp-md5-hmac—ESP transform with HMAC-MD5 authentication used with
an esp-des or esp-3des transform to provide additional integrity of ESP packets
— esp-sha-hmac—ESP transform with HMAC-SHA authentication used with an
esp-des or esp-3des transform to provide additional integrity of ESP packets
Choose from the MD5 or SHA (HMAC keyed hash variants) authentication algorithms
to ensure data authentication (using either ESP or AH). The SHA algorithm is generally
considered stronger than MD5, but it is slower. The following are examples of acceptable
transform combinations:
• esp-des for high-performance encryption
• ah-md5-hmac for authenticating packet contents with no encryption
• esp-3des and esp-md5-hmac for strong encryption and authentication
seconds seconds specifies the number of seconds an SA lives before expiring. The default is
28,800 seconds (8 hours). kilobytes kilobytes specifies the volume of traffic (in kilobytes) that
can pass between IPSec peers using a given SA before that SA expires. The default is 4,608,000
kilobytes (approximately 10 Mbps of traffic for 1 hour).
Identify the crypto map with a unique crypto map name and sequence
number.
Step 2 Assign an access list to the crypto map entry:
PIX1(config)#crypto map map-name seq-num match address access-list-name
Step 3 Specify the peer to which the IPSec protected traffic can be forwarded:
PIX1(config)#crypto map map-name seq-num set peer hostname | ip-address
IPSec tunnels can be terminated on any interface where you apply a crypto map. This does not
mean that you terminate traffic coming from the outside on the inside interface. Traffic termi-
nated on the inside interface is traffic from the inside network. Traffic terminated on the outside
is traffic from the outside. Traffic terminated on a DMZ is traffic from the DMZ.
As soon as you apply the crypto map, the SAs should initialize. You can assign only one crypto
map set to an interface. If multiple crypto map entries have the same map-name but a different
seq-num, they are considered part of the same set and are all applied to the interface. The crypto
map entry with the lowest seq-num is considered the highest priority and is evaluated first.
You can view all configured access lists with the show access-list command.
View the currently defined transform sets with the show crypto ipsec transform-set command:
PIX1#show crypto ipsec transform-set [transform-set-name]
transform-set-name is optional and shows only the transform sets that have the speci-
fied transform-set-name.
If no keyword is used, all transform sets configured at the PIX Firewall are displayed.
Use the show crypto map command to view the crypto map configuration. If no keywords are
used, all crypto maps configured at the PIX Firewall are displayed. The command syntax is as
follows:
PIX1#show crypto map [interface interface | tag map-name]
In this syntax, interface interface is optional and shows only the crypto map set applied to the
specified interface. tag map-name is also optional and shows only the crypto map set with
the specified map name.
Use the show crypto ipsec security-association lifetime command to view the current global
IPSec SA lifetime.
Command Description
show access-list Lists the access-list command statements in the configuration. Used to
verify general access lists’ permit IPSec traffic.
show isakmp Displays configured ISAKMP policies in a format similar to a write
terminal command.
show isakmp policy Displays default and any configured ISAKMP policies.
Test and verify IPSec and crypto map configuration on the PIX Firewall with the commands
shown in Table 19-4.
CCIE.book Page 682 Monday, May 12, 2003 8:29 AM
Table 19-4 Commands to Test and Verify IPSec and Crypto Map Configurations
Command Description
show crypto map Displays crypto access lists assigned to a crypto map. Displays
configured crypto map parameters.
show crypto ipsec Displays configured IPSec transform sets.
transform-set
show crypto ipsec Displays correct global IPSec SA lifetime values.
security-association
lifetime
You can monitor and manage IKE and IPSec communications between the PIX Firewall and
IPSec peers with the commands listed in Table 19-5.
Table 19-5 Commands to Monitor and Manage IKE and IPSec Communications
Command Description
show isakmp sa Displays the current status of ISAKMP SAs.
show crypto ipsec sa Displays the current status of IPSec SAs. Useful for ensuring that traffic
is being encrypted.
clear isakmp sa Clears ISAKMP SAs.
clear crypto ipsec sa Clears IPSec SAs.
debug crypto isakmp Displays ISAKMP (IKE) communications between the PIX Firewall
and IPSec peers.
debug crypto ipsec Displays IPSec communications between the PIX Firewall and IPSec
peers.
After all the steps have been completed, you have the finished IPSec configurations. They are
shown in Example 19-30.
Example 19-30 Finished IPSec Configurations
PIX1#write terminal
access-list 100 permit ip 10.1.1.0 255.255.255.0 192.168.1.0 255.255.255.0
crypto ipsec transform-set myset esp-des esp-sha-hmac
crypto map newmap 10 ipsec-isakmp
crypto map newmap 10 match address 100
crypto map newmap 10 set peer 130.100.26.1
crypto map newmap 10 set transform-set myset
crypto map newmap interface outside
isakmp enable outside
isakmp key thisisthekey address 130.100.26.1 netmask 255.255.255.255
isakmp identity address
isakmp policy 10 authentication pre-share
CCIE.book Page 683 Monday, May 12, 2003 8:29 AM
PIX2#write terminal
access-list 100 permit ip 192.168.1.0 255.255.255.0 19.1.1.0 255.255.255.0
crypto ipsec transform-set myset esp-des esp-sha-hmac
crypto map newmap 10 ipsec-isakmp
crypto map newmap 10 match address 100
crypto map newmap 10 set peer 130.100.1.1
crypto map newmap 10 set transform-set myset
crypto map newmap interface outside
isakmp enable outside
isakmp key thisisthekey address 130.100.1.1 netmask 255.255.255.255
isakmp identity address
isakmp policy 10 authentication pre-share
isakmp policy 10 encryption des
isakmp policy 10 hash md5
isakmp policy 10 group 1
isakmp policy 10 lifetime 86400
With this configuration in the firewalls, you can verify that Host A can successfully ping Host B
using the VPN.
The output shown is from PIX1. The output from PIX2 is identical for the show crypto ipsec
transform-set and show crypto isakmp policy commands; it must be for an IPSec peer to be
established. The show crypto map output for PIX2 reflects PIX1 as its peer.
The show command in Example 19-31 displays the configured IPSec transform set. Note that
you are using esp-des and esp-sha-hmac within the transform set. The default mode for IPSec
is tunnel.
Example 19-31 show crypto ipsec transform-set Command
The output shown in Example 19-32 shows the configured crypto map called newmap. The
information here pertains to the remote IPSec peer and also to the access list that controls
the encryption of the IPSec traffic.
Example 19-32 show crypto map Command
Example 19-33 shows the default policy (priority 65535, not visible here) and the configured
isakmp policy of 10. You can see that you are using preshared keys and Diffie-Hellman group 1.
Example 19-33 show crypto isakmp policy Command
Example 19-35 shows the output of the show crypto ipsec sa command. This command pre-
sents a lot of information. The first part shows the interface and crypto map name that are asso-
ciated with the interface. Then the inbound and outbound SAs are shown. These are either AH
or ESP SAs. In this case, because you used only ESP, there are no AH inbound or outbound SAs.
You can also see next to the PERMIT statement that a condition met by an access control list
(ACL) initiated the IPSec connection.
Example 19-35 show crypto ipsec sa Command
interface: outside
Crypto map tag: newmap,
newmap local addr. 130.100.26.1
inbound ah sas:
outbound ah sas:
You can see from the output in Example 19-36 that both PIXs have two ISAKMP policies, or
protection suites. The first has a priority of 10, and the default has a priority of 65535 (although
this value is not shown). You can also see that the values for the priority 10 suite all match
between PIX1 and Host B. This is essential for ISAKMP negotiation.
The values controlled by the ISAKMP policy are
• Encryption algorithm
• Hash algorithm
• Authentication method
• Diffie-Hellman group
CCIE.book Page 688 Monday, May 12, 2003 8:29 AM
• SA lifetime
• Interface to enable ISAKMP on
• ISAKMP identity method
• ISAKMP peer information
On the Cisco PIX Firewall, these values are all set from global configuration mode with the
isakmp command. Example 19-37 shows the available options with the isakmp command.
Example 19-37 isakmp Commands
PIX1(config)#isakmp ?
usage: isakmp policy <priority> authen <pre-share|rsa-sig>
isakmp policy <priority> encrypt <des|3des>
isakmp policy <priority> hash <md5|sha>
isakmp policy <priority> group <1|2>
isakmp policy <priority> lifetime <seconds>
isakmp key <key-string> address <ip> [netmask <mask>] [no-xauth]
[no-config-mode]
isakmp enable <if_name>
isakmp identity <address|hostname>
isakmp keepalive <seconds> [<retry seconds>]
isakmp peer fqdn|ip <fqdn|ip> [no-xauth] [no-config-mode]
The command debug crypto isakmp also is of great use when troubleshooting ISAKMP
issues. This command displays the full ISAKMP exchange as it occurs in the PIX Firewall.
Example 19-38 shows the full debug output for a ping from Host B to the inside interface
of PIX1.
Example 19-38 debug crypto isakmp Command
Notice the shaded section. It shows that the ISAKMP values are acceptable and then the PIX
Firewall continues with the ISAKMP negotiation process.
Example 19-38 shows what the debug output looks like in a working configuration. If you
change a value in the ISAKMP policy, though, you will change the hash value from MD5 to the
default SHA on PIX1 and observe the output from the debug crypto isakmp command.
First, look at the newly configured ISAKMP policy on PIX1 in Example 19-39.
Example 19-39 show crypto isakmp policy Command
The shaded section shows that the hash algorithm has been changed from MD5 to SHA. You
now carry out the same ping as before from Host B to PIX1 and look at the debug output, shown
in Example 19-40.
Example 19-40 debug crypto isakmp Command
You can see from this debug output that there was a failure in the ISAKMP negotiation. This is
because the ISAKMP values are unacceptable. They are classed as unacceptable because they
do not match.
Check that the authentication method on both firewalls is set to the preshared key; you can see
from the highlighted lines in Example 19-41 that it is. If the authentication methods do not
match between the firewalls, the ISAKMP negotiation fails, as outlined in the previous section.
You know that the PIX Firewalls are both using preshared keys as their authentication method.
On a Cisco IOS router, you can view the preshared key with the show crypto isakmp key
command. On the Cisco PIX Firewall, after you enter the preshared key, there is no way to
display it. When you look at the on-screen or printed configuration, the preshared key is always
replaced with eight stars. So to generate a fault here, you will knowingly change one of the
preshared key values to differ from its IPSec peer.
After this configuration change, when you try to ping from Host A to Host B, the VPN is not
established because of the failure of the preshared key in the ISAKMP negotiation.
NOTE It is important to note the slight change in the way access lists are configured on a Cisco PIX
Firewall as compared to a Cisco IOS router. On a router, the format for an extended access list
contains the source and destination networks along with a wildcard mask. A wildcard mask is
the reverse of a subnet mask. The Cisco PIX Firewall implementation of access lists uses subnet
masks instead.
For example, an access list to permit anything from 10.1.1.0/24 to 192.168.1.0/24 would be
configured as follows:
• Cisco IOS router:
Router(config)#access-lists 101 permit ip 10.1.1.0 0.0.0.255 192.168.1.0
0.0.0.255
Note that the Cisco IOS router uses wildcard masks and the PIX uses subnet masks.
To introduce an error, change the IPSec access list on PIX1 to have an incorrect source address.
Then, ping from Host A to Host B. The traffic does not kick off the IPSec process and cannot
be routed to the destination.
CCIE.book Page 693 Monday, May 12, 2003 8:29 AM
PIX1#show access-list
access-list 100 permit ip 10.1.1.0 255.255.255.0
192.168.1.0 255.255.255.0
This access list encrypts traffic from the 10.1.1.0/24 network that is destined for the
192.168.1.0/24 network. You will make a subtle change to this access list that breaks the IPSec
process. You will remove the existing access list and add the line of configuration shown in
Example 19-43.
Example 19-43 show access-list Command
PIX1#show access-list
access-list 100 permit ip 10.1.2.0 255.255.255.0
192.168.1.0 255.255.255.0
Note that this encrypts traffic from the 10.1.2.0/24 network and not the original 10.1.1.0/24
network. After you make this change, Host A attempts to ping Host B. Obviously, this fails.
If you are ever faced with a real-world problem similar to this, your first step should always be
to ascertain whether the VPN is established between the IPSec peers. There are various ways to
accomplish this on a Cisco PIX Firewall. The easiest way is to use the show crypto engine
command. This command displays the current state of the IPSec connections (if any). Running
this command on PIX1 results in the output shown in Example 19-44.
Example 19-44 show crypto engine Command
You can see that there are no active IPSec connections. If you can verify that relevant traffic has
passed the connection that should start the IPSec process, the problem is with the IPSec access
list. A simple sanity check of the IPSec access list should be enough to remedy the problem.
This command makes the interface a VPN termination point. Any traffic leaving this interface
is checked against the IPSec access list. If the traffic matches the IPSec access list, it is
encrypted to the standard defined in the related transform set and is delivered to the IPSec peer
as defined in the crypto map. A useful command for looking at the crypto map applied to an
interface is show crypto map. The output in Example 19-45 shows this command run on PIX1.
Example 19-45 show crypto map Command
You can see that crypto map newmap is applied to the outside interface. The output also shows
you the IPSec access list, IPSec peer, SA settings, PFS status, and the related transform set.
If there is a problem with IPSec traffic and you have confirmed that the IPSec access list is
correct, the crypto map placement might be a good next place to check. If the crypto map is not
applied to the outbound interface, traffic will never get encrypted for IPSec to forward it to
its peer.
Routing Issues
You must address two routing issues—routing to the IPSec peer and routing the required
packets to the interface with the crypto map applied. Both these issues can cause problems that
result in the failure of the IPSec process.
Layer 3 communications have to be established between the IPSec peers. This was covered at
the start of this chapter when VPNs were introduced and you learned that a simple ping between
the IPSec peers is adequate to confirm this. If the IPSec peers cannot establish Layer 3 commu-
nications, the IPSec process will never be complete, and the peers will never be adjacent to each
other.
The other routing issue is related to the delivery of the packets from the local firewall to the
remote network over the IPSec tunnel. In this scenario, you can see that Host A is on network
192.168.1.0/24 and Host B is on network 172.16.0.0/16 (refer to Figure 19-6 to refresh your
memory). For Host A to communicate with Host B, a valid route has to exist in PIX1’s IP
routing table to the Host B network address. This follows basic IP routing principles. Looking
CCIE.book Page 695 Monday, May 12, 2003 8:29 AM
at the IP routing table in Example 19-46, you can see that a default route exists out of the outside
interface to 20.0.0.2.
Example 19-46 show route Command
PIX1#show route
outside 0.0.0.0 0.0.0.0 130.100.1.3 1 OTHER static
outside 130.100.1.0 255.0.0.0 130.100.1.1 1 CONNECT static
inside 10.1.1.0 255.255.255.0 10.1.1.1 1 CONNECT static
Because you are using a static default route, this should not cause a problem with the routing
of the packets. Host A sends a packet with a source address of 10.1.1.2 and a destination address
of 192.168.1.2. PIX1 does not have a specific route for the 192.168.1.0/24 network, but the
default route directs this to the outside interface. The crypto map is applied to the outside
interface, and the traffic matches the IPSec access list, so it gets encrypted and tunneled to
the destination.
The important part to remember is to ensure that the firewall forwards the packet to the interface
where the crypto map exists. A default route or a specific route for the remote network normally
suffices in this situation.
At this point, you have seen a sample configuration of both an IOS-based VPN and a PIX-based
VPN using preshared keys. The next section expands on this configuration to add different and
more-advanced configurations.
NOTE The SCEP is a Cisco, VeriSign, Entrust, Microsoft, Netscape, and Sun Microsystems initiative
that provides a standard way to manage the certificate life cycle. SCEP is important for driving
open development for certificate-handling protocols that can interoperate with many vendors’
devices.
CCIE.book Page 696 Monday, May 12, 2003 8:29 AM
Configuring CA
There are six simple steps for configuring a CA that are generic to both IOS and PIX
configurations:
Step 1 Configure the router/PIX for CA support.
You will now look at each of these six steps for both IOS and PIX-based VPNs. The commands
differ slightly between the IOS and PIX configuration, but the fundamentals remain the same.
To specify the router’s time zone, use the clock timezone global configuration command. This
command sets the time zone and an offset from Universal Time Code (UTC, displayed by the
router). The command syntax is as follows:
R4(config)#clock timezone zone hours [minutes]
In this syntax, zone specifies the time zone to be displayed when standard time is in effect, hours
is the hours offset from UTC, and minutes, which is optional, is the minutes offset from UTC.
The following command sets the time zone to Central Standard Time (CST) in the United
States:
R4(config)#clock timezone cst -6
To set the router’s time and date, use the clock set privileged EXEC command. The command
syntax is as follows:
R4#clock set hh:mm:ss day month year
R4#clock set hh:mm:ss month day year
hh:mm:ss is the current time in hours (military format), minutes, and seconds. day is the current
day (by date) in the month. month is the current month (by name). year is the current year (no
abbreviation).
The following command sets the time to 1 second before midnight, December 31, 2003:
R4#clock set 23:59:59 31 december 2003
You can also optionally set your router to automatically update the calendar and time from a
Network Time Protocol (NTP) server with the ntp series of commands.
NOTE Cisco recommends using an NTP server to set the router’s time on routers that do not have a
clock circuit chip.
The other way to achieve this if the CA does not have a DNS entry is to use the ip host com-
mand. This is the equivalent of placing an entry in the HOSTS file on a workstation. You can
then refer to the name rather than the IP address for local operations on the router. For example,
to declare a name of pkitest1 for the address 172.18.1.121, the following configuration is
required:
R4(config)#ip host pkitest1 172.18.1.121
NOTE Before issuing the command to generate RSA keys, make sure your router has a host name and
IP domain name configured (with the hostname and ip domain-name commands). You will be
unable to complete the crypto key generate rsa command without a host name and IP domain
name.
To generate the key pair, you enter the following global configuration command:
R4(config)#crypto key generate rsa
When you generate RSA keys, you are prompted to enter a modulus length. A longer modulus
offers stronger security but takes longer to generate and longer to use. A modulus less than 512
is normally not recommended. Cisco recommends using a minimum modulus of 1024.
The keys generated are saved in the private configuration in NVRAM, which is never displayed
to the user or backed up to another device. You can view the public key but not the private key.
The public key is displayed with the command show crypto key mypubkey rsa, as shown in
Example 19-47.
Example 19-47 show crypto key mypubkey rsa Command
NOTE Creating the RSA key pair automatically enables Secure Shell (SSH) access to the router.
NOTE If you have already authenticated with the CA, you are first prompted to delete the existing CA
certificate as follows:
R4(config)#crypto ca authenticate myca
% Please delete your existing CA certificate first.
% You must use 'no crypto ca identity <ip-address>' to delete the CA
certificate.
NOTE The crypto ca enroll command is not saved in the router configuration. If your router reboots
after you issue the crypto ca enroll command but before you receive the certificate(s), you must
reissue the command.
Certificate
Subject Name
Name: R4.boxingorange.com
IP Address: 172.30.1.2
Status: Available
Certificate Serial Number: 0123456789ABCDEF0123456789ABCDEF
Key Usage: General Purpose
CA Certificate
Status: Available
Certificate Serial Number: 3051DF7123BEE31B8341DFE4B3A338E5F
Key Usage: Not Set
CCIE.book Page 702 Monday, May 12, 2003 8:29 AM
R4#write termnial
crypto isakmp policy 110
authentication pre-share
hash md5
crypto isakmp key thisshouldbeaverysecurekey address 20.0.0.5
!
!
crypto ipsec transform-set MySet esp-des esp-md5-hmac
!
!
crypto map MyMap 10 IPSec-isakmp
set peer 20.0.0.5
set transform-set MySet
match address 100
!
interface Serial0
ip address 20.0.0.4 255.0.0.0
no ip directed-broadcast
no ip mroute-cache
crypto map MyMap
!
access-list 100 permit ip 192.168.1.0 0.0.0.255 172.16.0.0 0.0.255.255
You can see that you have defined an ISAKMP policy using preshared authentication. To enable
the use of the CA you just configured, you have to change the authentication method to be RSA
Signatures. Remove the current configuration setting with the command no authentication
pre-share from config-isakmp mode, and then enter the following command:
R4(config-isakmp)#authentication rsa-sig
Now use the command show crypto isakmp policy to display the configured ISAKMP polices,
as shown in Example 19-53.
Example 19-53 show crypto isakmp policy Command
You can see from Example 19-53 that the protection suite with a priority of 110 is now using
RSA Signatures.
NOTE It is worthwhile to note that RSA Signatures is the default authentication method for ISAKMP.
Because of this, the configuration line does not show up in the configuration. To check your
ISAKMP policy, use the show crypto isakmp policy command.
To enable the VPN, simply configure the second router as outlined in this section.
hh:mm:ss is the current time in hours (military format), minutes, and seconds. day is the current
day of the month, such as 1. month is the current month expressed as the first three characters
of the month, such as apr for April. year is the current year expressed as four digits, such as
2000.
The following command sets the time to 1 second before midnight, December 31, 2003:
PIX1(config)#clock set 23:59:59 31 dec 2003
Cisco’s Public Key Infrastructure (PKI) protocol uses the clock to make sure that a certificate
revocation list (CRL) is not expired. Otherwise, the CA might reject or allow certificates based
on an incorrect timestamp. The certificates themselves are also checked against the time and
date to ensure that they are still valid.
NOTE The lifetime of a certificate and the CRL are checked in GMT time. If you are using IPSec with
certificates, set the PIX Firewall clock to GMT time to ensure that CRL checking works
correctly.
This command creates an RSA key pair with a key length of 1024 bits.
NOTE Note that there is a difference here when configuring a key on a Cisco IOS router. In the Cisco
IOS software, you are prompted for the key size. On the PIX, you have to specify the key size
in the command for the PIX to accept the command.
The keys generated are saved in the private configuration in NVRAM, which is never displayed
to the user or backed up to another device. You can view the public key but not the private key.
The public key is displayed with the command show ca mypubkey rsa. An example is shown
in Example 19-54.
Example 19-54 show ca mypubkey rsa Command
The server resolves to the name pkitest1, which you have created a name entry for. You now
have to enable RA mode for the CA server, because it is a Microsoft CA server. You do this by
entering the following command:
PIX1(config)#ca configure myca ra 2 2
For the ca_nickname, use the nickname entered with the ca identity command. challenge_password
is a required password that gives the CA administrator some authentication when a user calls to
ask for a certificate to be revoked. It can be up to 80 characters in length. serial specifies the
PIX Firewall serial number (optional), and ipaddress is the PIX Firewall’s IP address (optional).
The ca enroll ca_nickname challenge_password command requests certificates from the CA
for all your PIX Firewall’s RSA key pairs. This is called enrolling with the CA. This task differs
CCIE.book Page 707 Monday, May 12, 2003 8:29 AM
from enrolling with IOS. With IOS, you are prompted for the challenge password. With a PIX,
you have to include the challenge password in the ca enroll command line.
Your PIX Firewall needs a signed certificate from the CA for each of your PIX Firewall’s RSA
key pairs. If you already have a certificate for your keys, you cannot complete this command;
instead, you are prompted to remove the existing certificate first. If you want to cancel the
current enrollment request, use the no ca enroll command.
Here’s an example of authenticating a CA:
PIX1(config)#ca enroll myca mypassword1234567
The argument mypassword1234567 is a password, which is not saved with the configuration.
The ca enroll command requests as many certificates as there are RSA key pairs. You need to
enable this command only once, even if you have special-usage RSA key pairs.
NOTE If your PIX Firewall reboots after you issued the ca enroll command but before you received
the certificates, you must reissue the command and notify the CA administrator.
PIX1#show ca identity
Use the show ca configure command to view CA communication parameter settings, as shown
in Example 19-57.
Example 19-57 show ca configure Command
PIX1#show ca configure
ca configure myca ra 2 2
CCIE.book Page 708 Monday, May 12, 2003 8:29 AM
Use the show ca certificate command to verify that the enrollment process was successful and
to view PIX Firewall, CA, and RA certificates, as shown in Example 19-58.
Example 19-58 show ca certificate Command
PIX1#show ca certificate
PIX1(config)#sh ca cert
Type help or '?' for a list of available commands.
PIX1(config)#sh ca cert
RA Signature Certificate
Status: Available
Certificate Serial Number: 61058748000000000002
Key Usage: Signature
CN = Andrew Mason
OU = IT
O = BO
L = Leeds
ST = WY
C = UK
EA =<16> andrew.mason@boxingorange.com
Validity Date:
start date: 14:34:03 UTC Jan 2 2003
end date: 14:44:03 UTC Jan 2 2004
CA Certificate
Status: Available
Certificate Serial Number: 7ca0b6efcc3376964498c23ba8d82387
Key Usage: Signature
CN = labca
OU = bo
O = boxing orange
L = leeds
ST = west yorkshire
C = UK
EA =<16> labca@boxingorange.com
Validity Date:
start date: 11:52:36 UTC Jan 2 2003
end date: 12:00:09 UTC Jan 2 2005
RA KeyEncipher Certificate
Status: Available
Certificate Serial Number: 61058a55000000000003
Key Usage: Encryption
CN = Andrew Mason
OU = IT
O = BO
L = Leeds
ST = WY
C = UK
EA =<16> andrew.mason@boxingorange.com
CCIE.book Page 709 Monday, May 12, 2003 8:29 AM
PIX1(config)#
Use the show ca mypubkey rsa command to view your RSA public key, as shown in
Example 19-59.
Example 19-59 show ca mypubkey rsa Command
PIX1#write terminal
access-list 100 permit ip 10.1.1.0 255.255.255.0 192.168.1.0 255.255.255.0
crypto ipsec transform-set myset esp-des esp-sha-hmac
crypto map newmap 10 ipsec-isakmp
crypto map newmap 10 match address 100
crypto map newmap 10 set peer 130.100.26.1
crypto map newmap 10 set transform-set myset
crypto map newmap interface outside
isakmp enable outside
isakmp key thisisthekey address 130.100.26.1 netmask 255.255.255.255
isakmp identity address
isakmp policy 10 authentication pre-share
isakmp policy 10 encryption des
isakmp policy 10 hash md5
isakmp policy 10 group 1
isakmp policy 10 lifetime 86400
CCIE.book Page 710 Monday, May 12, 2003 8:29 AM
You can see that you have defined an ISAKMP policy using preshared authentication. To enable
the use of the CA you just configured, you have to change this to be RSA Signatures. Remove
the current configuration setting with the command no isakmp policy 10 authentication
pre-share, and then enter this command:
PIX1(config)#isakmp policy 10 authentication rsa-sig
Now, use the command show crypto isakmp policy to display the configured ISAKMP
polices, as shown in Example 19-61.
Example 19-61 show crypto isakmp policy Command
You can see from the configuration that the protection suite with a priority of 10 is now using
RSA Signatures.
To enable the VPN, simply configure the second PIX in the same way outlined in this section.
Summary
This chapter covered VPNs with a focus on IPSec. It started with a detailed overview of IPSec
before moving on to Cisco IOS and Cisco PIX Firewall IPSec configuration using preshared
keys and certificate authorities. This chapter also covered configuration and troubleshooting for
a simple site-to-site VPN.
CCIE.book Page 711 Monday, May 12, 2003 8:29 AM
Review Questions
1 What is the main difference between an access list on a Cisco IOS router and an access
list on a PIX Firewall?
2 What command creates an RSA key pair on a PIX Firewall with a 1024-bit key length?
3 When using a GRE tunnel with an IOS router, where should you place the crypto map if
you want to protect traffic going over the tunnel?
4 What command on a PIX Firewall enrolls a CA that has a CA nickname of myca?
5 What command on the PIX displays the IKE configuration within the router but does not
display the default policy settings?
6 What command on the PIX bypasses conduits and access lists for IPSec connections but
still checks the traffic against the ASA to maintain security?
7 What encryption and authentication are the defaults for ISAKMP policies?
CCIE.book Page 712 Monday, May 12, 2003 8:29 AM
FAQs
Q — What is the difference between tunnel and transport mode for IPSec?
A — Tunnel mode is used when the private IP addresses are used behind the tunnel end-
points. This is because tunnel mode rewrites the IP header with new information.
One point to remember is that tunnel mode is not required when you are using GRE
tunnels. GRE provides its own tunneling mechanism so that you can use transport
mode IPSec in these situation. When you use transport mode, the VPN endpoints
must originate and terminate the VPN traffic.
Q — What is perfect forward secrecy (PFS)?
A — If PFS is specified in the IPSec policy, a new Diffie-Hellman exchange is performed
with each quick mode, providing key material that has greater entropy (key material
life) and thereby greater resistance to cryptographic attacks. Each Diffie-Hellman
exchange requires large exponentiations, thereby increasing CPU use and exacting
a performance cost.
Q — How do I configure a router or PIX Firewall to use a CA as opposed to a preshared
key?
A — It is most common for people to configure an IPSec VPN using a preshared key.
This can be seen with the show crypto isakmp policy command on both the router
and the PIX Firewall.
It is actually the default setting on both the PIX and IOS software to use RSA signa-
tures as the IKE phase 1 authentication method. To enable this on a device, first you
have to create an RSA key pair local on the device and then enroll with a certificate
authority. You then have to configure the ISAKMP policy to use the RSA signatures
for authentication. This is done in IOS with the command authentication rsa-sig.
This command is not displayed in the configuration because it is the default.
CCIE.book Page 713 Monday, May 12, 2003 8:29 AM
CCIE.book Page 714 Monday, May 12, 2003 8:29 AM
CHAPTER 20
Advanced Virtual Private
Networks
Now that we have covered the basics of PIX-to-PIX and IOS-to-IOS VPNs using both
preshared keys and certificate authorities, this chapter looks at a more-advanced VPN
implementation that you might come across on the CCIE Security lab exam.
The standard IPSec implementation that you learned about in Chapter 19, “Virtual Private
Networks,” presents a number of issues. In this chapter you will learn how to solve some of
these issues by using generic routing encapsulation (GRE) tunnels and Dynamic Multipoint
IPSec VPN (DMVPN). DMVPN was introduced in Release 12.2(13)T of the Cisco IOS
software. You won’t be asked to configure it for the CCIE Security Lab exam that uses the
Cisco IOS software version earlier than 12.2(13)T. However, the updated exam versions,
based on Release 12.2(13)T and later, are likely to implement this feature. To find out
the Cisco IOS software release currently used in the CCIE Security Lab exam, consult
www.cisco.com/warp/public/625/ccie/.
• Sometimes remote sites require direct communication with one another, and that means
foregoing the hub-and-spoke topology in favor of the full mesh. The issue is that it’s very
difficult to predict the exact sites to which a spoke might need an occasional direct con-
nection, and directly connecting every site to every other site can become impossible.
Make note of these issues; they are referenced throughout the next sections.
address either configured or resolved with NHRP (for multipoint GRE tunnels). So IPSec is
triggered immediately for the point-to-point GRE or multipoint GRE tunnel (with address
resolution via NHRP). The crypto access lists that previously needed to be preconfigured are
now automatically derived from the GRE tunnel source and destination addresses.
So if you had 300 spoke routers, you would end up with 3900 configuration lines on the hub
router. Such a gigantic configuration makes the task of management and troubleshooting very
difficult, if not impossible.
You can reduce the configuration size somewhat by employing dynamic crypto maps. This
would reduce a 3900-line configuration to 2700 lines. However, in the case of dynamic crypto
maps, the spoke router must initiate the IPSec encryption tunnel. Also, if you use the ip unnum-
bered command to minimize the number of GRE tunnels subnets, this might create some issues
when troubleshooting.
The DMVPN allows you to configure one multipoint GRE tunnel interface and one IPSec
profile on the hub router to encompass all spoke routers. This type of solution maintains a stable
configuration size, notwithstanding the number of routers that can potentially be added to the
VPN network.
The fourth issue is that IPSec peers require prior knowledge of each other’s IP addresses to
establish an IPSec tunnel. This is often impossible because of the widespread implementation
of dynamic addressing.
One of the possible solutions is to use Tunnel Endpoint Discovery (TED). When TED is used,
one IPSec peer sends a special packet to the destination IP address of the original data packet
in need of encryption. In theory, this packet should find the peer while traversing the network
along the same path that the IPSec tunnel packet will take. When the destination peer receives
the packet, it responds, and the two peers can negotiate ISAKMP and IPSec security associations
(SAs) and bring up the IPSec tunnel. TED can be used in combination with the GRE tun-
nels described previously. Although using TED and GRE tunnels together would work, it has
an unfortunate restriction: The data packets to be encrypted must have routable IP addresses.
Alternatively, the DMVPN solution offers the same results as TED in an mGRE+IPSec config-
uration, without the restrictions for private IP addresses and without sending the probe-and-
response packets.
#
"
! "
"
!
#
# #
"
"
!
Step 1: Configuring EIGRP Routing, Loopback Interfaces, and Full-Mesh GRE Tunnels
Before getting into the IPSec portion of this case study, you must configure basic routing and
interface parameters for all three routers. Especially important to this case study are the
following:
• Configuring loopback interfaces
• Setting up GRE tunnels in a full-mesh arrangement
• Configuring EIGRP routing
The following sections describe each of these points.
CCIE.book Page 720 Monday, May 12, 2003 8:29 AM
R3(config)#interface loopback13
R3(config-if)#ip address 13.13.13.13 255.255.255.255
R4(config)#interface loopback14
R4(config-if)#ip address 14.14.14.14 255.255.255.255
R3(config)#interface loopback3
R3(config-if)#ip address 3.3.3.3 255.255.255.255
R4(config)#interface loopback4
R4(config-if)#ip address 4.4.4.4 255.255.255.255
On R2, Tunnel2 is the GRE tunnel to R3; Tunnel4 is the GRE tunnel to R4. Use Loopback2’s
IP address as the tunnel source for both tunnels. Use R3’s Loopback3 IP address as the tunnel
destination for Tunnel2 and R4’s Loopback4 IP address as the tunnel destination for Tunnel4.
Apply the same rules when configuring GRE tunnels on R3 and R4. All tunnel source and
destination addresses need to be reached within the existing infrastructure.
For the tunnel interface IP addresses, use the following:
• 192.168.32.x/24 between R3 and R2
• 192.168.24.x/24 between R2 and R4
• 192.168.34.x/24 between R3 and R4
Configuring EIGRP
On each router, configure the EIGRP parameters. Use the network statements to include each
GRE tunnel interface and the private network. For more information on configuring EIGRP,
review Chapter 9, “EIGRP.”
Example 20-1 presents the beginning configuration of R2, R3, and R4, including the features
discussed in this step.
CCIE.book Page 721 Monday, May 12, 2003 8:29 AM
R2#show run
version 12.2
!
hostname R2
!
interface Loopback2
description OSPF Loopback
ip address 2.2.2.2 255.255.255.255
!
interface Loopback12
description Loopback for VPN full mesh
ip address 12.12.12.12 255.255.255.255
interface Tunnel2
description Basic GRE Crypto to R3
ip address 192.168.32.2 255.255.255.0
tunnel source 2.2.2.2
tunnel destination 3.3.3.3
!
interface Tunnel4
description Basic GRE Crypto to R4
ip address 192.168.24.2 255.255.255.0
tunnel source 2.2.2.2
tunnel destination 4.4.4.4
!
interface Serial0
ip address 150.100.32.2 255.255.255.224
encapsulation frame-relay
ip ospf authentication message-digest
ip ospf message-digest-key 5 md5 7 045802150C2E
ip ospf network point-to-point
ip ospf hello-interval 65
ip ospf priority 0
frame-relay map ip 150.100.32.3 202 broadcast
!
router eigrp 100
network 12.0.0.0
network 192.168.24.0
network 192.168.32.0
maximum-paths 1
no auto-summary
eigrp log-neighbor-changes
!
router ospf 123
router-id 2.2.2.2
log-adjacency-changes
area 0 authentication message-digest
network 2.2.2.2 0.0.0.0 area 0
network 150.100.32.0 0.0.0.31 area 0
continues
CCIE.book Page 722 Monday, May 12, 2003 8:29 AM
R3#show run
version 12.2
!
hostname R3
!
interface Loopback3
description OSPF Loopback
ip address 3.3.3.3 255.255.255.255
!
interface Loopback13
description Loopback for VPN full mesh
ip address 13.13.13.13 255.255.255.255
!
interface Tunnel2
description Basic GRE Crypto to R2
ip address 192.168.32.1 255.255.255.0
tunnel source 3.3.3.3
tunnel destination 2.2.2.2
!
interface Tunnel4
description Basic GRE Crypto to R4
ip address 192.168.34.1 255.255.255.0
tunnel source 3.3.3.3
tunnel destination 4.4.4.4
!
interface Serial0
no ip address
encapsulation frame-relay
no fair-queue
clockrate 64000
frame-relay lmi-type ansi
!
interface Serial0.2 point-to-point
ip address 150.100.32.3 255.255.255.224
ip ospf authentication message-digest
ip ospf message-digest-key 5 md5 cisco
ip ospf hello-interval 65
ip ospf priority 0
frame-relay interface-dlci 302
!
interface Serial0.3 point-to-point
ip address 150.100.33.3 255.255.255.248
ip ospf authentication message-digest
ip ospf message-digest-key 5 md5 cisco
ip ospf hello-interval 65
ip ospf priority 0
frame-relay interface-dlci 304
CCIE.book Page 723 Monday, May 12, 2003 8:29 AM
R4#show run
!
version 12.2
!
hostname R4
!
interface Loopback4
description OSPF Loopback
ip address 4.4.4.4 255.255.255.255
!
interface Loopback14
description Loopback for VPN full mesh
ip address 14.14.14.14 255.255.255.255
!
interface Tunnel2
description Basic GRE Crypto to R2
ip address 192.168.24.4 255.255.255.0
tunnel source 4.4.4.4
tunnel destination 2.2.2.2
!
interface Tunnel3
description Basic GRE Crypto to R3
ip address 192.168.34.2 255.255.255.0
tunnel source 4.4.4.4
tunnel destination 3.3.3.3
!
interface Serial0
ip address 150.100.33.4 255.255.255.248
ip rip send version 2
ip rip receive version 2
encapsulation frame-relay
ip ospf authentication message-digest
ip ospf message-digest-key 5 md5 7 104D000A0618
ip ospf network point-to-point
continues
CCIE.book Page 724 Monday, May 12, 2003 8:29 AM
In this case study, you are required to encrypt traffic to and from the private networks on the
three routers. Apply this access list as well as the configured transform set to the crypto map
named vpn. Identify the peers by their GRE tunnel source IP address.
CCIE.book Page 725 Monday, May 12, 2003 8:29 AM
Example 20-2 shows the IPSec configuration portion of R2, R3, and R4.
Example 20-2 Configuring IPSec Parameters
R2#show run
!
! Output omitted for brevity
!
crypto isakmp policy 1
authentication pre-share
crypto isakmp key ccie address 3.3.3.3
crypto isakmp key ccie address 4.4.4.4
!
crypto ipsec transform-set trvpn esp-des esp-sha-hmac
mode transport
!
crypto map vpn 10 ipsec-isakmp
set peer 3.3.3.3
set peer 4.4.4.4
set transform-set trvpn
match address 111
!
access-list 111 permit ip 12.12.12.0 0.0.0.255 14.14.14.0 0.0.0.255 log
access-list 111 permit ip 12.12.12.0 0.0.0.255 13.13.13.0 0.0.0.255 log
R3#show run
!
! Output omitted for brevity
!
crypto isakmp policy 1
authentication pre-share
crypto isakmp key ccie address 2.2.2.2
crypto isakmp key ccie address 4.4.4.4
!
crypto ipsec transform-set trvpn esp-des esp-sha-hmac
mode transport
!
crypto map vpn 10 ipsec-isakmp
set peer 2.2.2.2
set peer 4.4.4.4
set transform-set trvpn
match address 111
!
access-list 111 permit ip 13.13.13.0 0.0.0.255 12.12.12.0 0.0.0.255 log
access-list 111 permit ip 13.13.13.0 0.0.0.255 14.14.14.0 0.0.0.255 log
!
R4#show run
!
! Output omitted for brevity
!
crypto isakmp policy 1
authentication pre-share
continues
CCIE.book Page 726 Monday, May 12, 2003 8:29 AM
In Example 20-2, pay attention to the access lists that identify traffic for encryption. The access
lists for all three routers specify only the private network packets.
CAUTION Normally, in a full-mesh GRE situation, you need to configure a separate crypto map and access
list for each peer. Example 20-2 has only one. This configuration is provided as training for
the CCIE Security Lab exam. It helps you save time by avoiding extra typing. Although it is
a working configuration, it should never be implemented in a real-life production network.
R2#show run
!
! Output omitted for brevity
!
interface Tunnel2
description Basic GRE Crypto to R3
ip address 192.168.32.2 255.255.255.0
tunnel source 2.2.2.2
tunnel destination 3.3.3.3
crypto map vpn
!
interface Tunnel4
description Basic GRE Crypto to R4
ip address 192.168.24.2 255.255.255.0
CCIE.book Page 727 Monday, May 12, 2003 8:29 AM
R3#show run
!
! Output omitted for brevity
!
interface Tunnel2
description Basic GRE Crypto to R2
ip address 192.168.32.1 255.255.255.0
tunnel source 3.3.3.3
tunnel destination 2.2.2.2
crypto map vpn
!
interface Tunnel4
description Basic GRE Crypto to R4
ip address 192.168.34.1 255.255.255.0
tunnel source 3.3.3.3
tunnel destination 4.4.4.4
crypto map vpn
!
interface Serial0.2 point-to-point
ip address 150.100.32.3 255.255.255.224
ip ospf authentication message-digest
ip ospf message-digest-key 5 md5 cisco
ip ospf hello-interval 65
ip ospf priority 0
frame-relay interface-dlci 302
crypto map vpn
!
interface Serial0.3 point-to-point
ip address 150.100.33.3 255.255.255.248
ip ospf authentication message-digest
ip ospf message-digest-key 5 md5 cisco
ip ospf hello-interval 65
ip ospf priority 0
frame-relay interface-dlci 304
crypto map vpn
continues
CCIE.book Page 728 Monday, May 12, 2003 8:29 AM
Example 20-4 demonstrates the crypto map named vpn configured on R3. Notice the access list
111 definition, peer IP addresses, and interfaces to which the crypto map has been applied (both
virtual and physical).
Example 20-4 show crypto map Command on R3
You may issue the show ip route eigrp command to view the networks learned via EIGRP.
Example 20-5 illustrates such output on R3. Note that the prefixes are learned via tunnel
interfaces.
Example 20-5 show ip route eigrp Command Output on R3
Issue the debug crypto isa, debug crypto ipsec, and debug crypto isakmp detail commands
on R3. Then execute an extended ping from R3’s 13.13.13.13 to R2’s 12.12.12.12, as shown in
Example 20-6.
Example 20-6 Extended Ping from 13.13.13.13 to 12.12.12.12
R3#ping
Protocol [ip]:
Target IP address: 12.12.12.12
Repeat count [5]:
Datagram size [100]:
continues
CCIE.book Page 730 Monday, May 12, 2003 8:29 AM
After issuing the ping, watch the debug commands shown in Example 20-7, which demonstrate
the IPSec session establishment between the two peers.
Example 20-7 debug Command Output on R3
Note that while the IPSec negotiations are taking place, the extended ping success rate is only
20 percent. When you issue the extended ping after the negotiations are completed the success
rate is 100 percent and the results you receive should match Example 20-8.
Example 20-8 Extended Ping Results
Repeat the process shown in Examples 20-6, 20-7, and 20-8 for an extended ping from
13.13.13.13 to 14.14.14.14.
You can now view the established security associations on R3 by issuing the show crypto
isakmp sa command, as shown in Example 20-9.
Example 20-9 show crypto isakmp sa Command Output on R3
The configuration in this case study does not use the DMVPN solution. In the next case study,
you will concentrate on reducing the size of routers’ configuration with the help of DMVPN,
which makes a tremendous difference in larger topologies.
%
$
#
!!"
#
%& $
$ $
#
%
#
!!"
CCIE.book Page 733 Monday, May 12, 2003 8:29 AM
Before you set up the DMVPN-specific parameters, you need to have the crypto isakmp policy
and crypto ipsec transform-set already defined on all your routers, as shown in Example 20-10.
Note the 0.0.0.0 address used in the crypto isakmp statement on R4. This allows R2 to accept
any incoming ISAKMP request from clients that have the pre-shared key.
Example 20-10 crypto isakmp policy and crypto ipsec transform-set Configuration on R2, R3, and R4
R2#show run
hostname R2
!
crypto isakmp policy 10
authentication pre-share
group 2
crypto isakmp key ccie address 0.0.0.0 0.0.0.0
!
crypto ipsec transform-set des-set esp-des esp-sha-hmac
!
interface Loopback12
ip address 12.12.12.12 255.255.255.0
!
interface Serial0
ip address 150.100.32.2 255.255.255.224
encapsulation frame-relay
ip ospf network point-to-point
no fair-queue
frame-relay interface-dlci 202
!
router ospf 1
log-adjacency-changes
network 150.100.32.0 0.0.0.255 area 0
!
router rip
version 2
network 12.0.0.0
network 192.168.1.0
no auto-summary
R3#show run
hostname R3
!
crypto isakmp policy 10
authentication pre-share
group 2
continues
CCIE.book Page 734 Monday, May 12, 2003 8:29 AM
Example 20-10 crypto isakmp policy and crypto ipsec transform-set Configuration on R2, R3, and R4 (Continued)
crypto isakmp key ccie address 150.100.32.2
crypto isakmp key ccie address 150.100.33.4
!
crypto ipsec transform-set des-set esp-des esp-sha-hmac
!
interface Loopback3
ip address 3.3.3.3 255.255.255.255
!
interface Loopback13
ip address 13.13.13.13 255.255.255.255
!
interface Serial0
no ip address
encapsulation frame-relay
no fair-queue
!
interface Serial0.2 point-to-point
ip address 150.100.32.3 255.255.255.224
ip ospf network point-to-point
frame-relay interface-dlci 302
!
interface Serial0.4 point-to-point
ip address 150.100.33.3 255.255.255.248
ip ospf network point-to-point
frame-relay interface-dlci 304
!
router ospf 1
log-adjacency-changes
network 3.3.3.3 0.0.0.0 area 0
network 150.100.32.0 0.0.0.255 area 0
network 150.100.33.0 0.0.0.255 area 0
!
router rip
version 2
network 13.0.0.0
network 192.168.1.0
no auto-summary
R4#show run
hostname R4
!
crypto isakmp policy 10
authentication pre-share
group 2
crypto isakmp key ccie address 0.0.0.0 0.0.0.0
!
crypto ipsec transform-set des-set esp-des esp-sha-hmac
!
interface Loopback14
ip address 14.14.14.14 255.255.255.0
!
interface Serial0
CCIE.book Page 735 Monday, May 12, 2003 8:29 AM
Example 20-10 crypto isakmp policy and crypto ipsec transform-set Configuration on R2, R3, and R4 (Continued)
ip address 150.100.33.4 255.255.255.248
encapsulation frame-relay
ip ospf network point-to-point
no fair-queue
frame-relay interface-dlci 404
!
router ospf 1
log-adjacency-changes
network 150.100.33.0 0.0.0.255 area 0
!
router rip
version 2
network 14.0.0.0
network 192.168.1.0
no auto-summary
You can think of the crypto ipsec profile command as being similar in function to a dynamic
crypto map. It is designed for tunnel interfaces and defines the IPSec parameters for spoke-hub
and spoke-spoke IPSec encryption. After it is entered, this command takes you into crypto map
configuration mode.
To select the transform sets for use with the IPSec profile, use the following command syntax:
R2(config-crypto-map)#set transform-set transform-name
Overall, the only parameter that must be specified in the profile is the transform set. Note
that there is no requirement for the set peer or match address commands. The necessary
ingredients are learned directly from the associated GRE tunnel and NHRP mappings.
CCIE.book Page 736 Monday, May 12, 2003 8:29 AM
The set identity and set security association lifetime commands specify identity restrictions
and override the global lifetime value for the IPSec profile, respectively.
The set pfs command makes IPSec ask for perfect forward secrecy (PFS) when requesting new
security associations for the specific IPSec profile. It makes sense to specify group2, as done
in this case study, because group1 is used by default.
Example 20-11 shows the IPSec profile configuration on R2, R3, and R4.
Example 20-11 IPSec Profile Configuration of R2, R3, and R4
R3#show run
!
! Output omitted for brevity
!
crypto ipsec profile mgreprof
set transform-set des-set
set pfs group2
R4#show run
!
! Output omitted for brevity
!
crypto ipsec profile mgreprof
set transform-set des-set
set pfs group2
R2#show run
!
! Output omitted for brevity
!
crypto ipsec profile mgreprof
set transform-set des-set
set pfs group2
The DMVPN solution allows configuring NHRP to dynamically add each spoke to the hub’s
multicast destination list by using the following command:
R3(config-if)#ip nhrp map multicast dynamic
The ip nhrp map multicast dynamic statement causes NHRP to automatically add spoke
routers to the multicast NHRP mappings and register their unicast NHRP mappings when
a spoke router initiates the mGRE+IPSec tunnel. This enables dynamic routing over the
mGRE+IPSec tunnel, because dynamic routing protocols use multicast packets, as discussed
earlier. As a result, this command eliminates the need for a separate multicast mapping
configuration statement for each spoke.
To enable NHRP on an interface, use the following command:
R3(config-if)#ip nhrp network-id number
The number argument refers to a globally unique 32-bit network identifier from a nonbroadcast
multiaccess (NBMA) network. The available range is from 1 to 4294967295.
To change how long NHRP NBMA addresses are advertised as valid in NHRP responses
(the default is 7200 seconds), use the following command:
R3(config-if)#ip nhrp holdtime seconds
To make RIP advertise the routes back out the mGRE tunnel interface, you need to disable split
horizon:
R3(config-if)#no ip split-horizon
No further changes are needed because RIP automatically uses the originator’s IP address as
the next hop.
The tunnel key command can be used as a first line of defense to prevent improper
configuration or injection of packets from a foreign source:
R2(config-if)#tunnel key key-number
This command is configured under the GRE tunnel interface and links that interface with
the IPSec profile. It specifies that IPSec encryption takes place after the packet has been
encapsulated by the GRE.
Example 20-12 demonstrates the necessary changes made to the R3 configuration to migrate
from point-to-point GRE tunnel interfaces on the spoke routers to the mGRE tunnel on R3
by adding the NHRP-related configuration statements. Notice the ip nhrp map multicast
dynamic command in R3’s tunnel configuration. This enables the mapping of multicast routing
protocol packets and forwarding them to spoke routers.
Example 20-12 mGRE Configuration of the Hub Router
R3#show run
!
! Output omitted for brevity
!
interface Tunnel100
ip address 192.168.1.1 255.255.255.0
no ip redirects
ip mtu 1416
ip nhrp authentication ccie
ip nhrp map multicast dynamic
ip nhrp network-id 99
ip nhrp holdtime 300
no ip split-horizon
tunnel source 3.3.3.3
tunnel mode gre multipoint
tunnel key 10000
tunnel protection ipsec profile mgreprof
You can see that the R3 configuration is missing the spokes’ IP addresses. R3 gets the spoke’s
external physical interface IP address and the mapping to the spoke’s tunnel interface IP address
dynamically via NHRP.
CCIE.book Page 739 Monday, May 12, 2003 8:29 AM
The following command enables the use of a dynamic routing protocol (RIPv2 in this case)
between the spoke and hub and sends multicast packets to the hub router:
R2(config-if)#ip nhrp map multicast hub-physical-ip-address
As mentioned, the R3 router also acts as the Next-Hop Server (NHS). The spoke is notified
of this with the following command:
R2(config-if)#ip nhrp nhs hub-tunnel-ip-address
The ip nhrp nhs command causes the spoke router to send NHRP registration packets to R3 at
regular intervals through the mGRE+IPSec tunnel. It provides R3 with the spoke’s dynamic IP
address information, which in turn allows R3 to tunnel packets back to the spoke routers.
As soon as the IPSec tunnel is set up, the spoke router sends an NHRP registration packet to
R3, acting as the NHS. This tells R3 to create an NHRP mapping for the spoke router, so
now R3 can forward unicast IP data packets to the spoke router over the mGRE+IPSec tunnel.
It also makes dynamic routing possible because R3 adds the spoke router to the NHRP multi-
cast mapping list and therefore allows routing protocol update exchange between itself and the
spoke.
CCIE.book Page 740 Monday, May 12, 2003 8:29 AM
As shown in Example 20-13, the configuration of both spoke routers is very similar, with the
exception of IP addresses. It simplifies configuration management when the number of spoke
routers is considerable.
Example 20-13 mGRE Configuration of the Spoke Routers
R2#show run
!
! Output omitted for brevity
!
interface Tunnel100
ip address 192.168.1.2 255.255.255.0
no ip redirects
ip mtu 1416
ip nhrp authentication ccie
ip nhrp map 192.168.1.1 3.3.3.3
ip nhrp map multicast 3.3.3.3
ip nhrp network-id 99
ip nhrp holdtime 300
ip nhrp nhs 192.168.1.1
no ip split-horizon
tunnel source 150.100.32.2
tunnel mode gre multipoint
tunnel key 10000
tunnel protection ipsec profile mgreprof
R4#show run
!
! Output omitted for brevity
!
interface Tunnel100
ip address 192.168.1.3 255.255.255.0
no ip redirects
ip mtu 1416
ip nhrp authentication ccie
ip nhrp map 192.168.1.1 3.3.3.3
ip nhrp map multicast 3.3.3.3
ip nhrp network-id 99
ip nhrp holdtime 300
ip nhrp nhs 192.168.1.1
no ip split-horizon
tunnel source 150.100.33.4
tunnel mode gre multipoint
tunnel key 10000
tunnel protection ipsec profile mgreprof
CCIE.book Page 741 Monday, May 12, 2003 8:29 AM
To view the parameters for each IKE policy, issue the show crypto isakmp policy command,
as shown in Example 20-15. Notice the group 2 parameter configured under the crypto isakmp
policy command. It was set in Step 1 of this case study.
Example 20-15 show crypto isakmp policy Command Output on R4
The show crypto map command issued on R4 displays the IPSec profile parameters configured
as shown in Example 20-16.
CCIE.book Page 742 Monday, May 12, 2003 8:29 AM
You can trigger the IPSec tunnel establishment between the peers by pinging the hub and the
other spoke router. Example 20-17 demonstrates the successful results of a ping issued on R4
to R3 and R2 after the IPSec tunnel has been established.
Example 20-17 Results of the ICMP Requests on R4
R4#ping 13.13.13.13
The show crypto isakmp sa detail command displays the ISAKMP security association
information built between peers. Example 20-18 demonstrates the security association between
R4 and R3.
CCIE.book Page 743 Monday, May 12, 2003 8:29 AM
The show crypto engine connections active command displays each Phase 2 security associ-
ation built and the amount of traffic sent, as shown in Example 20-19. Remember that Phase 2
security associations are unidirectional, so each security association shows traffic in one
direction only (encryptions are outbound, and decryptions are inbound).
Example 20-19 show crypto engine connections active Command Output on R3
The debug nhrp packet and debug nhrp extension commands display a dump of NHRP
packets and the extensions portion of an NHRP packet, respectively. Example 20-20 demon-
strates the output of these commands on R3 after the ping has been issued on R2. Notice the
resolution of the NBMA source and destination addresses, as well as the CCIE key exchange.
Example 20-20 debug nhrp packet and debug nhrp extension Command Output on R3
R3#ping 12.12.12.12
Example 20-20 debug nhrp packet and debug nhrp extension Command Output on R3 (Continued)
*Mar 24 14:48:29.031: shtl: 4(NSAP), sstl: 0(NSAP)
*Mar 24 14:48:29.031: (M) flags: "unique", reqid: 2576
*Mar 24 14:48:29.031: src NBMA: 150.100.33.4
*Mar 24 14:48:29.031: src protocol: 192.168.1.3, dst protocol: 192.168.1.
*Mar 24 14:48:29.031: (C-1) code: no error(0)
*Mar 24 14:48:29.031: prefix: 255, mtu: 1514, hd_time: 300
*Mar 24 14:48:29.031: addr_len: 0(NSAP), subaddr_len: 0(NSAP), proto_len:
0, pref: 0
*Mar 24 14:48:29.123: src: 192.168.1.1, dst: 12.12.12.12
*Mar 24 14:48:29.123: (F) afn: IPv4(1), type: IP(800), hop: 255, ver: 1
*Mar 24 14:48:29.123: shtl: 4(NSAP), sstl: 0(NSAP)
*Mar 24 14:48:29.123: (M) flags: "router auth src-stable", reqid: 1
*Mar 24 14:48:29.123: src NBMA: 3.3.3.3
*Mar 24 14:48:29.123: src protocol: 192.168.1.1, dst protocol: 12.12.12.1
*Mar 24 14:48:29.123: (C-1) code: no error(0)
*Mar 24 14:48:29.123: prefix: 0, mtu: 1514, hd_time: 300
*Mar 24 14:48:29.123: addr_len: 0(NSAP), subaddr_len: 0(NSAP), proto_len:
0, pref: 0
*Mar 24 14:48:29.123: Responder Address Extension(3):
*Mar 24 14:48:29.123: Forward Transit NHS Record Extension(4):
*Mar 24 14:48:29.123: Reverse Transit NHS Record Extension(5):
*Mar 24 14:48:29.123: Authentication Extension(7):
*Mar 24 14:48:29.123: type:Cleartext(1), data:ccie
*Mar 24 14:48:29.343: NHRP: Receive Resolution Reply via Tunnel100, packet size:
108
*Mar 24 14:48:29.343: (F) afn: IPv4(1), type: IP(800), hop: 255, ver: 1
*Mar 24 14:48:29.343: shtl: 4(NSAP), sstl: 0(NSAP)
*Mar 24 14:48:29.343: (M) flags: "router auth dst-stable unique src-stable",
qid: 1
*Mar 24 14:48:29.343: src NBMA: 3.3.3.3
*Mar 24 14:48:29.343: src protocol: 192.168.1.1, dst protocol: 12.12.12.1
*Mar 24 14:48:29.343: (C-1) code: no error(0)
*Mar 24 14:48:29.343: prefix: 24, mtu: 1514, hd_time: 300
*Mar 24 14:48:29.343: addr_len: 4(NSAP), subaddr_len: 0(NSAP), proto_len:
4, pref: 0
*Mar 24 14:48:29.343: client NBMA: 150.100.32.2
*Mar 24 14:48:29.343: client protocol: 12.12.12.12
*Mar 24 14:48:29.343: Responder Address Extension(3):
*Mar 24 14:48:29.343: (C) code: no error(0)
*Mar 24 14:48:29.343: prefix: 0, mtu: 1514, hd_time: 300
*Mar 24 14:48:29.343: addr_len: 4(NSAP), subaddr_len: 0(NSAP), proto_len:
4, pref: 0
*Mar 24 14:48:29.343: client NBMA: 150.100.32.2
*Mar 24 14:48:29.343: client protocol: 192.168.1.2
*Mar 24 14:48:29.343: Forward Transit NHS Record Extension(4):
*Mar 24 14:48:29.343: Reverse Transit NHS Record Extension(5):
*Mar 24 14:48:29.343: Authentication Extension(7):
*Mar 24 14:48:29.343: type:Cleartext(1), data:ccie
*Mar 24 14:48:29.903: NHRP: Receive Registration Request via Tunnel100, packet
size: 80
*Mar 24 14:48:29.903: (F) afn: IPv4(1), type: IP(800), hop: 255, ver: 1
*Mar 24 14:48:29.903: shtl: 4(NSAP), sstl: 0(NSAP)
CCIE.book Page 745 Monday, May 12, 2003 8:29 AM
Summary 745
Example 20-20 debug nhrp packet and debug nhrp extension Command Output on R3 (Continued)
*Mar 24 14:48:29.903: (M) flags: "unique", reqid: 9060
*Mar 24 14:48:29.903: src NBMA: 150.100.32.2
*Mar 24 14:48:29.903: src protocol: 192.168.1.2, dst protocol: 192.168.1.
*Mar 24 14:48:29.903: (C-1) code: no error(0)
*Mar 24 14:48:29.903: prefix: 255, mtu: 1514, hd_time: 300
*Mar 24 14:48:29.903: addr_len: 0(NSAP), subaddr_len: 0(NSAP), proto_len:
0, pref: 0
*Mar 24 14:48:29.903: Responder Address Extension(3):
*Mar 24 14:48:29.903: Forward Transit NHS Record Extension(4):ping
*Mar 24 14:48:29.903: Reverse Transit NHS Record Extension(5):
*Mar 24 14:48:29.903: Authentication Extension(7):
*Mar 24 14:48:29.903: type:Cleartext(1), data:ccie
ccie
The show ip nhrp command output shown in Example 20-21 shows R4’s NHRP cache. The
12.12.12.0/24 field specifies the IP address and its network mask in the IP-to-NBMA address
cache. The Tunnel100 created 00:00:35 field specifies the interface’s type and number and
how long ago it was created. The expire 00:04:04 field shows when the authoritative NBMA
address will expire; the value is based on the ip nhrp holdtime command, configured for 300
seconds in Step 2 of this case study. The Type: dynamic field means that the NBMA address
was obtained from the NHRP request packet.
Example 20-21 show ip nhrp Command Output on R4
R4#show ip nhrp
12.12.12.0/24 via 12.12.12.12, Tunnel100 created 00:00:42, expire 00:04:17
Type: dynamic, Flags: router unique used
NBMA address: 150.100.32.2
13.13.13.13/32 via 13.13.13.13, Tunnel100 created 00:00:35,
00:00:35 expire 00:04:24
Type: dynamic, Flags: router unique used
NBMA address: 3.3.3.3
14.14.14.0/24 via 14.14.14.14, Tunnel100 created 00:01:09, expire 00:04:04
Type: dynamic,
dynamic Flags: router authoritative unique local
NBMA address: 150.100.33.4
192.168.1.1/32 via 192.168.1.1, Tunnel100 created 00:03:44, never expire
Type: static, Flags: authoritative used
NBMA address: 3.3.3.3
192.168.1.2/32 via 192.168.1.2, Tunnel100 created 00:01:09, expire 00:04:04
Type: dynamic, Flags: router implicit used
NBMA address: 150.100.32.2
Summary
This chapter introduced you to two techniques for configuring IPSec:
• GRE tunnels
• DMVPN
CCIE.book Page 746 Monday, May 12, 2003 8:29 AM
The topics discussed are part of the advanced IPSec configuration. Both the overview and con-
figuration portions of this chapter relied heavily on your thorough understanding and knowledge
of concepts discussed in Chapter 19. The DMVPN feature is a recent addition to the security
services offered by Cisco. It was introduced with the 12.2(13)T release of the Cisco IOS soft-
ware. Be sure to check the current CCIE Security Lab equipment list to determine the likelihood
of this feature appearing on your exam.
Review Questions
1 Name two issues arising from conventional IPSec configuration.
3 How can you implement dynamic routing protocols over IPSec protected links?
4 When full-mesh GRE tunnels are used, which interfaces need to have a crypto map
applied?
5 What command specifies that all traffic going through the GRE tunnel is to be encrypted?
7 In DMVPN, what command issued on the hub router causes NHRP to automatically add
spoke routers to the multicast NHRP mappings and register their unicast NHRP mappings
when a spoke router initiates the mGRE+IPSec tunnel?
8 What do you do to route RIP over the mGRE tunnel?
CCIE.book Page 747 Monday, May 12, 2003 8:29 AM
FAQs 747
FAQs
Q — Can DMVPN be implemented with multiple routed protocols?
A — Yes. You can implement multiple routed protocols such as IP and IPX over the
DMVPN architecture simultaneously. However, when opting for such a configura-
tion, remember to exercise consistency with the split-horizon issues.
Q — What routing protocols can be used with DMVPN, and which of them is the most
commonly used in enterprise networks?
A — Possible routing protocols are EIGRP, OSPF, BGP, and RIP. EIGRP is currently the
one most commonly used.
Q — Can you implement redundancy of the NHRP in a DMVPN environment?
A — Yes. You can configure multiple NHRP servers on multiple hubs for backup.
Q — What are the current hardware limitations of DMVPN?
A — The 800 series currently does not support NHRP. NHRP is a DMVPN solution
requirement, so DMVPN cannot currently be run on this platform.
CCIE.book Page 748 Monday, May 12, 2003 8:29 AM
CHAPTER 21
VPDN info to
bring up the
User
Is it a VPDN tunnel with
Client Authentication
Client? (5) LNS (6)
(11)
LNS/Home-Gateway
LAC/NAS
CHAP Response (4) LCP Parameters + CHAP Challenge + CHAP Response Forwarded (10)
These phases can be performed locally on the router or by the AAA server.
Step 2 The client and the LAC/NAS negotiate the PPP LCP options such as PAP or
CHAP, PPP multilink, compression, and so on.
Step 3 If CHAP has been agreed upon, the LAC/NAS queries the client with a
CHAP challenge.
Step 4 The client responds with username@DomainName and the password.
Step 5 Using local VPDN configuration or contacting an AAA server, the LAC/NAS
determines whether the client is a VPDN user based on the domain name in
the CHAP response.
Step 6 If the client is a VPDN user, the LAC attempts to bring up an L2TP or L2F
tunnel with the LNS/home gateway according to the information found in its
local VPDN configuration or on an AAA server. The authentication process
via an AAA server is described in Chapter 18, “AAA Services.”
CCIE.book Page 751 Monday, May 12, 2003 8:29 AM
Step 7 Now it’s the LNS/home gateway’s turn to check the LAC/NAS. The
LNS/home gateway verifies the name in the request received from
the LAC/NAS and validates it as the potential tunnel peer.
Step 8 The authentication process works both ways: The LAC/NAS needs to
authenticate the LNS/home gateway as well. This is done by referencing
the local configuration or via an AAA server.
Step 9 The LAC/NAS peers with the LNS/home gateway. Together they form a
tunnel in between.
Step 10 The LAC/NAS sends the LCP options negotiated between the client
and itself to the LNS/home gateway. It also passes along the client’s
username@DomainName and password.
Step 11 The LNS/home gateway gets involved in the PPP negotiations. It clones
the virtual-access interface from a virtual template in its configuration and
authenticates the client’s LCP options forwarded by the LAC/NAS locally or
via an AAA server.
Step 12 The LNS/home gateway sends a CHAP response back to the client.
Step 13 When the IPCP phase is complete, the route is installed, and the PPP session
is up between the client and the LNS/home gateway. Chapter 6, “ISDN
Connectivity,” contains more information on PPP.
The important facts to remember are
• The PPP session is between the two farthest points of the connection: the client and
the LNS/home gateway.
• The L2F or L2TP tunnel is formed between the LAC/NAS and the LNS/home gateway.
In this implementation, the LAC/NAS’s function is to forward the PPP frames.
PPTP Overview
Point-to-Point Tunneling Protocol (PPTP) is an L2 tunneling protocol developed by Microsoft
for a Windows-enabled remote client to connect securely to a private corporate network over
the public IP network. PPTP is a newer technology and is somewhat of a replacement for VPDN.
Unlike in the traditional VPDN architecture, the PPTP client doesn’t have to be connected over
the dialup services. This is because as far as PPTP is concerned, the client’s PC is the PPTP
access concentrator (PAC), and the other side of the connection terminates at the PPTP network
server (PNS), which is the PIX Firewall. The PIX Firewall has supported PPTP since Release 5.1.
PIX’s support of PPTP includes PAP, CHAP, and MS-CHAP using local, RADIUS, or TACACS+
AAA. Encryption using the Microsoft Point-to-Point Encryption (MPPE) protocol is supported
as well.
CCIE.book Page 752 Monday, May 12, 2003 8:29 AM
Case Study 21-3, later in this chapter, is dedicated to PPTP. You will find out how PPTP relates
to the VPDN framework.
Configuring VPDNs
The following case studies discuss the VPDN configuration and various authentication
techniques used by VPDN. You will learn how to
• Configure the VPDN to work with local AAA
• Configure TACACS+ authentication and authorization for VPDN
• Configure the PIX Firewall to use PPTP
• Configure the default VPDN group template
Case Study 21-1: Configuring the VPDN to Work with Local AAA
In this case study, you will accomplish the following:
Step 1 Configure R3 as a dialup client.
Step 3 Configure PIX2, which separates the LAC from the LNS.
Step 4 Configure R8 as an LNS to use local AAA to authenticate the tunnel and
the user.
Step 5 Verify that the access VPN works properly.
Figure 21-2 shows the VPDN network topology. The tunnel and user authentication occur
locally between R5 and R8, the home gateway.
!
% &
"
#"
$
CCIE.book Page 753 Monday, May 12, 2003 8:29 AM
R3#show run
hostname R3
!
interface BRI0/0
no ip address
encapsulation ppp
dialer pool-member 1
isdn switch-type basic-ni
isdn spid1 26278037230101
isdn spid2 26278037240101
!
interface Dialer0
ip address negotiated
encapsulation ppp
no ip route-cache
no ip mroute-cache
dialer pool 1
dialer remote-name ccie4460@cisco.com
dialer string 5551313
dialer-group 1
no cdp enable
ppp authentication chap callin
ppp chap hostname ccie4460@cisco.com
ppp chap password 7 03075802031C244F5B1B10110E050A0205282E
!
dialer-list 1 protocol ip permit
!
ip route 0.0.0.0 0.0.0.0 Dialer 0
R5#show run
hostname R5
!
interface BRI0/0
no ip address
encapsulation ppp
dialer pool-member 1
isdn switch-type basic-ni
isdn spid1 26293867870101
isdn spid2 26293867880101
!
interface Dialer0
ip unnumbered serial 0
encapsulation ppp
no ip route-cache
no ip mroute-cache
dialer pool 1
dialer-group 1
no cdp enable
ppp authentication chap
!
dialer-list 1 protocol ip permit
After the VPDN process has been turned on, you must create a VPDN group. A VPDN
group is a group of VPDN attributes for the LAC/NAS and LNS/home gateway. The following
command associates a VPDN group with the VPDN clients belonging to the cisco.com domain
for this case study:
R5(config)#vpdn-group name
NOTE Case Study 21-2 covers a remote AAA solution. VPDN groups aren’t needed there.
Now you need to specify which protocol the subgroup will use. As you can see in the following
command syntax, you have several choices. In this case, l2tp is the correct one:
R5(config-vpdn-req-in)#protocol [l2f | l2tp | pppoe | any]
The next step in the subgroup configuration is to identify which tunnel the dialup client belongs
to by specifying the domain name. Multiple domain names can be assigned to a VPDN subgroup,
but here only one is used—cisco.com.
R5(config-vpdn-req-in)#domain domain-name
Another VPDN group-related command specifies the IP address of the tunnel’s end, 130.100.26.8,
although multiple IP addresses can be configured to request tunnels to multiple sources.
R5(config-vpdn)#initiate-to ip ip-address [limit limit-number] [priority
priority-number]
Finally, you must turn on authentication for L2TP. Each VPDN group is authenticated by its
defined name. The name does not need to be the same as the device’s host name. The order in
which the tunnel is identified and authenticated is as follows:
Step 1 An L2TP tunnel password is consulted (if it is defined).
Step 2 When there is no L2TP tunnel password on the LAC/NAS, the name defined
by the following command is used.
Step 3 If the following command is omitted, the host name is used. You see such an
instance in Example 21-3, where local name R5 hasn’t been manually
entered, but instead is used by the router’s default configuration.
R5(config-vpdn)#local name host-name
R5#show run
!
! Output omitted for brevity
!
vpdn enable
!
vpdn-group 1
request-dialin
protocol l2tp
domain cisco.com
initiate-to ip 130.100.26.8 priority 1
local name R5
CCIE.book Page 756 Monday, May 12, 2003 8:29 AM
aaa new-model
aaa authentication ppp default local
aaa authorization network default local
!
username R5 password 0 cisco
username R8 password 0 cisco
PIX2#show run
!
! Output omitted for brevity
!
static (inside,outside) 130.100.26.8 192.168.1.1 netmask 255.255.255.255 0 0
access-list outside_access_in permit udp any host 130.100.26.8 eq 1701
R8#show run
!
! Output omitted for brevity
!
aaa new-model
aaa authentication ppp default local
aaa authorization network default local
!
username cisco password 0 cisco
username R5 password 0 cisco
username R8 password 0 cisco
username ccie4460@cisco.com password 0 cisco
!
interface Loopback100
ip address 192.168.100.1 255.255.255.0
!
ip local pool HOME 192.168.100.10 192.168.100.20
CCIE.book Page 758 Monday, May 12, 2003 8:29 AM
The accept-dialin command serves as a reply to a dial-in L2TP tunnel open request from the
peer. This is accomplished in the following manner:
1 The peer instigates a dial-in tunnel specified by the request-dialin command on R5.
3 After the L2TP tunnel is established, the dial-in and dial-out calls can use it.
Configure the VPDN protocol in the VPDN subgroup configuration mode with the protocol
l2tp command. You must enable this command before you can move on.
When the LNS/home gateway accepts the LAC/NAS’s tunnel request, it uses the specified
virtual template that determines the virtual-access interface settings. You will create the virtual
template itself a little later in the process. For now, just remember that you need to reference it
under the VPDN accept-dialin setup.
R8(config-vpdn-acc-in)#virtual-template template-number
The template-number argument identifies the number of the virtual template that will be used
to clone virtual-access interfaces. Only one virtual template is allowed per accept-dialin group.
Next, in VPDN group mode, you specify the host name of the LAC/NAS from which a VPDN
tunnel request is accepted. This command should be placed after the accept-dial command has
already been input:
R8(config-vpdn)#terminate-from hostname host-name
R8#show run
!
! Output omitted for brevity
!
vpdn enable
CCIE.book Page 759 Monday, May 12, 2003 8:29 AM
Make sure you use the same number when referencing the virtual template in accept-dialin
mode.
NOTE Virtual template interfaces are not only applicable for VPDNs. They can be used with virtual
profiles, PPP over ATM, PPP over Ethernet, protocol translation, and Multichassis Multilink
PPP (MMP).
In the following steps you set up parameters for the virtual template:
Step 1 Specify that the virtual-access interfaces will use Loopback100’s IP address
with the ip unnumbered Loopback100 command.
Step 2 After enabling PPP encapsulation, assign an IP address from the home
address pool to the client with the peer default ip address pool HOME
command.
Step 3 Finally, enable CHAP authentication through the local database with the ppp
authentication chap command.
Example 21-8 demonstrates the setup of the virtual template.
Example 21-8 Virtual Template Configuration on R8
R8#show run
!
! Output omitted for brevity
continues
CCIE.book Page 760 Monday, May 12, 2003 8:29 AM
Command Description
debug vpdn event Displays L2TP errors and events that are a part of normal tunnel
establishment or shutdown for VPDNs.
debug vpdn l2x-event Displays messages about events that are part of normal tunnel establishment
or shutdown for 12x.
debug vpdn l2x-error Displays l2x protocol errors that prevent l2x establishment or its normal
operation.
debug ppp negotiation Causes the debug ppp command to display PPP packets transmitted during
PPP startup, where PPP options are negotiated.
show vpdn tunnel Displays the details of an active tunnel.
In addition to the commands shown in Table 21-1, you can use the debug vtemplate command
to troubleshoot VPDN on LAC R8. This command displays cloning information for a virtual-
access interface from the time it is cloned from a virtual template to the time the virtual-access
interface comes down when the call ends.
Example 21-9 shows the output of the show vpdn tunnel command on R5.
CCIE.book Page 761 Monday, May 12, 2003 8:29 AM
Example 21-10 shows the output from the show vpdn tunnel command issued on R8, which
demonstrates that the tunnel with R5 has been established. The second part of the example
shows the caller information, including the address allocated from the pool HOME.
Example 21-10 Debugging the VPDN Operation on R8
R8#show caller ip
Line User IP Address Local Number Remote Number <->
Vi1 ccie4460@cisco.com \
192.168.100.10 214 5551212 in
Step 2 Configure the LNS/home gateway to point to the TACACS+ server for
authentication.
Step 3 Configure the TACACS+ server.
!
% &
!'
&!!(
" #
"
$
Another set of commands to delete relates to the local tunnel authentication defined by
the username password commands. To take out the two username commands, enter no
username R5 and no username R8. Example 21-11 shows R5’s current configuration.
Example 21-11 LAC/NAS Configuration with TACACS+
R5#show run
!
! Output omitted for brevity
!
aaa new-model
aaa authentication ppp default group tacacs+
aaa authorization network default group tacacs+
!
tacacs-server host 130.100.26.7 key cisco6727
tacacs-server directed-request restricted
tacacs-server key cisco6727
tacacs-server administration
!
vpdn enable
R8#show run
!
! Output omitted for brevity
!
aaa new-model
aaa authentication ppp default if-needed group tacacs+
aaa authorization network default group tacacs+
!
vpdn enable
vpdn-group 1
! 1 L2TP VPDN group
accept-dialin protocol l2tp
virtual-template 1
local name R8
Step 4 Set up the user as a normal PPP user with the password and/or CHAP
password.
CCIE.book Page 765 Monday, May 12, 2003 8:29 AM
Step 5 Click Submit. You have now created a user named vpdn_tunnel.
Step 7 Under TACACS+ Settings, check the PPP/IP and PPP/LCP options.
NOTE You might recall from Chapter 18 that when some of the expected options don’t appear under
the user or group settings, you need to go into the interface configurations and select the boxes
next to the missing options to force them to show up.
#
Initial PIX configuration was covered in several prior chapters. It is a working configuration and
doesn’t need to be covered again here. However, you will see the specific configuration commands
needed to enable the PPTP services even if they were previously configured for another reason.
For this case study, you will follow these steps:
Step 1 Specify a local pool of IP addresses.
During the PPP IPCP protocol negotiation phase described in Chapter 6, PIX2 assigns a
dynamic internal IP address to the PPTP client allocated from the pool. To specify the internal
IP address pool for this case study, use the ip local pool ippool 192.168.2.1-192.168.2.254
command.
This command specifies the outside interface because the PPTP traffic is received on it.
Next, set up a VPDN group, and make it accept a dial-in request using PPTP:
PIX2(config)#vpdn group group_name accept dialin pptp
Next you specify that a PPTP client is to use an inside address allocated by the IP pool. The
general syntax is as follows:
PIX2(config)#vpdn group group_name client configuration address local
address_pool_name
CCIE.book Page 768 Monday, May 12, 2003 8:29 AM
To tell the PIX Firewall to use a remote AAA server for authentication purposes, use the
following command:
PIX2(config)#vpdn group group_name client authentication aaa aaa_server_group
For this case study’s configuration, use a group_name argument of 1 and an aaa_server_group
argument of radius.
When used with the vpdn commands, the next command allows PPTP traffic to avoid being
checked against access-list statements:
PIX2(config)#sysopt connection permit-pptp
Example 21-13 displays the PIX2 portion of this case study’s configuration.
Example 21-13 PPTP Configuration of PIX2
PIX2#show run
!
! Output omitted for brevity
!
ip local pool ippool 192.168.2.1-192.168.2.254
aaa-server TACACS+ protocol tacacs+
aaa-server RADIUS protocol radius
Summary 769
Also, there is a way to set up your VPDN configuration so that a specific VPDN group ignores
the template’s characteristics. Instead, it uses the system defaults for parameters that weren’t
explicitly stated in its configuration.
The benefits of using a default VPDN group template are obvious. It frees an administrator from
the potentially enormous task of configuring, maintaining, and monitoring many separate VPDN
group statements. Keep in mind, though, that as soon as an L2TP or L2F tunnel has been
established, the changes brought forth with your new template configuration don’t take effect
until the tunnel is torn down and reactivated.
Before a default template can be configured, the VPDN process and a VPDN group must be in
place on the router. The following command changes to template configuration mode, where
you can specify the globally controlled parameters:
R5(config)#vpdn-template
After the vpdn-template command has been entered, you can configure the default settings for
the VPDN template. Not every command normally available with the VPDN group can be used
with the VPDN group template. For more information on where to find the available commands,
see Appendix E, “Security-Related RFCs and Publications.”
As mentioned, it is possible to make an individual VPDN group disregard the template values
for the missing settings. By default, if the VPDN group template is configured on a router, its
parameters are automatically applied to a specific VPDN group if no matching parameters exist
in the group configuration. For greater flexibility, you can override the default with the following
command in VPDN group configuration mode:
R5(config-vpdn)#no source vpdn-template
Summary
This chapter introduced you to the mechanics of VPDNs and some of the L2 protocols that
make its operation possible, including L2TP, L2F, and PPTP. With the help of these protocols,
a remote client can securely communicate with a private corporate network via a virtual tunnel
over a public network. The case studies taught you how to create a working VPDN environment
by configuring several Cisco devices, including the following:
• Routers as a client
• LAC/NAS
• LNS/home gateway
• PIX Firewall as a PPTP network server
• Cisco ACS with a VPDN-related configuration
CCIE.book Page 770 Monday, May 12, 2003 8:29 AM
Review Questions
1 What is the PPP session termination point called in L2TP terminology?
FAQs 771
FAQs
Q — Where is the VPDN technology used the most?
A — VPDN is ideal for remote dialup users (clients) who can connect to a public
network via ISDN or an analog modem and who also require access to a private
corporate network.
Q — What are the port numbers for VPDN in a Cisco implementation?
A — L2F and L2TP are deployed over UDP port 1701, and PPTP is deployed over
UDP port 1723.
Q — What authentication techniques can VPDN use?
A — VPDN can authenticate locally and via remote RADIUS or TACACS+ servers.
Q — In what capacity can VPDN be implemented on the PIX Firewall?
A — PIX Firewall allows VPDN for inbound connections and implements the L2TP,
PPTP, and PPPoE features. When implementing L2TP and PPTP, PIX acts as a
server. With PPPoE, the PIX Firewall acts as a client only.
Q — What is the difference between the VPDN on PIX versus the VPDN on IOS?
A — VPDN on routers and VPDN on PIX have different functionality. IOS VPDN is
used for dialup connections, whereas VPDN on PIX is used for any type of connec-
tion. In the PIX VPDN setup, the client is treated as an access concentrator for the
PIX’s network server.
CCIE.book Page 772 Monday, May 12, 2003 8:29 AM
CCIE.book Page 773 Monday, May 12, 2003 8:29 AM
PA R T
VI
Firewalls
Chapter 22 Cisco IOS Firewall
CHAPTER 22
NOTE TCP options that are negotiated on handshake are not negotiated by the TCP intercept software,
because it does not know what the server can do or will negotiate. (See RFC 1323, “TCP
Extensions for High Performance,” which has recommendations for window scaling to achieve
optimal usage of packet sizes.)
When you are under attack, the TCP intercept feature becomes more aggressive in its protective
behavior. If the number of half-open connections exceeds 1100, or if the number of connections
arriving in the last minute exceeds 1100, each new arriving request causes the oldest half-open
connection to be deleted from the device. The initial retransmission timeout is also reduced to
0.5 seconds, or half the default, reducing the total time the software tries to establish a connec-
tion. TCP intercept’s aggressive behavior begins and ends based on two factors: total incomplete
CCIE.book Page 778 Monday, May 12, 2003 8:29 AM
connections and connection requests during the last 1-minute sample period. Both of these
thresholds have default values that you can modify.
The reason for this aggressive behavior is that when a threshold is exceeded, the TCP intercept
assumes that your server is under attack. While in aggressive mode, TCP intercept does the
following:
• Each new arriving connection causes the oldest half-open connection to be deleted.
• The initial retransmission timeout is reduced to 0.5 seconds, so the total time trying
to establish the connection is cut in half. (When not in aggressive mode, the code does
exponential backoff on its retransmissions of SYN segments.) The initial retransmission
timeout is 1 second. The subsequent timeouts are 2 seconds, 4 seconds, 8 seconds,
and 16 seconds. The code retransmits four times before giving up, so it gives up after
31 seconds of no acknowledgment.
• In watch mode, the watch timeout is reduced by half, or 15 seconds, if you are using the
default setting.
• You can change the drop strategy from the oldest connection to a random connection with
the ip tcp intercept drop-mode command.
NOTE Both factors used to determine the status of aggressive behavior are related and work
together. When either of the high values is exceeded, aggressive behavior begins. When
both quantities fall below the low value, aggressive behavior ends.
Because you are in the TCP intercept overview, you can define your ACL to intercept all
requests or only those coming from specific networks or destined for specific servers. You
typically define your ACL’s source as any and define specific destination networks or servers.
Trying to define the source address can be fruitless, because you cannot possibly know every
address a hacker might use, but you can identify the destination to protect your servers.
If an ACL match is not found, the software allows the request to pass with no further action.
In this portion of the lesson, you enable TCP intercept on R2 for all servers on the
100.200.200.0/24 subnet. Example 22-1 contains the configuration for R2 to complete this
lesson.
Example 22-1 Enabling TCP Intercept on R2
You now enable TCP intercept to operate in intercept mode. Example 22-2 contains the
configuration for R2 to complete this lesson.
Example 22-2 Setting the TCP Intercept Mode
In this portion, you set the drop mode to random. Example 22-3 contains the configuration for
R2 to complete this lesson.
Example 22-3 Setting the TCP Intercept Drop Mode
Another default time causes the software to wait for 5 seconds from the receipt of a reset or
FIN-exchange before it ceases to manage the connection. If needed, you can also change this
behavior by using the following command:
R2(config)#ip tcp intercept finrst-timeout seconds
The last timer you can modify is the management of a connection for 24 hours after no activity
has been seen on it. To change this value, use the following command:
R2(config)#ip tcp intercept connection-timeout seconds
You also have the option of changing the threshold for triggering aggressive mode based on the
number of connection requests received in the last 1-minute sample period from the default
value of 900 for low and 1100 for high. To accomplish this task, use the following commands:
R2(config)#ip tcp intercept one-minute low number
R2(config)#ip tcp intercept one-minute high number
CCIE.book Page 781 Monday, May 12, 2003 8:29 AM
You also need to change the max-incomplete settings to 700 for the low and 800 for the high.
Example 22-4 contains the configuration for R2 to complete this lesson.
Example 22-4 Adjusting the Aggressive Timers
CBAC Overview
Context-Based Access Control (CBAC) gives network protection on multiple levels using the
following functions:
• Traffic filtering
• Traffic inspection
• Alerts and audit trails
• Intrusion detection
The following sections describe these functions in greater detail.
Traffic Filtering
CBAC can provide intelligent filtering of TCP and UDP packets based on the application-layer
protocol session information included in the packet. You can configure CBAC to permit only
specified TCP and UDP traffic through your firewall when the connection is initiated from
within the network you want to protect. CBAC can inspect traffic for sessions that originate
either inside or outside your firewall. CBAC is supported for use on intranet, extranet, and
Internet perimeters of your network.
If you do not use CBAC, your filtering of traffic is limited to ACL implementations that examine
packets at only the network layer or, at most, the transport layer. You have to use CBAC if you
also want to examine packets at the application layer to learn about the session’s state. With this
CCIE.book Page 782 Monday, May 12, 2003 8:29 AM
feature, you can support protocols that involve multiple channels created as a result of negotiations
in the control channel, such as most multimedia protocols and some other protocols (FTP, RPC,
and SQL*Net).
You can configure Java blocking with CBAC to filter HTTP traffic based on the server address
or to completely deny access to Java applets that are not embedded in an archived or compressed
file. Java lets hackers place destructive applications on your network through one of your users.
To protect your network and users from this risk, you could require all users to disable Java in
their browsers. If this is not a viable solution, you can create a CBAC inspection rule to filter
Java applets at your firewall, which allows users to download only applets residing within the
firewall and trusted applets from outside the firewall. If your security policy requires extensive
content filtering of Java, ActiveX, or virus scanning, you might want to consider purchasing a
dedicated content-filtering product.
Traffic Inspection
CBAC inspects traffic that travels through your firewall to obtain and manage state information
for TCP and UDP sessions. CBAC uses this state information to create temporary openings
in the firewall’s ACLs to allow return traffic and additional data connections for permissible
sessions. By inspecting these packets at the application layer and maintaining TCP and UDP
session information, CBAC detects and prevents certain types of network attacks such as SYN-
flooding.
CBAC helps protect your resources against DoS attacks in many ways. CBAC can inspect a
packet’s sequence numbers in TCP connections to see if they are within expected ranges and
can drop any suspicious packets. You also can configure CBAC to drop half-open connections,
but this requires processing and memory resources to maintain on your firewall. CBAC can also
detect unusually high rates of new connections and issue alert messages.
CBAC can also protect against certain DoS attacks involving the use of fragmented IP packets.
Even though your firewall can prevent an attacker from connecting to a given host, the attacker
can disrupt services provided by that host. This is accomplished by sending many noninitial IP
fragments or by sending complete fragmented packets through a router with an ACL that filters
the first fragment of a fragmented packet. These fragments tie up resources on the target host
because it stores these fragments as it tries to reassemble the packet.
Intrusion Detection
CBAC provides limited intrusion-detection capability to protect against specific SMTP attacks.
This feature reviews SYSLOG messages to monitor for specific attack signatures. When an
attack is detected, CBAC resets the offending connection and sends a SYSLOG message with
relevant information in it to a configured SYSLOG server.
Intrusion-detection capabilities are beyond the scope of this chapter. They are covered in more
detail in Chapter 24.
CBAC Operation
CBAC creates temporary openings in ACLs placed on your firewall’s interfaces. These openings
are created when traffic that passes inspection by your ACLS exits your internal network through
your firewall. The openings are created to allow returning traffic, normally blocked at the
firewall, and additional data channels to enter your internal network back through your firewall.
The traffic is allowed back through your firewall only if it is part of a session that triggered
CBAC when exiting your firewall.
Throughout this section, the terms inbound and outbound are used to describe the direction of
traffic relative to the router interface on which CBAC is applied. For example, if a CBAC rule
is to be used in the inbound direction on an interface, packets entering that interface from the
network are inspected. It stands to reason that if a CBAC rule is to be used in the outbound
direction on an interface, packets leaving that interface to the network are inspected.
The terms input and output are used to describe the interfaces at which network traffic enters or
exits your firewall router. A packet enters your firewall router via an input interface, is inspected
by the firewall software, and then exits your router via the output interface.
When implementing CBAC, you need to specify which protocols you want to be inspected. You
also need to specify an interface and the interface direction (in or out) where the inspection
originates.
Packets entering the firewall first pass through an inbound ACL on the input interface and an
outbound ACL, if defined, on the output interface before CBAC inspects them. If the ACL
denies the packet, it is dropped before CBAC inspection occurs.
One item tracked by the CBAC inspection is the sequence numbers that are contained in all TCP
packets. If a packet with a sequence number that is not within the expected range is inspected
by CBAC, it is dropped.
TCP and UDP inspection can be configured to permit TCP and UDP packets entrance to your
internal network through your firewall, even if you do not configure application-layer protocol
inspection. Be aware, though, that TCP and UDP inspection do not recognize application-specific
commands and might not permit all return packets for an application, particularly if the return
packets have a different port number than the previous exiting packet.
CCIE.book Page 785 Monday, May 12, 2003 8:29 AM
NOTE If you configure both application-layer protocol inspection and TCP or UDP packet inspection,
the application-layer protocol inspection takes precedence.
When using TCP and UDP inspection, any packet trying to enter your network must exactly
match the corresponding packet that previously exited your network. This means that the
entering packet must have the same source/destination address and source/destination port
number as the exiting packet, but reversed; otherwise, the entering packet is blocked at the
interface. Also, if the sequence number of a TCP packet is outside the window, it is dropped.
When using UDP inspection, only replies are permitted back in through your firewall if they are
received within a configurable amount of time after the last request was sent out.
The inspection done by CBAC can recognize application-specific commands (such as illegal
SMTP commands) in the control channel and can detect and prevent certain application-level
attacks if configured to do so.
You can use Java applet filtering to distinguish between trusted and untrusted applets by
defining a list of external sites that you designate as “friendly.” If an applet is from a friendly
site, your firewall allows it through. If an applet is not from a friendly site, your firewall blocks
it. You can alternatively permit applets from all external sites except those you specifically
designate as hostile.
Remember that CBAC cannot detect or block encapsulated Java applets. So, if Java applets are
wrapped or encapsulated, such as in .zip or .jar format, they are not blocked at your firewall.
CBAC also does not detect or block applets loaded from FTP, gopher, HTTP on a nonstandard
port, and so forth.
For an operational CBAC implementation, you need to ensure that you have an IP ACL config-
ured appropriately at the interface. Follow these three general rules when evaluating your IP
ACLs for your firewall:
• Start with a basic configuration. A basic initial configuration allows all network traffic to
flow from your protected networks to the unprotected networks while blocking network
traffic from any unprotected networks.
• Permit CBAC traffic to leave the network through your firewall. ACLs that evaluate traffic
leaving your protected network should permit traffic that you want CBAC to inspect.
• Use extended ACLs to deny CBAC return traffic entering the network through your
firewall; CBAC creates temporary openings for the return traffic. For temporary openings
to be created in an ACL, you must use an extended ACL.
Each of these rules is examined in greater detail in the following section.
CCIE.book Page 786 Monday, May 12, 2003 8:29 AM
Basic Configuration
Your Cisco IOS Firewall needs to be configured to allow all network traffic from your protected
networks to access unprotected networks while blocking all network traffic (with some excep-
tions, such as ICMP traffic) from unprotected networks to your protected networks. As with
any security implementation, any firewall configuration you do depends on your company’s
security policy.
Use the following guidelines for configuring the initial firewall ACLs:
• Do not configure an ACL for traffic from your protected networks to unprotected
networks, meaning that all traffic from the protected networks can flow through the
interface. This helps you simplify the management of your firewall by reducing the
number of ACLs you need to apply to interfaces. You still can fine-tune network access
for your users on your protected networks as you gain experience with ACL list
configuration and firewall operation.
• Configure an ACL that includes entries permitting certain ICMP traffic from unprotected
networks. Although an ACL that denies all IP traffic that is not part of a connection
inspected by CBAC seems most secure, it is impractical for normal router operation. The
router expects to see ICMP traffic from other routers in the network. Additionally, CBAC
doesn’t inspect ICMP traffic, meaning that specific entries are needed in your ACL to
permit return traffic for ICMP commands.
Include access list entries to permit the following ICMP messages:
— echo reply
— time-exceeded
— packet-too-big
— traceroute
— unreachable
• Add an ACL entry that denies any network traffic from a source address matching an
address on your protected network. This provides antispoofing protection by preventing a
hacker from impersonating a device on your protected network.
• Add an ACL entry denying broadcast messages with a source address of 255.255.255.255
to prevent broadcast attacks.
• By default, the last entry in an extended ACL is an implicit denial of all IP traffic not
specifically allowed by other entries in the ACL.
CCIE.book Page 787 Monday, May 12, 2003 8:29 AM
External Interface
Here are guidelines to consider when you are configuring ACLs for an external interface:
• If you use an outbound IP ACL on an external interface, the ACL can be either standard
or extended. This outbound ACL should permit only traffic that you want to be inspected
by CBAC; traffic not permitted is not inspected by CBAC and is dropped.
• The inbound IP ACL used on the external interface must be an extended ACL. This
inbound ACL should be used to deny traffic that you want to be inspected by CBAC,
allowing CBAC to create temporary openings for valid return traffic.
Internal Interface
Here are guidelines for you to consider when you are configuring ACLs for an internal
interface:
• If you use an inbound IP ACL on an internal interface, the ACL can be either standard or
extended. This inbound ACL should permit only traffic that you want to be inspected by
CBAC; traffic not permitted is not inspected by CBAC and is dropped.
• The outbound IP ACL used on an internal interface must be an extended ACL. Outbound
ACLs should only deny traffic that you want to be inspected by CBAC, allowing CBAC
to create temporary openings for valid return traffic. You are not required to configure an
extended ACL at both the outbound internal interface and the inbound external interface,
but at least one is necessary to restrict traffic flowing through your firewall into your
internal protected network.
During a suspected attack, CBAC’s DoS feature can take several actions:
• Generate an alert message.
• Protect system resources that can be exploited to impede performance.
• Block packets that originate from suspected attackers.
Like many of the items you will use to enforce your security policy, CBAC uses timeout and
threshold values in its operation. It uses these timeout and threshold values to manage session
state information, helping determine when to drop sessions that do not become fully established.
Setting timeout values that match your network session needs helps you prevent DoS attacks
by freeing up system resources, dropping sessions after a specified amount of time, and con-
trolling the number of half-open sessions. CBAC timeouts and thresholds are applied globally
across all sessions. When CBAC drops a session, it sends a reset message to the devices at both
the session’s endpoints (source and destination). When a reset message is received by the system
under DoS attack, it releases, or frees up, the processes and resources related to that incomplete
session.
CCIE.book Page 788 Monday, May 12, 2003 8:29 AM
One example of when you might want to change the default values is when you want to enable
the more-aggressive TCP host-specific DoS prevention that includes the blocking of connection
initiation to a host.
Half-Open Sessions
One indication of a DoS attack in progress is an unusually high number of half-open sessions,
whether they are absolute or measured as the arrival rate. In the case of TCP, “half-open” means
that the session has not reached the established state, and the TCP three-way handshake of
SYN, SYN-ACK, ACK has not completed. In the case of UDP, “half-open” means that the
firewall has not detected any return traffic.
CBAC measures both the total number of existing half-open sessions and the rate of session
establishment attempts. Both TCP and UDP half-open sessions are counted in the total number
and rate measurements. Rate measurements are taken several times per minute to ensure an
accurate count.
If the total number of existing half-open sessions rises above the max-incomplete high
threshold, the software begins deleting half-open sessions as needed to accommodate new
connection requests. This deletion process continues until the number of existing half-open
sessions drops below the max-incomplete low threshold.
If the rate of new connection attempts rises above the one-minute high threshold, the software
begins deleting half-open sessions as needed to accommodate new connection attempts. This
deletion process continues until the rate of new connection attempts drops below the one-
minute low threshold. The rate threshold is measured as the number of new session connection
attempts detected in the last 1-minute sample period.
You are given three thresholds when implementing CBAC against DoS attacks:
• The total number of half-open TCP or UDP sessions waiting for a return packet
• The number of half-open sessions based on time
• The number of half-open TCP-only sessions per host
CBAC has two options to use when a threshold is exceeded:
• Send a reset message to the endpoints of the oldest half-open session, freeing up resources
needed to service newly arriving SYN packets.
• In the case of half-open TCP-only sessions, CBAC blocks all SYN packets temporarily
for the duration configured by the threshold value. When the router blocks a SYN packet,
the TCP three-way handshake is never initiated, which prevents the router from using
memory and processing resources needed for valid connections.
To use the DoS detection and prevention provided by CBAC, you are required to create a CBAC
inspection rule and apply that rule on an interface. You must include the protocols you want to
CCIE.book Page 789 Monday, May 12, 2003 8:29 AM
monitor against DoS attacks in this rule. Of course, your job as a security administrator would
be much simpler if all DoS attacks were packet-based. Unfortunately, some attacks are based
on fragmentation of IP packets. However, CBAC offers you a way to combat these attacks.
If you use a fragmentation inspection feature, your firewall maintains an interfragment state for
IP traffic. Any noninitial fragments are discarded unless the corresponding initial fragment was
permitted to pass through your firewall. Any noninitial fragments received before the corre-
sponding initial fragments are discarded.
CAUTION Fragmentation inspection can have undesirable effects in certain cases, such as when fragments
are received out of order. In this scenario, your firewall discards these out-of-order packets.
Because many circumstances can cause out-of-order delivery of legitimate fragments, applying
fragmentation inspection in these situations might have a severe performance impact.
Fragmentation inspection is turned off by default, but you can enable it by explicitly including
it in an inspection rule using the ip inspect name command. Unfragmented traffic is never
discarded, because it lacks a fragment state.
CBAC implements a state table to keep track of all this information, as detailed in the following
section.
Permitting Return Traffic and Additional Data Connections with ACL Entries
CBAC operates by dynamically creating and deleting ACL entries at the firewall interfaces, in
accordance with the information maintained in the state tables. These ACL entries are used to
CCIE.book Page 790 Monday, May 12, 2003 8:29 AM
examine traffic returning to your internal network. These entries are used to create temporary
openings in your firewall to permit only traffic that is part of a permissible session.
These temporary ACL entries are never saved to NVRAM.
CBAC-Supported Protocols
You can configure CBAC to inspect the following types of sessions:
• All TCP sessions, regardless of the application-layer protocol (sometimes called
single-channel or generic TCP inspection)
• All UDP sessions, regardless of the application-layer protocol (sometimes called
single-channel or generic UDP inspection)
Because application-layer support is included in CBAC, you can configure it to inspect the
following:
• CU-SeeMe (only the White Pine version)
• FTP
• H.323 (such as NetMeeting and ProShare)
• HTTP (Java blocking)
• Microsoft NetShow
CCIE.book Page 791 Monday, May 12, 2003 8:29 AM
!"#
!"#
The second topology for your consideration is shown in Figure 22-2. In this topology, CBAC is
configured for the internal Ethernet interface. This allows external traffic to access the services
in the demilitarized zone (DMZ), such as DNS services, but prevents specified protocol traffic
from entering your internal network, unless the traffic is part of a session initiated from within
the internal network.
By using these two sample topologies, you should be able to decide whether to configure CBAC
on an internal or external interface.
CCIE.book Page 793 Monday, May 12, 2003 8:29 AM
!"#
To change the length of time a TCP session is still managed after the firewall detects a
FIN-exchange from the default of 5 seconds:
R2(config)#ip inspect tcp finwait-time seconds
To set the length of time a TCP session is still managed after no activity, the TCP idle timeout,
from 1 hour:
R2(config)#ip inspect tcp idle-time seconds
To change the length of time a UDP session is still managed after no activity, the UDP idle
timeout, from the default of 30 seconds:
R2(config)#ip inspect udp idle-time seconds
To change the length of time a DNS name lookup session is still managed after no activity from
the default of 5 seconds:
R2(config)#ip inspect dns-timeout seconds
To change the number of existing half-open sessions that cause the software to start deleting
half-open sessions from the default of 500:
R2(config)#ip inspect max-incomplete high number
To change the number of existing half-open sessions that cause the software to stop deleting
half-open sessions from the default of 400:
R2(config)#ip inspect max-incomplete low number
To change the rate of new sessions that cause the software to start deleting half-open sessions
from the default of 500:
R2(config)#ip inspect one-minute high number
To change the rate of new sessions that cause the software to stop deleting half-open sessions
from 400 per minute:
R2(config)#ip inspect one-minute low number
To change the number of existing half-open TCP sessions with the same destination host
address that will cause the software to start dropping half-open sessions to the same destination
host address from the default of 50 sessions and 0 minutes:
R2(config)#ip inspect tcp max-incomplete host number block-time minutes
CCIE.book Page 795 Monday, May 12, 2003 8:29 AM
In this lesson, you change the CBAC timeouts so that the device waits for 20 seconds for TCP
to reach an established state with an idle time of 30 minutes, 1800 seconds. You will also set
your UDP idle timeout to 20 seconds. You want to start deleting half-open sessions at 350 ses-
sions and stop deleting them at 250 sessions. Your last item is to start dropping half-open sessions
to a single IP address at 75 for 1 minute. Example 22-6 illustrates the configuration items for
R2 that accomplish this task.
Example 22-6 Configuring Global Timeouts
Table 22-1 lists application protocol keywords for the ip inspect name command.
Table 22-1 Application protocol Keywords for the ip inspect name Command
continues
CCIE.book Page 796 Monday, May 12, 2003 8:29 AM
Table 22-1 Application protocol Keywords for the ip inspect name Command (Continued)
You can use the following to block all Java applets except applets from friendly locations:
R2(config)#ip access-list standard name
R2(config-std-nacl)# deny source [source-wildcard]
or
R2(config-std-nacl)# permit source [source-wildcard]
or
R2(config)#access-list access-list-number {deny | permit} protocol source
[source-wildcard] eq www destination [destination-wildcard]
You can use one or both of the following commands to configure CBAC inspection for TCP
or UDP packets:
R2(config)#ip inspect name inspection-name tcp [alert {on | off}] [audit-trail
{on | off}] [timeout seconds]
In this portion of the lesson, you define an inspection rule named ccie_cbac that inspects various
applications. These applications are CU-SeeMe, FTP, RealAudio, RPC (program number
111000), StreamWorks, VDOLive, and RTSP. Example 22-7 demonstrates a way to configure
these options.
Example 22-7 CBAC Inspection Rule for Application Layer Protocols
Example 22-7 CBAC Inspection Rule for Application Layer Protocols (Continued)
R2(config)#ip inspect name ccie_cbac vdolive timeout 30
R2(config)#ip inspect name ccie_cbac rtsp
R2(config)#ip inspect name ccie_cbac h323
The next step in this lesson is to apply CBAC to your Ethernet interface. Example 22-8
illustrates the configuration items for R2 that accomplish this task.
Example 22-8 Applying the CBAC Inspection Rule
Next you configure R2 to log to the SYSLOG server located at 192.168.100.100. You will log
error level messages. You will enable audit trail for IP inspect. Example 22-9 lists the
configuration items required on R2.
Example 22-9 Configuring an Audit Trail
To show the complete CBAC inspection configuration, use the following command:
R2#show ip inspect config
To show the interface configuration with regards to applied inspection rules and ACLs, use
the following command:
R2#show ip inspect interfaces
To show existing sessions that are currently being tracked and inspected by CBAC, use the
following command:
R2#show ip inspect session [detail]
To show all CBAC configuration and all existing sessions that are currently being tracked and
inspected by CBAC, use the following command:
R2#show ip inspect all
Most of the time, you can tell whether CBAC is inspecting network traffic properly, because
your network applications are working as expected. However, in the case of verifying RTSP or
H.323 inspection, you can initiate an RTSP- or H.323-based application through your firewall.
You can then use the show ip inspect session and show ip access lists commands to display
the dynamic ACL entries and the established connections to these multimedia sessions.
Debugging CBAC
Several generic debug commands are available to you for CBAC.
This command displays messages about software functions called by CBAC:
R2#debug ip inspect function-trace
This command displays messages about software objects being created or the beginning of
the CBAC inspection process:
R2#debug ip inspect object-creation
This command displays messages about software objects being deleted or the ending of the
CBAC inspection process:
R2#debug ip inspect object-deletion
This command displays messages about CBAC software events, including information about
CBAC packet processing:
R2#debug ip inspect events
This command displays messages about CBAC timer events, such as when a CBAC idle
timeout is reached:
R2#debug ip inspect timers
This command enables the detailed option, which can be used in combination with other
options to get additional information:
R2#debug ip inspect detail
Transport-level debug commands are also available for use in monitoring and maintaining
CBAC.
This command displays messages about CBAC-inspected TCP events, including details about
TCP packets:
R2#debug ip inspect tcp
This command displays messages about CBAC-inspected UDP events, including details about
UDP packets:
R2#debug ip inspect udp
If you are using application-layer inspection, you can use the following command to provide
debugging for application protocols:
R2#debug ip inspect protocol
The audit trail and alert information can be configured on a per-application basis using the
CBAC inspection rules.
CBAC can also detect a limited number of SMTP attack signatures by examining SYSLOG
messages that might indicate a possible attack against your protected network, such as the
detection of illegal SMTP commands in a packet. CBAC cannot inspect ESMTP messages.
Whenever a signature is detected, CBAC resets the connection.
CCIE.book Page 801 Monday, May 12, 2003 8:29 AM
Table 22-2 defines the SMTP attack signatures that the Cisco IOS Firewall can detect.
Table 22-2 SMTP Attack Signatures
Signature Description
Mail: bad rcpt Runs on any mail message that has a pipe symbol ( | ) in the Recipient
field.
Mail: bad from Runs on any mail message that has a pipe symbol ( | ) in the From: field.
Mail: old attack Runs when wiz or debug commands are sent to the SMTP port.
Mail: decode Runs on any mail message that has :decode@ in the header.
Majordomo A Majordomo program bug allows remote users to execute arbitrary
commands at the server’s privilege level.
Example 22-13 shows an error message that is generated when an SMTP attack signature is
triggered.
Example 22-13 SMTP Attack Signature Error Message
!
!
In this case study, you will configure CBAC to inspect the following applications to two servers,
192.168.31.100 and 192.168.31.101, on your internal network while inspecting TCP and UDP
traffic going out your network:
• SMTP
• FTP
• HTTP
• CU-SeeMe
• H.323
• RCMD
• RealAudio
• SQLNet
• StreamWorks
• TFTP
• VDOLive
This case study is structured around the following steps:
Step 1 Select an interface.
Well-Known or
Application Name Registered Port Number Protocol Description
cuseeme 7648 CU-SeeMe Protocol
exec 512 Remote Process Execution
ftp 21 File Transfer Protocol (control port)
http 80 Hypertext Transfer Protocol
h323 1720 H.323 protocol (for example, Microsoft
NetMeeting, Intel Video Phone)
login 513 Remote login
mgcp 2427 Media Gateway Control Protocol
msrpc 135 Microsoft Remote Procedure Call
netshow 1755 Microsoft NetShow
real-audio-video 7070 RealAudio and RealVideo
rtsp 8559 Real Time Streaming Protocol
shell 514 Remote command
sip 5060 Session Initiation Protocol
smtp 25 Simple Mail Transfer Protocol
sqlnet 1521 SQL-NET
streamworks 1558 StreamWorks Protocol
sunrpc 111 Sun Remote Procedure Call
telnet 23 Telnet
tftp 69 Trivial File Transfer Protocol
vdolive 7000 VDOLive Protocol
CCIE.book Page 808 Monday, May 12, 2003 8:29 AM
In this part of the lesson, you define two separate ACLs for the host at 192.168.31.100 and the
host at 192.168.31.101. Example 22-22 illustrates the required configuration on R3.
Example 22-22 Defining ACLs for PAM
You can use the list option to associate this port mapping to the specific hosts in the ACL. If an
ACL is included, the hosts defined in that ACL have the application appl_name running on port
port_num.
In this lesson, you have a scenario that requires the same port number to be mapped to differ-
ent services running on different hosts. Port 8000 is required for HTTP services for host
192.168.31.100, and port 8000 is also required for FTP services for host 192.168.31.101.
Example 22-23 illustrates the commands you can use to complete these tasks.
Example 22-23 Mapping Multiple Services to the Same Port
If you include the application name, you see a list of entries by application. If you include the
port number, you see the entries by port.
To delete user-defined port-mapping information, use the following command. Remember that
this command does not affect the system-defined port-mapping information:
R2(config)#no ip port-map appl_name port port_num [list acl_num]
Summary
This chapter reviewed the features available to you in the Cisco IOS Firewall feature set. It
covered building a custom firewall, TCP intercept, CBAC, and Port-to-Application Mapping.
Review Questions
1 The Cisco IOS Firewall feature set is built around the concept of preventing what?
2 When an attacker opens a large number of half-open TCP connections, this is what type
of attack?
3 TCP intercept, by default, drops which connection first?
4 What feature in the Cisco IOS Firewall gives you intelligent filtering of TCP and UDP
packets?
5 What is the default setting for the low value of half-open connections before TCP intercept
aggressive mode stops?
6 What is spoofing?
8 Which Cisco IOS Firewall feature allows you to run CBAC-supported applications across
nonstandard ports?
CCIE.book Page 811 Monday, May 12, 2003 8:29 AM
FAQs 811
FAQs
Q — Why would I want to use a firewall?
A — A firewall, usually placed at strategic points in your network, lets you provide
access control to devices on your network.
Q — If I implement TCP intercept, do I need to use an ACL?
A — Yes. TCP intercept intercepts the SYN packets sent to devices you identify. You use
an extended ACL to define the devices you want to protect.
Q — I want to use TCP intercept in my environment, but I don’t want the firewall to
intercept the SYN packets. Can I still use TCP intercept?
A — Yes. You can use TCP intercept in watch mode. While TCP intercept is in this
mode, it passively watches the connection requests flowing through the firewall. If
a connection fails to establish in a defined period of time, the firewall sends a reset
to clear the request.
Q — Why would I implement CBAC instead of using ACLs for access control?
A — CBAC lets you filter traffic based on the information contained at the application
layer. ACLs can only examine packets at either the network or transport layer.
Q — How does CBAC work with UDP packets, because they do not contain the same
information as a TCP packet?
A — UDP packets are approximated based on a similar packet exiting the network
before the packet being received. The UDP header also contains information such
as the source and destination addresses and port numbers that can also be used for
comparison. If a packet arrives within the user-definable timeout value, it is
allowed.
Q — I need to configure IPSec for VPN connectivity. Can I still use CBAC?
A — CBAC can be used as long as it is the tunnel endpoint. Otherwise, the packets are
not inspected, because an IPSec packet is not a TCP or UDP packet.
Q — I want to run my HTTP server on port 8080 and still use CBAC for access control.
Is this possible?
A — Yes, but you have to use Port-to-Application Mapping (PAM) to remap the port so
that CBAC knows what port it is using.
Q — I want to map my FTP server to port 80. Can I do this with PAM?
A — Yes, but you need to use host-specific mapping, because port 80 is a system-defined
port. Trying to define it in any other manner will result in an error.
CCIE.book Page 812 Monday, May 12, 2003 8:29 AM
CHAPTER 23
!"#
!"#
CCIE.book Page 814 Monday, May 12, 2003 8:29 AM
This level assignment results in the way the PIX Firewall handles the incoming data. When
data travels from the inside interface out, it is implicitly allowed, unless specifically denied by
Access Control Lists (ACLs), because the originating interface (inside) is of a higher security
level than the receiving interface. Conversely, data destined for the inside interface from the
outside or any perimeter interface ranging in priority from 1 to 99 is implicitly denied, unless
explicitly allowed by an ACL. This occurs because the originating interface is always of a lower
priority than the receiver behind the inside interface.
Regardless of whether the data flow is inbound or outbound, address translation must be in
place for any packets to cross the inside or outside boundary. When a session is built through
the PIX, a translation slot is created. These translation slots are called xlates. Both dynamic
translation and static translation are supported and are discussed in further detail in “Lesson
23-1: Configuring the PIX Firewall Basics.”
System defaults are described in Example 23-1. You can see how each parameter corresponds
to the available command argument. For example, ethernet0 is a hardware_id of the outside
interface with security0 as its security_level.
Example 23-1 Interface Names and Security Levels: System Defaults
Since the 5.2 release, you can change the default assignment of Ethernet0 as outside and
Ethernet1 as inside interfaces. However, the corresponding security levels must remain at 0 and
100, respectively. Perimeter interfaces are different. You are encouraged to change their default
interface-name (intfn) names to something more meaningful. The security levels of perimeter
interfaces can be modified to be from 1 to 99 instead of the default. The default values are 10
CCIE.book Page 816 Monday, May 12, 2003 8:29 AM
for the first perimeter interface, 20 for the second perimeter interface and incremented by 5 for
all subsequent interfaces (25, 30, and so on).
NOTE You should not assign the same security level to two different interfaces. Otherwise, no traffic
can flow between them. Also, try not to use dashes when naming interfaces, because they can
be misinterpreted when used elsewhere on the PIX. For example, they can be mistaken for an
address pool with the DHCP services.
PIX2#show run
interface ethernet0 10full
interface ethernet1 auto
interface ethernet2 auto
interface ethernet3 10baset
sent. The available range of MTU values is 64 to 65,535 bytes. Different requirements for those
values exist, depending on which PIX version is being used or the media.
PIX Firewall also allows dynamic discovery of the MTU size based on various links along the
path by implementing the IP Path MTU Discovery mechanism. The command to set the MTU
size is as follows:
PIX2(config)#mtu if_name bytes
The if_name argument specifies which of the PIX interfaces is being ruled by the mtu state-
ment. When configuring the MTU size, choose the value of the bytes segment. Example 23-3
illustrates the mtu command usage on PIX2.
Example 23-3 Setting the MTU Size on PIX Interfaces
NOTE In those cases where the “don’t fragment” (DF) bit is set and the data is larger than the defined
MTU size, the PIX Firewall does not forward the oversized data but instead notifies the sending
host of the problem.
The interface_name argument is, of course, the name used in the nameif command. The
ip_address argument is the address that you give to the interface. The netmask argument is the
specific subnet mask that is applied to the address. If you omit the mask from your configura-
tion, the firewall assigns a classful mask to the interface, producing an effect that is not always
desirable.
You can view the interfaces’ IP addresses and masks by using the show ip or show interface
command. In Example 23-4, the inside interface is given a private IP address of 192.168.1.222,
and the outside interface is assigned the public address of 130.100.26.2.
CCIE.book Page 818 Monday, May 12, 2003 8:29 AM
PIX2# show ip
System IP Addresses:
ip address outside 130.100.26.2 255.255.255.224
ip address inside 192.168.1.222 255.255.255.0
ip address DMZ2 172.16.23.1 255.255.255.0
ip address DMZ3 172.16.22.1 255.255.255.0
Current IP Addresses:
ip address outside 130.100.26.2 255.255.255.224
ip address inside 192.168.1.222 255.255.255.0
ip address DMZ2 172.16.23.1 255.255.255.0
ip address DMZ3 172.16.22.1 255.255.255.0
NOTE If an interface is unused and you did not provide an IP address for it, the PIX Firewall automat-
ically gives it an address of 127.0.0.1 with the subnet mask of 255.255.255.255. The mask of
255.255.255.255 does not permit traffic to flow through the interface, so you must never apply
this mask to the utilized interfaces. Also, you must shut down all unused interfaces that still
have the 127.0.0.1 address.
The if_name argument identifies the interface whose IP addresses are in need of translation. The
nat_id argument is a numeral that associates the specified internal IP address(es) with the out-
side address or the pool of outside addresses. (Outside address configuration is shown in the
next section, “Step 6: Assigning a Pool of Outside Addresses.”) The local_ip_address argument
can define a specific IP address or an entire subnet. You can also use a 0.0.0.0 or simply 0 to
indicate that all addresses belonging to an interface are up for translation (see Example 23-5).
The mask argument in this particular command identifies the number of addresses that you want
to translate. For example, if you were to translate only one host, apply the 255.255.255.255
mask to the IP address.
Example 23-5 NAT Statement on PIX2
To exclude certain internal addresses from network translation, use the nat command with
the nat_id of 0, which indicates to the PIX that the IP address(es) appearing behind the 0 in the
command line are not meant to be translated.
The if_name argument in this command signifies the exit interface. The nat_id argument must
be identical to the one in the nat command that you want to reference. If you were to specify
the interface keyword, the exit interface’s own global IP address is used for all inside hosts with
the same NAT ID seeking connection to the outside. In such cases, the PAT (Protocol Address
Translation) type of translation is used, where multiple hosts can use the same IP address but
have different port numbers to make them unique. A single PAT entry allows up to 65,535 hosts
to use the same IP address.
An alternative to using the interface keyword is to designate a specific IP address or a range of
IP addresses separated by a dash in a “from-to” manner. For example, because PAT has some
limitations in its application support, you can supplement a single IP address that is identified
in one global statement with an additional global statement for the same NAT ID that provides
a pool of IP addresses. This way, the PIX Firewall uses up the addresses in the pool first before
touching the PAT address. You can also specify multiple PAT addresses for the same interface.
CCIE.book Page 820 Monday, May 12, 2003 8:29 AM
The rules defined in Example 23-6 state that all inside addresses are to be translated into the
public address of the outside interface.
Example 23-6 Configuring Dynamic NAT
The internal_if_name and external_if_name arguments are the names that you gave to your
higher-security-level and lower-security-level interfaces, respectively. As previously mentioned,
this command is generally used for inside-to-outside Network Address Translation, and as such,
the sequence of interface names inside the parentheses is internal_if_name, external_if_name.
If you were to use static translation for a host from the less secure interface, as introduced in
the 6.2 release of PIX, the order of the interface names would be reversed, and certain changes
are made to the command syntax. The new bidirectional static command is presented in “Les-
son 23-6: New Features in PIX Firewall Version 6.2,” later in this chapter.
The significance of the global_ip argument versus the interface keyword as well as the local_ip
and netmask concepts was explained earlier in “Step 6: Assigning a Pool of Outside Addresses.”
When configuring static NAT, port translation is not automatically permitted. To enable PAT,
static mapping between ports, known as port redirection, is also required. It is accomplished
CCIE.book Page 821 Monday, May 12, 2003 8:29 AM
using the port arguments. Local_port is the port address that needs translation, and global_port
is the port address that it is translated to.
Recall the nat 0 command, described in the previous step. You can achieve the nontranslation
effect using the static command as well if the global_ip address that you specified matches the
local_ip address.
The optional max_conns argument sets up the maximum number of connections permitted
under the static address translation at the same time. Because network connections over the PIX
are accomplished at Layer 3 and translations occur at Layer 4, a number of connections can be
open under one translation slot or xlate. The emb_limit argument is the limit of embryonic
connections. A connection is considered embryonic if it has started but has not been completed.
Embryonic connections can be used in a flood type of attack.
The norandomseq keyword tells the firewall to not randomize the TCP/IP packet’s sequence
number. Be careful when applying this option because it violates security. Resort to it only
if another inline firewall is also randomizing sequence numbers and the combined effect
scrambles data.
After you make changes to the NAT-related configuration, you should issue the clear xlate
command to clean up the existing translation slot.
Figure 23-2 shows the topology of a simple network situation where outside hosts seeking
certain services on the inside network using the same outside IP address can do so thanks to
port redirection.
Mail-Server WWW
192.168.1.14 192.168.1.13 130.100.26.66
192.168.1.2 PIX2 130.100.26.2
R6
192.168.1.1
CCIE.book Page 822 Monday, May 12, 2003 8:29 AM
Example 23-7 displays three static NAT statements, which allow access to multiple TCP
services located on an internal segment.
Example 23-7 Configuring Static NAT
NOTE It is common to use static and dynamic NAT in the same configuration. However, be careful that
the global address of the static command does not overlap with the global address or address
range specified with the nat command.
This command states that packets exiting out of this interface destined for a given network go
through the interface of a router that is attached to that PIX interface. For default routes, specify
the destination network and mask as 0.0.0.0. If the metric argument is substituted with 1, it
means that the router is directly attached to the PIX interface and is the next hop on the way.
Remember that only one default route is allowed.
If only one network were attached to the internal interface, one static route would be enough.
However, if more networks are behind the internal router, you must enter more specific routes.
When creating those routes, specify each different network in its separate statement with the
CCIE.book Page 823 Monday, May 12, 2003 8:29 AM
gateway_ip_address argument of the directly attached router’s interface. The packets intended
for those networks are directed back through the router to let the router decide which packet
goes to which network. The PIX Firewall is not a router and is not designed to make routing
decisions.
Example 23-8 shows the initial configuration of PIX2, including the recently introduced static
routes. The show route and show running-config commands are used to display the output.
Notice the use of OTHER and CONNECT in the show route output. CONNECT is related to
PIX’s own interface, and OTHER shows that the gateway is some other device.
Example 23-8 Initial Configuration of the PIX Firewall
NOTE The show run command has been made available on the PIX Firewall since version 6.2. You
will find it very helpful during your lab exam.
CCIE.book Page 824 Monday, May 12, 2003 8:29 AM
NOTE The PIX Firewall access lists became available in the version 5.0 release. You should not use
the conduit command that was available as a substitute to access lists prior to version 5.0
because it is less secure.
CCIE.book Page 825 Monday, May 12, 2003 8:29 AM
The acl_id argument is the name that identifies a particular access list. Wherever this access
list is applied, it is referenced by its acl_id argument. The permit or deny action depends on
whether you are applying your access list to inbound or outbound traffic. This section discusses
control of inbound connections, and PIX’s default behavior is to block all incoming traffic. By
allowing certain traffic, you are creating an exception to the default rule, and therefore you
should do it carefully by explicitly stating what you would like to permit. Remember that any
access list traffic is implicitly denied. The protocol argument means tcp, udp, or icmp.
The following simple rules exist for specifying the source_address parameter:
• Use the any keyword for an all-inclusive definition.
• For a specific host, add the host keyword in front of the IP address.
• For a subnet, mention the network address and appropriate mask. The mask argument is
a regular subnet mask, not a wildcard.
Remember the global address that you designated with the static command in Lesson 23-1.
Now, you can define a destination_address argument of the access-list command as that global
host or network address. The rules for the source_address parameter in the preceding list also
apply to the destination_address parameter.
The port argument must appear after the operator argument, which can be one of the following:
• lt for less than
• gt for greater than
• eq for equal
• neq for not equal
• range for an inclusive range
Omitting the operator and listing the port argument instead is the equivalent of using the eq
operator. The port argument can be the port’s numerical value or accepted name.
CCIE.book Page 826 Monday, May 12, 2003 8:29 AM
Once you have created an access list, use the access-group command to apply it to an interface
(outside, in this case). Although there can be numerous access list lines under a single access
list, you can attach only one access list to a single interface with the following command:
PIX2(config)#access-group acl_ID in interface if_name
The acl_ID argument of the access-group command must match the one of the access list that
you are applying to an interface. For the inbound access lists, the if_name argument must be
that of the lower-security-level interface that the users are accessing.
Example 23-9 demonstrates the use of the inbound access-list and access-group commands in
combination with the static command. You can see that the global addresses that are defined by
the two static commands are referenced in the outside_access_in access list that is assigned to
the outside interface. Notice the absence of the deny statements because of the implicit deny
any any statement, which is inherent to access lists.
Example 23-9 Configuring Inbound Access Control
You can use outbound access lists in the context of AAA. To refresh your memory and, perhaps,
to give a clearer view of the PIX access list feature, review “Case Study 19-2: Configuring AAA
on a PIX Firewall” of Chapter 18.
In Example 23-10, users in the 192.168.1.0 network are prevented from accessing the outside
network, as indicated by the 130.100.26.6 IP address. Also, the second line of the access-list
command keeps all internal users from communicating with the website at address 130.100.26.12
on the outside interface. Finally, the inside_access_out access list is applied to an internal
interface.
Example 23-10 Enforcing Access Control for the Outbound Connections
The port argument indicates the port (or a range of ports) on which the WWW traffic is
received, normally port 80. The local_ip and mask arguments are changed to the IP address
and mask of the internal host or subnet that is requesting services. The foreign_ip and mask
arguments identify a host or subnet to which the request is made. You can substitute both local
and foreign addresses and masks with the 0 to indicate any host, as shown in Example 23-11.
CCIE.book Page 828 Monday, May 12, 2003 8:29 AM
NOTE Specifying 0 for the host or subnet address and mask also applies to the filter java and filter
url commands, which are discussed in the next two sections.
Because the syntax of the filter java command is so close to the filter activex command, refer
to “Filtering ActiveX Objects” for the arguments description.
NOTE Sometimes, Java applets are surrounded by <object> tags. In such instances, use the filter
activex command instead.
Example 23-12 shows the filter java command in action. You can see that it disables Java
applets on the HTTP port and ports 1024 through 1026 for any source and destination host.
Example 23-12 Application of Filtering Java Applets
When configured on the PIX, the URL-filtering process works in the following manner:
1 An internal user requests access to a website via HTTP.
2 This request is forwarded by the PIX to the web server and to the filtering server
(Websense or N2H2) simultaneously.
3 If the HTTP connection is permitted by the filtering server, the PIX Firewall allows it
to proceed. However, if the connection is denied, the user encounters the Access Denied
screen instead.
Use the following steps to enable URL filtering:
Step 1 Designate an N2H2 or Websense server to use.
The command that is used to identify the URL filtering server depends on
whether you are using Websense or the newer N2H2. The syntax for both
commands is described in the following paragraph. First, the Websense
version of the command is as follows:
PIX2(config)#url-server [(if_name)] vendor websense host local_ip [timeout
seconds] [protocol [TCP | UDP] version 1|4]
The if_name argument is the name of the PIX interface where URL filtering
is enabled. The local_ip argument is the IP address of the Websense server.
The timeout option determines how many seconds the PIX Firewall waits
until it stops its connection attempts to the server. You can specify either
version 1 or version 4 for the Websense server. TCP can use either version;
UDP can only use version 4.
The command syntax to identify the N2H2 server is as follows:
PIX2(config)#url-server [(if_name)] vendor n2h2 host local_ip [port number]
[timeout seconds] [protocol [TCP | UDP]]
To translate some of the arguments for the N2H2 server, use the explanation
for the corresponding arguments from the Websense command. The only new
argument is the port option. It indicates the N2H2 server port on which the
PIX Firewall listens for the TCP/UDP replies. The default is 4005. TCP is
the default protocol.
Example 23-13 illustrates the url-server command using Websense. The
service is enabled on the inside interface. The filtering server is located at
192.168.1.100 and is using the TCP option of version 4 with the timeout of
5 seconds.
Example 23-13 Identifying the Filtering Server
The URL-filtering policy configured on the PIX Firewall forces the outbound
HTTP traffic to go through the URL-filtering server verification before
permitting it to go on. The syntax for the filter url command is as follows:
PIX2(config)#filter url [http | port[-port]] local_ip local_mask foreign_ip
foreign_mask [allow] [proxy-block]
The HTTP traffic is being filtered by this command. The port argument
allows you to specify the numeral for a port (or a range of ports) to filter the
HTTP traffic on. The local_ip and mask arguments identify the user or subnet
that is requesting the HTTP connection. The foreign_ip and mask arguments
identify the host or subnet to which the requests are made. You can substitute
both local and foreign addresses and masks with the 0 to indicate any host.
The optional allow keyword lets the HTTP traffic pass without filtering,
in case the main filtering server goes down or an alternative server is not
available. If this option is omitted, the outbound World Wide Web traffic
cannot pass. The proxy-block keyword at the end of the command drops
all requests to proxy servers.
You can create exceptions to the URL-filtering policy. The following
command excludes the indicated local and foreign hosts from the general
filtering rule:
PIX2(config)#filter url except local_ip local_mask foreign_ip foreign_mask
NOTE Other optional commands are available for the URL-filtering process. However, they are too
specific to be a part of this book or the CCIE Security lab. If you want to learn more about them,
check the references shown in Appendix E.
with the proof that your configuration is correct. The show filter command
would demonstrate whether all three of your filters—filter url, filter activex,
and filter java—are in place.
Example 23-15 Verifying Filtering Configuration
NOTE Do not confuse inside and outside interfaces with outbound and inbound connections for this
lesson, although they have been used interchangeably in previous ones. Only the receiving
interface, whichever it might be, performs the route check. The outbound interface does not
screen the packets.
RPF is performed through ingress or egress filtering. Ingress filtering checks packets on the
outside interface. Egress filtering is implemented on the inside interface. Both filtering methods
operate by executing route lookup according to the routing table. Make sure that the necessary
routes are available before enabling this feature. The command for Unicast RPF on either
interface is as follows:
PIX2(config)#ip verify reverse-path interface if_name
CCIE.book Page 832 Monday, May 12, 2003 8:29 AM
Example 23-16 shows the ip verify reverse-path interface command’s usage on PIX2. Note
the route command that is included in the output. As previously mentioned, you must have the
route command in place for the packet forwarding using Unicast RPF to function.
Example 23-16 Reverse Path Forwarding
NOTE Although application handling by the PIX Firewall is discussed in “Lesson 23-3: Supporting
Specific Protocols and Applications,” it is important to explain at this point that Unicast RPF
causes each ICMP packet to be checked because no ICMP sessions exist. On the other hand,
UDP and TCP have sessions, so the initial packet is the only one scrutinized by reverse route
lookup. All subsequent packets belonging to the same session are checked via the existing
session state to guarantee that they arrived on the same interface as the initial packet.
IDENT Service
Sometimes, when users try to connect to FTP, HTTP, or POP servers through the PIX Firewall,
their connections can take a long time or fail. One of the possible reasons for the delay or failure
is that these servers can be using the IDENT protocol for identifying incoming users. When a
user requests a service, the server sets off an IDENT connection back toward the client behind
the firewall for verification purposes. The IDENT protocol is considered a security violation
because it can disclose some of the confidential internal information to an unauthorized out-
sider, and the PIX intercepts the IDENT connection and denies it. Therefore, the server never
receives the response to its request. As a result, the server can decline the user’s connection
attempt or significantly increase connection time because, not knowing that the PIX refused the
IDENT, the server keeps retransmitting its requests until the IDENT timeout period expires.
To solve this problem, you can reset the inbound connections so that when the PIX denies a
connection attempt, instead of silently dropping the packet, it sends an RST (a reset flag in the
TCP header) back to the outside host, notifying it that the IDENT service is unavailable for the
queried user. The PIX also continues to process the original outbound transmission and, thus,
significantly reduces the delay caused by the IDENT protocol. To accomplish this on the PIX
Firewall, use the service resetinbound command, as follows:
PIX2(config)#service resetinbound
AAA Services
Similarly, you can use the service resetinbound command to reset the client that failed autho-
rization to stop it from retransmitting any connection attempts. For more information on AAA
services, refer to Chapter 18.
The service resetinbound and service resetoutside commands introduced in this configuration
section are shown in Example 23-17.
Example 23-17 Service Commands Configuration
Use the host keyword to specify that the source is a single host. The type parameter defines the
ICMP message type. For example, the ICMP control lists from Example 23-18 designate
unreachable, echo-reply, mask-reply, and echo message types originating from any source
address to either be granted or denied permission to a PIX interface.
Example 23-18 Configurable Proxy Pinging
In the first line of the output, notice that the ICMP unreachable message type has been
permitted. It is not an arbitrary choice. If you deny ICMP unreachables, you cannot use ICMP
Path MTU discovery, which, in turn, can disable IPSec and PPTP traffic.
NOTE This section discussed ICMP traffic to the PIX. For traffic going through the PIX Firewall, use
the access-list and access-group commands, as described in “Controlling Inbound Access” and
“Controlling Outbound Connectivity,” earlier in this lesson.
You can use the following command format to change the default port assignments:
PIX2(config)#fixup protocol protocol [port]
You can also disable application inspection for a particular protocol by entering no in front
of the fixup command. For example, SMPT fixup only allows seven basic SMPT commands. To
CCIE.book Page 836 Monday, May 12, 2003 8:29 AM
allow ESMTP (Extended Simple Mail Transfer Protocol) support, turn off the fixup protocol
SMPT command.
Remember to issue the clear xlate command if you make modifications to the fixup configuration.
Otherwise, the changes to existing connections do not take effect.
If you have modified the timers and want to return to the default values, issue the clear timeout
command.
is recommended for Ethernet connections. The command syntax for specifying the segment
size is as follows:
PIX2(config)#sysopt connection tcpmss no_greater_than_bytes
This command is on by default, with the maximum value of 1380 bytes. To disable it, set the
bytes to 0. You can also specify the minimum value, as shown in Example 23-21.
Example 23-21 Sysopt Options Configuration
Configuring Logging
This section describes ways to record system log (syslog) messages from the PIX Firewall.
Syslog messages can display normal system events or error conditions. Furthermore, they can
be sent to four possible locations for output: the console, the buffer, an SNMP management
station, or a remote syslog server.
The general syntax for the logging command is as follows:
PIX2(config)#logging logging_condition
CCIE.book Page 839 Monday, May 12, 2003 8:29 AM
Table 23-2 describes the PIX2 logging commands in the order that they appear. Example 23-22,
which follows the table, displays several logging commands configured on PIX2. If you need
more information on other available syslog commands, see Appendix E.
Table 23-2 Explanation of the PIX2 Logging Commands
continues
CCIE.book Page 840 Monday, May 12, 2003 8:29 AM
In Example 23-22, you might have noticed that certain syslog commands specify severity
levels. You can identify these levels with a keyword, as was done in Example 23-22, or a
corresponding level number (0–7). The severity level causes the PIX Firewall to send all
messages at this or a lower (more critical) level to the output location to which it has been
assigned.
You already learned how to configure the PIX Firewall for Telnet and SSH in Chapter 18.
Example 23-23 is a reminder of this configuration, along with the terminal width command,
which sets the logging output for the session to 80 characters wide.
Example 23-23 Configuring Telnet on PIX2
To display the buffered messages, use the show logging command, as presented in
Example 23-24.
Example 23-24 Viewing Logging
Step 2 The PIX Firewall is configured to send traps or event notifications to the
SNMP station
The commands that are used to accomplish the first step are presented in Table 23-3.
Example 23-25 shows the output of the commands on PIX2.
Table 23-3 PIX Commands to Receive SNMP Requests
Command Description
snmp-server host [if_name] Specifies the PIX Firewall interface and the IP address of the
ip_addr [trap | poll] SNMP management host. The last optional parameter determines
whether the trap or the poll actions are allowed. By naming one,
you exclude the other. By default, both options are available.
snmp-server [contact | Identifies the physical location or the administrator of your PIX
location] text Firewall. Both commands are used in Example 23-25.
snmp-server community key Defines the shared read-only password between the SNMP station
and its clients (PIX2 is one of them).
CCIE.book Page 842 Monday, May 12, 2003 8:29 AM
The next step is to ensure that the syslog messages set up by the logging history command are
sent to the management station. Issue the following command after configuring the parameters
specified in Table 23-3:
PIX2(config)#snmp-server enable traps
To display the SNMP server configuration, issue the show snmp-server command, as shown
in Example 23-26.
Example 23-26 Complete PIX2 Configuration for Sending Syslog Messages to the SNMP Station
The following is a list of possible configurable audit policy actions that are triggered when an
IDS signature match occurs:
• Alarm—Upon a signature match in a packet, the PIX Firewall sends a report to all
configured syslog servers. It is the default action.
• Drop—Causes the offending packet to be dropped.
• Reset—Besides dropping the offending packet, it also closes an active connection to
which the packet belonged.
If a matched signature does not trigger an action that causes the packet to be dropped, the
same packet can then trigger other signatures.
Table 23-4 displays the list of commands that you can use to configure audit policies and
their appropriate actions. Commands in the table appear in the same order as they appear
in Example 23-27, which follows the table.
Table 23-4 Audit Policy Commands
Example 23-28 shows the DHCP server configuration on PIX2. Notice that the inside interface
IP address matches the subnet that is allocated to the DHCP pool. The show dhcpd statistics
and show dhcpd binding commands display the statistics and binding information, respectively,
that is associated with the dhcpd commands.
Example 23-28 DHCP Server Configuration
Address pools 1
Automatic bindings 1
Expired bindings 0
Malformed messages 0
Message Received
BOOTREQUEST 0
DHCPDISCOVER 1
DHCPREQUEST 5
continues
CCIE.book Page 846 Monday, May 12, 2003 8:29 AM
Message Sent
BOOTREPLY 0
DHCPOFFER 1
DHCPACK 4
DHCPNAK 1
2 If there is no xlate entry, it consults the configuration file for a NAT policy.
3 The new xlate is created according to the set policy. As a result, the PIX can replace the
outside address with the address that is valid on the inside.
4 The follow-up packets can now be correctly translated because of the newly established
xlate entry in the database.
Example 23-29 illustrates the nat and global commands, which are needed to configure
outside dynamic NAT. Note that the syntax used here is identical to the one that you learned
in Lesson 23-1. The only differences are (a) the address pool is now defined on the inside
interface and (b) the outside addresses are now initiating the translation.
Example 23-29 Using Outside Dynamic NAT
NOTE If two private networks have overlapping address space and require mutual translation, use the
static command, as described in Lesson 23-1.
Because the syntax applies to bidirectional NAT, the prenat interface is the interface in need
of translation and the postnat interface is the interface that provides the translation. This is in
contrast with the traditional version of the static command presented in Step 7 of Lesson 23-1,
which only allows the inside-to-outside translation. The real_address is the IP address that gets
translated to the mapped_address. The optional dns keyword signifies that DNS replies that
match the xlate are translated. The rest of the keywords and arguments were discussed in Step 7
of Lesson 23-1.
!
!
The configuration tasks include allowing the PIX to forward the IGMP reports from the hosts
to the router and permitting the multicast transmissions from the router to the hosts. The
configuration steps are placed in their logical order in Table 23-6.
Table 23-6 Configuring Multicast—Host Side
Command Description
multicast interface Enables multicast forwarding on an interface. The hosts are most likely
if_name connected to the inside interface, but you need to enable multicast on
both inside and outside interfaces.
igmp max-groups n After you enter the multicast interface if_name command, you are
placed in the multicast subcommand mode that is most likely for the
inside interface. All the following commands belong to that mode. This
command specifies the maximum number of IGMP groups that are
allowed for the given interface. Available values range from 0 to 2000.
igmp forward interface Enables IGMP reports to be received on a specified (inside) interface
out_if_name and forwarded out of another (less secure) interface whose name
replaces the out_if_name argument.
igmp join-group Attaches the interface that is connected to the hosts (inside) to the
group_address multicast group identified by the group_address argument. This is an
optional command and is useful in those instances when a client cannot
respond using IGMP, but still needs to receive multicast transmissions so
the PIX Firewall can act on behalf of that client.
CCIE.book Page 849 Monday, May 12, 2003 8:29 AM
Command Description
access-list acl_ID permit Configures an access list that limits IGMP traffic to certain allowed
igmp any destination_addr multicast groups that are identified by the destination_address and
destination_mask destination_mask arguments.
igmp access-group acl_ID Applies the newly configured IGMP access list to the interface (inside).
The source part of the command arguments specifies information about the multicast source.
The destination part defines parameters of the Class D address/mask for the multicast
transmission from the source.
Example 23-31 illustrates the multicast configuration on PIX2. In the output, the commands
from the preceding section are combined with the command that you just learned.
Example 23-31 Configuring PIX2 for Multicast Forwarding
Using TurboACL
Understanding TurboACL depends heavily on understanding the PIX Firewall access lists. For
a more detailed review, see “Lesson 23-2: Configuring Network Protection and Controlling Its
Access and Use.”
You already know that one access list can have numerous entries. When a packet is examined
and searched for an entry match, the PIX Firewall does so in a linear fashion. After a match is
located, a packet is processed according to the action designated by the match: drop or forward.
This type of search process becomes increasingly inefficient as the access list gets longer
because of the time it takes to locate a match. TurboACL allows the PIX Firewall to compile
ACLs into tables that can reduce the search time.
TurboACLs only improve performance of long access lists, those of 19 entries or more. As a
result, when enabled, TurboACL checks all existing access lists and only marks those that
contain 19 or more entries for turbo-compilation.
TurboACL is memory intensive. The amount of required resources depends on the complexity
and the size of an access list. Also, whenever a TurboACL entry is changed, a data table needs
to be recompiled, requiring considerable CPU time.
TurboACL is turned off by default. You can enable it per access list and globally. Once enabled
globally, you can disable it per access list as well. The syntax for the TurboACL command is
as follows:
PIX2(config)#access-list compiled
If you disable a TurboACL with the no argument, all existing compiled tables are destroyed
and all access lists on the PIX are again processed in the usual linear manner. Example 23-32
demonstrates the global TurboACL command along with the short access list.
Example 23-32 TurboACL Feature
Example 23-33 illustrates the NTP configuration on the PIX Firewall. The show commands
that are used display various aspects of NTP. Use the show ntp command to see the current
NTP configuration, the show ntp status command to view the NTP clock information, and the
show ntp associations detail command for the configured network time server associations. In
the ntp authentication-key command, notice that the value parameter appears scrambled in the
output of the show ntp command.
Example 23-33 NTP on PIX2
You can choose HTTP or HTTPS, in which case SSL is used. When logging in to the server,
the user:password combination is used to verify identity. Location is the IP address of the
CCIE.book Page 853 Monday, May 12, 2003 8:29 AM
server. The port argument is optional. If unspecified, the PIX uses the default port assignments
for HTTP or HTTPS. Pathname is the name of the resource on the server.
If the verify-certificate keyword is configured, the PIX verifies the certificate that is returned
by the Auto Update server.
Example 23-34 uses the hostname option, which causes the PIX Firewall to present its host
name to the server as a means of identification.
If there has been no communication between the PIX and the server for a period of time, you
can prevent the PIX from starting any new connections to the server by using the following
command:
PIX2(config)#auto-update timeout period
Example 23-34 demonstrates the Auto Update feature configuration on PIX2. Note that in the
auto-update server command, the user and password have been replaced with asterisks for
the output of the show running-config command. The lower portion of the example displays the
show auto-update command, which shows the Auto Update server, poll time, and timeout
period.
Example 23-34 PIX2 Auto Update Feature Configuration
Summary
Cisco PIX Firewall is an important technology featured on the CCIE Security Lab exam. This
chapter’s goal was to familiarize you with the array of configuration options available for the
PIX Firewall, particularly its 6.2 release. The lessons in this chapter present configuration
options that offer a wide range of PIX Firewall services.
Review Questions
1 What is the translational slot on the PIX Firewall called?
2 What is the default security level for the outside interface?
3 On the PIX Firewall, inbound traffic is filtered and outbound traffic is allowed by default.
True or false?
4 You can configure syslog messages to be sent to which location(s)?
5 The IP address of the inside interface does not need to belong to the same subnet as the
pool of its DHCP addresses. True or false?
6 How many entries must an access list have to become turbo-compiled?
CCIE.book Page 855 Monday, May 12, 2003 8:29 AM
FAQs 855
FAQs
Q — Is there a way to filter e-mail content on the Cisco Secure PIX Firewall?
A — No. The PIX Firewall does not perform content filtering at the application layer
because it does not inspect the data portion of the TCP packet. This is a job for a
mail server.
Q — Sometimes users who are connecting to an FTP server get very slow response
times. What could be causing this?
A — The IDENT protocol on the server could be the root of the problem. If the service
resetinbound command is not configured on the PIX, the server has no way of
knowing that PIX denied its IDENT request as a security violation.
Q — Does the PIX Firewall support inbound port mapping?
A — Yes. The current version of PIX supports inbound port redirection; this support
began with PIX Software version 6.0. However, earlier PIX software versions do
not support port mapping.
Q — Can two different default routes be configured on the PIX Firewall, such as for load
balancing?
A — No. PIX cannot handle load balancing. That would require a more intelligent level
of routing that the PIX is not designed for. A gateway router should be used for this
purpose.
CCIE.book Page 856 Monday, May 12, 2003 8:29 AM
CCIE.book Page 857 Monday, May 12, 2003 8:29 AM
PA R T
VII
Intrusion Detection
Chapter 24 IDS on the Cisco PIX Firewall and IOS Software
CHAPTER 24
IDS on the Cisco PIX Firewall
and IOS Software
This chapter looks at the intrusion detection capabilities of Cisco IOS software and the
Cisco PIX Firewall. It starts by looking at the IDS signatures that are supported on both
the Cisco PIX Firewall and Cisco IOS software. Then it looks at the steps required to
configure IDS on the Cisco PIX Firewall and Cisco IOS software.
NOTE IDS causes a significant performance impact on the router. This should not be a problem
for low-bandwidth Internet connections, but LAN-to-LAN connections, especially over
Fast Ethernet, might suffer.
CCIE.book Page 860 Monday, May 12, 2003 8:29 AM
860 Chapter 24: IDS on the Cisco PIX Firewall and IOS Software
When suspect activity is identified, the Cisco PIX Firewall operates much like the Cisco IOS
software IDS in that it can either send an alarm, drop the connection, or reset the session. (Refer
to the preceding section for an explanation of these three options.)
PIX, as with the Cisco IOS IDS, supports the 59 default IDS signatures, which are discussed in
the next section.
862 Chapter 24: IDS on the Cisco PIX Firewall and IOS Software
Table 24-1 59 Cisco IOS Software IDS and PIX Firewall IDS Signatures
Table 24-1 59 Cisco IOS Software IDS and PIX Firewall IDS Signatures (Continued)
continues
CCIE.book Page 864 Monday, May 12, 2003 8:29 AM
864 Chapter 24: IDS on the Cisco PIX Firewall and IOS Software
Table 24-1 59 Cisco IOS Software IDS and PIX Firewall IDS Signatures (Continued)
Table 24-1 59 Cisco IOS Software IDS and PIX Firewall IDS Signatures (Continued)
continues
CCIE.book Page 866 Monday, May 12, 2003 8:29 AM
866 Chapter 24: IDS on the Cisco PIX Firewall and IOS Software
Table 24-1 59 Cisco IOS Software IDS and PIX Firewall IDS Signatures (Continued)
Table 24-1 59 Cisco IOS Software IDS and PIX Firewall IDS Signatures (Continued)
868 Chapter 24: IDS on the Cisco PIX Firewall and IOS Software
(CBAC) to allow back through the firewall only what originated from the inside on the corpo-
rate network. Network Address Translation (NAT) has been used in an overload fashion. NAT
overload is also known as Port Address Translation (PAT). In light of this, theoretically, from
the outside, nothing on the inside should be visible.
Because all Internet traffic comes through this connection to the corporate network, it has been
decided to configure intrusion detection on this router to provide a further layer of security
against any external threats. This case study focuses on R6, as shown in Figure 24-1.
S0
R5
S1
IDS
S0
2/9 2/10
HUB Inside PIX2 F0/0 R6 Internet
S1
192.168.1.x Outside
VLAN 26
To configure intrusion detection on the Cisco IOS software IDS, you have to ensure that you are
using the correct Cisco IOS software version. You must be using Cisco IOS Release 12.0(5)T
or later with the IDS included.
By following these steps, you configure intrusion detection to use Syslog logging and to protect
the router’s outside interface:
Step 1 Enter the following commands in global configuration mode:
ip audit notify log
ip audit name ids info action alarm
ip audit name ids attack action alarm drop reset
The first line configures the IDS to use Syslog logging. With the Cisco IOS
software IDS, you have the option of using Syslog or the Cisco Secure IDS
Director. The second and third lines specify the IDS profile called ids. This
profile is set to alarm for informational messages and to alarm, drop, and
reset sessions for attack messages.
Step 2 After the IDS profile has been created, you have to apply it to an interface.
Enter the following configuration line from interface configuration mode for
the interface you want to apply the policy to:
ip audit ids in
CCIE.book Page 869 Monday, May 12, 2003 8:29 AM
The ip audit ids in command applies the IDS policy ids to the interface for
inbound traffic. This is similar to the ip access-group command, which
applies access lists either inbound or outbound to interfaces.
You can use the following show commands on the router to look at the configuration of IDS:
• show ip audit configuration
• show ip audit interface
• show ip audit name
The show ip audit configuration command displays the global configuration settings for
IDS on the router. You can see from the command output in Example 24-1 that this router is
using Syslog logging and not the NetRanger Director.
Example 24-1 show ip audit configuration Command
The show ip audit interface command displays interface-specific information about IDS for
every interface IDS is configured on. Example 24-2 shows that the IDS profile ids is configured
inbound on the Fast Ethernet 0/0 interface on the router.
Example 24-2 show ip audit interface Command
870 Chapter 24: IDS on the Cisco PIX Firewall and IOS Software
The show ip audit name command displays the IDS information for the specific IDS profile.
Example 24-3 shows the configuration of the IDS profile called ids configured for the example.
Example 24-3 show ip audit name Command
Case Study 24-2: Configuring the Cisco Secure PIX Firewall IDS
It is very common for hosted solutions that are located in an ISP to be behind a firewall.
This firewall separates the hosted solution from the main ISP public network and provides NAT
and stateful inspection of packets to protect the hosted network from various external attacks.
This makes the firewall an ideal place to implement IDS.
IDS technologies operate by passively listening to traffic to ascertain if the traffic is genuine or
if it matches a known attack signature. This can be a problem in a shared network environment,
because the last thing you want is your IDS alerting constantly because of traffic destined for
other networks. This can be true of a hosted solution from an ISP, because the public Ethernet
connection that forms the outside interface of the PIX Firewall can be in the same broadcast
domain as numerous other hosted networks. However, all ISPs should use switches to provide
Ethernet connectivity. The switch ensures that only the required unicast traffic is delivered to
each hosted network. The nature of static NAT translation causes the outside switches to send
unicast traffic for every host behind the firewall to the port where the firewall’s outside interface
is physically connected. This removes potential false positives on the IDS from traffic that is
directed toward other hosted networks. However, because the switch implements a single
broadcast domain throughout the Layer 3 domain, you might still get false positives for broadcast-
based attacks.
CCIE.book Page 871 Monday, May 12, 2003 8:29 AM
This section looks at a very simple hosted Internet solution and the commands that are required
to install IDS on the firewall. Figure 24-2 shows this simple network. This case study uses PIX2
from the network topology you have been using throughout this book.
#
Figure 24-2 shows a simple model in which the hosted firewall’s outside interface is connected
to the Internet and the inside interface provides access to the protected network. This simple
network has a web server, mail server, and FTP server. To enable IDS on the PIX Firewall, the
software on the PIX must be Release 5.2 or later.
IDS configuration on the PIX is carried out with one command that has numerous variables
associated with it. This command is ip audit. The important point to remember is that the alarm
action with both the info and attack signatures uses the current configured Syslog server. This
means that Syslog has to be configured and working on an inside interface. Syslog is enabled
with the logging commands.
The following lines configure IDS on the PIX’s outside interface. Remember that the outside
interface is the Internet-facing interface. You could also configure IDS on the inside interface
to catch any servers that might have been compromised, because they would initiate outbound
attacks against other devices on the Internet. The following commands are all entered in global
configuration mode:
ip audit info action alarm
ip audit attack action alarm
ip audit name idsattack attack action alarm drop reset
ip audit name idsinfo info action alarm
ip audit interface outside idsinfo
ip audit interface outside idsattack
CCIE.book Page 872 Monday, May 12, 2003 8:29 AM
872 Chapter 24: IDS on the Cisco PIX Firewall and IOS Software
The first two lines of the configuration are configured by default and apply to all interfaces. This
configuration causes an alarm on info or attack signatures when you configure a policy without
specific actions. The third and fourth lines specify IDS policies named idsattack and idsinfo.
The fifth and six lines apply these named IDS policies to the outside interface.
You can use the following show commands on the PIX to look at the IDS configuration:
• show ip audit info
• show ip audit attack
• show ip audit interface
• show ip audit name
The show ip audit info command displays the global info IDS policy on the firewall. You can
see from Example 24-4 that the global info IDS policy is to alarm.
Example 24-4 show ip audit info Command
The show ip audit attack command displays the global attack IDS policy on the firewall. You
can see from Example 24-5 that the global attack IDS policy is to alarm.
Example 24-5 show ip audit attack Command
The show ip audit interface command displays the specific IDS policy that has been applied
to an interface. Example 24-6 shows that the named IDS policies idsinfo and idsattack have
been applied to the PIX’s outside interface.
Example 24-6 show ip audit interface Command
The show ip audit name command displays the IDS policy that is specified in a named policy.
Example 24-7 shows that the IDS policy idsinfo is set to alarm.
Example 24-7 show ip audit name Command: idsinfo
Example 24-8 shows that attack signatures are alarmed, dropped, and reset.
Example 24-8 show ip audit name Command: idsattack
After IDS has been configured, you can monitor the Syslog information to identify any security
issues. The log data shown in Example 24-9 is extracts from an actual Internet-facing PIX
Firewall. You can see that the IDS on the PIX has intercepted quite a few items of suspicious
activity.
Example 24-9 Excerpted Log Data from the Internet-Facing PIX Firewall
The following message could indicate that the IP address 137.39.5.35 is trying to overcome the
packet-filtering security policy. It could indicate an attack, so further investigation is warranted:
IDS:2001 ICMP unreachable from 137.39.5.35 to 194.73.134.7 on interface outside
The following message indicates that a successful ICMP echo reply (ping) was sent from the
IP address 64.225.249.26:
IDS:2000 ICMP echo reply from 64.225.249.26 to 194.73.134.2 on interface outside
This is an informational message. It is important to note that ICMP echo reply messages might
occur very frequently in your network, especially if you are using an ICMP-based network-
monitoring tool. It might be worthwhile to disable this signature, as outlined in the following
section.
Although you do not have to configure a Syslog server on the outside, it is important to check
the Syslog messages when you are configuring IDS, because this is an excellent way to confirm
that the configuration is working as you expect.
CCIE.book Page 874 Monday, May 12, 2003 8:29 AM
874 Chapter 24: IDS on the Cisco PIX Firewall and IOS Software
NOTE The ip audit signature disable command is the same for both the PIX IDS and the Cisco IOS IDS.
This concludes our simple configuration of the Cisco PIX IDS. As you can see, the configuration
of IDS on the PIX is fairly straightforward. You have to ensure that the PIX is successfully
logging to a Syslog server. Numerous Syslog servers are available for both UNIX and Windows
platforms.
Summary
In this chapter, you examined the intrusion detection capabilities of the Cisco IOS software and
the Cisco Secure PIX Firewall. Both of these devices run 59 signatures that represent the most
common network-based intrusion issues found in today’s networks. The chapter started by
looking at how Cisco IOS software and the PIX handle IDS. Next you saw the 59 default
signatures that the Cisco IOS software IDS and PIX Firewall IDS use. You then covered the
configuration steps necessary to configure the IDS functionality in Cisco IOS and the Cisco
Secure PIX Firewall.
Review Questions
1 By default, when IDS on Cisco IOS software is enabled, are all the default signatures
enabled or disabled?
2 True or false: Implementing IDS on a Cisco PIX Firewall affects the firewall’s throughput
performance.
3 What command disables the ICMP Echo Reply signature, ID = 2000?
6 What type of signature detects complex data patterns, usually over a period of time?
CCIE.book Page 875 Monday, May 12, 2003 8:29 AM
7 What command displays interface-specific information about IDS for every interface IDS
is configured on?
8 What type of signature identifies activity that portrays an attempted network attack?
9 What type of signature detects data patterns as simple as an attempt to access a specific
port on a specific host?
10 What command displays the global configuration settings for IDS on the router?
CCIE.book Page 876 Monday, May 12, 2003 8:29 AM
876 Chapter 24: IDS on the Cisco PIX Firewall and IOS Software
FAQs
Q — What is the main difference between Cisco Secure IDS and Cisco IOS/PIX IDS?
A — The main difference between Cisco Secure IDS and Cisco IOS/PIX IDS is
that Cisco IOS/PIX IDS uses a cut-down 59-signature database consisting of
the most common exploit attempts, whereas the Cisco Secure IDS uses the
ful Cisco Network Security Database of signatures. Another major difference is
that Cisco Secure IDS is not in the data path; therefore, it does not interfere with
or affect network performance.
Q — What is the main difference between the Cisco IOS software IDS and the PIX
Firewall IDS?
A — The main difference between the Cisco IOS software IDS and the PIX Firewall IDS
is that the Cisco IOS IDS can send alerts via POP to the IDS management platform
of your choice, either the CSIDD or the CSPM.
CCIE.book Page 877 Monday, May 12, 2003 8:29 AM
CCIE.book Page 878 Monday, May 12, 2003 8:29 AM
CHAPTER 25
Internet Service Provider Security
Services
Internet service providers (ISPs) offer a multitude of services. Covering all those services
would require several more books of the same size as the one before you. Therefore, this
chapter concentrates only on those aspects related directly to network security in general
and the CCIE Security lab exam in particular.
Packets can be classified based on a variety of factors. The selection criteria can be specified in
a CAR access list and include, but are not limited to, the following:
• Physical port
• Source or destination MAC address
• Source or destination IP address
• Application port
• IP protocol type
Also, the packets can be categorized externally, such as by a customer. CAR lets you either
accept the external classification or override it through reclassification.
Along with the classification feature, CAR can be used to police traffic. This function lets you
enforce a rate limit, or, in other words, let traffic access the specified bandwidth only. You can
configure the action the router takes when traffic exceeds the allowable limit. Then, packets
can either be dropped or marked down in their priority level.
802.1Q
If the requirement is to keep all customers’ VLANs separated, an ISP would have to pro-
vide a unique block of VLAN ranges so that the VLANs belonging to different customers don’t
overlap. This could lead to certain configuration restrictions for a customer and running out of
VLAN ranges for a service provider.
To solve this dilemma, the IEEE 802.1Q tunneling feature was introduced. By implementing
802.1Q tunneling, a service provider can maintain multiple-VLAN clients through the use of a
single VLAN per client. The customer’s VLAN IDs remain unchanged due to the hierarchical
structure of the 802.1Q tunnel. A port that allows a single VLAN to encompass multiple VLANs
within it is called a tunnel port. As you might guess, each customer needs its own dedicated
tunnel port that supports all its VLANs. On the customer side, the edge port is configured as an
802.1Q trunk port that is linked to the ISP’s tunnel port.
Ethernet
S0/0
ISP
R8
As you know, you can set up a policy to limit an interface’s input and/or output transmission
rate. After the traffic matches a criterion, the router takes action based on whether that traffic
conforms to or exceeds the rate limit. You can configure multiple rate policies on an interface,
each corresponding to its own types of traffic. Higher priority, for instance, might be entitled
to a higher rate limit than the rest. The policies are examined in the order in which they were
entered until a match is found. The default action is to send, so if there is no match, the traffic
is forwarded.
To complete this case study, you follow these steps:
Step 1 Configure CAR for all IP traffic.
Step 2 Configure CAR policies.
The input and output options determine whether the packets in question are sent or received
on this interface. When applying this command to the configuration, change the bps argument
to the average rate in bits per second. The bps value must be in increments of 8 kbps and must
range between 8000 and 2,000,000,000. The average rate is determined by a long-term average
of the transmission rate.
CCIE.book Page 883 Monday, May 12, 2003 8:29 AM
burst-normal specifies the normal burst size in bytes. The requirement is that the minimum burst-
normal value equals the chosen bps divided by 2000. Logically, then, burst-max is the excess
burst size in bytes.
Following the rate arguments are the conform-action and exceed-action keywords, with
appropriate actions assigned to them. Which of these actions is taken depends on whether the
traffic follows or breaks the rules defined by the rate arguments. Table 25-1 lists the available
actions.
NOTE Traffic falling under the average rate set by the bps argument always conforms.
Action Description
continue Points to the next rate-limit command
drop Drops the packet
set-prec-continue new-prec Specifies the precedence level and points to the next rate-limit
command
set-prec-transmit new-prec Specifies the precedence level and forwards the packet
transmit Forwards the packet
In this case study, the general CAR policy is defined in the following terms:
• It is applied to incoming traffic.
• The average rate is set at 8,000,000 bps; the normal burst rate and excess burst rate are
16,000 and 24,000, respectively.
• In the case of conforming, the traffic is assigned an IP precedence of 5 and is transmitted.
• As soon as the limit is exceeded, the packets are dropped.
The preceding set of guidelines results in the configuration shown in Example 25-1.
Example 25-1 Setting up the CAR for All IP Traffic
R8#show run
!
! Output omitted for brevity
!
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
continues
CCIE.book Page 884 Monday, May 12, 2003 8:29 AM
The access-group argument points to the policy defined in an access-list command. Access
lists used to create parameters for traffic matching can be standard, extended, or special rate-
limit lists. You can configure as many rate-limit commands as there are policies specified by
access lists, because the access-group keyword references the same ID number as an access
list.
Example 25-2 shows two CAR policies applied to incoming traffic that matches criteria from
two different access lists, 100 and 102. One of the access lists controls web traffic, and the other
controls FTP.
Example 25-2 Configuring CAR Policies
R8#show run
!
! Output omitted for brevity
!
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
rate-limit input access-group 100 2000000 24000 32000 conform-action
set-prec-transmit 5 exceed-action set-prec-transmit 0
rate-limit input access-group 102 10000000 24000 32000 conform-action
set-prec-transmit 5 exceed-action drop
!
access-list 100 permit tcp any any eq www log
access-list 102 permit tcp any any eq ftp log
access-list 102 permit tcp any any eq ftp-data log
From the two rate-limit commands, you can conclude that all web traffic is to be transmitted.
However, the IP precedence for web traffic that conforms to the first rate policy is set to 5. For
excessive web traffic, the IP precedence is set to 0 (best effort). FTP traffic is transmitted with
an IP precedence of 5 if it conforms to the second rate policy. If the FTP traffic exceeds the rate
policy, it is dropped.
CCIE.book Page 885 Monday, May 12, 2003 8:29 AM
Remember that in the first step of this case study, you set up a general policy for all IP traffic.
Therefore, any remaining traffic that does not fall under access lists 100 and 102 is limited to
8 Mbps, with a normal burst size of 16,000 bytes and an excess burst size of 24,000 bytes.
You can view your configuration by issuing the show interfaces rate-limit command, as shown
in Example 25-3.
Example 25-3 show interfaces rate-limit Command
So far the discussion has focused on the incoming traffic. Example 25-4 shows the CAR policy
creation for outgoing traffic to limit SYN packets.
Example 25-4 Rate Limiting for SYN Packets
R8#show run
!
! Output omitted for brevity
!
interface FastEthernet0/0
rate-limit output access-group 113 45000000 100000 200000 conform-action transmit
exceed-action drop
!
access-list 113 permit tcp any any syn
CCIE.book Page 886 Monday, May 12, 2003 8:29 AM
After CEF is specified globally, select the input interface on the router—in this instance,
FastEthernet0/0. In interface configuration mode, use the following command to allow unicast
RPF to function:
R8(config-if)#ip verify unicast reverse-path
The preceding command should look familiar from your past experience with configuring RPF
on PIX Firewalls in Chapter 23. The most notable difference is that PIX Firewalls have no
interface configuration mode, so you have to specify the interface at the end of the ip verify
command line.
Example 25-5 demonstrates unicast RPF configuration on R8.
Example 25-5 Configuring Unicast RPF on the Input Interface
R8#show run
!
! Output omitted for brevity
!
ip cef
!
interface Serial0/0
ip address 207.67.1.1 255.255.255.0
ip verify unicast reverse-path
no ip proxy-arp
no ip mroute-cache
no cdp enable
CCIE.book Page 887 Monday, May 12, 2003 8:29 AM
You can verify the unicast RPF operation with the help of the show cef interface command.
Example 25-6 shows the output of this command for the FastEthernet0/0 interface.
Example 25-6 show cef interface Command Output
! "#
! "#
$%&
$%&
'(!
)
R1#show run
!
! Output omitted for brevity
!
interface FastEthernet1.1
description VLAN 10
CCIE.book Page 889 Monday, May 12, 2003 8:29 AM
Example 25-7 Enabling VLANs on R1 and R10 and Specifying the VLAN Encapsulation Format (Continued)
encapsulation dot1Q 10
ip address 10.1.1.1 255.255.255.0
!
interface FastEthernet1.2
description VLAN 11
encapsulation dot1Q 11
ip address 11.1.1.1 255.255.255.0
R10#show run
!
! Output omitted for brevity
!
interface FastEthernet2/0.1
encapsulation dot1Q 10
ip address 10.1.1.10 255.255.255.0
!
interface FastEthernet2/0.2
encapsulation dot1Q 11
ip address 11.1.1.10 255.255.255.0
Next, you specify the interface as an 802.1Q tunnel port with the following command:
3550-A(config-if)#switchport mode dot1q-tunnel
CCIE.book Page 890 Monday, May 12, 2003 8:29 AM
Now that the 802.1Q configuration of the tunnel ports is complete, you can configure Layer 2
protocol tunneling parameters by adding the following command to your interface configuration:
3550-A(config-if)#l2protocol-tunnel [cdp | vtp | stp]
Example 25-8 demonstrates the tunnel port setup of the 3550-A and 3550-B switches. Notice
that the customer VLAN ID is 100 and that Layer 2 protocol tunneling is specified for CDP,
VTP, and STP in both cases.
Example 25-8 Tunnel Port Configuration
3550-A#show run
!
! Output omitted for brevity
!
interface GigabitEthernet0/10 ←to R1
switchport access vlan 100
switchport mode dot1q-tunnel
l2protocol-tunnel cdp ←pass CDP, VTP, and STP to R1
l2protocol-tunnel vtp
l2protocol-tunnel stp
3550-B#show run
hostname 3550-B
!
! Output omitted for brevity
!
interface GigabitEthernet0/12 ←to R10
switchport access vlan 100
switchport mode dot1q-tunnel
l2protocol-tunnel cdp ←pass CDP, VTP, and STP to R10
l2protocol-tunnel vtp
l2protocol-tunnel stp
allowed vlan vlan-list specifies which VLANs are allowed to pass traffic through this interface.
Although you can choose to specify the exact VLANs, the default is all (which is used in this
case study).
The next parameter is encapsulation. Of the available options, this example employs dot1q. If
this type of encapsulation is enabled, both tagged and untagged traffic is allowed.
CCIE.book Page 891 Monday, May 12, 2003 8:29 AM
Recall the switchport mode command introduced in the preceding section. Here you use it
again; however, this time, you indicate that the interface will act in the trunk capacity. The
syntax is as follows:
3550-A(config-if)#switchport mode trunk
NOTE Along with dot1q-tunnel and trunk modes, the switchport mode command offers access and
dynamic options.
Example 25-9 demonstrates the trunk port configuration of switches 3550-A and 3550-B.
Example 25-9 Trunk Port Configuration
3550-A#show run
!
! Output omitted for brevity
!
interface GigabitEthernet0/10 ←to R1
switchport access vlan 100
switchport mode dot1q-tunnel
l2protocol-tunnel cdp
!
interface GigabitEthernet0/12 ←to 3550-B
switchport trunk encapsulation dot1q
switchport mode trunk
3550-B#show run
hostname 3550-B
!
! Output omitted for brevity
!
interface GigabitEthernet0/9 ←to 3550-A
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface GigabitEthernet0/12 ←to R10
switchport access vlan 100
switchport mode dot1q-tunnel
l2protocol-tunnel cdp
You can start by issuing the show interfaces command to view the interface configuration
on the switches. Example 25-10 shows the output of the show interfaces gigabitEthernet
0/port-number switchport command.
Example 25-10 show interfaces switchport Command Output
The switchport keyword at the end of the show interfaces command displays the administrative
and operational status of a switching port. Compare Example 25-10 to Example 25-11, where
the show interfaces gigabitEthernet 0/port-number trunk command is issued for the trunk
ports of both switches. You might notice that this command displays the trunk port statistics.
Although the switchport options can be used to examine both the trunk and tunnel interfaces,
the trunk option applies only to the trunk ports. Also, when looking for the active trunk port
information, you don’t have to specify an interface number; issuing the trunk keyword is
sufficient.
CCIE.book Page 893 Monday, May 12, 2003 8:29 AM
The next logical step is to verify the Layer 2 protocol tunneling operation on the switches. To
do this, issue the show l2protocol-tunnel command. It displays information about Layer 2
protocol tunnel ports. Note that it applies only to ports that have Layer 2 protocol tunneling
enabled. Example 25-12 shows the output of this command on the two switches.
Example 25-12 show l2protocol-tunnel Command Output
3550-A#show l2protocol-tunnel
COS for Encapsulated Packets: 5
3550-B#show l2protocol-tunnel
COS for Encapsulated Packets: 5
continues
CCIE.book Page 894 Monday, May 12, 2003 8:29 AM
Now you can move on to the routers for configuration verification. Issue ICMP requests to ensure
interconnectivity. Ping the subinterfaces of the remote router, as shown in Example 25-13.
Example 25-13 Results of ICMP Requests
R1#ping 11.1.1.10
R1#ping 11.1.1.10
After pinging the remote router subinterfaces, you can check the ARP table to ensure that the
router can see them. Example 25-14 shows R1’s ARP table.
Example 25-14 show arp Command Output
R1#show arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.1.1.10 1 0030.7bbf.0438 ARPA FastEthernet1.1
Internet 11.1.1.10 0 0030.7bbf.0438 ARPA FastEthernet1.2
Internet 11.1.1.1 - 00d0.06ff.c0e2 ARPA FastEthernet1.2
Internet 10.1.1.1 - 00d0.06ff.c0e2 ARPA FastEthernet1.1
R1#
Finally, you can issue the show cdp neighbor command to check which neighbors are directly
connected. Example 25-15 shows that R1’s direct neighbor is R10.
CCIE.book Page 895 Monday, May 12, 2003 8:29 AM
Summary
This chapter provided information on some of the security-related services commonly offered
by ISPs that you might encounter on the CCIE Security lab exam:
• DoS prevention with CAR and unicast RPF
• L2VPN
The DoS prevention service provides protection from DoS attacks, such as ICMP and SYN
floods, by enforcing rate limiting or allowing only IP packets that originated from verified
sources. The L2VPN feature provides VPN support at Layer 2.
Review Questions
1 Name two features offered by CAR.
2 What sort of information must preexist on the router to allow a packet with unicast RPF?
5 Which Layer 2 protocol parameters can be specified with Layer 2 protocol tunneling?
CCIE.book Page 896 Monday, May 12, 2003 8:29 AM
FAQs
Q — Why does the router drop packets and report an exceeded rate even though the con-
formed rate is less than the configured rate? What Committed Access Rate (CAR)
factors influence these decisions?
A — Don’t forget about the normal burst and extended burst values. A traffic policer uses
them to make sure that the configured Committed Information Rate (CIR) is reached.
If you want good throughput, set these values high enough. If they are configured
too low, the achieved rate might be much lower than the configured rate. If you
want to monitor the current burst and determine whether the displayed value is
consistently close to the limit (BC) and extended limit (Be) values, issue the show
interface rate-limit command.
Q — What are the optimal criteria for selecting Committed Burst (BC) and Excess Burst
(Be) values?
A — Unlike a traffic shaper, a policer such as CAR does not buffer excess packets for
later transmission. All it does is drop or forward the packets. To avoid unnecessary
throughput degradation caused by occasional traffic bursts, you need to properly
configure the normal burst and extended burst values. You can apply a rule to burst
parameters that is similar to the buffering rule. The recommendation is that buffer-
ing or burst should be equal to the TCP round-trip time (RTT) multiplied by bit rate.
Table 25-2 shows the recommended formulas for calculating the normal and extended
burst values.
Table 25-2 Burst Rate Formulas
For example, the following calculates the burst for a TCP session with a policing
rate of 64 Kbps and a TCP RTT of .15 seconds:
Burst = RTT × rate = .15 [sec] × (64000/8) [bytes/sec] = 1200 [bytes]
Extended burst = 2 × normal burst = 2 × 1200 [bytes] = 2400 [bytes]
CCIE.book Page 897 Monday, May 12, 2003 8:29 AM
FAQs 897
Q — What technologies does Cisco offer service providers so that they can supply Layer 2
services more effectively?
A — It depends on the underlying infrastructure. If Layer 2 VPN is the prevailing ser-
vice, Cisco offers a pure Layer 2 infrastructure using 802.1q VLANs and Spanning
Tree Protocol for the most cost-effective solution.
For increasing network traffic, the service provider can opt for a more scalable solu-
tion based on Multiprotocol Label Switching (MPLS). L2VPN is simpler but is not
scalable, unlike MPLS/IP.
CCIE.book Page 898 Monday, May 12, 2003 8:29 AM
CCIE.book Page 899 Monday, May 12, 2003 8:29 AM
PA R T
VIII
Sample Lab Scenarios
Chapter 26 Sample Lab Scenarios
CCIE.book Page 900 Monday, May 12, 2003 8:29 AM
CHAPTER 26
If you don’t finish the first seven training labs, you most likely would not be able to achieve the
8-hour goal of the master lab, which would result in a failing grade. However, even if your first
attempt takes longer than 8 hours, keep practicing until you can meet the requirement. Each of
the seven practice labs suggests a time period in which you are reasonably expected to finish it.
If you are way off the mark, repeat the lab until you get close to the recommended schedule.
Remember, these are all general guidelines. You are the only one who can judge your own
abilities, readiness, study methods, and pace.
The seven practice labs are placed in a logical progression, starting with what is considered
fairly basic and moving to the more-complex. Most of the time, each successive lab relies on
the one before it for groundwork configuration. This is yet another reason why you shouldn’t
skip any steps. Having said this, some technologies cannot work in conjunction with some
others, so they cancel each other out. There is no way of knowing which of the two conflicting
technologies will be covered on the CCIE Security lab exam. Therefore, you should practice
both. In such cases, you need to reconfigure some of the elements of your practice labs to make
room for the new ones. While you are working on any of the practice labs, your concern is that
particular lab. Don’t worry about the configuration of any of the previous or following labs.
It is highly recommended that you not check the lab solutions until you are done with the labs
and you want to verify your configuration, or until you’ve hit a roadblock and feel you can’t go
on unless you look up the answer to your dilemma. After you are done with each lab, you can
verify the correctness of your configuration by checking the solutions on the CD-ROM included
with this book.
Throughout the master lab, you are expected to maintain full functionality of all steps configured.
In other words, if one configuration step breaks something that was configured earlier, you must
make sure that it is fixed. This rule applies to the CCIE Security lab exam as well. This is
different from the seven practice labs, in which you don’t have to worry about configuring the
other labs unless otherwise noted.
You might find the master lab to be more difficult in some ways than the real CCIE lab. It is not
meant to scare you off. Instead, it’s designed to prepare you so that you are not taken aback like
so many other CCIE candidates when they realize too late that they are unprepared for the exam.
Each step in the master lab lists the number of minutes in which you can be expected to complete
it. All steps combined amount to 8 hours, which is a stretch goal. Overall, if you finish the
master lab in less than 10 hours, you’ve done well. Good luck!
TIP The one-day lab format puts your typing skills to the test. If you are a slow typist, try practicing
the alias EXEC commands for building shortcuts to the Cisco IOS software commands; other-
wise, your typing speed will be a hindrance.
Equipment List
• One Frame Relay switch: four serial ports
• Two backbone routers: one Ethernet interface
• Three lab routers: one Ethernet interface and one serial interface
• One lab router: one Ethernet interface and two serial interfaces
• One lab router: one Ethernet interface
• One lab router: two serial interfaces and one ATM interface
• One lab router: one serial interface, one ATM interface, and one Ethernet interfaces
• One reverse Telnet router: 14 asynchronous connections
• One Catalyst 3550 switch: 17 Ethernet interfaces, software release 12.1.12c-EA1a (ED);
Software feature sets: C3550 EMI IOS CRYPTO IMAGE AND CMS FILES
• Two PIX Firewalls: two Ethernet interfaces, software release 6.2.2
• One ACS/Win2K CA server: one Ethernet interface, ACS server release 3.0.2
CCIE.book Page 904 Monday, May 12, 2003 8:29 AM
All lab routers use Cisco IOS software Releases 12.2.13b or 12.2.13T. The software feature set
for both releases is IP/FW PLUS IPSEC 56. Not all physical interfaces available on lab routers
and switches are used in this lab. Figure 26-1 shows the network connections diagram. 0/X
numbers next to the interfaces indicate their respective switchports.
E0 S0
0/1 R1 S0 E0
7
VLAN 10 DLCI 2.x/2 0/2
00.3 R2
101 150.1 DLCI
VLAN 2
202
150.100.31.x/28
S2
VLAN 11 R9-BB1 R10-Frame
E0 S0
10.1.1.x/24 DLCI
0/9 404 E0 E0
S3
Ethernet
DLCI
S1
S0
R4 0/4 0/7 R7-BB2
140.100.47.0/26
Inside 0/12 301 /29 S1
DLCI
.33.x VLAN 47
0/11 0/3 302 00
0.1 140.100.45.0/26
R3 15
PIX1 Outside S0 DLCI
304 S0
VLAN 13
130.100.1.x/24 ATM7/0/0.1 ATM7/0/0.1
R5 PVC 1/100 PVC 1/100 R11-ATM
S1 172.150.1.0/24
0/13
140.100.56.0/26
ACS/CA
S0
310.100.26.0/27
F0/0 0/21 0/22 0/6
R8 0/8 Inside PIX2 F0/0 R6
192.168.1.0/24 Outside
VLAN 82 VLAN 26
R10#show run
version 12.2
!
hostname R10
!
frame-relay switching
!
CCIE.book Page 905 Monday, May 12, 2003 8:29 AM
R9#show run
version 12.2
!
hostname R9
!
ip subnet-zero
no ip finger
!
key chain lab
key 2
key-string ccie
!
interface Loopback9
ip address 9.9.9.9 255.255.255.0
!
interface Loopback19
ip address 19.19.19.19 255.255.255.0
!
interface Ethernet0
ip address 10.1.1.9 255.255.255.0
ip rip authentication mode md5
ip rip authentication key-chain lab
no cdp enable
!
router rip
version 2
network 9.0.0.0
network 10.0.0.0
network 19.0.0.0
no auto-summary
!
router bgp 9
bgp log-neighbor-changes
network 9.9.9.9 mask 255.255.255.255
network 10.1.1.0 mask 255.255.255.0
neighbor 130.100.1.3 remote-as 1234
!
ip classless
ip route 130.100.1.0 255.255.255.0 10.1.1.1
ip http server
!
line con 0
R7#show run
version 12.2
!
hostname R7
!
ip subnet-zero
no ip domain-lookup
!
key chain ccie
key 6727
key-string 7 03520C5951
!
interface Loopback1
ip address 7.1.1.7 255.255.255.0
!
interface Loopback2
ip address 17.1.1.7 255.255.255.0
!
interface Loopback3
ip address 27.1.1.7 255.255.255.0
!
interface Loopback4
ip address 37.1.1.7 255.255.255.0
!
interface Loopback100
ip address 209.112.65.1 255.255.255.0
!
interface Loopback101
ip address 209.112.66.1 255.255.255.0
!
interface Loopback102
ip address 209.112.67.1 255.255.255.0
!
interface Loopback103
ip address 209.112.68.1 255.255.255.0
!
interface Loopback104
ip address 209.112.69.1 255.255.255.0
!
interface Loopback105
ip address 209.112.70.1 255.255.255.0
continues
CCIE.book Page 908 Monday, May 12, 2003 8:29 AM
Now that you’ve completed the preset portion of this practice lab, you can move on to the timed
portion.
Lab Rules
• Follow the timed portion instructions carefully.
• Do not use any static routes or floating routes unless you’re specifically told to do so.
• Propagate specific routes only when instructed.
• Do not modify the vty line configuration unless specifically instructed.
• Your reference materials include Chapters 4, 5, and 7 of this book, the Cisco
Documentation CD-ROM, and any other resources you might find useful.
• It is recommended that you read through the entire lab before beginning.
• It is recommended that you make an accurate network illustration.
• Refer to Figure 26-1 to see the physical topology of the Layer 2 Lab.
Timed Portion
Complete this lab in 1 hour.
CCIE.book Page 910 Monday, May 12, 2003 8:29 AM
Step 7 Do not propagate STP for VLAN26 and VLAN13 down the trunk.
Section 4: ATM
Step 1 Configure R5 and R11, which connect back-to-back for classical IP over
ATM. Make sure they can ping each other.
Step 2 Configure R5 in such a way that when it pings R11 it doesn’t use Inverse
ARP.
Equipment List
• One Frame Relay switch: four serial ports
• Two backbone routers: one Ethernet interface
• Four lab routers: one Ethernet interface and one serial interface
• One lab router: one Ethernet interface
• One lab router: one Ethernet interface and two serial interfaces
• One lab router: two serial interfaces
• One reverse Telnet router: 13 asynchronous connections
• One Catalyst 3550 switch: 12 Ethernet interfaces
• Two PIX Firewalls: two Ethernet interfaces
Not all physical interfaces available on lab routers and switches are used in this lab. Figure 26-2
shows the network connections diagram. 0/X numbers next to the interfaces indicate their
respective switchports.
CCIE.book Page 912 Monday, May 12, 2003 8:29 AM
AS 1 AS 1
BGP BGP
E0 E0 Area 2
S0
DLCI /27 0/2
0/1 R1 101 2.x S0 R2
0.3
AS 9 VLAN 10 0 .10 DLCI VLAN 2
15
15
202
0.1
eBGP
00
AS 1560
.3
1.x
E0 S2 DLCI ISP-BGP
RIPv2-MD5
/28
10.1.1.x/24 E0 E0
S3 S0
Ethernet DLCI DLCI S1 150 R4 0/4 0/7 R7-BB2
.100
301 302 .33. 140.100.47.0/26
Inside 0/12 x/29 S1
RIPv1
S0
VLAN 47
0/11 0/3 OSPF Area 0
DLCI 140.100.45.0/26
PIX1 Outside R3 304 Area 45
Area 5
S0
VLAN 13 5.5.5.5
AS 3 AS 456
130.100.1.x/24 BGP E0 iBGP
R5
S1
AS 65000 R8 Peer with R6 AS456 140.100.56.0/26
eBGP Area 56
RIPv1 RIPv2-MD5 S0
310.100.26.0/27
F0/0 0/21 0/22 0/6
R8 0/8 Inside PIX2 F0/0 R6
192.168.1.0/24 Outside
VLAN 82 VLAN 26
Lab Rules
• Do not begin Lab 2 until you have finished Lab 1.
• Follow the timed portion instructions carefully.
• Do not use any static routes or floating routes unless you’re specifically told to do so.
• Propagate specific routes only when instructed.
• Do not modify the vty line configuration unless specifically instructed.
• Your reference materials include Chapters 8, 10, and 12 of this book, the Cisco
Documentation CD-ROM, and any other resources you might find useful.
• It is recommended that you read through the entire lab before beginning.
• It is recommended that you make an accurate network illustration.
• Refer to Figure 26-2 to see the physical topology of the Routing Lab.
CCIE.book Page 913 Monday, May 12, 2003 8:29 AM
Timed Portion
Complete this lab in 4 hours.
Step 2 Configure the link between R4 and R5 to be in OSPF Area 45. The link
between R5 and R6 is in OSPF Area 56.
Step 3 Modify the OSPF Hello time on R3’s serial link to 65 seconds.
Step 7 Configure VLAN2 to be in OSPF Area 2 and to send link-state type 7s to any
new OSPF routers that will appear on VLAN2.
Step 8 Configure R8 to receive all OSPF routes from R6 through PIX2. R8 should
be able to ping every loopback address from R1 to R7.
CCIE Practice Lab 3: Configuring Protocol Redistribution and Dial Backup 915
Equipment List
• One Frame Relay switch: four serial ports
• Two backbone routers: one Ethernet interface
• Three lab routers: one Ethernet interface and one serial interface
• One lab router: one Ethernet interface
• One lab router: one Ethernet interface and two serial interfaces
• One lab router: one Ethernet interface, one serial interface, and one ISDN interface
• One lab router: two serial interfaces and one ISDN interface
• One reverse Telnet router: 13 asynchronous connections
• One Catalyst 3550 switch: 12 Ethernet interfaces
• Two PIX Firewalls: two Ethernet interfaces
Not all physical interfaces available on lab routers and switches are used in this lab. Figure 26-3
shows the network connections diagram. 0/X numbers next to the interfaces indicate their
respective switchports.
Lab Rules
• Do not begin Lab 3 until you have finished Labs 1 and 2.
• Follow the timed portion instructions carefully.
• Do not use any static routes or floating routes unless you’re specifically told to do so.
• Propagate specific routes only when instructed.
• Do not modify the vty line configuration unless specifically instructed.
• Your reference materials include Chapters 6, 9, and 13 of this book, configuration guides,
the Cisco Documentation CD-ROM, and any other resources you might find useful.
• It is recommended that you read through the entire lab before beginning.
• It is recommended that you make an accurate network illustration.
• Refer to Figure 26-3 to see the physical topology of the Redistribution Lab.
CCIE.book Page 916 Monday, May 12, 2003 8:29 AM
AS 1 AS 2
BGP BGP
E0 E0 Area 2
S0
DLCI /27 0/2
0/1 R1 101 2.x S0 R2
0.3
AS 9 VLAN 10 0 .10 DLCI VLAN 2
15
1 5
202
0.1
eBGP
0
AS 1560
0.3
1.x
E0 S2 DLCI ISP-BGP
RIPv2-MD5
28/
10.1.1.x/24 E0 E0
S3 S0
Ethernet DLCI DLCI S1 150 R4 0/4 0/7 R7-BB2
.100
301 302 .33. 140.100.47.0/26
Inside 0/12 x/29 S1
RIPv1
S0
VLAN 47
0/11 0/3 OSPF Area 0
DLCI 140.100.45.0/26
PIX1 Outside R3 304 Area 45
Area 5
S0
VLAN 13 5.5.5.5
AS 3 AS 456
130.100.1.x/24 BGP 130.100.55.1 iBGP
EIGRP R5
S1
AS 65000 R8 Peer with R6 AS86 140.100.56.0/26
iBGP Area 56
RIPv1 RIPv2-MD5 S0
310.100.26.0/27
F0/0 0/21 0/22 0/6
R8 0/8 Inside PIX2 F0/0 R6
192.168.1.0/24 Outside
VLAN 82 VLAN 26
ISDN-DDR
Area 86
172.22.85.x/24
Timed Portion
Complete this lab in 4 hours.
Step 3 Verify that the EIGRP address can be reached from the OSPF domain.
Step 4 All OSPF, EIGRP, and RIP routes involved in the preceding steps should be
seen by R8. Ensure that R7 can reach all R8’s loopbacks.
Step 2 Make sure that complete end-to-end connectivity exists between R8 and the
two backbone routers.
Equipment List
• One Frame Relay switch: four serial ports
• Two backbone routers: one Ethernet interface
CCIE.book Page 918 Monday, May 12, 2003 8:29 AM
• Three lab routers: one Ethernet interface and one serial interface
• Two lab routers: one Ethernet interface and two serial interfaces
• One lab router: one Ethernet interface
• One lab router: two Ethernet interfaces and one serial interface
• One reverse Telnet router: 13 asynchronous connections
• One Catalyst 3550 switch: 16 Ethernet interfaces
• Two PIX Firewalls: two Ethernet interfaces
• One HTTP/FTP server: one Ethernet interface
Not all physical interfaces available on lab routers and switches are used in this lab. Figure 26-4
shows the network connections diagram. 0/X numbers next to the interfaces indicate their
respective switchports.
E0
E0 S0
DLCI 7 0/2
0/1 R1 101 x/2 S0 R2
0.32. DLCI VLAN 2
VLAN 10 .10
15
150 202
0.1
00
.31
S2
.x/
E0 DLCI
28
140.100.56.0/26
HSRP
R6 DHCP-Server
R6 NTP Client to R5 and R8
S0
Lab Rules
• Do not begin Lab 4 until you have finished Labs 1, 2, and 3.
• Follow the timed portion instructions carefully.
• Do not use any static routes or floating routes unless you’re specifically told to do so.
• Propagate specific routes only when instructed.
• Do not modify the vty line configuration unless specifically instructed.
• Your reference materials include Chapters 15, 16, and 17 of this book, the Cisco
Documentation CD-ROM, and any other resources you might find useful.
• It is recommended that you read through the entire lab before beginning.
• It is recommended that you make an accurate network illustration.
• Refer to Figure 26-4 to see the physical topology of the Basic Security Lab.
Timed Portion
Complete this lab in 4 hours.
Step 5 Apply an outbound list to the R2 serial interface, limiting departing traffic to
routing protocols, pings, and WWW.
Step 6 Configure R6 to be able to ping all networks, but block R6 from requesting
the traceroute through R5.
Section 3: IP Services
Step 1 Set up HSRP between R5 and R6. R6 should be the primary default gateway.
If R6 loses its serial connection, R5’s Ethernet0 interface becomes the default
gateway. Make HSRP secure.
Step 2 Configure R6 as a DHCP server. Configure the router to allow hosts on its
Ethernet segment to resolve their IP addresses from the DHCP server.
Step 3 Configure R6 such that when a user Telnets to R6 using R6’s IP address, the
user actually accesses R5.
Step 4 Set up R8 so that when user admin Telnets to it, the user can enter only show
start, show ip route, and telnet commands.
Step 5 Set up R8 as the HTTP server and the FTP client.
Step 6 Configure R5 for a secure Telnet session. Verify the success of your
configuration using R6.
Step 7 Set up R8 as a DRP Server Agent. Use ccie as an authentication key chain.
Limit the agent’s response to DRP quires from R6.
Step 8 Disable ICMP redirects on R6. Disable domain lookups. Disable ICMP mask
reply. Disable proxy ARP.
Step 9 Disable the CDP service on R6 for all interfaces using a single command.
Step 10 Set up R6 so that only the host 192.168.1.10 can view this router’s
management statistics.
Step 2 Configure port 0/19 on the switch as secure. Set the maximum value to 10.
Equipment List
• One lab router: one Ethernet interface
• One lab router: one serial interface and one ISDN interface
• One lab router: two Ethernet interfaces and one serial interface
• One lab router: one ISDN interface
• One reverse Telnet router: six asynchronous connections
• One Catalyst 3550 switch: seven Ethernet interfaces
• One PIX Firewall: two Ethernet interfaces
• One ACS server: one Ethernet interface
• One PC: one Ethernet interface, Cisco Systems VPN Client 3000 (version 3.6.3)
Not all physical interfaces available on lab routers and switches are used in this lab. Figure 26-5
shows the network connections diagram. 0/X numbers next to the interfaces indicate their
respective switchports.
Lab Rules
• Do not begin Lab 5 until you have finished Labs 1, 2, 3, and 4.
• Follow the timed portion instructions carefully.
• Do not use any static routes or floating routes unless you’re specifically told to do so.
• Propagate specific routes only when instructed.
• Do not modify the vty line configuration unless specifically instructed.
• Your reference materials include Chapters 6, 18, 19, 21, and 23 of this book, the Cisco
Documentation CD-ROM, and any other resources you might find useful.
• It is recommended that you read through the entire lab before beginning.
• It is recommended that you make an accurate network illustration.
• Refer to Figure 26-5 to see the physical topology of the Dial and Application Security Lab.
CCIE.book Page 922 Monday, May 12, 2003 8:29 AM
E0 Area 2
E0 S0
DLCI /27 0/2
0/1 R1 101 .32
.x S0 R2
0
VLAN 10 .10 DLCI VLAN 2
150
15 202
0.1
00
.31
S2
.x/
E0 28 DLCI
VLAN 11 R9-BB1 0/9 R10-Frame 404 RIPv2-MD5
S0
RIPv2-MD5
10.1.1.x/24 E0 E0
S3 S0
Ethernet DLCI DLCI S1 150 R4 0/4 0/7 R7-BB2
.100
301 302 .33. 140.100.47.0/26
Inside 0/12 x/29 S1
RIPv1
S0
VLAN 47
0/11 0/3 OSPF Area 0
DLCI 140.100.45.0/26
PIX1 Outside R3 304 Area 45
S0
VLAN 13 Area 5
5.5.5.5
130.100.1.x/24 130.100.55.1
EIGRP R5
S1
CA/AAA
192.168.1.7 140.100.56.0/26
Area 56
RIPv2-MD5 S0
310.100.26.0/27
F0/0 0/21 0/22 0/6
R8 0/8 Inside PIX2 F0/0 R6
192.168.1.0/24 Outside DHCP-Server
VLAN 82 VLAN 26 PC Client
ISDN-DDR
Area 86
172.22.85.x/24
Timed Portion
Complete this lab in 11 hours.
Step 3 Permit a user to issue pings, access global configuration mode, and configure
an SNMP server on R8.
Step 4 Create an authentication list with an appropriate method, and apply it to R8’s
console line.
Step 5 Configure authorization on R8 to allow the assigned permissions. Make your
last authorization method allow unrestricted user entrance to the shell if all
other methods fail. Do not use “none.”
Step 6 Configure accounting on R8 to record user activity from the time of login
until the time of logout. Verify that the accounting records are functioning on
the ACS server.
Step 6 Configure PIX2 to accept SSH sessions from hosts 192.168.1.100 and
192.168.1.1.
Step 3 Make sure that the client can reach the private network behind the PIX2
Firewall.
CCIE.book Page 924 Monday, May 12, 2003 8:29 AM
Step 2 Configure the TACACS+ server to allow callback. Specify the telephone
number on the TACACS+ server.
Step 3 Use the TACACS+ server for all AAA services, including those that are
callback-related.
Step 4 Make sure that all activity is recorded.
Step 2 Have the client authenticate against the TACACS+ server. Assign a range of
50 possible IP addresses for the client.
CCIE.book Page 926 Monday, May 12, 2003 8:29 AM
Equipment List
• One Frame Relay switch: four serial ports
• Two backbone routers: one Ethernet interface
• Three lab routers: one Ethernet interface and one serial interface
• One lab router: one Ethernet interface
• One lab router: one Ethernet interface and two serial interfaces
• One lab router: one Ethernet interface, one serial interface, and one ISDN interface
• One lab router: two serial interfaces and one ISDN interface
• One reverse Telnet router: 13 asynchronous connections
• One Catalyst 3550 switch: 14 Ethernet interfaces
• Two PIX Firewalls: two Ethernet interfaces
• One ACS server: one Ethernet interface
• One IDS/Syslog server: one Ethernet interface
Not all physical interfaces available on lab routers and switches are used in this lab. Figure 26-6
shows the network connections diagram. 0/X numbers next to the interfaces indicate their
respective switchports.
Lab Rules
• Do not begin Lab 6 until you have finished Labs 1, 2, 3, 4, and 5.
• Follow the timed portion instructions carefully.
• Do not use any static routes or floating routes unless you’re specifically told to do so.
• Propagate specific routes only when instructed.
• Do not modify the vty line configuration unless specifically instructed.
• Your reference materials include Chapters 6, 19, 20, 22, 23, and 24 of this book, the Cisco
Documentation CD-ROM, and any other resources you might find useful.
• It is recommended that you read through the entire lab before beginning.
• It is recommended that you make an accurate network illustration.
• Refer to Figure 26-6 to see the physical topology of the Advanced Security Lab.
CCIE.book Page 927 Monday, May 12, 2003 8:29 AM
E0
E0 S0
DLCI 7 0/2
0/1 R1 101 x/2 S0 R2
0.32. DLCI VLAN 2
VLAN 10 .10
15
150 202
0.1
00
.31
S2
.x/
E0 DLCI
28
VLAN 11 R9-BB1 0/9 R10-Frame 404
S0
10.1.1.x/24 E0 E0
S3 S0
Ethernet DLCI S1 150 R4 0/4 0/7 R7-BB2
DLCI .100
301 302 .33. 140.100.47.0/26
Inside 0/12 x/29 S1
VLAN 47
0/11 0/3 OSPF Area 0
DLCI 140.100.45.0/26
PIX1 Outside R3 S0 304
E0 S0
VLAN 13
0/15
130.100.1.x/24 NTP-Server
R5 Primary
S1
130.100.26.1
IDS
140.100.56.0/26
HSRP
192.168.1.8
CA/AAA R6 DHCP-Server
192.168.1.7 R6 NTP Client to R5 and R8
S0
Timed Portion
Complete this lab in 11 hours.
Step 7 Configure PIX2 to allow only one SNMP workstation to view stats on the
PIX.
Step 8 Configure NTP/MD5 authentication on PIX2.
Step 10 When configuring your mail server, configure PIX2 to not respond to DATA,
HELO, MAIL, NOOP, QUIT, RCPT, and RSET. Configure all necessary
components so that anyone can send e-mail to a mail server behind PIX2 with
an inside IP address of 192.168.1.125.
Step 11 Configure PAT translation on PIX1.
Step 12 Configure the PIX2 firewall to retrieve its configurations and software images
from a centralized location with an IP address of 192.168.1.100.
Step 13 Configure PIX2 such that, when users on the inside network boot their
machines, they get the dynamic IP address and WINS, DNS, and default
gateway information assigned by PIX2.
Section 6: DDR-IPSEC
Step 1 Make sure that in case of a failure, ISDN becomes active with all IPSec
encryption and is still operational.
CCIE.book Page 931 Monday, May 12, 2003 8:29 AM
Step 2 Configure PIX1 IPSec to PIX2 to encrypt the inside network. Make sure that
the inside networks can ping each other. Use the most common encryption
method.
Step 4 Make sure that R5 and PIX2 are enrolled with the CA and are using it to
establish IPSec. Verify whether R5’s loopback 15.15.15.15 can ping
192.168.1.8 (R8’s FastEthernet0/0).
Equipment List
• Two lab routers: one Ethernet interface
• One lab router: one serial interface
• One lab router: two Ethernet interfaces and one serial interface
• One reverse Telnet router: six asynchronous connections
• Two Catalyst 3550 switches: two Ethernet interfaces
Not all physical interfaces available on lab routers and switches are used in this lab. Figure 26-7
shows the network connections diagram.
CCIE.book Page 932 Monday, May 12, 2003 8:29 AM
! "#
! "#
$%&
$%&
'(!
)
Lab Rules
• Do not begin Lab 7 until you have finished Labs 1, 2, 3, 4, 5, and 6.
• Follow the timed portion instructions carefully.
• Do not use any static routes or floating routes unless you’re specifically told to do so.
• Propagate specific routes only when instructed.
• Do not modify the vty line configuration unless specifically instructed.
• Your reference materials include Chapters 4, 15, 17, and 25 of this book, configuration
guides, the Cisco Documentation CD-ROM, and any other resources you might find
useful.
• It is recommended that you read through the entire lab before beginning.
• It is recommended that you make an accurate network illustration.
• Refer to Figure 26-7 to see the physical topology of the Service Provider Lab.
Timed Portion
Complete this lab in 4.5 hours.
CCIE.book Page 933 Monday, May 12, 2003 8:29 AM
Section 2: QoS
Step 1 Configure R6 serial 0/0 to prevent DoS TCP SYN Attacks to R6 from the
outside.
Step 2 Configure an access list to block all outside network addresses that could
possibly be used to hack your network. (See RFC 2267 or RFC 2827.)
Step 3 Limit the ICMP rate to approximately 500 kbps on R6’s serial 0/0 interface.
Step 4 Guarantee all secure web traffic a bandwidth of approximately 300 kbps
going out of R6.
Section 3: L2VPN
Step 1 On R1 and R10, configure subinterfaces to belong to VLAN10 and VLAN20.
Assign at least one subinterface of each router to each VLAN.
Step 2 The subinterfaces of both routers should be able to reach each other over
3550-A and 3550-B.
Step 3 Configure your switching such that neither switch has knowledge of
VLAN10 and VLAN20.
Step 4 Verify your configuration by making sure that VLAN10 and VLAN20 on R1
can reach their counterparts on R10.
Equipment List
• One Frame Relay switch: four serial ports
• Two backbone routers: one Ethernet interface
• Three lab routers: one Ethernet interface and one serial interface
CCIE.book Page 934 Monday, May 12, 2003 8:29 AM
• One lab router: one Ethernet interface and two serial interfaces
• One lab router: one Ethernet interface, two serial interfaces, and one ATM interface
• One lab router: two Ethernet interfaces, one serial interface, and one BRI interface
• One lab router: one Ethernet interface and one BRI interface
• One lab router: one ATM interface
• One reverse Telnet router: 16 asynchronous connections
• One Catalyst 3550 switch: 24 Ethernet interfaces
• One Catalyst 3550 switch: two Ethernet interfaces
• Two PIX Firewalls: two Ethernet interfaces
• One ACS/CA server: one Ethernet interface
• One HTTP/FTP server: one Ethernet interface
• One PC: one Ethernet interface
The following list specifies the software versions used for this practice lab:
• Cisco IOS Software release 12.2.13b or 12.2.13T. The software feature set for both
releases is IP/FW PLUS IPSEC 56.
• Catalyst 3550 Software release: 12.1.12c-EA1a (ED); Software feature sets: C3550 EMI
IOS CRYPTO IMAGE AND CMS FILES
• PIX Firewall Software release 6.2.2
• ACS Server release 3.0.2
• Cisco Systems VPN Client 3000 (version 3.6.3)
!
!
R10#show run
version 12.2
!
hostname R10
!
!
frame-relay switching
!
!
interface Serial0
no ip address
encapsulation frame-relay
clockrate 125000
frame-relay lmi-type ansi
frame-relay intf-type dce
frame-relay route 101 interface Serial1 301
!
interface Serial1
no ip address
encapsulation frame-relay
clockrate 64000
frame-relay lmi-type ansi
frame-relay intf-type dce
frame-relay route 301 interface Serial0 101
frame-relay route 302 interface Serial2 202
frame-relay route 304 interface Serial3 404
!
interface Serial2
no ip address
encapsulation frame-relay
clockrate 64000
continues
CCIE.book Page 936 Monday, May 12, 2003 8:29 AM
R9#show run
version 12.2
!
hostname R9
!
ip subnet-zero
no ip finger
!
no ip dhcp-client network-discovery
!
key chain lab
key 2
key-string ccie
!
interface Loopback9
ip address 9.9.9.9 255.255.255.0
!
interface Loopback19
ip address 19.19.19.19 255.255.255.0
!
interface Ethernet0
ip address 10.1.1.9 255.255.255.0
ip rip authentication mode md5
ip rip authentication key-chain lab
no cdp enable
!
router rip
CCIE.book Page 937 Monday, May 12, 2003 8:29 AM
R7#show run
version 12.2
!
hostname R7
!
ip subnet-zero
no ip domain-lookup
!
key chain ccie
key 6727
key-string 7 03520C5951
!
interface Loopback1
ip address 7.1.1.7 255.255.255.0
!
continues
CCIE.book Page 938 Monday, May 12, 2003 8:29 AM
RAS#show run
hostname RAS
!
ip host r3 2003 1.1.1.1
ip host r6 2006 1.1.1.1
ip host r5 2005 1.1.1.1
ip host r4 2004 1.1.1.1
ip host pix2 2016 1.1.1.1
ip host pix1 2015 1.1.1.1
ip host r10 2010 1.1.1.1
ip host r9 2009 1.1.1.1
ip host r8 2008 1.1.1.1
ip host r7 2007 1.1.1.1
ip host r2 2002 1.1.1.1
ip host r1 2001 1.1.1.1
ip host CAT3550A 2011 1.1.1.1
ip host CAT3550B 2012 1.1.1.1
!
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
!
line con 0
exec-timeout 0 0
privilege level 15
line 1 16
no exec
no exec-banner
exec-timeout 0 0
exec-character-bits 8
transport input all
line aux 0
line vty 0 4
exec-timeout 0 0
privilege level 15
password cisco
no login
!
end
Now that you’ve completed the prestaging portion of the lab, you can move on to the next timed
portion that you are actually being tested on.
CCIE.book Page 941 Monday, May 12, 2003 8:29 AM
Lab Rules
• Follow the instructions carefully.
• Wipe out all configurations left over from the practice labs.
• Do not use any static routes or floating routes unless you’re specifically told to do so.
• Propagate specific routes only when instructed.
• Do not modify the vty line configuration unless specifically instructed.
• Your only available reference material is the Cisco Documentation CD-ROM. Do not
consult anyone or anything other than the mentioned resources.
• It is recommended that you read through the entire lab before beginning.
• It is recommended that you make an accurate network illustration.
Figure 26-9 shows the physical topology of the Master Lab.
E0 S0
0/1 R1 S0 E0
.x/27 0/2
VLAN 10 DLCI 0 0.32 R2
101 150.1 DLCI
VLAN 2
202
150.100.31.x/28
S2
VLAN 11 R9-BB1 R10-Frame
E0 S0
10.1.1.x/24 DLCI
0/9 404 E0 E0
S3
Ethernet
DLCI
S1
S0
R4 0/4 0/7 R7-BB2
301 9 140.100.47.0/26
Inside 0/12 /2 S1
DLCI
.3 3.x VLAN 47
0/11 0/3 302 00
0.1 140.100.45.0/26
R3 15
PIX1 Outside S0 DLCI
304 S0
VLAN 13
130.100.1.x/24 ATM7/0/0.1 ATM7/0/0.1
R5 PVC 1/100 PVC 1/100 R11-ATM
S1 172.150.1.0/24
0/13
140.100.56.0/26
ACS/CA
S0
310.100.26.0/27
F0/0 0/21 0/22 0/6
R8 0/8 Inside PIX2 F0/0 R6
192.168.1.0/24 Outside
VLAN 82 VLAN 26
CCIE.book Page 942 Monday, May 12, 2003 8:29 AM
Timed Portion
Complete this lab in 8 hours.
Step 2 Configure the link between R4 and R5 to be in OSPF Area 45. The link
between R5 and R6 is in OSPF Area 56. Make sure all routes are visible to
and from Area 0. (8 minutes)
Step 3 Configure five loopback addresses on R3—3.3.3.3, 3.3.3.13, 3.3.3.23,
3.3.3.33, and 130.100.100.1. Add 3.3.3.3 to OSPF Area 0. Introduce 3.3.3.13
and 3.3.3.23 into OSPF without using the network statement. Do not include
3.3.3.33 and 130.100.100.1 in OSPF. (2 minutes)
Step 4 Configure MD5 authentication of all OSPF neighbor adjacencies.
(8 minutes)
Step 3 Configure R4 to represent the 209.112.0.0 loopbacks as one route to the rest
of the internetwork; suppress all other more-specific subnets. (2 minutes)
Step 4 Place R8 in autonomous system 65000. Establish an EBGP peering between
R8 and R6. Accommodate your configuration so that PIX2 allows the peering
via a GRE tunnel. Make R8’s internal IP address visible on the outside of
PIX2. Ensure that R8 receives and can reach all routes from R7. (10 minutes)
Step 5 Advertise R8’s loopback without using a network statement. Ensure that it
can be seen by all other routers. (1 minute)
Step 6 Configure BGP to prevent AS65000 AS-path from advertising to R7. Avoid
using access lists. (1 minute)
Step 7 Place R1 in autonomous system 1, R2 in autonomous system 2, and R3 in
autonomous system 3. Configure R1, R2, and R3 to appear as if they belong
to the same autonomous system—1234. Allow R4 to receive R1’s, R2’s, and
R3’s routes from autonomous system 1234. Make sure destinations adver-
tised by R8 and R7 (including the BGP loopbacks) can be reached by R1, R2,
and R3. (6 minutes)
Step 8 R9 is in autonomous system 9. Create a peering between R9 and its neighbor
in autonomous system 3 through PIX1 without using a GRE tunnel. Use an
IP address of 10.1.1.9 in R3’s neighbor statement for autonomous system 9.
(8 minutes)
Step 9 Limit the number of prefixes received by R9 from R3 to 100. (1 minute)
Step 3 Permit a user to issue pings, access global configuration mode, and configure
an SNMP server on R8. (4 minutes)
Step 4 Create an authentication list with an appropriate method, and apply it to the
console line of R8. (2 minutes)
Step 5 Configure authorization on R8 to allow the assigned permissions. Make your
last authorization method allow unrestricted user entrance to the shell if all
other methods fail. Do not use “none.” (2 minutes)
Step 6 Configure accounting on R8 to record user activity from the time of login
until the time of logout. Verify that the accounting records are functioning on
the ACS server. (2 minutes)
Step 2 Configure a VPN client to authenticate against the TACACS+ server. Make
sure that the client can reach the private network behind the PIX2 Firewall.
(5 minutes)
Step 2 The subinterfaces of both routers should be able to reach each other over
3550-A and 3550-B. Configure your switching such that neither switch
has any knowledge of VLAN10 and VLAN20. Verify your configuration
(See Figure 26-10) by making sure that VLAN10 and VLAN20 on R1 can
reach their counterparts on R10. (6 minutes)
E0
E0 S0
0/2
0/1 R1 S0 R2
VLAN 10 VLAN 2
E0 S2
0/9 R10-Frame
R9-BB1 S0
VLAN 11
E0 E0
WWW S3 S0
Ethernet S1 R4 0/4 0/7 R7-BB2
140.100.47.0/26
Inside 0/12 S1
VLAN 47
0/11 0/3
140.100.45.0/26
PIX1 Outside R3 S0 Area 45
E0 S0
VLAN 13
0/15
130.100.1.x/24
R5
S1
140.100.56.0/26
HSRP
Summary
This chapter let you practice what you’ve learned from reading this book. The seven practice
labs and the final master lab included the topics covered on the CCIE Security lab exam. Along
with the current covered topics, some of the possible future additions to the lab were offered.
CCIE.book Page 953 Monday, May 12, 2003 8:29 AM
CCIE.book Page 954 Monday, May 12, 2003 8:29 AM
CCIE.book Page 955 Monday, May 12, 2003 8:29 AM
PA R T
IX
Appendixes
Appendix A Basic UNIX Security
APPENDIX A
Installing Solaris
Because installing Solaris is the first step, it is one of the most vital. You want to be sure that
you select the latest version of the Solaris OS, or at least the latest that your applications will
support. Like most manufacturers, Sun continues to develop improvements and added features
in its OS as well as its security. You should install the OS in a secure lab environment, or at least
isolated from the network, with all the patches that will be applied downloaded and scanned for
viruses on a second device. Installing a machine while it is connected to a nonsecure network
makes it possible for an attacker to exploit any vulnerability with the OS before you’ve had time
to patch it.
Sun makes the installation of the Solaris OS very easy through a menu-based installer. The first
choice that many power users seem to make is installing everything available without concern
for security. By choosing to install only the required software and options, you can increase
your security by reducing the amount of software to patch as well as any possible exploits
associated with that software. You should be as frugal as possible during this task, because you
can always add later any software packages you might have forgotten. Remember that even the
Core System Support option installs many services you might not need for proper operation of
your system.
Partitioning your drive is mostly up to you and any policies your company might have in place.
This subject is often debated. Some users believe that a large file system with only / as a
partition is optimal, and others insist on using the long-recommended four partitions of /, /usr,
/var, and /opt. Generally, the /usr and /opt partitions are used to install applications, and the /var
partition is used for system logging and protects your root (/) partition by preventing overfilling.
The /swap partition is created automatically during the initial installation, but it can be modified
to complement the amount of memory you have installed on your system.
Applying Patches
After you’ve finished the initial installation and you’ve rebooted the system, you can start
installing all the recommended patches. Patches for Solaris come in the form of patch clusters
and can be found on Sun’s website at www.sunsolve.sun.com. If you are a Sun service contract
customer, you can also find maintenance updates (MUs) here.
When you install patches, a failure is not always a catastrophic condition. If your patch instal-
lation fails with a “return code 2” message, the patch has already been installed on your system.
A “return code 8” message indicates that the package to which the patch applies is not installed
on your system. Any other failures should be investigated and the problem corrected before you
attempt to reinstall the patch.
Installing the latest patches from Sun helps you continue to protect your system from the many
vulnerabilities that have been discovered since your distribution CD-ROM was produced. Failure
to maintain the patches on your system can expose your system to attack through unpatched
vulnerabilities. The up side is that there are many automated tools on the Internet that you can
use to scan your system for known vulnerabilities.
CCIE.book Page 959 Monday, May 12, 2003 8:29 AM
• finger—Remotely obtains information about a user such as the terminal the user is logged
in to, the shell, the login directory path, if there is unread e-mail, and the contents of the
.plan and .project files.
• chargen—Outputs a rotating sequence of printable characters for testing tty devices and
other situations in which known and varying sequence is desired.
• echo—Relays back all data sent to it to test connectivity.
• time—Prints the current time and date.
• daytime—Returns the current date and time in ASCII.
• discard—Discards the incoming data stream.
• telnet—Allows a remote user to connect to a host.
• imap—Used for the IMAP4 remote mail access protocol server.
• pop3—Used for the POP-3 remote mail access protocol server.
• dtspc—Used for the Common Desktop Environment (CDE) subprocess control.
• fs—Provides a font server.
• kcms—Provides remote access to the Kodak Color Management System (KCMS)
profiles.
• all rpc services—Provides remote procedure call (RPC) services as protocols to be used
in cooperative processing, such as in a client/server environment.
After you have commented out these services, you need to restart your inetd daemon. You have
the option of replacing the standard inetd.conf with one that just includes Telnet and FTP. This
can be replaced with Secure Shell (SSH) under ideal circumstances if these two services are
required.
The following sections discuss some of the most often used services and ways to secure them.
FTP
You can use the /etc/ftpusers file to restrict the listed users from using the FTP service to
connect to your system. If you use SSH to replace FTP, you can use the secure copy (scp)
command as a more secure method to transfer files instead of FTP.
Enabling Logging
Logging is one tool that you, as a system administrator, can use daily. Logging provides you
with a means to determine if your system is operating optimally, determine a chain of events
for problems, and, if handled properly, provide forensic evidence if your system has been
compromised.
By default, a Solaris system logs to the /var/adm directory. At a minimum, you can enable
additional logging by creating two additional log files—/var/adm/sulog to log unsuccessful
su attempts, and /var/adm/loginlog to log consecutive failed login attempts.
These files are by no means the extent of logging you can enable on a Solaris system. You can
configure your syslogd in a way that allows you to examine the activities of each daemon that
can write to the specified log level. To enable this enhanced logging, the end of your /etc/
syslog.conf file should contain the following:
kern.debug/var/log/all/kern.log
user.debugvar/log/all/user.log
mail.debug /var/log/all/mail.log
daemon.debug /var/log/all/daemon.log
auth.debug /var/log/all/auth.log
syslog.debug /var/log/all/syslog.log
lpr.debug /var/log/all/lpr.log
news.debug /var/log/all/news.log
uucp.debug /var/log/all/uucp.log
cron.debug /var/log/all/cron.log
local0.debug /var/log/all/local0.log
local1.debug /var/log/all/local1.log
local2.debug /var/log/all/local2.log
local3.debug /var/log/all/local3.log
local4.debug /var/log/all/local4.log
local5.debug /var/log/all/local5.log
local6.debug /var/log/all/local6.log
local7.debug /var/log/all/local7.log
Remember that you must create the white space between the type and action using only tabs,
not spaces. You must have created the files you listed as the store of logging information before
your syslogd can write to them.
The more information you log to files, the faster they need to be rotated before the file becomes
too large to browse or fills the /var partition. You can use /usr/bin/newsyslog to rotate your log
files for you. All logging information you capture should be archived for a specified period of
time.
One other item you can enable for logging is authentication messages. You can uncomment the
following line in your /etc/syslog.conf to accomplish this:
#auth.notice ifdef('LOGHOST', /var/log/authlog, @loghost)
Remember that you must create the referenced file before you can store information there.
CCIE.book Page 963 Monday, May 12, 2003 8:29 AM
The first line prevents the execution of any code on your stack. You should be aware that using
this line might cause some of your programs, which run code from your stack legitimately, to no
longer function. A good rule of thumb to follow about the use of this line is that if your system
is designed for a single purpose and needs to be as secure as possible, you should use this option.
The second line logs any attempt by someone who tries to run an exploit using this method.
NOTE You can add a few other specific entries to your /etc/inet/hosts file. These entries should specify
hosts that will be used for a specific reason, such as a logging host or your DNS server. If you
have a central logging host, add an entry for it as well. In these cases, your file might look
similar to this:
127.0.0.1 localhost
IP address hostname loghost
IP address hostname dns
CCIE.book Page 964 Monday, May 12, 2003 8:29 AM
This configuration can prevent certain types of attacks, such as DNS, against your system. The
major disadvantage of using this approach is that for every host configured this way, you must
have a policy to ensure that the information is kept consistent and correct.
Login Banner
You can change your /etc/motd file to contain a banner to warn unauthorized users about
inappropriate and unauthorized use of your system.
Routing
With today’s robust networks, most Solaris systems are not used for routing anymore, but
routing is still enabled by default. You can disable routing using the following:
#touch /etc/notrouter
Unless your system has specific requirements, you can remove the SUNWsndmr and
SUNWsndmu sendmail packages to prevent exploits designed against mail.
Disabling Stop-A
Stop-A lets a user stop the entire system and bring it down to a command line. As soon as the
user has access to the command line, exploits may be run to upgrade privileges or run arbitrary
code. You can disable the Stop-A abort sequence by making the following change to your /etc/
default/kbd file:
KEYBOARD_ABORT=disabled
CCIE.book Page 966 Monday, May 12, 2003 8:29 AM
Do not make this password the same as your root password. Setting the security level to full
requires a user to enter a password to boot the system. You can use the Command keyword,
instead of the full keyword, to provide protection without the need for a boot password. If
someone has physical access to your machine, they can replace its EEPROM to gain access to
your system. Fortunately, by replacing the machine’s EEPROM, the person also changes the
hostid. You should record all your hostids and periodically check this list against the system’s
to verify that none of your EEPROMs have been replaced.
You can also use the following commands to examine setUID, setGID, and group-writeable to
determine what files need to have these set:
find / -local ! -type l -perm -4000 -ls > /var/log/suid-files
find / -local ! -type l -perm -2000 -ls > /var/log/sgid-files
find / -local ! -type l -perm -0020 -ls > /var/log/group-writeable-files
find / -local ! -type l -perm -0001 -ls > /var/log/world-executable-files
A thorough examination of these results can be used to restrict file permissions as much as
possible. Only the programs that require the setUID/setGID should remain set. Only programs
that are required to be group/world-executable should be executable in this manner, and all
other programs should have this setting changed. You can use a third-party product, such as
Tripwire, to track the changes made to the files.
You can configure all file systems, except where requirements do not allow it, to be mounted as
read-only and nosuid to prevent changes to files and programs that often result from unauthorized
access or attempts to corrupt data.
The default configuration of Solaris permits group write permission of the /etc directory. Unless
your specific requirements state otherwise, you can prevent this by using the following:
chmod -R g-w /etc
CCIE.book Page 967 Monday, May 12, 2003 8:29 AM
Summary 967
SSH
SSH is a program that can be used for secure communications with the Solaris system. It
encrypts all communications streams to the system and can replace Telnet and FTP, among
other less-secure programs. SSH comes with its own logging and access control, such as TCP
Wrapper. You can obtain SSH from a variety of sources, such as www.ssh.com and openssh.com.
Tripwire
As mentioned, Tripwire, when used for accounting purposes, can keep track of changes to files.
This helps you in auditing and monitoring any changes made to files on your system during
normal operation.
Physical Security
Physical security of your system is just as important as the security you implement on your net-
work. It would be a waste of resources to secure your network against any type of attack if an
unauthorized user could walk up to your system and remove it. If an unauthorized user can gain
physical access to your system, it is only a matter of time before the user has all the information
contained on the machine, including any locally stored user accounts and passwords. A good
physical security implementation should include limited access to the devices under protection,
as well as securable or separate environmental controls, such as power and air conditioning.
Summary
This overview was intended to give you a basic introduction to UNIX security. By no means is
it meant to answer every security scenario you might encounter. Continued education and
mailing lists are excellent sources you can use to keep on top of the latest security vulnerabilities
and countermeasures. Remember that a good security practice you can use in your day-to-day
operations is to remove all privileges and access for your users and grant only the privileges and
access they require to complete their assigned job requirements.
CCIE.book Page 968 Monday, May 12, 2003 8:29 AM
APPENDIX B
An out-of-the-box installation of a Windows operating system is not secure. Over time, many
bugs and exploits have been identified and publicized, and like other operating systems, patches
and updates are released. To maintain a secure stance in a networked environment, the admin-
istrator must keep current with these service packs and fixes. Like any network- or Internet-
connected operating system, the Windows OS is only as secure as the administrator makes it.
You can find the latest security patches and vulnerability information by starting at
www.microsoft.com/security/ and browsing to the relevant section.
The modern Windows security model dictates that any legitimate user must log on and be
validated before using the system and network resources. User accounts are assigned to groups
of users, who are then assigned to resources. A user base in a Windows environment can either
be local to a machine, a member of a domain model, or a member of an Active Directory model.
Securing a networked Windows (NT and 2000) operating system is much like any configuration
task that you undertake to secure other operating systems. You must follow certain tasks to build
a solid foundation for future security refinements. These tasks include the following:
• Installing the OS
• Securing network services
• Applying the patches
• Enabling auditing and logging
Installing the OS
Installing the Windows operating system is the first step and, therefore, is one of the most vital
stages. Obviously, the version of Windows that you select must be appropriate for your hardware
and applications. To ensure a successful installation, you should check the Microsoft Hardware
Compatibility List (HCL) for hardware compatibility. Like most manufacturers, Microsoft
continues to make improvements and develop added features in its OS as well as its security.
You should install the OS in a secure lab environment, or at least isolated from the network,
with all patches that are to be applied downloaded and scanned for viruses on a second device.
Installing on a machine while it is connected to a nonsecure network makes it possible for an
attacker to exploit any vulnerability with the OS version before you have had time to apply
patches.
As with other operating systems, many power users choose to install everything that is available,
without concern for security. By choosing to install only the required software and options, you
can increase your security by reducing the amount of software that needs to be patched as well
as by minimizing possible exploits that are associated with that software. As stated in Appendix A,
“Basic UNIX Security,” you should be as frugal as possible during this task because you can
install any additional software packages that you might have forgotten at a later time. Remember
that a default installation includes many services that you might not need for proper operation
CCIE.book Page 971 Monday, May 12, 2003 8:29 AM
of your system. If the system that you are installing for does not need to participate in a domain
environment, always use the member server mode. This server mode assumes that you do not
need the server to synchronize user information with other servers or to authenticate users to a
domain. This server mode keeps a local user base rather than one that has been synchronized
with other servers on your network and domain. If you were installing a web server, for
example, you would install it as a member server.
Remember that certain applications and services depend on NetBIOS and can no longer
operate after these services have been disabled; therefore, it is important to verify that
any clients and applications no longer need NetBIOS. For example, pre-Windows 2000
computers are unable to browse, locate, or create file- and print-share connections to a
Windows 2000 server with NetBIOS disabled.
■ Disable or delete unnecessary accounts. Within Windows 2000 and XP, review any inactive
accounts for users or applications that use the Computer Management snap-in. In
Windows NT 4, use User Manager. Disable any nonactive accounts, and delete accounts
that are no longer required.
■ Protect files and directories. From a default installation of a Windows NT4 or 2000
operating system, you must make a number of file system permission changes to
secure the operating system files themselves. The definitive list of files and directories
that require modification for a secure Windows environment are available in the NSA
Windows NT Systems Security Guidelines, produced by Trusted System Services (see
nsa2.www.conxion.com/index.html).
■ Disable the Guest account. The Guest account is disabled by default on servers that are
running Windows NT4 Server and Windows 2000.
■ Protect the Registry from anonymous access. A default installation of Windows NT4
and 2000 does not restrict user access to the Registry. See the Microsoft Knowledge
Base article “How to Restrict Access to the Registry from a Remote Computer” (visit
support.microsoft.com/ and search for article Q153183).
■ Apply appropriate Registry Access Control Lists (ACLs). Clean-installed Windows 2000
servers have secure default ACLs applied to Registry entries; however, upgrades from
previous versions (for example, Windows NT4 Server) do not modify the previous
security settings. Refer to the article “Default Access Control Settings in Windows 2000,”
for the necessary modifications (see www.microsoft.com/TechNet/prodtechnol/
windows2000serv/maintain/security/secdefs.asp).
■ Restrict access to public Local Security Authority (LSA) information. The LSA handles
aspects of security administration on the local computer, including access and permissions.
Perform the following Registry edit under Windows NT4 Server and Windows 2000 to
implement restrictions for anonymous users and to restrict the amount of public informa-
tion they can obtain about the LSA component:
Hive
HKEY_LOCAL_MACHINE \SYSTEM
Key
CurrentControlSet\Control\LSA
Value Name
RestrictAnonymous
Type
REG_DWORD
Value
1
CCIE.book Page 974 Monday, May 12, 2003 8:29 AM
CAUTION Accessing and modifying the Registry can be a hazardous operation that could result in an
unstable or unusable system.
■ Set stronger password policies. Within Windows NT4 Server, use the Account Policy
Manager, and within Windows 2000, use the Domain Security Policy or Local Security
Policy snap-in to enforce strong passwords on users. In Windows 2000, you can load a
snap-in through the Microsoft Management Console (MMC). Microsoft makes the
following recommendations:
— Set the minimum password length to 8 characters.
— Set a minimum password age that is appropriate to your network (typically from
1 to 7 days).
— Set a maximum password age that is appropriate to your network (typically no
more than 42 days).
— Set a password history maintenance (using the Remember passwords option) of
at least 6.
■ Set account lockout policy. Within Windows NT4 Server and Windows 2000, the admin-
istrator can enable an account lockout policy. This disables an account after an administrator-
specified number of login failures. Within Windows NT4 Server, use User Manager for
Domains and select the Account Policy option. Within Windows 2000, use the Domain
Security Policy or Local Security Policy snap-in.
The Windows NT Server Resource Kit includes a tool that allows you to adjust some
account properties that are not accessible through the normal management tools. This tool,
passprop.exe, allows you to lock out the Administrator account. The /adminlockout switch
allows you to lock out the Administrator account.
■ Configure the Administrator account. Default installations of Windows NT4 Server and
Windows 2000 contain an Administrator login account, which is similar to the UNIX root
account. You should rename this account to something different from the obvious. For
example, do not use admin, supervisor, root, and so on. Adding a decoy account, such as
administrator, admin, or root, with no privileges would throw off a hacker or at least create
enough activity in the security logs and audit trails to alert the real administrator. Enable
account lockouts on Administrator accounts, but be sure that other Administrator accounts
are available to unlock any locked accounts.
■ Remove all unnecessary shares. Be sure to remove any unnecessary shares to directories
(folders) or files. By default, in Windows NT4 Server and Windows 2000 installations, all
CCIE.book Page 975 Monday, May 12, 2003 8:29 AM
drives are shared for administrative purposes. This could potentially be exploited, so to
secure your systems, remove this share by using Windows Explorer.
■ Set appropriate ACLs on all necessary file shares. Newly created shares, by default, allow
all users the Full Control permission. All legitimate shares that are resident on a server
should have the appropriate ACLs applied. See “NTFS,” later in this appendix, for an
explanation of NTFS permissions.
■ Install antivirus software and updates. You must install antivirus software and keep
current with the latest virus signatures on all Internet and intranet systems. More security
antivirus information is available on the Microsoft TechNet security website (visit
www.microsoft.com/technet/ and click Security in the navigation menu).
Applying Patches
As explained earlier in this appendix, Microsoft has produced tools to determine service pack
and hot fix requirements. You should keep informed of newly released service packs and update
your OS as soon as possible. When this book was written, the most recent service pack for
Windows 2000 is Service Pack 3; for Windows NT4 Server, it is Service Pack 6a. Microsoft
service packs are cumulative, which means that they contain the fixes that were included in
previous versions of the service pack plus any new fixes. Hot fixes are released as interim fixes
until the next service pack becomes available. In addition to Windows service packs, Security
Roll Up Packages are available. These packages are a collection of all the security fixes packaged
into one post–service pack update. Currently, versions are available for Windows NT4 Server
and Windows 2000.
In Windows 2000 and XP, Microsoft has implemented a utility called Windows Update. This
utility notifies the system user of crucial security and product updates and offers to automatically
download and install these updates in an online environment. A Security Notifications Bulletin
service is also now available from Microsoft. This service enables users and administrators to
subscribe and receive by e-mail accurate information informing them of new security issues,
threats and attacks, and details of fixes. You can subscribe to this service at the following
website:
register.microsoft.com/regsys/pic.asp
As mentioned earlier, you should lab test any new service packs and make a full backup of your
system before implementing them.
viewed. Enabling auditing and logging allows you to track these events and provides the
administrator with important security information, as follows:
• Event logs—These logs are built into Windows NT4 Server, Windows 2000, and Windows
XP and consist of the System Event Log, the Application Event Log, and the Security
Event Log. The Event Viewer utility is used to view the logs and apply filters. The System
Event Log tracks errors, warnings, and information about the operating system itself, its
services, and the hardware it is running on. The Application Event Log tracks application
events and history. The Security Log tracks security events such as user activity, any access
attempts, failures and successes, and the accessing of files and directories.
• IIS logs—These logs are specific to Internet Information Server and are more comprehen-
sive than the standard event logs. IIS logs provide website, time and date, access, and page
information.
Auditing of specific user events includes logon/logoff, use of user rights, user right and group
management, security policy changes, file and object access, restart/shutdown, and system
and process tracking. These audited events appear in the Security Log in Event Viewer. Within
Windows NT4 Server, these events are configured in User Manager for Domains and Policies.
In Windows 2000, use the Group Policy snap-in within the Microsoft Management Console
(MMC) and the Audit Policies within the MMC.
Enabling file and directory auditing provides security monitoring over what resources are being
accessed. Monitoring files and directories in any network operating system environment is
critical. Auditing and monitoring are only effective if the administrators actually review this
information; otherwise, serious events could go unnoticed. File and directory auditing is
granular in the sense that it allows the administrator to track a specific user’s access to a specific
directory or file. To enable file and directory auditing, follow these steps:
Step 1 Use Windows Explorer to navigate the file system.
Any configured auditing events appear in the security log. For Special Permissions, select
Advanced under the Security tab.
File Systems
When planning for and installing a Windows operating system, only one choice exists for a
secure installation: NTFS. FAT and FAT32 provide no file system security. You simply cannot
apply permissions to files or directories under FAT and FAT32. In this section, you cover the
common file systems in turn and the security implications of each.
CCIE.book Page 977 Monday, May 12, 2003 8:29 AM
FAT
The FAT file system, which uses a 16-bit table, is the simplest file system that is supported in a
Windows and desktop environment. FAT first appeared in Microsoft DOS and ingeniously took
its name from the system’s terminology: File Allocation Table. FAT served as the definitive PC/
desktop file system for several years until hard disk technology began to develop beyond the
limitations of this file system.
FAT under DOS and Windows supports a maximum partition size of 2 GB. Under Windows
NT, FAT supports partitions of up to 4 GB. Due to its 32-KB cluster size, FAT does not make
efficient use of hard disk space.
FAT16 provides no file or directory security permissions. Since the introduction of FAT32, FAT
is now commonly referred to as FAT16. The next section describes FAT32 in more detail.
FAT32
FAT32 shipped with Windows 95 OEM Release 2 (OSR2) and brought with it several advantages
over the previous file system. Unlike FAT, which uses a 16-bit file system and a total of 65,525
entries, FAT32 uses a 32-bit file system and supports billions of entries. The FAT32 file system
is no longer restricted to a 32-KB cluster size, uses a new default cluster size as small as 4 KB,
and supports partition sizes up to 2 terabytes (TB) in size.
FAT32 is more robust than the previous version of FAT. It can recover from a single point of
failure by including a backup copy of critical data structures.
Initially, FAT only allowed 8-character filenames and 3-character extensions, so the introduction
of Windows 95 and the ability to support 255-character filenames was of great benefit.
Currently, Windows 95 OEM Release 2 (OSR2), 98, Me, 2000, and XP are the only Microsoft
operating systems that can access FAT32 volumes. MS-DOS, the original version of Windows
95, and Windows NT4 cannot recognize a FAT32 partition.
Neither FAT16 nor FAT32 support proper file system security permissions. For example, you
cannot restrict access to a file or folder by user or group membership.
NTFS
NTFS was originally designed for Windows NT and supports file-level system security. Its
design goals were to provide not only reliability and recoverability but also added platform
functionality, POSIX (portable operating system interface for computing) support, and the
removal of previous file system limitations.
Recoverability is addressed through transaction logging against the file system so that in
the event of a failure, the file system can be rolled back to the last commit point to recover
consistency. Under NTFS, multiple copies of the master file table are stored. These attributes
CCIE.book Page 978 Monday, May 12, 2003 8:29 AM
make the file system ideal for use in file servers, high-end systems, and large disk volumes.
NTFS is capable of providing physical disk fault tolerance by the following three methods:
• Disk Mirroring (RAID-1) is configured with two mirrored disks connected to one
controller.
• Disk Duplexing (RAID-1) is configured with two mirrored disks connected to two
controllers.
• Disk Striping with Parity (RAID-5) is configured with at least 3 and no more than
32 NTFS-formatted disks, where data is striped across all disks along with parity
information. The parity stripe is used to reconstruct missing or bad data striped during
a read or write operation.
RAID-0 is supported under NTFS; however, RAID-0 provides no redundancy in the event of a
failure, when data would have to be restored from backup. Data is striped across at least 3 and
no more than 32 NTFS disks and provides increased disk performance.
NTFS supports platform and file-system security models based on local and network user
accounts and user groups. You can manipulate these security attributes using the standard
Windows Explorer interface.
POSIX is supported under NTFS. NTFS makes no distinction between uppercase and lowercase
filename characters; however, POSIX uses a full case-sensitive mode of operation. MS-DOS
and Win32 systems, on the other hand, use the case-insensitive mode operation under NTFS.
With NTFS, various limitations of the FAT16 and FAT32 file systems have been removed.
NTFS can support disk and volume sizes up to 16 exabytes (EB) of data. Like FAT32, NTFS
supports filenames of up to 255 characters, excluding any of the following:
/[];="\:|,*.
NTFS does not support removable media, such as floppy disks, due to the overhead that the file
system uses. As described earlier, file system encryption is now built into Windows 2000 and
XP in the form of EFS. Disk-editing tools that are available from third-party vendors can enable
you to read an NTFS volume without an access check. EFS addresses this issue by providing
file encryption.
Two versions of NTFS currently exist: NTFS4.0, which is native to Windows NT4, and
NTFS5.0, which is native to Windows 2000 and Windows XP.
NTFS Permissions
NTFS permissions together build an Access Control List (ACL) that dictates a user’s level of
access to a file, folder, or share. There are two categories of permissions, as follows:
• Standard—Standard permissions are preset and frequently used for files and folders.
• Special—Special permissions provide finer granularity to files and folders.
CCIE.book Page 979 Monday, May 12, 2003 8:29 AM
Folder permissions govern access to a folder and the files and subfolders within that fol-
der. Permissions can be assigned to a user or group of users. Table B-1 illustrates the folder
permissions that are available and the type of access that is granted to the user.
Table B-1 NTFS Folder Permissions
File permissions govern access to a file. Permissions can be assigned to a user or group of users.
Table B-2 illustrates the file permissions that are available and the type of access that is granted
to the user.
Table B-2 NTFS File Permissions
When dissimilar permissions are assigned between a folder and the files within it, the NTFS file
permissions override or take priority over the NTFS folder permissions. A user account that has
access to a file can access that file even though the parent folder does not state permission. For
example, if the folder had no list permission assigned for the user, a UNC format request would
be needed to open the file directly because the user would be unable to list it or see it.
CCIE.book Page 980 Monday, May 12, 2003 8:29 AM
Universal Naming Convention (UNC) is a method of locating a file or share over a network. A
UNC name specifies a shared folder and file that are accessible over a network as opposed to a
folder and file that are identified by a drive letter and path. For example, a UNC path to the file
index.html on a server called webserver would be \\webserver\index.html.
By default, NTFS permissions are inherited. Permissions that are assigned to a parent folder are
inherited by all files and subfolders within it. Consequently, by assigning permissions to a
subfolder within a parent folder, all subfolders and files within the new subfolder are inherited
from it.
Every file or folder has an owner, usually the initial creator. An owner has full control of the file
or folder and can assign other users permissions to it. However, a user who has the appropriate
permissions can take ownership of the file or folder.
Share-Level Security
NTFS permissions are assigned to folders and files, and they can be assigned to shares. Shared
drives and folders provide network access to files. In a similar way that folders and files are
assigned NTFS permissions, share permissions are assigned to govern what access a user can
receive to a specific share. Table B-3 illustrates the share permissions that are available and the
type of access that is granted to the user.
Table B-3 NTFS Share Permissions
Combined Security
You can assign multiple NTFS permissions to a user account directly or to a group that the user
is a member of. Note that NTFS permissions are cumulative. The effective user permissions are
a least-restrictive combination of the direct user permissions and any group permissions that the
user has inherited through group membership. For example, if a user is assigned Read access
to a specific file and a group that the user is a member of dictates that all users within the group
have Write permissions, the effective permission to the file is Read and Write.
In any instance, Deny or No Access overrides all other permissions. For example, if a user is a
member of two groups, one allowing full control to a folder and the other denying access to the
CCIE.book Page 981 Monday, May 12, 2003 8:29 AM
Summary 981
folder, the user is denied permission. Administrators are encouraged not to use this permission
and instead to simply not assign permission that would provide access to a folder or file.
When combining share permissions and NTFS permissions, the most restrictive applies.
The steps for determining effective NTFS permissions are as follows:
Step 1 Determine effective shared permissions by choosing the least restrictive of all
shared permissions. The exception is the Denied permission, which overrides
Allow.
Step 2 Determine effective NTFS permissions by choosing the least restrictive of all
shared permissions. The exception is the Denied permission, which overrides
Allow. Also, file permissions take precedence over folder permissions.
Step 3 Combine the results of Steps 1 and 2, and choose the most restrictive
permission out of share and NTFS. If there is no overlap, then no permissions
are effective.
Summary
This overview provides a basic introduction to Windows security and is not intended to answer
every security scenario that you might see. The guidelines for installing and securing the OS
and network services, applying patches, enabling auditing and logging, and using file systems
outline fundamental practices to use when administering a Windows networking environment.
Remember to access the Microsoft website to keep current on the latest hot fixes and patches.
CCIE.book Page 982 Monday, May 12, 2003 8:29 AM
APPENDIX C
ISDN Error Codes and Debugging
Reference
One of the most frustrating things you run into when working with ISDN is the error mes-
sages you receive upon a failure or during a debugging session. Unless you work with ISDN
on a daily basis, chances are these messages will seem like a foreign language to you. For-
tunately, you can memorize a few of these message codes to get you by in most situations
you will encounter; the only problem is deciding which ones to memorize. As you work
with ISDN more in your environment, you will gain an understanding of which of the
numerous codes you need to remember.
This appendix lists the most common ISDN switch types you will work with on Cisco
equipment, ISDN cause codes, cause values, bearer capability values, and progress
description field values that are valid within the debug commands available to you.
You use basic when configuring a BRI. You use primary when configuring a PRI.
CCIE.book Page 984 Monday, May 12, 2003 8:29 AM
Cause
Code Field Value Description
0x Indicates that the values that follow are in hexadecimal.
y1 8—ITU-T standard coding.
y2 0—User
1—Private network serving local user
2—Public network serving local user
3—Transit network
4—Public network serving remote user
5—Private network serving local user
6—International network
A—Network beyond internetworking point
z1 The class (the more-significant hexadecimal number) of the cause value. See Table C-3
for detailed information about possible values.
z2 The value (the less-significant hexadecimal number) of the cause value. See Table C-3
for detailed information about possible values.
a1 (Optional) A diagnostic field that is always 8.
a2 (Optional) A diagnostic field that is one of the following values:
0—Unknown
1—Permanent
2—Transient
to obtain your output, drop the highest bit of the cause value (for example, 0x90 becomes 0x10)
before consulting this table. (The notes referred to in the Diagnostics column appear after the
table.)
Table C-3 ISDN Cause Values
Decimal Hex
Value Value Cause Diagnostic Explanation
1 01 Unallocated Note 10 ISDN number is sent to the switch
(unassigned) in the correct format; however, the
number number is not assigned to any
destination equipment.
2 02 No route to Transit network ISDN exchange is asked to route
specified transit identity (Note 9) the call through an unrecognized
network intermediate network.
3 03 No route to Note 10 Call was routed through an inter-
destination mediate network that does not
serve the destination address.
6 06 Channel Service quality of the specified
unacceptable channel is insufficient to accept
the connection.
7 07 Call awarded and User is assigned an incoming call
being delivered in that is being connected to an
an established established call channel.
channel
16 10 Normal call clearing Note 10 Normal call clearing has occurred.
17 11 User busy Called system acknowledges the
connection request but is unable to
accept the call because all B
channels are in use.
18 12 No user responding Connection cannot be completed
because the destination does not
respond to the call.
19 13 No answer from Destination responds to the con-
user (user alerted) nection request but fails to com-
plete the connection within the
prescribed time. The problem is at
the remote end of the connection.
21 15 Call rejected Note 10—User- Destination can accept the call but
supplied diagnostic rejected the call for an unknown
(Note 4) reason.
continues
CCIE.book Page 986 Monday, May 12, 2003 8:29 AM
Decimal Hex
Value Value Cause Diagnostic Explanation
22 16 Number changed Note 10—User- ISDN number used to set up the
supplied diagnostic call is not assigned to any system.
(Note 4)
26 1A Nonselected user Destination can accept the call but
clearing rejected the call because it was not
assigned to the user.
27 1B Designation out of Destination cannot be reached
order because the interface is not func-
tioning correctly, and a signaling
message cannot be delivered. This
might be a temporary condition,
but it could last for an extended
period of time.
28 1C Invalid number Connection could not be estab-
format lished because the destination
address was presented in an
unrecognizable format or because
the destination address was
incomplete.
29 1D Facility rejected Facility identifica- Facility requested by the user
tion (Note 1) cannot be provided by the
network.
30 1E Response to Status message was generated in
STATUS ENQUIRY direct response to the prior receipt
of a status enquiry message.
31 1F Normal, unspecified Reports the occurrence of a
normal event when no standard
cause applies. No action is
required.
34 22 No circuit/channel Connection cannot be established
available because no appropriate channel is
available to take the call.
38 26 Network out of Destination cannot be reached
order because the network is not func-
tioning correctly, and the condi-
tion might last for an extended
period of time. An immediate
reconnect attempt will probably
be unsuccessful.
CCIE.book Page 987 Monday, May 12, 2003 8:29 AM
Decimal Hex
Value Value Cause Diagnostic Explanation
41 29 Temporary failure Facility identifica- Error occurred because the net-
tion (Note 1) work is not functioning correctly.
The problem will be resolved
shortly.
42 2A Switching equip- Destination cannot be reached
ment congestion because the network switching
equipment is temporarily
overloaded.
43 2B Access information Discarded informa- Network cannot provide the
discarded tion element identi- requested access information.
fier(s) (Note 5)
44 2C Requested circuit/ Remote equipment cannot provide
channel unavailable the requested channel for an
unknown reason. This might be a
temporary problem.
47 2F Resources unavail- Requested channel or service is
able, unspecified unavailable for an unknown
reason. This might be a temporary
problem.
49 31 Quality of service See Table C-2 Requested quality of service
unavailable cannot be provided by the
network. This might be a
subscription problem.
50 32 Requested facility Facility identifica- Remote equipment supports the
not subscribed tion (Note 1) requested supplementary service
by subscription only.
57 39 Bearer capability Note 3 User requested a bearer capability
not authorized that the network provides, but the
user is not authorized to use it.
This might be a subscription
problem.
58 3A Bearer capability Network normally provides the
presently requested bearer capability, but it
unavailable is unavailable at the present time.
This might be due to a temporary
network problem or a subscription
problem.
continues
CCIE.book Page 988 Monday, May 12, 2003 8:29 AM
Decimal Hex
Value Value Cause Diagnostic Explanation
63 3F Service or option Note 3 Network or remote equipment was
unavailable, unable to provide the requested
unspecified service option for an unspecified
reason. This might be a
subscription problem.
65 41 Bearer capability Network cannot provide the
not implemented bearer capability requested by
the user.
66 42 Channel type not Channel Type Network or the destination
implemented (Note 6) equipment does not support the
requested channel type.
69 45 Requested facility Facility Identifica- Remote equipment does not sup-
not implemented tion (Note 1) port the requested supplementary
service.
70 46 Only restricted Network is unable to provide
digital information unrestricted digital information
bearer capability is bearer capability.
available
79 4F Service or option Network or remote equipment is
not implemented, unable to provide the requested
unspecified service option for an unspecified
reason. This might be a subscrip-
tion problem.
81 51 Invalid call Remote equipment received a call
reference value with a call reference that is not
currently in use on the user-
network interface.
82 52 Identified channel Channel identity Receiving equipment is asked to
does not exist use a channel that is not activated
on the interface for calls.
83 53 A suspended call Network received a call resume
exists, but this call request. The call resume request
identity does not contained a Call Identify informa-
tion element that indicates that the
call identity is being used for a
suspended call.
CCIE.book Page 989 Monday, May 12, 2003 8:29 AM
Decimal Hex
Value Value Cause Diagnostic Explanation
84 54 Call identity in use Channel identity Network received a call resume
request. The call resume request
contained a Call Identify informa-
tion element that indicates that it
is in use for a suspended call.
85 55 No call suspended Network received a call resume
request when there was not a
suspended call pending. This
might be a transient error that will
be resolved by successive call
retries.
86 56 Call having the Clearing cause Network received a call resume
requested call iden- request. The call resume request
tity has been cleared contained a Call Identity informa-
tion element, which once indi-
cated a suspended call. However,
the suspended call was cleared
either by timeout or by the remote
user.
88 58 Incompatible Incompatible Indicates that an attempt was
destination parameter (Note 2) made to connect to non-ISDN
equipment.
91 5B Invalid transit ISDN exchange was asked to route
network selection the call through an unrecognized
intermediate network.
95 5F Invalid message, Invalid message was received, and
unspecified no standard cause applies. This is
usually because of a D-channel
error. If this error occurs systemat-
ically, report it to your ISDN ser-
vice provider.
96 60 Mandatory informa- Information ele- Receiving equipment received a
tion element is ment identifier(s) message that did not include one
missing (Note 5) of the mandatory information
elements. This is usually due to
a D-channel error. If this error
occurs systematically, report it to
your ISDN service provider.
continues
CCIE.book Page 990 Monday, May 12, 2003 8:29 AM
Decimal Hex
Value Value Cause Diagnostic Explanation
97 61 Message type Message type Receiving equipment received an
nonexistent or not unrecognized message, either
implemented because the message type was
invalid or because the message
type was valid but not supported.
The cause is either a problem with
the remote configuration or a
problem with the local D channel.
98 62 Message not com- Remote equipment received an
patible with call invalid message, and no standard
state, or message cause applies. The cause is a D-
type nonexistent or channel error. If this error occurs
not implemented systematically, report it to your
ISDN service provider.
99 63 Information element Information ele- Remote equipment received a
nonexistent or not ment identifier(s) message that includes informa-
implemented (Notes 5, 7) tion elements, which were not rec-
ognized. This is usually because
of a D-channel error. If this error
occurs systematically, report it to
your ISDN service provider.
100 64 Invalid information Information ele- Remote equipment received a
element contents ment identifier(s) message that includes invalid
(Note 5) information in the information
element. This is usually because
of a D-channel error.
101 65 Message not Message type Remote equipment received an
compatible with call unexpected message that does not
state correspond to the current state of
the connection. This is usually
because of a D-channel error.
102 66 Recovery on timer Timer number Error-handling (recovery) proce-
expires (Note 8) dure was initiated by a timer expi-
ration. This is usually a temporary
problem.
CCIE.book Page 991 Monday, May 12, 2003 8:29 AM
Decimal Hex
Value Value Cause Diagnostic Explanation
111 6F Protocol error, Timer number Unspecified D-channel error when
unspecified (Note 8) no other standard cause applies.
127 7F Internetworking, Event occurred, but the network
unspecified does not provide causes for the
action it takes. The precise
problem is unknown.
Capability
Value Field Value Description
0x Indicates that the values that follow are in hexadecimal
88 ITU-T coding standard; unrestricted digital information
90 Circuit mode, 64 kbps
21 Layer 1, V.110/X.30
8F Synchronous, no in-band negotiation, 56 kbps
Decimal
Bits Number Description
0000001 1 Call is not end-to-end ISDN; further call progress information may be
available in-band
0000010 2 Destination address is non-ISDN
0000011 3 Origination address is non-ISDN
0000100 4 Call has returned to the ISDN
0001000 8 In-band information or appropriate pattern now available
0001010 10 Delay in response at destination interface
All other values you might see in the Progress Description field are reserved.
Summary
After browsing the tables in this appendix, you should see why you might not want to memorize
every error you might receive. Although all these values are commonly referred to as errors,
some of them you will see in the normal operation of an ISDN call, such as the normal call
clearing message. Only time and experience can help you figure out which of these values are
the most important, because each environment has its own unique characteristics.
CCIE.book Page 993 Monday, May 12, 2003 8:29 AM
CCIE.book Page 994 Monday, May 12, 2003 8:29 AM
APPENDIX D
Password Recovery on Cisco IOS,
CatalystOS, and PIX
Although it is not a topic you like to think about, at one time or another in your career you
will need to perform password recovery on some type of Cisco device. This appendix gives
you an overview of the various methods you can use to recover a forgotten password. These
methods include changing configuration register variables and replacing the software with
a password-recovery version, as some devices require.
Bit
Number Hex Meaning
00–03 0x0000–0x000F Boot field
06 0x0040 Ignore NVM contents
07 0x0080 Original equipment manufacturer (OEM) bit enabled
08 0x0100 Break disabled
10 0x0400 IP broadcast with all 0s
11–12 0x0800–0x1000 Console line speed
13 0x2000 Boot default ROM software if network boot fails
14 0x4000 IP broadcasts do not have network numbers
15 0x8000 Enable diagnostic messages and NVM contents
CCIE.book Page 996 Monday, May 12, 2003 8:29 AM
Boot
Field Meaning
00 Stays at the system bootstrap prompt (ROM monitor) on a reload of the power cycle
01 Boots the first system image in onboard flash
02–F Specifies a default netboot filename
Enables boot system commands that override the default netboot filename
A boot filename is formed as part of the automatic configuration process. The boot filename
starts with “cisco” and links the octal equivalent of the boot field number, a dash, and the
processor-type name. Table D-3 lists the default boot filenames or actions for the processor.
Remember that if you define a boot system command in your router’s configuration, it
overrides the default netboot filename selected in the configuration register.
Table D-3 Default Boot Filenames
processor represents the processor family. For instance, on IGS-based platforms, this is igs. On RSP-based
platforms, this is RSP.
CCIE.book Page 997 Monday, May 12, 2003 8:29 AM
You can use bit 8 to control the console Break key. By setting bit 8, you cause the processor to
ignore the console Break key. By clearing bit 8, you force the processor to interpret a break as
a command to force the system into the bootstrap monitor, halting normal operation. You can
send a break within the first 60 seconds of a system reboot, regardless of the configuration
settings.
You can use bit 10 to control the host portion of the Internet broadcast address. By setting bit
10, you cause the processor to use all 0s for broadcasts; clearing bit 10 causes the processor to
use all 1s for broadcasts. Bit 10 works in conjunction with bit 14, which you can use to control
the network and subnet portions of the broadcast address. Table D-4 illustrates the combined
effect of bits 10 and 14.
Table D-4 Configuration Register Settings for Broadcast Address Destination
You can use bit 13 to determine the response to a bootload failure. By setting bit 13, you cause
the server to load the operating software from ROM after five unsuccessful attempts to load a
boot file from the network. By clearing bit 13, you cause the server to continue attempting to
load a boot file from the network indefinitely.
You can use bits 11 and 12 to determine the baud rate of the console terminal. Table D-5 shows
the bit settings you can use for the four available baud rates.
Table D-5 System Console Terminal Baud Rate Settings
Key Combination
Software Platform Operating System or Procedure
Hyperterminal IBM-compatible Windows 2000 Ctrl-Break
Hyperterminal IBM-compatible Windows 95 Ctrl-F6-Break
(version 595160)
Kermit Sun workstation UNIX Ctrl-\l
Ctrl-\b
MicroPhone Pro IBM-compatible Windows Ctrl-Break
Minicom IBM-compatible Linux Ctrl-a f
ProComm Plus IBM-compatible DOS or Windows Alt-b
Telix IBM-compatible DOS Ctrl-End
Telnet to Cisco IBM-compatible — Ctrl-]
Teraterm IBM-compatible Windows Alt-b
Terminal IBM-compatible Windows Break
Ctrl-Break
Tip Sun workstation UNIX Ctrl-], then Break or Ctrl-c
~#
VT 100 Emulation Data general — F16
Windows NT IBM-compatible Windows Break-F5
Shift-F5
Shift-6
Shift-4
Shift-b (^$B)
Z-TERMINAL Macintosh Apple Command-b
— Break-Out Box — Connect pin 2 (X-mit) to +V for
half a second
— Cisco to aux port — Ctrl-Shift-6, then b
— IBM-compatible — Ctrl-Break
CCIE.book Page 999 Monday, May 12, 2003 8:29 AM
Step 5 Enter the confreg 0x2142 command at the rommon prompt to tell the device
to boot from Flash while ignoring the configuration stored in nonvolatile
random-access memory (NVRAM).
Step 6 Reset the device by entering the reset command at the rommon prompt to
reboot your router while ignoring its saved configuration.
Step 7 Enter no after each setup question, or press Ctrl-c to skip the initial setup
procedure if desired. Be aware that if you decide to run through the initial
setup procedure and write the new configuration to NVRAM, you will lose
your other configuration.
Step 8 Enter the enable command at the Router> prompt to change to privileged
EXEC mode with the Router# prompt.
Step 9 Enter the configure memory or copy startup-config running-config
command to copy your existing configuration stored in NVRAM into
memory.
Step 10 Enter the write terminal or show running-config command to show your
router’s configuration. In this configuration, you should note which interfaces
need to be brought back up because they are all in the shutdown state. You
can also see the currently configured passwords in either an encrypted or
unencrypted format. If your passwords are stored in their unencrypted
form, you can reuse them. If your passwords are stored in their encrypted
format, the password encryption algorithm used determines if you can
recover them. If the encrypted password is preceded by the number 7, you
can use a utility such as GetPass to recover the original password. If the
encrypted password is preceded by the number 5, you might need to reset
it if a utility such as tomas cannot recover it.
Step 11 If you must reset your password, enter the configure terminal command to
make the change. You should now have a prompt similar to the following:
hostname(config)#
Step 12 Enter the appropriate command, such as enable secret password, to change
the password.
Step 13 If you have not already done so, enter the configure terminal command to
enter configuration mode to bring all required interfaces back up. Enter the
appropriate command, such as interface ethernet0/0, to enter interface
configuration mode. Enter the no shutdown command for every interface
you want to activate. You can verify the state of your interfaces by issuing the
show ip interface brief command after exiting configuration mode. Every
interface you want to use should have an “up up” status.
CCIE.book Page 1001 Monday, May 12, 2003 8:29 AM
Step 14 Enter the config-register 0x2102 command or the value you recorded
previously.
Step 15 Press Ctrl-z or End to leave configuration mode. Your prompt should now be
as follows:
hostname#
Step 2 Power-cycle your device and press Ctrl-c within 5 seconds to prevent your
device from autobooting. This places the device in ROM Monitor mode.
Step 3 Enter the confreg command at the prompt, and do the following to initiate
password recovery:
Enter y when you see the following prompt:
do you wish to change the configuration? y/n [n]:
Enter y after you verify the output and see the following prompt:
do you wish to save this configuration? y/n [n]:
Step 4 Enter reset to cause the module to reboot and ignore its saved configuration
as you instructed.
Step 5 After you press the Enter key, you can use the configure memory or copy
startup-config running-config command to copy the saved configuration
into memory from NVRAM.
Step 6 Use the show ip interface brief command to verify that all the interfaces you
are using are in the “up up” state.
CCIE.book Page 1002 Monday, May 12, 2003 8:29 AM
Step 7 Issue the write terminal or show running-config command to display your
saved configuration for the module.
Step 8 Reset your passwords by entering configuration mode using the configure
terminal command. If you used the enable secret command to set your
password, you must issue the no enable secret command before you can set
a new password.
Step 9 Change your configuration register value back to 0x2102 using the config-
register command. Use the config-register command at the config prompt to
change and verify the configuration register value.
Step 10 Issue the write mem command to save your new passwords to NVRAM.
Step 2 Power-cycle your router by using the power switch to turn it off and then
back on.
Step 3 Press the Break key sequence within 60 seconds of the power-up to put your
router into ROMMON.
Step 4 Record the current value stored in the configuration register by entering o at
the > prompt.
Step 5 Change the value stored in the configuration register by entering o/r 0x2142
at the > prompt to boot from Flash without loading the configuration.
Step 6 Enter i at the > prompt to reboot your router while ignoring its stored
configuration.
Step 7 Enter no after each setup question, or press Ctrl-c to skip the initial setup
procedure if desired. Be aware that if you decide to run through the initial
setup procedure and write the new configuration to NVRAM, you lose your
other configuration.
Step 8 Enter enable at the Router> prompt to enter privileged EXEC mode. Your
prompt changes to the Router# prompt.
Step 9 Enter the write terminal or show running-config command to show your
router’s configuration. In this configuration, you should note which interfaces
will need to be brought back up, because they will all be in shutdown state.
You can also see the currently configured passwords in an encrypted or
CCIE.book Page 1003 Monday, May 12, 2003 8:29 AM
Step 11 Enter the appropriate command, such as enable secret password, to change
the password.
Step 12 If you have not done so already, enter the configure terminal command to
enter configuration mode and bring all required interfaces back up. Enter the
appropriate command, such as interface ethernet0/0, to enter interface
configuration mode. Enter the no shutdown command for every interface
you want to activate. You can verify the state of your interfaces by issuing the
show ip interface brief command after exiting configuration mode. Every
interface you want to use should have an “up up” status.
Step 13 Enter the config-register 0x2102 command or the value you recorded
previously.
Step 14 Press Ctrl-z or End to leave configuration mode. Your prompt should now be
as follows:
hostname#
Step 3 Before reconnecting the power cord, hold down the mode button, located on
the left side of your switch’s front panel. Do not release the mode button until
a second or two after the LED above port 1x is no longer illuminated. The
following appears on your terminal:
The system has been interrupted prior to initializing the flash file system.
The following commands initialize the Flash file system and finish loading
the operating system software:
flash_init
load_helper
boot
Step 4 Enter the following commands to finish initializing your device:
flash_init
load_helper
Step 5 Enter the dir flash: command; do not forget the : (colon symbol). The switch
displays the contents of the file system on your terminal.
Step 6 Enter the rename flash:config.text flash:config.old command to rename the
configuration file that contains the password definitions for your device.
Step 7 Enter the boot command to boot your system.
Step 8 Answer no by entering n when you are prompted to start the Setup program.
Step 9 If you want to enter a new configuration for your ATM module, or you just
completed Steps 5 through 8, you must download your original ATM image
using the download command from the Catalyst 5000 supervisor module.
Step 10 When you see the “module online” message, you may use the session
command to gain access to your ATM module.
Step 11 Use the enable command to gain access to privileged EXEC mode. You are
not prompted for a password.
30 seconds after the device completes the initialization, giving you this amount of time to
complete the password-recovery procedure. Follow these steps to accomplish this method of
password recovery:
Step 1 Attach a terminal or a PC with terminal emulation to the switch’s console
port.
Step 2 Power-cycle your switch by turning it off and then back on.
Step 3 Press Enter when you are prompted for your password to enter a null
password. You might have to wait a few minutes after your reset before you
see the first password prompt.
Step 4 Enter privileged EXEC mode by entering the enable command at the prompt.
Step 5 Press Enter when you are prompted for the enable password to enter a null
password.
Step 6 You can now change your passwords by using the set password and set
enablepass commands.
Step 2 Locate pins JP17 and short across them. These pins are located to the right of
the LEDs and to the left of the Reset button.
Step 3 After you short the pins, reboot your switch. Your switch initializes to a boot
prompt.
CCIE.book Page 1007 Monday, May 12, 2003 8:29 AM
Step 4 When you reach the boot prompt, you can use the ifconfig command to define
an IP address and download Network Management Processor (NMP) and
Data Movement Processor (DMP) software to your device.
If these steps do not accomplish password recovery, your hardware is probably defective.
Step 3 Select the Modify Jumper Configuration menu by choosing option 2. You are
not required to press Enter when selecting from this menu.
Choosing this option displays information for the current jumper
configuration and asks if you want to change it.
Step 4 Continue to answer n to all questions until you see the following line:
DMON jumper .................Disabled. Want to change (y/n/q/e/d)?
Step 8 Again reset the module from the supervisor. The module displays the
DMON> prompt, indicating that it is in debug monitor mode.
Step 9 Enter the debug monitor mwl command (multiple write of long words).
Step 10 You need to enter information for the start address, count, and data. This
information should be entered as follows to erase the configuration stored in
NVRAM:
Start Addr? 20000000
Count? 0006ffff
Data? Ffffffff
Do not exceed the 6ffff count. You can enter q to exit the mwl command at
any time.
CCIE.book Page 1008 Monday, May 12, 2003 8:29 AM
Choosing this option again displays information for the current jumper
configuration and asks if you want to change it.
Step 14 Continue to answer n to all questions until you see the following line:
DMON jumper .................Disabled. Want to change (y/n/q/e/d)?
Step 3 Turn off your workstation and wait 10 seconds before turning it back on.
Step 4 Your system boots from the boot disk. After it runs through some
configuration, it displays the Configuration Assistant screen.
Step 5 Press the F3 key to initiate a partial scan of your system for boot devices. A
list of these devices is displayed when the scan is complete.
CCIE.book Page 1009 Monday, May 12, 2003 8:29 AM
Step 6 Make sure your CD-ROM device appears in the list of devices, and press the
F2 key to continue.
Step 7 Select the CD-ROM drive from the list of possible boot devices that appears.
Step 9 Press the F2 key to boot your system from the CD-ROM.
Step 10 Choose option 2, Jumpstart install selection, when prompted. Your system
continues its boot process.
Step 11 Select the appropriate language when prompted on the next two screens.
Step 12 Press Ctrl-c to stop the installation script and to gain access to a prompt when
the Solaris Installation screen appears.
Step 13 Enter mount -F ufs /dev/dsk/c0t0d0s0 /mnt at the prompt to mount the /
partition with a mount point of /mnt.
Step 14 Enter cd /mnt/etc to change the working directory to the newly created
mount point.
Step 15 You are now ready to remove the root password, but first you must set your
shell environment so that you can read data correctly. Enter the following at
the prompt to complete this step:
TERM=ansi
export TERM
Step 16 You can now edit the shadow file to remove the root password by entering
vi shadow at the prompt. The entry you will modify should look similar to
the following:
root:gNyqp8ohdfxPI:10598::::::
Step 18 Enter :wq! to commit your changes to disk and to quit your editing session
of the file.
Step 19 Remove your disk and CD-ROM from the appropriate drives.
Step 22 Because this account no longer has a password, press Enter when prompted
for a password.
Step 23 You can now use the passwd command from a terminal prompt to set a new
password for the root account.
CCIE.book Page 1010 Monday, May 12, 2003 8:29 AM
Step 5 Eject the disk, and press the Reset button again to reboot the PIX when you
see the following message:
Erasing Flash Password. Please eject diskette and reboot.
The default Telnet password returns to “cisco” when this process is complete.
You no longer have a default enable password.
Step 7 Run the passwd and enable password commands to place new passwords on
your PIX. Save your new configuration by issuing the write memory
command.
CCIE.book Page 1011 Monday, May 12, 2003 8:29 AM
Step 10 During loading of the password-recovery file, you see messages asking if you
want to erase the passwords and, if used, the aaa authentication commands
for Telnet and console access. Answer y to the appropriate prompts.
The default Telnet password after this process is complete returns to “cisco.”
You no longer have an enable password.
Step 11 Use the passwd and enable password commands to place new passwords on
your PIX. Save your new configuration by issuing the write memory
command.
Step 3 Press the Spacebar for 10 to 15 seconds to generate a signal similar to the
Break sequence.
Step 4 Disconnect your terminal or PC with terminal emulation and reconnect it
with a 9600 baud rate. You should now be in ROM Monitor mode.
Summary
By using the steps outlined in this appendix, you should be able to recover the password with
any Cisco device you will be likely to encounter in your job as a network security administrator.
Some of these procedures work across multiple devices, and others are designed for a specific
device. Experiment with them until you discover the technique that works best for you.
CCIE.book Page 1015 Monday, May 12, 2003 8:29 AM
CCIE.book Page 1016 Monday, May 12, 2003 8:29 AM
CCIE.book Page 1017 Monday, May 12, 2003 8:29 AM
APPENDIX E
Security-Related RFCs and
Publications
This appendix provides a list of security-related RFCs and publications that you can use as
background reading for your Security CCIE lab exam preparation.
• 3206, “The SYS and AUTH POP Response Codes,” R. Gellens, February 2002.
• 3185, “Reuse of CMS Content Encryption Keys,” S. Farrell and S. Turner, October 2001.
• 3183, “Domain Security Services Using S/MIME,” T. Dean and W. Ottaway, October
2001.
• 3168, “The Addition of Explicit Congestion Notification (ECN) to IP.” K. Ramakrishnan,
S. Floyd, and D. Black, September 2001.
• 3163, “ISO/IEC 9798-3 Authentication SASL Mechanism,” R. Zuccherato and M.
Nystrom, August 2001.
• 3161, “Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP),” C. Adams,
P. Cain, D. Pinkas, and R. Zuccherato, August 2001.
• 3156, “MIME Security with OpenPGP,” M. Elkins, D. Del Torto, R. Levien, and T.
Roessler, August 2001. (Updates RFC 2015.)
• 3128, “Protection Against a Variant of the Tiny Fragment Attack (RFC 1858),” I. Miller,
June 2001. (Updates RFC 1858.)
• 3127, “Authentication, Authorization, and Accounting: Protocol Evaluation,” D. Mitton,
M. St. Johns, S. Barkley, D. Nelson, B. Patil, M. Stevens, and B. Wolff, June 2001.
• 3118, “Authentication for DHCP Messages,” R. Droms and W. Arbaugh, Eds., June 2001.
• 3114, “Implementing Company Classification Policy with the S/MIME Security Label.”
W. Nicolls, May 2002.
• 3112, “LDAP Authentication Password Schema,” K. Zeilenga, May 2001.
• 3097, “RSVP Cryptographic Authentication—Updated Message Type Value,” R. Braden
and L. Zhang, April 2001. (Updates RFC 2747.)
• 3090, “DNS Security Extension Clarification on Zone Status,” E. Lewis, March 2001.
(Updates RFC 2535.)
• 3083, “Baseline Privacy Interface Management Information Base for DOCSIS Compliant
Cable Modems and Cable Modem Termination Systems,” R. Woundy, March 2001.
• 3079, “Deriving Keys for Use with Microsoft Point-to-Point Encryption (MPPE),” G.
Zorn, March 2001.
• 3078, “Microsoft Point-To-Point Encryption (MPPE) Protocol,” G. Pall and G. Zorn,
March 2001.
• 3062, “LDAP Password Modify Extended Operation,” K. Zeilenga, February 2001.
• 3058, “Use of the IDEA Encryption Algorithm in CMS,” S. Teiwes, P. Hartmann, and D.
Kuenzi, February 2001.
CCIE.book Page 1019 Monday, May 12, 2003 8:29 AM
Publications
Many publications are available on the topic of network security. Some of these are relevant to
the CCIE Security exam and some are not. A good understanding of the theory is required to
become accomplished with hands-on configuration, and every CCIE candidate should have a
well-established book collection.
Cisco has compiled a list of books that are relevant to the CCIE Security exam. This list can be
found at the following website:
www.cisco.com/en/US/learning/le3/le2/le23/le476/learning_certification_type_home.html
These books include the following:
• Applied Cryptography: Protocols, Algorithms, and Source Code in C, 2nd ed., Bruce
Schneier, Wiley & Sons, October 1995.
• Big Book of IPsec RFCs: Internet Security Architecture, compiled by Peter Loshin,
Morgan Kaufmann, November 1999.
• Building Cisco Remote Access Networks, Catherine Paquet, Ed., Cisco Press, August
1999.
• Cisco Internetwork Troubleshooting, Laura Chappell and Dan Farkas, Eds., CCIE No.
3800, Cisco Press, August 1999.
• Cisco IOS Dial Solutions, Cisco Press, August 2001.
• Cisco IOS Network Security, Cisco Press, August 2001.
• Cisco Secure Internet Security Solutions, Andrew Mason and Mark Newcomb, Cisco
Press, May 2001.
• Cisco Secure Virtual Private Networks, Andrew Mason, Cisco Press, December 2001.
• Designing Network Security, Merike Kaeo, Cisco Press, May 1999.
• Digital Certificates: Applied Internet Security, Jalal Feghhi and Peter Williams, Addison
Wesley, September 1998.
• Enhanced IP Services for Cisco Networks, Donald Lee, Cisco Press, September 1999.
CCIE.book Page 1027 Monday, May 12, 2003 8:29 AM
• Firewalls and Internet Security: Repelling the Wily Hacker, William Cheswick and Steven
M. Bellovin, Addison-Wesley, Professional Computing, April 1994.
• Inside Internet Security: What Hackers Don’t Want You to Know, Jeff Crume, Addison-
Wesley, August 2000.
• Internet Cryptography, Richard E. Smith, Addison Wesley, July 1997.
• Internet Security Protocols: Protecting IP Traffic, Uyless Black, Prentice Hall, July 2000.
• Internetworking Troubleshooting Handbook, Cisco Press, February 2001.
• IPSec: The New Security Standard for the Internet, Intranets, and Virtual Private
Networks, Naganand Doraswamy and Dan Harkins, Prentice Hall, July 1999.
• Maximum Security: A Hacker’s Guide to Protecting Your Internet Site and Network,
Anonymous, Sams Publishing, December 2002.
• MPLS and VPN Architectures, Ivan Pepelnjak and Jim Guichard, Cisco Press,
October 2000.
• Network Security: Private Communication in a Public World, Charlie Kaufman, Radia
Perlman, and Mike Speciner, Prentice Hall, April 2002.
• Top-Down Network Design, Priscilla Oppenheimer, Cisco Press, December 1998.
White Papers
In addition to the previous list of publications, Cisco has identified four key white papers that
you should read and understand for the CCIE Security exam. These white papers, listed as
follows, are available at Cisco.com:
• Characterizing and Tracing Packet Floods Using Cisco Routers:
www.cisco.com/warp/public/707/22.html
• Defining Strategies to Protect Against UDP Diagnostic Port Denial of Service Attacks:
www.cisco.com/warp/public/707/3.html
• Strategies to Protect Against Distributed Denial of Service:
www.cisco.com/warp/public/707/newsflash.html
• Strategies to Protect Against TCP SYN Denial of Service Attacks:
www.cisco.com/en/US/tech/tk648/tk364/
technologies_tech_note09186a00800f67d5.shtml
You can also find numerous security-related documents at the following Cisco Security
Technical Tips web page:
www.cisco.com/en/US/support/index.html
CCIE.book Page 1028 Monday, May 12, 2003 8:29 AM
CCIE.book Page 1029 Monday, May 12, 2003 8:29 AM
APPENDIX F
Answer: VTP manages the addition, deletion, and renaming of VLANs from a
centralized location.
2 How are nonroutable protocols affected by VLANs?
Answer: The native VLAN, the one configured on the port, does not need a tag
because it is assumed that any packet received on it is for the configured VLAN.
6 Why would you use PAgP?
Answer: A routed port is a physical port that acts like a port on a router without
requiring you to have a router.
CCIE.book Page 1030 Monday, May 12, 2003 8:29 AM
Answer: A designated port is an elected forwarding port that is logically closer to the
root switch.
9 What can prevent an alternate or root port from becoming the designated port after a
unidirectional link failure?
Answer: The Loop Guard feature provides this protection.
10 What can prevent packets with an unknown destination MAC address from being flooded
to every port on a switch?
Answer: Port blocking can provide this protection for unicast and multicast packets.
Chapter 5
1 What kind of technology is Frame Relay?
Answer: Frame Relay is a packet-switched technology.
2 Describe the difference between SVCs and PVCs.
Answer: An SVC (switched virtual circuit) is created for each data transfer and is
terminated when the data transfer is complete. SVCs have a setup and teardown
time associated with them. A PVC (permanent virtual circuit) is a permanent
network connection that does not terminate when the transfer of data is complete.
Previously not widely supported by Frame Relay equipment, SVCs are gaining in
popularity in many of today's networks.
3 What is the data-link connection identifier (DLCI)?
Answer: The DLCI is a value that is assigned to each virtual circuit and DTE device
connection point in the Frame Relay WAN. Two different connections can be
assigned the same value within the same Frame Relay WAN—one on each side of the
virtual connection—but two virtual circuits cannot share the same DLCI on a local
host.
4 Describe how LMI Frame Relay differs from basic Frame Relay.
Chapter 7 1031
Chapter 6
1 Which protocol series does ISDN use to communicate from the local terminal equipment
to the ISDN switch in the central office?
Answer: E series, I series, Q series
2 True or false: The S reference point is an interface between NT1 and NT2.
Answer: False
3 What is an ISDN switch type?
Answer: True
5 What is the correct command syntax for assigning interesting traffic to an interface?
Answer: dialer-group
6 OSPF demand circuit is designed to stifle what?
A. Hellos
B. Routing updates
C. LSAs
D. All of the above
Answer: A, C
7 True or false: PAP encapsulation is more secure than CHAP.
Answer: False
Chapter 7
1 How many bits are used for VPI at UNI?
Answer: 8
2 What form of addressing does a PVC use?
Answer: ILMI
5 Is specifying an AAL5SNAP encapsulation type a mandatory configuration step in the
RFC 2684 configuration using PVCs?
Answer: No
Chapter 8
1 Manual summarization is supported in which version of RIP?
Answer: RIPv2
2 How long is the invalid timer's default period, in seconds?
Answer: 180
3 What is the correct syntax for creating an authentication key?
Chapter 9
1 What algorithm does EIGRP use to decide which route is put into the routing table?
Answer: EIGRP uses bandwidth and delay as the default metrics in its calculations.
It does not, by default, use MTU, load, or reliability. This means that EIGRP uses a
calculation of 256(bandwidth × delay) in calculating its metric.
CCIE.book Page 1033 Monday, May 12, 2003 8:29 AM
Chapter 10 1033
Answer: If you use the same autonomous system when defining both IGRP and
EIGRP, automatic redistribution is enabled.
6 What is a passive route in EIGRP?
Answer: A passive route is one that is in the “ideal” state. EIGRP computations are
completed, and the route is placed in the routing table.
7 What is the default hello interval for a low-speed T1 circuit?
Answer: 60 seconds
8 When using authentication with EIGRP, what is protected, and how is it protected?
Answer: MD5 is used to sign a routing update so that a receiving EIGRP router can
confirm that the packet came from another MD5-configured router. This helps
protect your router from receiving unsigned routing updates.
9 Are GRE tunnels point-to-point or point-to-multipoint?
Answer: Point-to-point
Chapter 10
1 Why are loopback interfaces advertised as /32 in OSPF?
Answer: Intra-area routes, inter-area routes, external routes Type 1, and external
routes Type 2
3 Why do I receive the “cannot allocate router id” error message?
Answer: OSPF chooses the highest IP address as its router ID. If none of your
interfaces are in the up/up mode and configured with an IP address, OSPF returns
this error message. Using a loopback interface prevents this error.
4 Why do I receive the “unknown routing protocol” error message?
Answer: This message is most frequently caused by your selection of Cisco IOS
Software that does not support OSPF.
CCIE.book Page 1034 Monday, May 12, 2003 8:29 AM
5 What do the states DR, BDR, and DROTHER mean in the show ip ospf interface
command output?
Answer: DR means designated router, BDR indicates backup designated router, and
DROTHER means a router that is neither the DR nor the BDR.
6 Which router is responsible for generating the network LSA?
Answer: The DR generates a network LSA, which is used to list all routers on that
network.
7 Why do neighbors show a state of 2-WAY/DROTHER when issuing the show ip ospf
neighbor command?
Answer: To reduce the amount of flooding on broadcast media, such as Ethernet,
FDDI, and Token Ring, the router gets a full status with only DR and BDR, and it
shows 2-WAY for all other routers.
8 Why is it difficult to identify the DR or BDR on a serial link?
Answer: Implementation for this scenario is easier if you use the dialer map
command with the broadcast keyword. To prevent the circuit from being established
only for routing-related traffic, you can also configure the circuit as a demand circuit.
Chapter 11
1 What is IS-IS?
Answer: The IS-IS routing protocol is a link-state routing protocol from the OSI
protocol suite.
2 What is Dual IS-IS?
Answer: Dual IS-IS, also known as Integrated IS-IS, allows you to carry IP routing
information as well as CLNS information. Dual IS-IS can be implemented using both
or just IP.
3 What is the difference between a NET and an NSAP?
Answer: The NSAP is the full address of a system (IS or ES) in CLNS and determines
the area address in IP-only IS-IS. The NSAP with the N-selector set to 0 is the NET.
CCIE.book Page 1035 Monday, May 12, 2003 8:29 AM
Chapter 12 1035
Answer: By issuing the show clns is-neighbor command, you can determine the PSN
by examining the circuit ID field. The ID in front of the dot is the PSN.
8 How many Level-2 IS-IS areas can I configure on a single router?
Chapter 12
1 What are the applications of a route map in BGP?
Answer: MD5 authentication in BGP can be used to protect against spoofing, denial-
of-service attacks, and man-in-the-middle attacks. When MD5 is implemented, the
BGP peer knows that information it received is from the correct source and was not
altered in transit.
3 Why is the maximum-prefix command needed?
Answer: Networks that aren't meant to be seen on the Internet can be assigned an
autonomous system number from the reserved range of 64512 to 65535 and are
considered private. Therefore, they should never be seen outside the customer's
realm. Private autonomous system filtering prevents private autonomous system
information from being propagated to the service provider and beyond.
5 Where do you use the next-hop-self command?
Chapter 13
1 What metric is used by RIP?
Answer: The hop count is the metric of choice for the RIP routing protocol.
2 Which routing protocols can redistribute static routes automatically without any
additional configuration?
Answer: Both RIP and IGRP routing protocols can automatically redistribute static
routes.
CCIE.book Page 1037 Monday, May 12, 2003 8:29 AM
Chapter 14 1037
3 What happens if you do not include a match statement with a route map?
Answer: If you do not define a match criteria, everything passing through the route
map matches.
4 Which RFC is written to cover redistribution between OSPF and BGP?
Answer: RFC 1403 covers the topic of redistribution of routes between OSPF and
BGP.
5 Why do you need to filter routes when redistributing between two EIGRP autonomous
systems?
Answer: You can create a routing loop if the same routes are allowed back into the
routing table for routes that originated from this autonomous system.
Chapter 14
1 What are the three ways to ensure security in your network environment?
Answer: Integrity ensures that some type of control must exist to ensure that
business-critical items are accurate and in a workable condition. Confidentiality
ensures that access restrictions are enforced so that only authorized personal are
allowed to see or use sensitive items. Availability ensures that services are available
when needed.
2 What two security protocols provide data authentication?
Answer: The three types of VPNs supported by Cisco devices are remote-access,
intranet, and extranet.
4 What three types of security server protocols are currently supported by Cisco devices?
Answer: The three types of security server protocols currently supported by Cisco
devices are Remote Authentication Dial-In User Service (RADIUS), Terminal Access
Controller Access Control Server (TACACS+), and Kerberos.
5 What product is the same as an electronic ID?
Answer: The three types of attacks an IDS is designed to protect against are access,
denial of service, and reconnaissance.
CCIE.book Page 1038 Monday, May 12, 2003 8:29 AM
7 What two types of traffic analysis procedures are available on Cisco's IDS products?
Answer: Profile-based and signature-based are the two types of traffic analysis
procedures available on Cisco's IDS products.
8 Why would a company need a risk assessment?
Chapter 15
1 What is the NTP standard time zone?
Answer: UTC
2 What is the secure alternative to Telnet?
Answer: SSH
3 Which command(s) protect(s) the privileged EXEC mode on a router?
Chapter 16
1 What feature allows you to provide access control on a network device that determines
what traffic is permitted to enter or exit your network?
Answer: This feature is the Access Control List (ACL).
CCIE.book Page 1039 Monday, May 12, 2003 8:29 AM
Chapter 17 1039
Answer: This switch bridges the packet, then routes the packet internally, applies IP
ACLs, and then bridges the packet again to send it to its destination.
3 How are entries in an ACL processed?
Answer: When a device starts evaluating the ACE entries in an ACL, the device tests
the packet against each ACE in the order in which you entered it.
4 What type of ACL is used to control traffic entering a Layer 2 interface?
Answer: Typically, you use the source address, the destination address, or the upper-
layer protocol of a packet to define your matching criteria.
8 When you use a VLAN map with a router ACL and one of your packet flows matches a
deny statement of a VLAN, what happens to the packet flow?
Answer: The packet is denied, regardless of the configuration of your router ACL.
9 What is the function of a VLAN map?
Chapter 17
1 Why would you use NAT to connect to the Internet?
Answer: NAT provides you with a way to translate illegal or private addresses to a
legal, routable address for connecting to an external network.
CCIE.book Page 1040 Monday, May 12, 2003 8:29 AM
Answer: With Path MTU Discovery, a device can discover the smallest MTU that is
supported along a transmission path to avoid the fragmentation associated with
sending a packet that is larger than the smallest MTU.
4 Where would the ICMP redirect message provide the most use?
Answer: You can use ICMP redirect in situations where multiple exit points exist to
inform an originating device of a shorter path to the nearest exit. It can also be useful
when a device has a misconfigured IP protocol stack.
5 Is it possible to use a single IP address for NAT translations?
Answer: By using the overload feature, you can use a single IP address to translate
multiple addresses.
6 What four terms are used to describe addresses that are used with NAT?
Answer: The four terms are inside local address, inside global address, outside local
address, and outside global address.
7 What is CEF?
Answer: The MultiNode Load Balancing (MNLB) Forwarding Agent is the Cisco
IOS Software–based packet redirector component that works in conjunction with a
LocalDirector for load balancing.
9 Why would you use the Express TCP Header Compression feature?
Answer: You can use the Express TCP Header Compression feature to reduce
network overhead and speed transmission of TCP packets.
10 What are the three states of HSRP?
Chapter 18 1041
Chapter 18
1 What port does Cisco's implementation of TACACS use?
Answer: RADIUS can be implemented over port 1812 TCP/UDP and port 1813 TCP/
UDP for accounting. The Cisco specification for RADIUS uses UDP only. In some
implementations, RADIUS can also be deployed over port 1645.
3 Which group of ISAKMP is used by VPN Client 3.x?
Answer: False. When compared with TACACS+, RADIUS is less secure, because it
encrypts only the user password. The rest of the packet is transmitted in clear text—
including username, authorized services, and accounting information.
6 Name at least three of the available authentication methods.
7 What do you need to do to enable the PIX Shell (pixshell) option for the Group Setup?
Answer: If the PIX Shell (pixshell) checkbox does not appear on your Group Settings
screen, click the Interface Configuration button on the left side of the screen. On the
Interface Configuration screen under the TACACS+ Services category, select the
PIX Shell (pixshell) checkbox for User, Group, or both.
8 What is the syntax for configuring a Telnet password on the PIX Firewall?
Chapter 19
1 What is the main difference between an access list on a Cisco IOS router and an access
list on a PIX firewall?
Answer: The main difference between PIX and IOS ACLs is that the PIX ACL uses
the network mask, and the IOS router uses a wildcard mask in the ACL.
2 What command creates an RSA key pair on a PIX Firewall with a 1024-bit key length?
Chapter 20 1043
5 What command on the PIX displays the IKE configuration within the router but does not
display the default policy settings?
Answer: The command that does this is show isakmp. The show isakmp command
displays the ISAKMP configuration that has been entered. The show isakmp policy
command displays all the configured ISAKMP policies.
6 What command on the PIX bypasses conduits and access lists for IPSec connections but
still checks the traffic against the ASA to maintain security?
Answer: sysopt connection permit-ipsec
7 What encryption and authentication are the defaults for ISAKMP policies?
Answer: The default encryption in an ISAKMP policy is DES, and the default
authentication in an ISAKMP policy is SHA.
Chapter 20
1 Name two issues arising from conventional IPSec configuration.
Answer: IPSec does not allow routing protocol updates to be routed through the
IPSec tunnel, because IPSec doesn't encrypt IP multicast/broadcast packets.
Each time a new network needs to be added to the list of IPSec participants, a new
access list must be defined for user traffic encryption.
The hub router's configuration can become enormous.
Changing public IP hosts' addresses because of DHCP utilization by a service
provider
Occasional requirement for a full-mesh configuration
2 What mechanism is used to accomplish DMVPN?
Answer: mGRE/NHRP
3 How can you implement dynamic routing protocols over IPSec protected links?
Chapter 21
1 What is the PPP session termination point called in L2TP terminology?
Answer: False
5 Which PPP authentication protocol(s) does PIX Firewall's implementation of PPTP
support?
Answer: PAP, CHAP, MS-CHAP
Chapter 22
1 The Cisco IOS Firewall feature set is built around the concept of preventing what?
Answer: The Cisco IOS Firewall feature set is built around the concept of preventing
unauthorized access to your protected network resources.
2 When an attacker opens a large number of half-open TCP connections, this is what type
of attack?
Answer: This is a DoS attack, designed to deny legitimate users access to your
resources.
CCIE.book Page 1045 Monday, May 12, 2003 8:29 AM
Chapter 23 1045
Answer: Yes. CBAC monitors commands sent across the defined SMTP port.
8 Which Cisco IOS Firewall feature allows you to run CBAC-supported applications across
nonstandard ports?
Answer: Port-to-Application Mapping (PAM) can be used to map applications to
nonstandard ports.
Chapter 23
1 What is the translational slot on the PIX Firewall called?
Answer: Syslog messages can be sent to the console, an SNMP management station,
or a remote syslog server.
CCIE.book Page 1046 Monday, May 12, 2003 8:29 AM
5 The IP address of the inside interface does not need to belong to the same subnet as the
pool of its DHCP addresses. True or false?
Answer: False
6 How many entries must an access list have to become turbo-compiled?
Chapter 24
1 By default, when IDS on Cisco IOS software is enabled, are all the default signatures
enabled or disabled?
Answer: By default, they are all enabled.
2 True or false: Implementing IDS on a Cisco PIX Firewall affects the firewall's throughput
performance.
Answer: True
3 What command disables the ICMP Echo Reply signature, ID = 2000?
Chapter 25 1047
10 What command displays the global configuration settings for IDS on the router?
Chapter 25
1 Name two features offered by CAR.
5 Which Layer 2 protocol parameters can be specified with Layer 2 protocol tunneling?
INDEX
configuring 1053
1054 configuring
cryptography 1055
1056 D channel
implementing 1059
services 1067
xlates 1071
W-X-Y-Z
WANs
connections, configuring on EIGRP 254–255
Frame Relay
configuring 102–122
congestion control mechanisms 96–101
error checking 99
Free vLab Offer!
Element K's history in delivering sound instructional training is one reason we were
®
awarded the status of Cisco Learning Solutions Partner. The other reason is our
award-winning technology—vLab. vLab Technology gives students the ability to
connect directly with live Cisco devices, not simulations, so they apply what they
have learned in a real-world environment. The vLab experience is the same as a real
production network, without any of the risk of practicing on one.
http://go.elementk.com/ciscopress
The author of this book would like to commend Hello Computers for providing
assistance, and access to live gear to the CCIE Security candidates during the CCIE
Security boot camp training.