In This Issue: Computing. T. Sridhar Introduced Various Aspects of Cloud Com Puting
In This Issue: Computing. T. Sridhar Introduced Various Aspects of Cloud Com Puting
In This Issue: Computing. T. Sridhar Introduced Various Aspects of Cloud Com Puting
With this issue we start a new series of articles under the general
SSH........................................ 18 heading “Protocol Basics.” The idea is to present a series of in-depth
tutorials on numerous protocols that are used every day on the
Internet and in enterprise networks. The articles will cover protocol
Book Review......................... 30 details as well as implementation, deployment, and usage scenarios.
In some cases the articles will also summarize the “lessons learned”
Fragments.............................. 38 and present “best-practice” guidelines. To start the series, we asked
Bill Stallings to give us an overview of the Secure Shell (SSH) Protocol.
We invite you to send us suggestions for other protocols that you’d
like to see covered in this series.
ISSN 1944-1134
Cloud Computing—A Primer
Part 2: Infrastructure and Implementation Topics
by T. Sridhar
C
loud computing is an emerging area that affects IT infra-
structure, network services, and applications. In Part 1[0] of
this two-part article, we introduced various aspects of cloud
computing, including the rationale, underlying models, and infra-
structures. In Part 2 we discuss specific infrastructure aspects of cloud
computing in detail, specifically:
• Network Infrastructure
• Cloud-to-Cloud and Federation Considerations
• Security
Network Infrastructure
In a limited sense, the cloud can be treated as a large data center
run by an external entity providing the capability for elasticity, on-
demand resources, and per-usage billing. Data-center architecture
often follows the common three-layer network topology of access,
aggregation, and core networks with enabling networking elements
(switches and routers). Consider the topology shown in Figure 4 of
Part 1, reproduced here as Figure 0. The servers can be connected
through a 1-Gbps link to a Top of Rack (TOR) switch, which in turn
is connected through one or more 10-Gbps links to an aggregation
End of Row (EOR) switch. The EOR switch is used for interserver
connectivity across racks. The aggregation switches themselves are
connected to core switches for connectivity outside the data center.
Internet
Core
Switch
Aggregation
Switches
Top of Rack
(TOR) Switch
Presentation/Web Servers
Application Servers
Database Servers
Client Requests
Storage
Switch Switch
Database Tier
Application Tier
SaaS vendors have the highest degree of control among the three
models. The realization of the network topology can be similar to
existing data centers and scale up or down according to the number
of users that are added. However, because they offer a specific set of
applications to the cloud users, their server and network topology is
quite straightforward.
The virtual switch does not need to learn MAC addresses like a
traditional switch—it assumes that all destination-unknown frames
should be forwarded over the physical link (or uplink to the physical
switch). In addition, it switches traffic between the intramachine VMs
according to policy. For example, you could prohibit two VMs on the
same machine from communicating with each other by configuring
an access control list on the virtual switch. The VMs may all be on
the same or on different VLANs. Broadcasts and intra-VLAN traffic
are forwarded according to the rules for each VLAN. In effect, the
virtual switch is a simple function that is used for aggregation and
access control within a physical server containing VMs.
Guest (OS) Guest (OS) Guest (OS) Guest (OS) Guest (OS) Guest (OS) Guest (OS) Guest (OS)
Physical Ethernet Adapter Physical Ethernet Adapter Physical Ethernet Adapter Physical Ethernet Adapter
2 Ethernet MAC Addresses on Same Link Ethernet Switches 2 Ethernet MAC Addresses on Same Link
Virtual Adapter
Enterprise A
Private Cloud as an
Extension of
Enterprise Data Center
Router
VPN
Tunnel
Network Cloud
e.g. Dedicated Links,
MPLS Network
or Internet
Private Physical &
Cloud A Virtualized
Servers
VPN Ethernet
Gateway Switch
VPN
Router Tunnel Virtualized
Servers
VPN
Tunnel Physical &
Virtualized
Servers
Router
Enterprises
The following are some possible evolution scenarios for this scheme:
• Automation of the VPN connection between the enterprise and
cloud service provider: This automation can be done through a
management system responsible for the cloud bursting and server
augmentation. The system sets up the VPN tunnels and configures
the servers on the cloud service provider end. The management
system is set up and operated by the cloud service provider.
• Integration of the VPN functions with the site-to-site VPN network
functions from service providers: For example, service provid-
ers offer MPLS Layer 3 VPNs and Layer 2 VPNs (also known as
Virtual Private LAN Service, or VPLS) as part of their offerings.
Enterprise and cloud service providers could be set up to use these
network services.
• Cloud service providers using multiple data centers: In such a situ-
ation, a VPLS-like service can be used to bridge the individual data
centers, providing complete transparency from the enterprise side
about the location of the cloud servers.
Cloud Federation
Thus far we have considered the situation of data centers that are
owned or run by the same cloud services provider. Connectivity
between the data centers to provide the vision of “one cloud” is com-
pletely within the control of the cloud service provider.
Conclusion
This article has served as a vendor-neutral primer to the area of cloud
computing. In Part 1, we provided an introduction to the still-evolv-
ing area of cloud computing, including the technologies and some
deployment concerns. In Part 2, we provided a more detailed look
at the networking factors in the cloud, security aspects, and cloud
federation. We also highlighted some areas that are seeing increased
attention with cloud-computing proponents and vendors.
The area of cloud computing is very dynamic and offers scope for
innovative technologies and business models. Ongoing work with
respect to solutions is substantial, in the vendor research labs and
product development organizations as well as in academia. It is clear
that cloud computing will see significant advances and innovation in
the next few years.
[17] “Is your data center ready for virtualization,” Eaton white paper,
http://i.zdnet.com/whitepapers/Eaton_Is_your_data_
center_ready_for_virtualization.pdf
S
ecure Shell (SSH) Protocol is a protocol for secure network com-
munications designed to be relatively simple and inexpensive to
implement. The initial version, SSH1, focused on providing a
secure remote logon facility to replace Telnet and other remote logon
schemes that provided no security[4]. SSH also provides a more gen-
eral client-server capability and can be used to secure such network
functions as file transfer and e-mail. A new version, SSH2, provides
a standardized definition of SSH and improves on SSH1 in numerous
ways. SSH2 is documented as a proposed standard in RFCs 4250
through 4256 [1–3], [5–8].
SSH client and server applications are widely available for most op-
erating systems. It has become the method of choice for remote login
and X tunneling and is rapidly becoming one of the most pervasive
applications for encryption technology outside of embedded systems.
SSH is organized as three protocols that typically run on top of TCP
(Figure 1):
• Transport Layer Protocol: Provides server authentication, data
confidentiality, and data integrity with forward secrecy (that is,
if a key is compromised during one session, the knowledge does
not affect the security of earlier sessions); the transport layer may
optionally provide compression
• User Authentication Protocol: Authenticates the user to the server
• Connection Protocol: Multiplexes multiple logical communica-
tions channels over a single underlying SSH connection
TCP
Transmission Control Protocol provides reliable,
connection-oriented end-to-end delivery.
IP
Internet Protocol provides datagram delivery
across multiple networks.
SSH-protoversion-softwareversion
Identification String
Exchange SSH-protoversion-softwareversion
SSH_MSG_KEXINIT
Algorithm Negotiation
SSH_MSG_KEXINIT
Key Exchange
SSH_MSG_NEWKEYS
End of Key
Exchange SSH_MSG_NEWKEYS
SSH_MSG_SERVICE_REQUEST
Service Request
Compress
Encrypt MAC
ciphertext
SSH-protoversion-softwareversion SP comments CR LF
where SP, CR, and LF are space character, carriage return, and
line feed, respectively. An example of a valid string is SSH-2.0-
billsSSH_3.6.3q3<CR><LF>. The server responds with its own
identification string. These strings are used in the Diffie–Hellman key
exchange.
* = Required
** = Recommended
The next step is key exchange. The specification allows for alternative
methods of key exchange, but at present only two versions of Diffie–
Hellman key exchange are specified. Both versions are defined
in RFC 2409 and require only one packet in each direction. The
following steps are involved in the exchange. In this, C is the client;
S is the server; p is a large safe prime; g is a generator for a subgroup
of GF(p); q is the order of the subgroup; V_S is the S identification
string; V_C is the C identification string; K_S is the S public host key;
I_C is the C SSH_MSG_KEXINIT message; and I_S is the S SSH_MSG_
KEXINIT message that was exchanged before this part began. The
values of p, g, and q are known to both client and server as a result of
the algorithm selection negotiation. The hash function hash() is also
decided during algorithm negotiation.
1. C generates a random number x (1 < x < q) and computes e = gx
mod p. C sends e to S.
2. S generates a random number y (0 < y < q) and computes f = gy
mod p. S receives e. It computes K = ey mod p, H = hash(V_C ||
V_S || I_C || I_S || K_S || e || f || K), and signature s on H with its
private host key. S sends (K_S || f || s) to C. The signing operation
may involve a second hashing operation.
3. C verifies that K_S really is the host key for S (for example, using
certificates or a local database). C is also allowed to accept the key
without verification; however, doing so will render the protocol
insecure against active attacks (but may be desirable for practical
reasons in the short term in many environments). C then computes
K = fx mod p, H = hash(V_C || V_S || I_C || I_S || K_S || e || f || K),
and verifies the signature s on H.
As a result of these steps, the two sides now share a master key K. In
addition, the server has been authenticated to the client, because the
server has used its private key to sign its half of the Diffie–Hellman
exchange. Finally, the hash value H serves as a session identifier for
this connection. When computed, the session identifier is not changed,
even if the key exchange is performed again for this connection to ob-
tain fresh keys.
Connection Protocol
The SSH Connection Protocol runs on top of the SSH Transport
Layer Protocol and assumes that a secure authentication connec-
tion is in use. That secure authentication connection, referred to as a
tunnel, is used by the Connection Protocol to multiplex a number of
logical channels.
where uint32 means unsigned 32-bit integer. The channel type identi-
fies the application for this channel, as described subsequently. The
sender channel is the local channel number. The initial window size
specifies how many bytes of channel data can be sent to the sender
of this message without adjusting the window. The maximum packet
size specifies the maximum size of an individual data packet that can
be sent to the sender. For example, one might want to use smaller
packets for interactive connections to get better interactive response
on slow links.
SSH_MSG_CHANNEL_OPEN
Open a Channel
SSH_MSG_CHANNEL_OPEN_CONFIRMATION
SSH_MSG_CHANNEL_DATA
SSH_MSG_CHANNEL_DATA
Data Transfer
SSH_MSG_CHANNEL_DATA
SSH_MSG_CHANNEL_DATA
SSH_MSG_CHANNEL_CLOSE
Close a channel
Client Server
Application Application
x y
TCP Unsecure TCP Connection TCP
Entity Entity
Client Server
Application Application
x y
Secure SSH Tunnel
SSH SSH
Entity Entity
a b
TCP Unsecure TCP Connection TCP
Entity Entity
With remote forwarding, the user’s SSH client acts on the server’s be-
half. The client receives traffic with a given destination port number,
places the traffic on the correct port, and sends it to the destination
the user chooses.
References
[1] Cusack, F. and Forssen, M. “Generic Message Exchange
Authentication for the Secure Shell Protocol (SSH),” RFC 4256,
January 2006.
[2] Lehtinen, S. and Lonvick, C., “The Secure Shell (SSH) Protocol
Assigned Numbers,” RFC 4250, January 2006.
[4] Ylonen, T., “SSH – Secure Login Connections over the Internet,”
Proceedings, Sixth USENIX UNIX Security Symposium, July
1996.
[5] Ylonen, T. and Lonvick, C., “The Secure Shell (SSH) Protocol
Architecture,” RFC 4251, January 2006.
[7] Ylonen, T. and Lonvick, C., “The Secure Shell (SSH) Transport
Layer Protocol,” RFC 4253, January 2006.
[8] Ylonen, T. and Lonvick, C., “The Secure Shell (SSH) Connection
Protocol,” RFC 4254, January 2006.
Chapter Four rounds out the central thesis of the book by illustrating
how various national-level considerations—especially government-
directed foreign and domestic economic policies—have resulted in an
increasingly diverse global pattern of IPv6 adoption.
Finally, the careful reader may notice a pattern within this review, one
composed of points highlighted here even though they may not be
equally central to the story presented in Protocol Politics (for exam-
ple, about the role of technical expertise in Internet governance, the
dynamic limitations of routing system carrying capacity, the possibil-
ity of free market alternatives to current Internet address distribution
arrangements, and so on).
How the current chapter in either of these parallel stories will play
out remains to be written. However, those who are eager to antici-
pate the kind of language that is likely to play a central role in both
outcomes will find that a close reading of Protocol Politics provides
a wealth of possibilities to consider, and more than a few to keep one
up at night.
—Tom Vest, Consultant
tvest@eyeconomics.com
References
[1] DeNardis makes several references to the idea that Code is Law,
which was first articulated by Larry Lessig in Code and Other
Laws of Cyberspace (1999) [Editor’s note: Code was reviewed
in IPJ Volume 11, No. 3]. Here the phrase is juxtaposed with
David Clark’s famous paean to “rough consensus and run-
ning code,” which DeNardis describes as an “articulation of
the IETF’s core philosophy” (p. 47), and amended with a para-
phrasing of an early (c. 1992) observation made by Marshall
Rose about a common problem encountered when attempting
to implement code to satisfy a non-operationally developed
standard. The original staying was, “The problems of the real
world are remarkably resilient to administrative fiat.”
________________________
“ISOC and W3C have a long history of cooperation and the Internet
ecosystem has benefited from our shared yet independent voices,”
said Tim Berners-Lee, W3C Director. “The W3C staff, Members,
and community continue to work on making W3C more relevant
and valuable to the Web and Internet communities. ISOC support
will allow W3C to evolve its structure to ensure we continue to forge
solid working relationships with the increasing numbers of develop-
ers and users, worldwide.”
This publication is distributed on an “as-is” basis, without warranty of any kind either
express or implied, including but not limited to the implied warranties of merchantability,
fitness for a particular purpose, or non-infringement. This publication could contain technical
inaccuracies or typographical errors. Later issues may modify or update information provided
in this issue. Neither the publisher nor any contributor shall have any liability to any person
for any loss or damage caused directly or indirectly by the information contained herein.