Network Working Group H. Chen
Internet-Draft China Telecom
Intended status: Best Current Practice D. Ma
Expires: April 28, 2020 ZDNS
Y. Gu
S. Zhuang
H. Wang
Huawei
October 26, 2019

Enhanced AS-Loop Detection for BGP
draft-chen-grow-enhanced-as-loop-detection-02

Abstract

This document proposes to enhance AS-Loop Detection for BGP Inbound/Outbound Route Processing. It is an enhancement to the current BGP's Inbound/Outbound processing and can be implemented directly on the device. This could empower networks to quickly and accurately figure out they're being victimized.

Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on April 28, 2020.

Copyright Notice

Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.


Table of Contents

1. Introduction

The Border Gateway Protocol (BGP), as an inter-Autonomous (AS) routing protocol, is used to exchange network reachability information between BGP systems. BGP is widely used by Internet Service Providers (ISPs) and large organizations.

BGP is used to exchange reachable inter-AS routes, establish inter-AS paths, avoid routing loops, and apply routing policies between ASs. BGP loop detection mechanism is defined in section 9.1.2. of RFC4271:

In ordinary BGP, every AS announces its route information with different prefixes. However, its neighboring ASes cannot validate this route information, but rather directly propagate it across the Internet or simply discard AS-Loop routes directly. Obviously, this weak trust model allows forged route announcement propagations and rarely been found, which is a fundamental security weakness of BGP. Forged routes, which can be generated by configuration errors or malicious attacks, can cause large-scale network connectivity problems.

Some cases can be worse, hackers exploit this property of BGP to achieve their ulterior motives. They can add some providers' AS number into the forged AS-Path and attempt to make it look like the route had passed through these ASNs, or perhaps they are there to prevent those providers from carrying the route.

For example, the cases shown in Figure 1.

After receiving the above routes, AS64596 treats them as normal loop routes during the loop detecting phase and discards them directly. In most NOSes (Network Operation Systems), such rejected routes are not logged and only visible by putting the router into debugging mode. If the AS64596 is slightly enhanced, it can find that someone has faked himself, which may cause unnecessary trouble for himself.

     AS-Loop-Detecting at this point
     Discard AS-Loop Routes directly that contains AS64596
                 |
                 | 
                 v                                 x.y.z.0/24 Origin AS 64600
AS64595---AS64596---AS64597---AS64598---AS64599----AS64600
                    Normal Case:
                    <-- x.y.z.0/24, AS-Path: 64597 64598 64599 64600
                      
                    Forged Case 1:
                    <-- x.y.z.0/24, AS-Path: 64597 64596
                                        (Or: 64597 64598 64596 etc.)
                    
                    Forged Case 2:
                    <-- x.y.z.0/24, AS-Path: 64597 64596 64600
                                        (Or: 64597 64596 64599 64600 etc.)

    Figure 1: BGP Inbound Route Processing

Split-Horizon for EBGP is an optional function that a BGP sender will not advertise any routes that were previously received from that same AS. In some current implementation, the BGP outbound route processing step will simply discard the route if AS-Loop being detected.

For example, the cases shown in Figure 1.

When sending the above routes, AS64597 treats them as normal loop routes and discards them directly. If AS64597 is slightly enhanced, it can find that someone has faked AS64596, which may cause large-scale network connectivity problems.

     Split-Horizon Enable & AS-Loop-Detecting at this point
     Discard AS-Loop Routes directly if sending AS-Path contains AS64596
                   |
                   | 
                   v                               x.y.z.0/24 Origin AS 64600
AS64595---AS64596---AS64597---AS64598---AS64599----AS64600
                    Normal Case:
                    <-- x.y.z.0/24, AS-Path: 64597 64598 64599 64600
                      
                    Forged Case 1:
                    <-- x.y.z.0/24, AS-Path: 64597 64596
                                            (Or: 64597 64598 64596 etc.)
                    
                    Forged Case 2:
                    <-- x.y.z.0/24, AS-Path: 64597 64596 64600
                                        (Or: 64597 64596 64599 64600 etc.)

    Figure 2: BGP Outbound Route Processing

Above cases are also being known As-Path Poisoning Attacks.

ASPA [I-D.ietf-sidrops-aspa-verification] can be used to verify the AS_PATH attribute of routes advertised in the Border Gateway Protocol, and it is a systematic deployment based on RPKI system. This mechanism requires a series of infrastructure implementations.

This document proposes to enhance AS-Loop Detection for BGP Inbound/Outbound Route Processing. It is an enhancement to the current BGP's Inbound/Outbound processing and can be implemented directly on the device. This could empower networks to quickly and accurately figure out they're being victimized.

2. Terminology

The following terminology is used in this document.

AS: Autonomous System

BGP: Border Gateway Protocol

BGP hijacking : is the illegitimate takeover of groups of IP addresses by corrupting Internet routing tables maintained using the Border Gateway Protocol (BGP). (Sometimes referred to as prefix hijacking, route hijacking or IP hijacking)

EBGP: External BGP

ISP: Internet Service Provider

3. Enhanced AS-Loop Detection for BGP Inbound Route Processing

This section proposes to enhance AS Loop Detection for BGP Inbound Route Processing.

As shown in Figure 3, when receiving the routes from AS64597, AS64596 should check whether its own AS number is already in the AS-Path, If yes, it further analyzes the location of the AS Number 64596 in the received AS_Path:

