70 likes | 183 Vues
This document outlines various use cases for network connectivity between components in distributed systems. It emphasizes the requirements and provisions of endpoints, detailing how Component A interacts with Component B. The discussion covers symmetric connectivity, multiple network ports, and connection directions — particularly in client-server relationships. It highlights scenarios such as cluster communication and database monitoring setups. The emphasis is on proper expression of connectivity needs and the importance of whitelisting and directionality in securing network interactions.
E N D
Some Network Connectivity Use Cases dpalma@vnomic.com
Requires/Provides • EndPoints are Capabilities • Component A requires and endpoint E1 which B provides • Component A resolves to B (and its subclasses) at assembly time Component A Component B Requires (E1) Provides (E1) Connector
ConnectsTo (thus far) • Component A connectsTo Component B • i.e. Component A requires a connection to Component B Component A Component B Requires (E1) Provides (E1) ConnectsTo Client Server Connection • Connection has been assumed to be a single network connection, e.g. Client connection of TCP to MySQL at well known port 3306 over one network connection. • Client side of connection is assumed to be the requiring side of the relationship.
Additional Use Cases • Multiple network L4 ports or protocols required to realize the connectivity • Symmetric connectivity • Both A and B can connect to each other in any order • Network connection in opposite direction than Req/Cap relationship
Multiple network L4 ports or protocols • Consider NFS • TCP or UDP: 2049(nfsd), 111(rpcbind), 892(mountd), 662(statd) • TCP 32803 (lockd) • UDP 32769 (lockd) • We must be able to express • Multiple ports • Connection direction (see opposite direction use case) • Consider firewall filter tuple syntax and treat as directional flow • Use white-listing (assume everything is disabled by default) NOT black-listing (we don’t know what is open by default!)
Symmetric connectivity • Consider a cluster • They may know each others’ IP address and connect to each other via the same well known port over TCP • They may use a multi-cast cluster discovery/group membership protocol • This is peer-to-peer • Any member can initiate communication • Expresses membership • Order is not important (for orchestration)
Network connection in opposite direction than Req/Cap • A DB is deployed • It requires needs monitoring implemented by an additional monitoring node • Monitoring node connects to DB node via SSH (could be any protocol, it is the direction that is important here) to collect metrics • Need to be able to express this Component A Component B Requires (E1) Provides (E1) Client Server Connection