Rough Outline for a Intra-Portal Protocol Version 02 Stephen Haddock

advertisement
Rough Outline for a Intra-Portal Protocol
Version 02
Stephen Haddock
August 23, 2012
1
Configuration
• Configuration vs Discovery
– Version 01 of this presentation observed that it would be
theoretically possible for the Intra-Portal Protocol to follow the
philosophy used to develop LACP to maximize discovery and have
minimal configuration.
– Version 01 recommended against this approach.
– Feedback was overwhelmingly in favor of configuration over
discovery.
– Still need to decide how much information needs to be configured
and what can be negotiated by protocol.
– Still need a state machine to establish communication between
Intra-Portal Protocol participants, verify correct configuration and
connectivity, control the “Emulated System” when communication
has been established, detect loss of communication between IPP
participants, etc.
2
What needs to be configured?
• Portal Identifier for each Portal
– Needs to be the same in all systems in a portal.
– Needs to be unique within each system of a portal.
– Could be the same as the System ID for the Emulated System
• Pros and cons of this to be discussed later.
– Used to detect mis-connections of Intra-Portal Links
– In systems with multiple Portals, used to assure Portal Ports and
Intra-Portal Ports get associated with the correct Portal.
• Intra-Portal Port(s) for each Portal
– Could be physical or virtual ports.
• Portal Port(s) for each Portal
– These are the ports on each system that will become ports on the
Emulated System for the Portal.
3
Configured/Negotiated Parameters -1
• System ID for Emulated System of each Portal
– Needs to be “globally” unique (i.e. unique across all interconnected networks).
• Could be configured, but leaves no way to resolve conflict in case of
misconfiguration
– Propose the each system in a Portal advertise a candidate Emulated
System ID.
• Numerically lowest candidate is used as the System ID.
• This also proposal also allows a means to negotiate other Emulated System
parameters (e.g. Emulated System Port IDs).
• LACP Key
– Needs to be unique within an Emulated System.
– Indicates aggregation capability
• Ports in a system with the same Key can be aggregated together.
4
Configured/Negotiated Parameters - 2
• Portal Port Identifiers
– Need to be unique within an Emulated System.
• Could be configured, but leaves no way to resolve a conflict if there is a
misconfiguration.
• Propose that each Portal System assign Port IDs that are unique within the
system and have the MSB = 0. When the Intra-Portal Protocol establishes the
Emulated System, the system with the numerically higher candidate System
ID sets the MSB of it’s Port IDs to 1. (This concept can be extended to Portals
with more than two systems.)
5
State Machine
• Suggestion received during presentation in San Diego was
to add a “Divorced” state.
– Instead of going from Estranged back to Single when all
communication with spouse is lost, go to Divorced state.
– Difference between Divorced and Single is that in Divorced you
still remember some history of being married.
• Presumably after some long timeout, the memory fades and you transition to
Single.
– Divorced state could be beneficial for handling potential split-brain
scenarios, and for implementing the Graceful Name Change
proposal.
6
Version 01 slides
7
LACP in a Nutshell
• Each Port on a System advertises:
1.
A System ID
•
2.
A Key
•
3.
The same System ID value is used for all Ports on a System.
The Key is an indication of aggregation capability. Ports that can be
aggregated advertise the same Key value.
A Port ID
•
The Port ID is included to handle some special cases. It is not important for
a high level understanding of basic LACP concepts.
• LACP Selection Logic will form an aggregation between
any ports that:
1.
2.
Advertise the same System ID and the same Key (called the
Actor_System and Actor_Key), and
Receive advertisements containing the same System ID and the
same Key (called the Partner_System and Partner_Key)
8
Two Systems without Distributed Aggregation
System A
Port
Port
Port
System B
Port
Port
Each Port on System A advertises:
1. Actor_System = A
2. Actor_Key = Ax
Where Ax may be the same value
on some or all of the ports, or
may be a different value on
different ports.
Port
Port
Port
Port
Port
Each Port on System B advertises:
1. Actor_System = B
2. Actor_Key = Bx
Where Bx may be the same value
on some or all of the ports, or
may be a different value on
different ports.
9
Two Systems with Distributed Aggregation
System A
Port
Port
System B
Port
Port
Port
Port
(possible) Network Link
Intra-Portal Link (could be virtual)
Network Link
Gateway
Link
(virtual)
Emulated System C
Port
Port
Each Network Port on System A advertises:
1. Actor_System = A
2. Actor_Key = Ax
Port
Port
Port
Port
Port
Port
Network Link
Gateway
Link
(virtual)
Each Network Port on System B advertises:
1. Actor_System = B
2. Actor_Key = Bx
Each (non Gateway) Port on System C advertises:
1. Actor_System = C
(C could be the same as A or B, but does not need to be)
1. Actor_Key = Cn
Where Cn is the same value on all of the ports.
10
Intra-Portal Protocol
Creating and Maintaining a Distributed Aggregation requires:
• State machines in System A and System B (the “real”
systems) to control the transitions between the state
without distributed aggregation and the state with
distributed aggregation.
• A protocol that
1.
2.
3.
Determines the System ID and Key values for the Emulated
System C.
Coordinates the Selection Logic for the Emulated System C.
Coordinates the distributed aggregation state machines in each of
the “real” systems.
11
Configuration versus Discovery
• LACP designed to allow minimal configuration and
maximal discovery:
– A default configuration is all ports advertise the same key value.
– LACP will then discover all groups of ports connecting the same
pair of systems and automatically aggregate them.
• The Intra-Portal Protocol could conceivably follow the
same philosophy:
1.
2.
3.
•
Advertise ability to do distributed aggregation on all ports.
Form an Intra-Portal Link to any connected system that is also
capable of distributed aggregation, and create an emulate system
between them.
Use LACP (possibly with enhancements) to discover links that
could form a distributed aggregation and “move” those ports to
the emulated system.
This is quite ambitious!
12
A less ambitious starting point
1. Configure the port(s) that are expected to form IntraPortal Links.
–
Use protocol advertisements on those ports to verify that the
other system also expects these to form Intra-Portal Links, and to
agree on Emulated System parameters (System ID, Key value,
Port IDs).
2. Configure which port(s) are expected to be “moved” to
the Emulated System.
–
–
Once the Intra-Portal Link is active and Emulated System
parameters agreed, use LACP to advertise the Emulated System
parameters these ports.
Intra-Portal Protocol coordinates the Selection Logic of the
Emulated System to form the distributed aggregation.
13
Rough Distributed Aggregation State Machine
Begin
SINGLE
•LACP advertises “real” system
parameters on all ports.
•Send Intra-Portal Protocol
advertisements (candidate
Emulated System parameters)
on potential Intra-Portal Port.
All communication
with spouse lost
ESTRANGED
•LACP advertises Emulated
System parameters on Emulated
System ports.
•Send Intra-Portal Protocol
advertisements on Intra-Portal
Port and alternate paths.
•Maintain Distributed
Aggregation
IPPort Operational &
IPProtocol
Advertisements
received
All communication
with spouse lost
All communication
with spouse lost
IPPort Operational &
IPProtocol
Advertisements
received
IPPort not Operational
but communication
through other paths
possible
BETROTHED
•LACP advertises “real” system
parameters on all ports.
•Send Intra-Portal Protocol
advertisements on Intra-Portal
Port.
Not in
sync
In sync (Emulated
System parameters
agreed)
MARRIED
•LACP advertises Emulated
System parameters on Emulated
System ports.
•Send Intra-Portal Protocol
advertisements on Intra-Portal
Port (and alternate paths?).
•Create Distributed
Aggregation.
14
Intra-Portal Protocol Advertisements
• Ethertype
• Maybe use Slow Protocols Ethertype with new sub-type
• Maybe use new Ethertype (without chatter limits)
• Modeled after LACP advertisements
– Contains Actor parameters
• Actor_System, Actor_Emulated_System, Actor_Distributed_Key, Actor_State
– Contains copies of parameters received from Spouse
• Spouse_System, Spouse_Emulated_System, Spouse_Distributed_Key, State
– In sync when the Spouse_* parameters in received advertisements
match the Actor_* parameters in transmitted advertisements.
• The agreed Emulated_System identifier is the numerically lower of that
proposed by the Actor or the Spouse.
• The agreed Distributed_Key is the value associated with the agreed
Emulated_System identifier.
• May contain other TLVs in some or all advertisements for
coordinating gateway selection, link selection, etc.
15
Obviously needs further refinement
16
Thank You
.
17
Download