Case 1: AS 64596 is listed as Origin AS in the AS-Path

Lookup the local resource database (Such as ROA Cache) and determine whether the route is originated from the AS 64596.

Case 2: AS 64596 is listed as transit AS in the AS-Path

For example, AS-Path looks like the following form AS64596's perspective:

(possible other ASes), left AS, local AS(64596), right AS, (possible other ASes)

At this point, AS 64596 can lookup the local resource database and check whether there is a real AS relationship between the local AS and the left AS and the right AS. (From the perspective of the local AS, it can manage/hold the AS-relationship database between the local AS and each of its neighboring ASs (such as C2P, P2P, P2C, etc.).)

     Enhanced AS-Loop-Detecting at this point                            
     To identify the attack/forged information                                     
                 |                                                           
                 |                                                           
                 v                                 x.y.z.0/24 Origin AS 64600
AS64595---AS64596---AS64597---AS64598---AS64599----AS64600                     
                    Normal Case:                                            
                    <-- x.y.z.0/24, AS-Path: 64597 64598 64599 64600                 
                                                                         
                    Forged Case 1:                                          
                    <-- x.y.z.0/24, AS-Path: 64596 64595                         
                                        (Or: 64597 64598 64596 etc.)                   
                                                                         
                    Forged Case 2:                                          
                    <-- x.y.z.0/24, AS-Path: 64597 64596 64600                     
                                        (Or: 64597 64596 64599 64600 etc.)    
           
   Figure 3: Enhance for BGP Inbound Route Processing

The local AS 64596 inputs the detected result to the route hijacking management module, or/and records the log or/and the alarm information, and the maintenance team of the local AS 64596 can notify the maintenance team of the relevant AS to correct the error in their networks .

After the above steps are added, the stability and security of the network can be improved.

4. Enhanced AS-Loop Detection for BGP Outbound Route Processing

This section proposes to enhance AS Loop Detection for BGP Outbound Route Processing.

 
    If Split-Horizon Enable, Enhanced AS-Loop-Detecting at this point                        
    To identify the attack/forged information                                    
                   |                                                        
                   |                                                        
                   v                               x.y.z.0/24 Origin AS 64600
AS64595---AS64596---AS64597---AS64598---AS64599----AS64600                    
                    Normal Case:                                           
                    <-- x.y.z.0/24, AS-Path: 300 64598 64599 64600                
                                                                        
                    Forged Case 1:                                         
                    <-- x.y.z.0/24, AS-Path: 64597 64596                        
                                        (Or: 64597 64598 64596 etc.)                  
                                                                         
                    Forged Case 2:                                         
                    <-- x.y.z.0/24, AS-Path: 64597 64596 64600                    
                                        (Or: 64597 64596 64599 64600 etc.)              
 
    Figure 4: Enhance for BGP Outbound Route Processing

As shown in Figure 4, when sending the routes from AS64597 to AS64596, AS64597 will check whether the AS number 64596 is already in the AS-Path, If yes, it can further analyzes the location of the AS64596 in the received AS_Path:

The remaining processing steps are the same as the previous section.

5. Benefits

After the enhancements of the AS Loop Detection for BGP Inbound/Outbound Route Processing are added, the stability and security of the network can be improved.

6. Acknowledgements

The authors would like to acknowledge the review and inputs from Gang Yan, Zhenbin Li, Aijun Wang, Jeff Haas, Robert Raszuk, Alexander Asimov, Ruediger Volk and the working group.

7. IANA Considerations

This document includes no request to IANA.

8. Security Considerations

This document does not change the underlying security issues in the BGP protocol. It however, does provide an additional mechanism to protect against attacks based on the forged AS-Path in the BGP routes.

9. Normative References

[I-D.ietf-sidrops-aspa-verification] Azimov, A., Bogomazov, E., Patel, K. and J. Snijders, "Verification of AS_PATH Using the Resource Certificate Public Key Infrastructure and Autonomous System Provider Authorization", Internet-Draft draft-ietf-sidrops-aspa-verification-01, July 2019.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997.
[RFC4271] Rekhter, Y., Li, T. and S. Hares, "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 10.17487/RFC4271, January 2006.
[RFC4760] Bates, T., Chandra, R., Katz, D. and Y. Rekhter, "Multiprotocol Extensions for BGP-4", RFC 4760, DOI 10.17487/RFC4760, January 2007.
[RFC7854] Scudder, J., Fernando, R. and S. Stuart, "BGP Monitoring Protocol (BMP)", RFC 7854, DOI 10.17487/RFC7854, June 2016.

Authors' Addresses

Huanan Chen China Telecom 109, West Zhongshan Road, Tianhe District Guangzhou, 510000 China EMail: chenhn8.gd@chinatelecom.cn
Di Ma ZDNS 4 South 4th St. Zhongguancun Beijing, Haidian China EMail: madi@zdns.cn
Yunan Gu Huawei Huawei Bld., No.156 Beiqing Rd. Beijing, 100095 China EMail: guyunan@huawei.com
Shunwan Zhuang Huawei Huawei Bld., No.156 Beiqing Rd. Beijing, 100095 China EMail: zhuangshunwan@huawei.com
Haibo Wang Huawei Huawei Bld., No.156 Beiqing Rd. Beijing, 100095 China EMail: rainsword.wang@huawei.com