Table of Contents
Introduction xxi
Chapter 1 Inter-Domain Routing Concepts 1
Early Inter-Domain Routing: The Exterior Gateway Protocol (EGP) 1
Origins of EGP 2
Operation of EGP 3
EGP Topology Issues 3
EGP Functions 5
Neighbor Acquisition Protocol 6
Neighbor Reachability Protocol 8
Network Reachability Protocol 10
Shortcomings of EGP 15
The Advent of BGP 16
BGP Basics 17
Autonomous System Types 21
External and Internal BGP 22
Multihoming 29
Transit AS Multihoming 30
Stub AS Multihoming 31
Multihoming and Routing Policies 36
Multihoming Issues: Load Sharing and Load Balancing 36
Multihoming Issues: Traffic Control 37
Multihoming Issues: Provider-Assigned Addressing 40
Classless Inter-Domain Routing 41
A Summarization Summary 41
Classless Routing 43
Summarization: The Good, the Bad, and the Asymmetric 47
CIDR: Reducing Class B Address Space Depletion 50
CIDR: Reducing Routing Table Explosion 50
Managing and Assigning IPv4 Address Blocks 54
CIDR Issues: Multihoming and Provider-Assigned Addresses 56
CIDR Issues: Address Portability 58
CIDR Issues: Provider-Independent Addresses 59
CIDR Issues: Traffic Engineering 60
CIDR Approaches Its Limits 62
IPv6 Comes of Age 66
Routing Table Explosion, Again 66
Looking Ahead 68
Review Questions 69
Chapter 2 Introduction to BGP 71
Who Needs BGP? 71
Connecting to Untrusted Domains 71
Connecting to Multiple External Neighbors 74
Setting Routing Policy 79
BGP Hazards 82
Operation of BGP 84
BGP Message Types 85
Open Message 85
Keepalive Message 86
Update Message 86
Notification Message 87
BGP Finite State Machine 87
Idle State 88
Connect State 89
Active State 89
OpenSent State 89
OpenConfirm State 90
Established State 90
Path Attributes 90
ORIGIN Attribute 92
AS_PATH Attribute 92
NEXT_HOP Attribute 97
Weight 100
BGP Decision Process 100
BGP Message Formats 103
Open Message 104
Update Message 105
Keepalive Message 108
Notification Message 108
Configuring and Troubleshooting BGP Peering 110
Case Study: EBGP Peering 110
Case Study: EBGP Peering over IPv6 114
Case Study: IBGP Peering 118
Case Study: Connected Check and EBGP Multihop 127
Case Study: Managing and Securing BGP Connections 136
Looking Ahead 142
Review Questions 143
Configuration Exercises 144
Troubleshooting Exercises 145
Chapter 3 BGP and NLRI 155
Configuring and Troubleshooting NLRI in BGP 155
Injecting Prefixes with the network Statement 156
Using the network mask Statement 160
Injecting Prefixes with Redistribution 162
NLRI and IBGP 167
Managing Prefixes in an IBGP Topology 168
IBGP and IGP Synchronization 179
Advertising BGP NLRI into the Local AS 182
Redistributing BGP NLRI into the IGP 182
Case Study: Distributing NLRI in a Stub AS with IBGP 184
Distributing NLRI in a Stub AS with Static Routes 193
Advertising a Default Route to a Neighboring AS 196
Advertising Aggregate Routes with BGP 198
Case Study: Aggregation Using Static Routes 199
Aggregation Using the aggregate-address Statement 201
ATOMIC_AGGREGATE and AGGREGATOR Attributes 207
Using AS_SET with Aggregates 210
Looking Ahead 218
Review Questions 218
Configuration Exercises 219
Troubleshooting Exercises 223
Chapter 4 BGP and Routing Policies 237
Policy and the BGP Database 238
IOS BGP Implementation 249
InQ and OutQ 249
IOS BGP Processes 251
NHT, Event, and the Open Processes 256
Table Versions 258
Managing Policy Changes 267
Clearing BGP Sessions 268
Soft Reconfiguraton 269
Route Refresh 274
Route Filtering Techniques 279
Filtering Routes by NLRI 280
Case Study: Using Distribute Lists 280
Route Filtering with Extended ACLs 292
Case Study: Using Prefix Lists 293
Filtering Routes by AS_PATH 304
Regular Expressions 304
Literals and Metacharacters 305
Delineation: Matching the Start and End of Lines 306
Bracketing: Matching a Set of Characters 306
Negating: Matching Everything Except a Set of Characters 306
Wildcard: Matching Any Single Character 307
Alternation: Matching One of a Set of Characters 307
Optional Characters: Matching a Character That May or May Not Be There 307
Repetition: Matching a Number of Repeating Characters 307
Boundaries: Delineating Literals 308
Putting It All Together: A Complex Example 308
Case Study: Using AS-Path Filters 309
Case Study: Setting Policy with Route Maps 314
Filter Processing 322
Influencing the BGP Decision Process 323
Case Study: Administrative Weights 325
Case Study: Using the LOCAL_PREF Attribute 334
Case Study: Using the MULTI_EXIT_DISC Attribute 343
Case Study: Prepending the AS_PATH 366
Case Study: Administrative Distances and Backdoor Routes 372
Controlling Complex Route Maps 379
Continue Clauses 380
Policy Lists 383
Looking Ahead 386
Review Questions 386
Configuration Exercises 388
Troubleshooting Exercises 392
Chapter 5 Scaling BGP 401
Scaling the Configuration 402
Peer Groups 403
Peer Templates 413
Session Templates 414
Policy Templates 419
Communities 425
Well-Known Communities 426
Arbitrary Communities 434
Using the AA:NN Format 443
Expanded Community Lists 445
Adding and Deleting Communities 460
Extended Community Lists 472
Scaling BGP Functions 478
Route Flap Dampening 479
Outbound Route Filters (ORF) 486
Next-Hop Tracking 496
Fast External Fallover 509
Bidirectional Forwarding Detection (BFD) 512
BGP Prefix Independent Convergence (PIC) 523
ADD-PATHS Capability 528
Graceful Restart 538
Maximum Prefixes 540
Tuning BGP CPU 552
Tuning BGP Memory 556
BGP Transport Optimization 563
Optimizing TCP 563
Optimizing BGP Update Generation 568
Optimizing TCP ACK Message Receipt 568
Scaling the BGP Network 569
Private AS Numbers 569
4-Byte AS Numbers 574
IBGP and the N-Squared Problem 575
Confederations 576
Route Reflectors 592
Looking Ahead 606
Review Questions 607
Configuration Exercises 608
Troubleshooting Exercises 612
Chapter 6 Multiprotocol BGP 615
Multiprotocol Extensions to BGP 616
MBGP Support for the IPv6 Address Family 618
Configuring MBGP for IPv6 619
IPv4 and IPv6 Prefixes over an IPv4 TCP Session 620
Upgrading IPv4 BGP Configurations to the Address Family Format 629
IPv4 and IPv6 over an IPv6 TCP Connection 631
Dual Stack MBGP Connection 642
Multihop Dual Stack MBGP Connection 647
Mixed IPv4 and IPv6 Sessions 650
Multiprotocol IBGP 654
Case Study: Multiprotocol Policy Configuration 666
Looking Ahead 705
Review Questions 705
Configuration Exercises 706
Question 1: 707
Troubleshooting Exercises 709
Chapter 7 Introduction to IP Multicast Routing 713
Requirements for IP Multicast 716
IPv4 Multicast Addresses 717
IPv6 Multicast Addresses 721
Group Membership Concepts 724
Joining and Leaving a Group 726
Join Latency 726
Leave Latency 727
Group Maintenance 728
Multiple Routers on a Network 728
Internet Group Management Protocol (IGMP) 729
IGMPv2 Host Functions 730
IGMPv2 Router Functions 731
IGMPv1 733
IGMPv3 735
IGMP Message Format 736
Multicast Listener Discovery (MLD) 742
IGMP/MLD Snooping 745
Cisco Group Management Protocol (CGMP) 749
Multicast Routing Issues 753
Multicast Forwarding 754
Multicast Routing 756
Sparse Versus Dense Topologies 757
Implicit Joins Versus Explicit Joins 758
Source-Based Trees Versus Shared Trees 760
Source-Specific Multicast (SSM) 761
Multicast Scoping 763
TTL Scoping 763
Administrative Scoping 765
Looking Ahead 766
Recommended Reading 766
Review Questions 766
Configuration Exercises 768
Chapter 8 Protocol Independent Multicast 771
Introduction to Protocol Independent Multicast (PIM) 771
Operation of Protocol Independent Multicast-Dense Mode (PIM-DM) 773
PIM-DM Basics 773
Prune Overrides 779
Unicast Route Changes 782
PIM-DM Designated Routers 782
PIM Forwarder Election 782
Operation of Protocol Independent Multicast-Sparse Mode (PIM-SM) 785
PIM-SM Basics 786
Finding the Rendezvous Point 787
Bootstrap Protocol 787
Auto-RP Protocol 789
Embedded RP Addresses 790
PIM-SM and Shared Trees 793
Source Registration 796
PIM-SM and Shortest Path Trees 803
PIMv2 Message Formats 808
PIMv2 Message Header Format 809
PIMv2 Hello Message Format 810
PIMv2 Register Message Format 811
PIMv2 Register Stop Message Format 812
PIMv2 Join/Prune Message Format 812
PIMv2 Bootstrap Message Format 814
PIMv2 Assert Message Format 815
PIMv2 Graft Message Format 816
PIMv2 Graft-Ack Message Format 816
Candidate-RP-Advertisement Message Format 817
Configuring IP Multicast Routing 817
Case Study: Configuring Protocol Independent Multicast-Dense Mode (PIM-DM) 819
Configuring Protocol Independent Multicast-Sparse Mode (PIM-SM) 828
Case Study: Statically Configuring the RP 829
Case Study: Configuring Auto-RP 837
Case Study: Configuring Sparse-Dense Mode 845
Case Study: Configuring the Bootstrap Protocol 849
Case Study: Multicast Load Sharing 856
Troubleshooting IP Multicast Routing 863
Using mrinfo 865
Using mtrace and mstat 867
Looking Ahead 872
Recommended Reading 872
Review Questions 873
Configuration Exercises 873
Troubleshooting Exercises 876
Chapter 9 Scaling IP Multicast Routing 881
Multicast Scoping 881
Case Study: Multicasting Across Non-Multicast Domains 885
Connecting to DVMRP Networks 888
Inter-AS Multicasting 891
Multiprotocol Extensions for BGP (MBGP) 894
Operation of Multicast Source Discovery Protocol (MSDP) 896
MSDP Message Formats 898
Source Active TLV 898
Source Active Request TLV 899
Source Active Response TLV 900
Keepalive TLV 900
Notification TLV 900
Case Study: Configuring MBGP 902
Case Study: Configuring MSDP 908
Case Study: MSDP Mesh Groups 913
Case Study: Anycast RP 917
Case Study: MSDP Default Peers 923
Looking Ahead 926
Review Questions 926
Configuration Exercise 927
Chapter 10 IPv4 to IPv4 Network Address Translation (NAT44) 931
Operation of NAT44 932
Basic NAT Concepts 932
NAT and IP Address Conservation 934
NAT and ISP Migration 937
NAT and Multihomed Autonomous Systems 938
Port Address Translation (PAT) 940
NAT and TCP Load Distribution 942
NAT and Virtual Servers 944
NAT Issues 944
Header Checksums 945
Fragmentation 945
Encryption 945
Security 946
Protocol-Specific Issues 946
ICMP 947
DNS 948
FTP 951
SMTP 953
SNMP 953
Routing Protocols 953
Traceroute 953
Configuring NAT44 955
Case Study: Static NAT 955
NAT44 and DNS 962
Case Study: Dynamic NAT 964
Case Study: A Network Merger 969
Case Study: ISP Multihoming with NAT 975
Port Address Translation 980
Case Study: TCP Load Balancing 982
Case Study: Service Distribution 984
Troubleshooting NAT44 986
Looking Ahead 988
Review Questions 989
Configuration Exercises 989
Troubleshooting Exercises 991
Chapter 11 IPv6 to IPv4 Network Address Translation (NAT64) 995
Stateless IP/ICMP Translation (SIIT) 997
IPv4/IPv6 Header Translation 999
ICMP/ICMPv6 Translation 1002
Fragmentation and PMTU 1005
Upper-Layer Header Translation 1006
Network Address Translation with Port Translation (NAT-PT) 1007
Operation of NAT-PT 1008
Configuring NAT-PT 1010
Why Is NAT-PT Obsolete? 1029
Stateless NAT64 1031
Operation of Stateless NAT64 1031
Configuration of Stateless NAT64 1036
Limitations of NAT64 1038
Stateful NAT64 1038
Operation of Stateful NAT64 1038
Configuration of Stateful NAT64 1041
Limitations of Stateful NAT64 1043
Looking Ahead 1043
Review Questions 1044
Configuration Exercise 1044
Configuration Exercise Premise 1045
Appendix A Answers to Review Questions 1047
Appendix B (online) Answers to Configuration Exercises
Appendix C (online) Answers to Troubleshooting Exercises
9781587054709 TOC 8/4/2016