Transparent Interconnection of Lots of Links (TRILL) Transport Using Pseudowires
Extracted elements (15)
If a pseudowire supports fragmentation and reassembly, there is no reason to perform TRILL MTU testing on it, and the pseudowire will not constrain the TRILL campus-wide MTU size (Sz). This is because F&R is rarely deployed in practice.
PPP pseudowire encoding was chosen over Ethernet pseudowires or a new TRILL-specific pseudowire type. Ethernet pseudowires would add 12-16 bytes of overhead per packet. A new pseudowire type was rejected because any efficiency gain over PPP pseudowires would be too small to justify the complexity, and PPP pseudowire encoding allows existing TRILL PPP and PPP pseudowire dissectors to automatically decode TRILL traffic.
An intervening MPLS label switched router or similar packet switched network device has no awareness of TRILL and will not change the TRILL Header hop count, preserving end-to-end TRILL semantics across the pseudowire tunnel.
This application requires no additions to existing pseudowire standards. Either a signaling protocol (RFC 4447) or manual configuration can be used to set up the label switched path tunnel between two TRILL switch ports.
If the pseudowire does not support fragmentation (the common case), the available TRILL IS-IS packet payload size over the pseudowire (accounting for MPLS encapsulation with a control word) MUST be used in determining the TRILL campus-wide MTU size (Sz).
The sending pseudowire TRILL switch port SHOULD map the inner priority of TRILL Data packets to the Traffic Class field of the pseudowire label to minimize the probability that higher priority packets will be discarded due to lower priority packet congestion.
TRILL IS-IS Hello and MTU PDUs (critical for adjacency) SHOULD be sent with the MPLS Traffic Class calling for maximum priority handling. Other IS-IS PDUs SHOULD use the highest priority below maximum, and TRILL Data packets SHOULD use lower Traffic Classes than IS-IS PDUs.
When pseudowire interconnection of two TRILL switch ports is signaled, the initiating TRILL switch port MUST attempt the connection setup with pseudowire type PPP (0x0007).
TRILL is transported over pseudowires using PPP encapsulation (PW type 0x0007) per RFC 4618. After the pseudowire is established and TRILL use is negotiated within PPP, the ports appear directly connected with a PPP link, following RFC 6361 behavior.
TRILL switch ports interconnected via pseudowire act as native service processing (NSP) elements and as label switched or IP routers. The pseudowire provides transparent transport so the two ports appear directly interconnected, with TRILL adjacency automatically discovered via TRILL IS-IS control messages.
For applications involving sensitive data, end-to-end security between end stations SHOULD always be considered in addition to link security, to protect the entire path to, through, and from the TRILL campus (security in depth).
It is NOT RECOMMENDED to use PPP security for TRILL transport over pseudowires because: the PPP layer is vestigial (primarily used for code point identification), and existing PPP security standards are questionable by current security criteria. Instead, link security SHOULD be provided at the MPLS, IP, or lower link layers supporting the pseudowires.
TRILL-level security mechanisms (e.g., authentication with TRILL IS-IS PDUs) are not affected by the use of pseudowire links. Layered security is possible via PPP security, pseudowire security, MPLS/IP security, or the underlying link technology's security.
A TRILL Data packet over a PPP pseudowire in MPLS consists of: Server MPLS Tunnel Label(s) (n*4 octets), PW Label (4 octets), Control Word (4 octets), PPP Header 0x005d (2 octets), TRILL Header (6 octets), Destination MAC (6 octets), Source MAC (6 octets), Data Label (4 or 8 octets), and variable Payload Body.
A TRILL IS-IS packet over a PPP pseudowire in MPLS consists of: Server MPLS Tunnel Label(s) (n*4 octets), PW Label (4 octets), Control Word (4 octets), PPP Header 0x405d (2 octets), Common IS-IS Header (8 octets), IS-IS PDU Type Specific Header (variable), and IS-IS TLVs (variable).