@@ -5,7 +5,7 @@ docname: draft-wirtgen-bgp-tls-latest
55category : exp
66
77submissiontype : IETF # also: "independent", "editorial", "IAB", or "IRTF"
8- number :
8+ number : 03
99date :
1010consensus : true
1111v : 3
@@ -22,12 +22,12 @@ venue:
2222 type : " Working Group"
23232424 arch : " https://mailarchive.ietf.org/arch/browse/idr/"
25- github : " obonaventure /draft-bgp-tls"
25+ github : " IPNetworkingLab /draft-bgp-tls"
2626
2727author :
2828 -
2929 name : Thomas Wirtgen
30- organization : UCLouvain & WELRI
30+ organization : UCLouvain
31313232 -
3333 name : Olivier Bonaventure
@@ -64,9 +64,24 @@ informative:
6464 RFC5082 :
6565 RFC8446 :
6666 RFC9000 :
67-
68-
69-
67+ BGPOST : DOI.10.1145/3696406
68+ SURVEY : http://hdl.handle.net/2078.1/292356
69+ title : Survey on the Configuration of BGP routers
70+ author :
71+ -
72+ ins : T. Wirtgen
73+ name : Thomas Wirtgen
74+ date : 2024
75+ seriesinfo : Technical report, http://hdl.handle.net/2078.1/292356
76+ IPCERT :
77+ title : We've Issued Our First IP Address Certificate
78+ author :
79+ -
80+ ins : A. Gable
81+ name : Aaron Gable
82+ date : 2025
83+ seriesinfo : Blog https://letsencrypt.org/2025/07/01/issuing-our-first-ip-address-certificate/
84+
7085--- abstract
7186
7287This document specifies the utilization of TCP/TLS to support BGP.
@@ -75,33 +90,36 @@ This document specifies the utilization of TCP/TLS to support BGP.
7590
7691# Introduction
7792
78-
7993The Border Gateway Protocol (BGP) {{RFC4271}} relies on the TCP protocol
80- to establish BGP sessions between routers. A recent draft
81- {{I-D.draft-retana-idr-bgp-quic}} has proposed to replace TCP with
94+ to establish BGP sessions between routers. There are ongoing discussions
95+ within the IETF {{I-D.draft-retana-idr-bgp-quic}} to replace TCP with
8296the QUIC protocol {{RFC9000}}. QUIC brings many features compared to
8397TCP including security, the support of multiple streams or datagrams.
8498
8599From a security viewpoint, an important benefit of QUIC compared to TCP is
86100that QUIC by design prevents injection attacks that are possible when
87101TCP is used by BGP {{RFC4272}}. Several techniques can be used by BGP routers
88102to counter this attacks {{RFC5082}} {{RFC5925}}. TCP-AO {{RFC5925}}
89- authenticates the packets exchanged over a BGP session provides similar
90- features as QUIC. However, it is notoriously difficult to configure the
91- keys used to protect BGP sessions.
103+ authenticates the packets exchanged over a BGP session and provides similar
104+ features as QUIC. However, it a recent survey {{SURVEY}} indicates that it remains
105+ less used than TCP over MD5 {{RFC2385}}.
92106
93107The widespread deployment of TLS {{RFC8446}} combined with the possibility of
94108deriving TCP-AO keys from the TLS handshake {{I-D.draft-piraux-tcp-ao-tls}}
95- creates an interest in using TLS to secure BGP sessions. This document
96- describes how BGP can operate over TCP/TLS.
109+ creates an interest in using TLS to secure BGP sessions. While TLS is mainly
110+ used to interact with servers that have a certificate bound to a domain name,
111+ it is also possible to use TLS certificates bound to IP addresses {{IPCERT}}.
112+ Such certificates are very useful to use BGP over TLS/TCP.
97113
114+ This document
115+ describes how BGP can operate over TCP/TLS. Experience in implementing BGP
116+ over TLS/TCP {{BGPOST}} shows that this is less costly than porting a BGP implementation
117+ over QUIC.
98118
99119# Conventions and Definitions
100120
101121{::boilerplate bcp14-tagged}
102122
103-
104-
105123This document uses network byte order (that is, big endian) values.
106124Fields are placed starting from the high-order bits of each byte.
107125
@@ -123,33 +141,30 @@ Once the TLS handshake is established and finished, the BGP session is
123141initiated as defined in {{RFC4271}} and the protocol operates in the
124142same way as a classic BGP over TCP session. The difference is that the
125143BGP session is now encrypted and authenticated using the TLS layer.
126- As in {{I-D.draft-retana-idr-bgp-quic}}, the TLS authentication parameters used for this connection
127- are out of the scope of this draft.
128-
144+ As in {{I-D.draft-retana-idr-bgp-quic}}, the TLS authentication
145+ parameters used for this connection are out of the scope of this draft.
129146
130147# Security Considerations
131148
132- This document improves the security of BGP sessions since the information exchanged over the
133- session is now protected by using TLS.
149+ This document improves the security of BGP sessions since the information
150+ exchanged over the session is now protected by using TLS.
134151
135152If TLS encounters a payload injection attack, it will generate an alert that immediately
136153closes the TLS session. The BGP router SHOULD then attempt to reestablish the session.
137154However, this will cause traffic to be interrupted during the connection re-establishement.
138155
139-
140156If both BGP peer supports TCP-AO, the TLS stack is protected against payload injection and
141157this attack can be avoided. When enabled, TCP-AO counters TCP injection
142158attacks listed in {{RFC5082}}.
143159
144160Furthermore, if the BGP router supports TCP-AO, we recommend an opportunistic
145161TCP-AO approach as suggested in {{I-D.draft-piraux-tcp-ao-tls}}. The
146162router will attempt to connect using TCP-AO with a default key. When the TLS
147- handshake is finished, the routers will derive a new TCP-AO key using the TLS key.
163+ handshake is finished, the routers will securely derive a new TCP-AO key from the TLS key.
148164
149165TCP-MD5 {{RFC2385}} MAY be used to protect the TLS session if TCP-AO is not available on the
150166BGP router.
151167
152-
153168# IANA Considerations
154169
155170IANA is requested to assign a TCP port (TBD1) from the "Service Name and Transport
@@ -165,15 +180,15 @@ Protocol Port Number Registry" as follows:
165180- Reference : this document
166181-
Unauthorized Use Reported :
[email protected] 167182
168-
169183It is suggested to use the same port as the one selected for BGP over QUIC
170184{{I-D.draft-retana-idr-bgp-quic}}.
171185
172186# Acknowledgments
173187{:numbered="false"}
174188
175- The authors thank
176- Dimitri Safonov for the TCP-AO implementation in Linux.
189+ The authors thank Dimitri Safonov for the TCP-AO implementation in Linux.
190+ This work has been partially supported by the Walloon Region as part of the
191+ funding of the FRFS-WEL-T strategic axis.
177192
178193# Change log
179194{:numbered="false"}
0 commit comments