<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.scottlowe.org/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>blog.scottlowe.org</title>
	
	<link>http://blog.scottlowe.org</link>
	<description>The weblog of an IT pro specializing in virtualization, storage, and servers</description>
	<lastBuildDate>Tue, 21 May 2013 21:05:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.scottlowe.org/slowe/content/feed" /><feedburner:info uri="slowe/content/feed" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>slowe/content/feed</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Learning NVP, Part 1: High-Level Architecture</title>
		<link>http://feeds.scottlowe.org/~r/slowe/content/feed/~3/a0mrabl0m80/</link>
		<comments>http://blog.scottlowe.org/2013/05/21/learning-nvp-part-1-high-level-architecture/#comments</comments>
		<pubDate>Tue, 21 May 2013 21:01:51 +0000</pubDate>
		<dc:creator>slowe</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Nicira]]></category>
		<category><![CDATA[NVP]]></category>
		<category><![CDATA[OpenFlow]]></category>
		<category><![CDATA[OVS]]></category>

		<guid isPermaLink="false">http://blog.scottlowe.org/?p=3188</guid>
		<description><![CDATA[This is the first in a series of posts in which I'll share my experiences learning the Nicira Network Virtualization Platform (NVP).<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/21/learning-nvp-part-1-high-level-architecture/">Learning NVP, Part 1: High-Level Architecture</a></p>
]]></description>
			<content:encoded><![CDATA[<p>This blog post kicks off a new series of posts describing my journey to become more knowledgeable about the Nicira Network Virtualization Platform (NVP). NVP is, in my opinion, an awesome platform, but there hasn&#8217;t been a great deal of information shared about the product, how it works, how you configure it, etc. That&#8217;s something I&#8217;m going to try to address in this series of posts. In this first post, I&#8217;ll start with a high-level description of the NVP architecture. Don&#8217;t worry&#8212;more in-depth information will come in future posts.</p>
<p>Before continuing, it might be useful to set some context around NVP and NSX. This series of posts will focus on NVP&#8212;a product that is available today and is currently in use in production. The architecture I&#8217;m describing here will also be applicable to NSX, which VMware announced in early March. Because NSX will leverage NVP&#8217;s architecture, spending some time with NVP now will pay off with NSX later. Make sense?</p>
<p>Let&#8217;s start with a figure. The diagram below graphically illustrates the NVP architecture at a high level:</p>
<p><img src="http://blog.scottlowe.org/images/nvp-architecture.png" width="527" height="340" alt="High-level NVP architecture diagram" /></p>
<p>The key components of the NVP architecture include:</p>
<ul>
<li><em>A scale-out controller cluster:</em> The NVP controllers handle computing the network topology and providing configuration and flow information to create logical networks. The controllers support a scale-out model for high availability and increased scalability. The controller cluster supplies a northbound REST API that can be consumed by cloud management platforms such as OpenStack or CloudStack, or by home-grown cloud management systems.</li>
<li><em>A programmable virtual switch:</em> NVP leverages Open vSwitch (OVS), an independent open source project with contributors from across the industry, to fill this role. OVS communicates with the NVP controller clusters to receive configuration and flow information.</li>
<li><em>Southbound communications protocols:</em> NVP uses two open communications protocols to communicate southbound to OVS. For configuration information, NVP leverages OVSDB; for flow information, NVP uses OpenFlow. The management (OVSDB) communication between the controller cluster and OVS is encrypted using SSL.</li>
<li><em>Gateways:</em> Gateways provide the &#8220;on-ramp&#8221; to enter or exit NVP logical networks. Gateways can provide either L2 gateway services (to bridge NVP logical networks onto physical networks) as well as L3 gateway services (to route between NVP logical networks and physical networks). In either case, the gateways are also built using a scale-out model that provides high availability and scalability for the L2 and L3 gateway services they host.</li>
<li><em>Encapsulation protocol:</em> To provide full independence and isolation of logical networks from the underlying physical networks, NVP uses encapsulation protocols for transporting logical network traffic across physical networks. Currently, NVP supports both Generic Routing Encapsulation (GRE) and Stateless Transport Tunneling (STT), with additional encapsulation protocols planned for future releases.</li>
<li><em>Service nodes:</em> To offload the handling of BUM (Broadcast, Unknown Unicast, and Multicast) traffic, NVP can optionally leverage one or more service nodes. Note that service nodes are optional; customers can choose to have BUM traffic handled locally on each hypervisor node. (Note that service nodes are not shown in the diagram above.)</li>
</ul>
<p>Now that you have an idea of the high-level architecture, let me briefly outline how the rest of this series will be organized. The basic outline of this series will roughly correspond to how NVP would be deployed in a real-world environment.</p>
<ol>
<li>In the next post (or two), I&#8217;ll be focusing on getting the controller cluster built and diving a bit deeper into the controller cluster architecture.</li>
<li>Once the controller cluster is up and running, I&#8217;ll take a look at getting NVP Manager up and running. NVP Manager is an application that consumes the northbound REST APIs from the controller cluster in order to view and manage NVP logical networks and NVP components. In most cases, this function is part of a cloud management platform (such as OpenStack or CloudStack), but using NVP Manager here allows me to focus on NVP instead of worrying about the details of the cloud management platform itself.</li>
<li>The next step will be to bring hypervisor nodes into NVP. I&#8217;ll focus on using nodes running KVM, but keep in mind that Xen is also supported by NVP. If time (and resources) permit, I may try to look at bringing up Xen-based hypervisor nodes as well. Because NVP leverages OVS as the edge virtual switch, I&#8217;ll naturally be discussing some OVS-related tasks and topics as well.</li>
<li>Following the addition of hypervisor nodes into NVP, I&#8217;ll look at creating a simple logical network, and we&#8217;ll examine how this logical network works with the underlying physical network.</li>
<li>To add more flexibility to our logical network, we need to be able to bring physical resources into NVP logical networks. To enable that functionality, we&#8217;ll need to add gateways and gateway services to our configuration, so I&#8217;ll discuss gateways and L2 gateway services, how they work, and how we add them to an NVP configuration.</li>
<li>The next step is to enable L3 (routing) functionality within NVP, and that is enabled by L3 gateway services. I&#8217;ll spend some time talking about the L3 gateway services, their architecture, adding them to NVP, and including L3 functionality in an NVP logical network. I&#8217;ll also explore distributed L3 routing, where the L3 routing is actually distributed across hypervisors in an NVP environment (this is a new feature just added in NVP 3.1).</li>
<li>Now that we have both L2 and L3 gateway services in NVP, I&#8217;ll take a look at building more intricate logical networks.</li>
</ol>
<p>Beyond that, it&#8217;s hard to say where the series will go. I&#8217;ll likely also take a look at some of NVP&#8217;s security features, and examine a few more complex NVP use cases. If there are additional topics you&#8217;d like to see beyond what I&#8217;ve outlined above, please feel free to speak up in the comments below.</p>
<p>I&#8217;m excited about this journey to learn NVP in more detail, and I&#8217;m looking forward to taking all of you along with me. Ready? Let&#8217;s go!</p>
<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/21/learning-nvp-part-1-high-level-architecture/">Learning NVP, Part 1: High-Level Architecture</a></p>
Similar Posts:<ul><li><a href="http://blog.scottlowe.org/2013/04/15/openstack-summit-2013-nicira-nvp-deep-dive/" rel="bookmark" title="Monday, April 15, 2013">OpenStack Summit 2013: Nicira NVP Deep Dive</a></li>

<li><a href="http://blog.scottlowe.org/2013/04/17/openstack-summit-2013-openstack-high-availability-in-grizzly-and-beyond/" rel="bookmark" title="Wednesday, April 17, 2013">OpenStack Summit 2013: OpenStack High Availability in Grizzly and Beyond</a></li>

<li><a href="http://blog.scottlowe.org/2013/05/07/using-gre-tunnels-with-open-vswitch/" rel="bookmark" title="Tuesday, May 7, 2013">Using GRE Tunnels with Open vSwitch</a></li>

<li><a href="http://blog.scottlowe.org/2013/04/15/openstack-summit-2013-considerations-for-building-a-private-cloud-folsom-update/" rel="bookmark" title="Monday, April 15, 2013">OpenStack Summit 2013: Considerations for Building a Private Cloud, Folsom Update</a></li>

<li><a href="http://blog.scottlowe.org/2011/01/18/changing-the-ip-address-on-a-vplex-management-server/" rel="bookmark" title="Tuesday, January 18, 2011">Changing the IP Address on a VPLEX Management Server</a></li>
</ul><!-- Similar Posts took 7.208 ms --><img src="http://feeds.feedburner.com/~r/slowe/content/feed/~4/a0mrabl0m80" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.scottlowe.org/2013/05/21/learning-nvp-part-1-high-level-architecture/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://blog.scottlowe.org/2013/05/21/learning-nvp-part-1-high-level-architecture/</feedburner:origLink></item>
		<item>
		<title>Examining Open vSwitch Traffic Patterns</title>
		<link>http://feeds.scottlowe.org/~r/slowe/content/feed/~3/1aMg3tLrpSc/</link>
		<comments>http://blog.scottlowe.org/2013/05/15/examining-open-vswitch-traffic-patterns/#comments</comments>
		<pubDate>Wed, 15 May 2013 15:52:10 +0000</pubDate>
		<dc:creator>slowe</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[OVS]]></category>

		<guid isPermaLink="false">http://blog.scottlowe.org/?p=3185</guid>
		<description><![CDATA[This post examines some configuration scenarios with Open vSwitch (OVS) and how these configurations affect how traffic moves into or out of the host.<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/15/examining-open-vswitch-traffic-patterns/">Examining Open vSwitch Traffic Patterns</a></p>
]]></description>
			<content:encoded><![CDATA[<p>In this post, I want to provide some additional insight on how the use of <a href="http://openvswitch.org/">Open vSwitch (OVS)</a> affects&#8212;or doesn&#8217;t affect, in some cases&#8212;how a Linux host directs traffic through physical interfaces, OVS internal interfaces, and OVS bridges. This is something that I had a hard time understanding as I started exploring more advanced OVS configurations, and hopefully the information I share here will be helpful to others.</p>
<p>To help structure this discussion, I&#8217;m going to walk through a few different OVS configurations and scenarios. In these scenarios, I&#8217;ll use the following assumptions:</p>
<ul>
<li>The physical host has four interfaces (eth0, eth1, eth2, and eth3)</li>
<li>The host is running Linux with KVM, libvirt, and OVS installed</li>
</ul>
<h2 id="scenario1:simpleovsconfiguration">Scenario 1: Simple OVS Configuration</h2>
<p>In this first scenario let&#8217;s look at a relatively simple OVS configuration, and examine how Linux host and guest domain traffic moves into or out of the network.</p>
<p>Let&#8217;s assume that our OVS configuration looks something like this (this is the output from <code>ovs-vsctl show</code>):</p>
<div>
<pre>bc6b9e64-11d6-415f-a82b-5d8a61ed3fbd
    Bridge "br0"
        Port "br0"
            Interface "br0"
                type: internal
        Port "eth0"
            Interface "eth0"
    Bridge "br1"
        Port "br1"
            Interface "br1"
                type: internal
        Port "eth1"
            Interface "eth1"
    ovs_version: "1.7.1"</pre>
</div>
<p>This is a pretty simple configuration; there are two bridges, each with a single physical interface. Let&#8217;s further assume, for the purposes of this scenario, that eth2 has an IP address and is working properly to communicate with other hosts on the network. The eth3 interface is shutdown.</p>
<p>So, in this scenario, how does traffic move into or out of the host?</p>
<ol>
<li>
<p><em>Traffic from a guest domain:</em> Traffic from a guest domain will travel through the OVS bridge to which it is attached (you&#8217;d see an additional &#8220;vnet0&#8243; port and interface appear on that bridge when you start the guest domain). So, a guest domain attached to br0 would communicate via eth0, and a guest domain attached to br1 would communicate via eth1. No real surprises here.</p>
</li>
<li>
<p><em>Traffic from the Linux host:</em> Traffic from the Linux host itself will <strong>not</strong> communicate over any of the configured OVS bridges, but will instead use its native TCP/IP stack and any configured interfaces. Thus, since eth2 is configured and operational, all traffic to/from the Linux host itself will travel through eth2.</p>
</li>
</ol>
<p>The interesting point (to me, at least) about #2 above is that this <em>includes traffic from the OVS process itself.</em> In other words, if the OVS process(es) need to communicate across the network, they won&#8217;t use the bridges&#8212;they&#8217;ll use whatever interfaces the Linux host uses to communicate. This is one thing that threw me off: because OVS is itself a Linux process, when OVS needs to communicate across the network it will use the Linux network stack to do so. In this scenario, then, OVS would <strong>not</strong> communicate over any configured bridge, but instead using eth2. (This makes perfect sense now, but I recall that it didn&#8217;t earlier. Maybe it&#8217;s just me.)</p>
<h2 id="scenario2:addingbonding">Scenario 2: Adding Bonding</h2>
<p>In this second scenario, our OVS configuration changes only slightly:</p>
<div>
<pre>bc6b9e64-11d6-415f-a82b-5d8a61ed3fbd
    Bridge "br0"
        Port "br0"
            Interface "br0"
                type: internal
        Port "bond0"
            Interface "eth0"
            Interface "eth1"
    ovs_version: "1.7.1"</pre>
</div>
<p>In this case, we&#8217;re now leveraging a bond that contains two physical interfaces (eth0 and eth1). (By the way, I have a write-up on <a href="http://blog.scottlowe.org/2012/10/19/link-aggregation-and-lacp-with-open-vswitch/">configuring OVS and bonds</a>, if you need/want more information.) The eth2 interface still has an IP address assigned and is up and communicating properly. The physical eth3 interface is shutdown.</p>
<p>How does this affect the way in which traffic is handled? <em>It doesn&#8217;t, really.</em> Traffic from guest domains will still travel across br0 (since this is the only configured OVS bridge), and traffic from the Linux host&#8212;including traffic from OVS itself&#8212;will still use whatever interfaces are determined by the host&#8217;s TCP/IP stack. In this case, that would be eth2.</p>
<h2 id="scenario3:theisolatedbridge">Scenario 3: The Isolated Bridge</h2>
<p>Let&#8217;s look at another OVS configuration, the so-called &#8220;isolated bridge&#8221;. This is a configuration that is commonly found in implementations using NVP, OpenStack, and others, and it&#8217;s a configuration that I recently discussed in <a href="http://blog.scottlowe.org/2013/05/07/using-gre-tunnels-with-open-vswitch/">my post on GRE tunnels and OVS</a>.</p>
<p>Here&#8217;s the configuration:</p>
<div>
<pre>bc6b9e64-11d6-415f-a82b-5d8a61ed3fbd
    Bridge "br0"
        Port "br0"
            Interface "br0"
                type: internal
        Port "bond0"
            Interface "eth0"
            Interface "eth1"
    Bridge "br-int"
        Port "br-int"
            Interface "br-int"
                type: internal
        Port "gre0"
            Interface "gre0"
                type: gre
                options: {remote_ip="192.168.1.100"}
    ovs_version: "1.7.1"</pre>
</div>
<p>As with previous configurations, we&#8217;ll assume that eth2 is up and operational, and eth3 is shutdown. So how does traffic get directed in this configuration?</p>
<ol>
<li>
<p><em>Traffic from guest domains attached to br0:</em> This is as before&#8212;traffic will go out one of the physical interfaces in the bond, according to the bonding configuration (active-standby, LACP, etc.). Nothing unusual here.</p>
</li>
<li>
<p><em>Traffic from the Linux host:</em> As before, traffic from processes on the Linux host will travel out according to the host&#8217;s TCP/IP stack. There are no changes from previous configurations.</p>
</li>
<li>
<p><em>Traffic from guest domains attached to br-int:</em> Now, this is where it gets interesting. Guest domains attached to br-int (named &#8220;br-int&#8221; because in this configuration the isolated bridge is often called the &#8220;integration bridge&#8221;) don&#8217;t have any physical interfaces they can use; they can only use the GRE tunnel. Here&#8217;s the &#8220;gotcha&#8221;, so to speak: the GRE tunnel is created and maintained by the OVS process, and therefore it uses the host&#8217;s TCP/IP stack to communicate across the network. Thus, traffic from guest domains attached to br-int would hit the GRE tunnel, which would travel through eth2.</p>
</li>
</ol>
<p>I&#8217;ll give you a second to let that sink in.</p>
<p>Ready now? Good! The key to understanding #3 is, in my opinion, understanding that the tunnel (a GRE tunnel in this case, but the same would apply to a VXLAN or STT tunnel) is <em>created and maintained by the OVS process.</em> Thus, because it is created and maintained by a process on the Linux host (OVS itself), the traffic for the tunnel is directed according to the host&#8217;s TCP/IP stack and IP routing table(s). In this configuration, the tunnels don&#8217;t travel through any of the configured OVS bridges.</p>
<h2 id="scenario4:leveraginganovsinternalinterface">Scenario 4: Leveraging an OVS Internal Interface</h2>
<p>Let&#8217;s keep ramping up the complexity. For this scenario, we&#8217;ll use an OVS configuration that is the same as in the previous scenario:</p>
<div>
<pre>bc6b9e64-11d6-415f-a82b-5d8a61ed3fbd
    Bridge "br0"
        Port "br0"
            Interface "br0"
                type: internal
        Port "bond0"
            Interface "eth0"
            Interface "eth1"
    Bridge "br-int"
        Port "br-int"
            Interface "br-int"
                type: internal
        Port "gre0"
            Interface "gre0"
                type: gre
                options: {remote_ip="192.168.1.100"}
    ovs_version: "1.7.1"</pre>
</div>
<p>The difference, this time, is that we&#8217;ll assume that eth2 and eth3 are both shutdown. Instead, we&#8217;ve assigned an IP address to the br0 interface on bridge br0. OVS internal interfaces, like br0, can appear as &#8220;physical&#8221; interfaces to the Linux host, and therefore can be assigned IP addresses and used for communication. This is the approach I used in describing <a href="http://blog.scottlowe.org/2012/10/30/running-host-management-on-open-vswitch/">how to run host management across OVS</a>.</p>
<p>Here&#8217;s how this configuration affects traffic flow:</p>
<ol>
<li>
<p><em>Traffic from guest domains attached to br0:</em> No change here. Traffic from guest domains attached to br0 will continue to travel across the physical interfaces in the bond (eth0 and eth1, in this case).</p>
</li>
<li>
<p><em>Traffic from the Linux host:</em> This time, the only interface that the Linux host has is the br0 internal interface. The br0 internal interface is attached to br0, so all traffic from the Linux host will travel across the physical interfaces attached to the bond (again, eth0 and eth1).</p>
</li>
<li>
<p><em>Traffic from guest domains attached to br-int:</em> Because Linux host traffic is directed through br0 by virtue of using the br0 internal interface, this means that tunnel traffic is also directed through br0, as dictated by the Linux host&#8217;s TCP/IP stack and IP routing table(s).</p>
</li>
</ol>
<p>As you can see, assigning an IP address to an OVS internal interface has a real impact on the way in which the Linux host directs traffic through OVS. This has both positive and negative impacts:</p>
<ul>
<li>One positive impact is that it allows for Linux host traffic (such as management or tunnel traffic) to take advantage of OVS bonds, thus gaining some level of NIC redundancy.</li>
<li>A negative impact is that OVS is now &#8220;in band,&#8221; so upgrades to OVS will be disruptive to all traffic moving through OVS&#8212;which could potentially include host management traffic.</li>
</ul>
<p>Let&#8217;s take a look at one final scenario.</p>
<h2 id="scenario5:usingmultiplebridgesandinternalinterfaces">Scenario 5: Using Multiple Bridges and Internal Interfaces</h2>
<p>In this configuration, we&#8217;ll use an OVS configuration that is very similar to the configuration I showed in my post on <a href="http://blog.scottlowe.org/2013/05/07/using-gre-tunnels-with-open-vswitch/">GRE tunnels with OVS</a>:</p>
<div>
<pre>bc6b9e64-11d6-415f-a82b-5d8a61ed3fbd
    Bridge "br0"
        Port "br0"
            Interface "br0"
                type: internal
        Port "mgmt0"
            Interface "mgmt0"
                type: internal
        Port "bond0"
            Interface "eth0"
            Interface "eth1"
    Bridge "br1"
        Port "br1"
            Interface "br1"
                type: internal
        Port "tep0"
            Interface "tep0"
                type: internal
        Port "bond1"
            Interface "eth2"
            Interface "eth3"
    Bridge "br-int"
        Port "br-int"
            Interface "br-int"
                type: internal
        Port "gre0"
            Interface "gre0"
                type: gre
                options: {remote_ip="192.168.1.100"}
    ovs_version: "1.7.1"</pre>
</div>
<p>In this configuration, we have three bridges. br0 uses a bond that contains eth0 and eth1; br1 uses a bond that contains eth2 and eth3; and br-int is an isolated bridge with no physical interfaces. We have two &#8220;custom&#8221; internal interfaces, mgmt0 (on br0) and tep0 (on br1), to which IP addresses have been assigned and which are successfully communicating across the network. We&#8217;ll assume that mgmt0 and tep0 are on different subnets, and that tep0 is assigned to the 192.168.1.0/24 subnet.</p>
<p>How does traffic flow in this scenario?</p>
<ol>
<li>
<p><em>Traffic from guest domains attached to br0:</em> The behavior here is as it has been in previous configurations&#8212;guest domains attached to br0 will communicate across the physical interfaces in the bond.</p>
</li>
<li>
<p><em>Traffic from the Linux host:</em> As it has been in previous scenarios, traffic from the Linux host is driven by the host&#8217;s TCP/IP stack and IP routing table(s). Because mgmt0 and tep0 are on different subnets, traffic from the Linux host will go out either br0 (for traffic moving through mgmt0) or br1 (for traffic moving through tep0), and thus will utilize the corresponding physical interfaces in the bonds on those bridges.</p>
</li>
<li>
<p><em>Traffic from guest domains attached to br-int:</em> Because the GRE tunnel is on the 192.168.1.0/24 subnet, traffic for the GRE tunnel&#8212;which is created and maintained by the OVS process on the Linux host itself&#8212;will travel through tep0, which is attached to br1. Thus, the physical interfaces eth2 and eth3 would be leveraged for the GRE tunnel traffic.</p>
</li>
</ol>
<h2 id="summary">Summary</h2>
<p>The key takeaway from this post, in my mind, is understanding where traffic originates, and separating the idea of OVS as a switching mechanism (to handle guest domain traffic) as well as a Linux host process itself (to create and maintain tunnels between hosts).</p>
<p>Hopefully this information is helpful. I am, of course, completely open to your comments, questions, and corrections, so feel free to speak up in the comments below. Courteous comments are always welcome!</p>
<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/15/examining-open-vswitch-traffic-patterns/">Examining Open vSwitch Traffic Patterns</a></p>
Similar Posts:<ul><li><a href="http://blog.scottlowe.org/2012/10/30/running-host-management-on-open-vswitch/" rel="bookmark" title="Tuesday, October 30, 2012">Running Host Management on Open vSwitch</a></li>

<li><a href="http://blog.scottlowe.org/2012/10/19/vlans-with-open-vswitch-fake-bridges/" rel="bookmark" title="Friday, October 19, 2012">VLANs with Open vSwitch Fake Bridges</a></li>

<li><a href="http://blog.scottlowe.org/2013/05/07/using-gre-tunnels-with-open-vswitch/" rel="bookmark" title="Tuesday, May 7, 2013">Using GRE Tunnels with Open vSwitch</a></li>

<li><a href="http://blog.scottlowe.org/2012/11/27/connecting-ovs-bridges-with-patch-ports/" rel="bookmark" title="Tuesday, November 27, 2012">Connecting OVS Bridges with Patch Ports</a></li>

<li><a href="http://blog.scottlowe.org/2012/10/19/link-aggregation-and-lacp-with-open-vswitch/" rel="bookmark" title="Friday, October 19, 2012">Link Aggregation and LACP with Open vSwitch</a></li>
</ul><!-- Similar Posts took 6.983 ms --><img src="http://feeds.feedburner.com/~r/slowe/content/feed/~4/1aMg3tLrpSc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.scottlowe.org/2013/05/15/examining-open-vswitch-traffic-patterns/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://blog.scottlowe.org/2013/05/15/examining-open-vswitch-traffic-patterns/</feedburner:origLink></item>
		<item>
		<title>Using pf on OS X Mountain Lion</title>
		<link>http://feeds.scottlowe.org/~r/slowe/content/feed/~3/tujXdjuES_w/</link>
		<comments>http://blog.scottlowe.org/2013/05/15/using-pf-on-os-x-mountain-lion/#comments</comments>
		<pubDate>Wed, 15 May 2013 13:00:00 +0000</pubDate>
		<dc:creator>slowe</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[BSD]]></category>

		<guid isPermaLink="false">http://blog.scottlowe.org/?p=3183</guid>
		<description><![CDATA[Want to add a bit of additional security to your Mac? Read this article for information on how to leverage the pf firewall for added network security.<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/15/using-pf-on-os-x-mountain-lion/">Using pf on OS X Mountain Lion</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve <a href="http://blog.scottlowe.org/2012/04/05/setting-up-ipfw-on-mac-os-x/">written before</a> about adding an extra layer of network security to your Macintosh by leveraging the BSD-level <code>ipfw</code> firewall, in addition to the standard GUI firewall and additional third-party firewalls (like <a href="http://www.obdev.at/products/littlesnitch/index.html">Little Snitch</a>). In OS X Lion and OS X Mountain Lion, though, <code>ipfw</code> was deprecated in favor of <code>pf</code>, the powerful packet filter that I believe originated on OpenBSD. (OS X&#8217;s version of <code>pf</code> is ported from FreeBSD.) In this article, I&#8217;m going to show you how to use <code>pf</code> on OS X.</p>
<p>Note that this is just <em>one way</em> of leveraging <code>pf</code>, not necessarily the <em>only way</em> of doing it. I tested (and am currently using) this configuration on OS X Mountain Lion 10.8.3.</p>
<p>There are X basic pieces involved in getting <code>pf</code> up and running on OS X Mountain Lion:</p>
<ol>
<li>Putting <code>pf</code> configuration files in place.</li>
<li>Creating a launchd item for <code>pf</code>.</li>
</ol>
<p>Let&#8217;s look at each of these pieces in a bit more detail. We&#8217;ll start with the configuration files.</p>
<h2 id="puttingconfigurationfilesinplace">Putting Configuration Files in Place</h2>
<p>OS X Mountain Lion comes with a barebones <code>/etc/pf.conf</code> preinstalled. This barebones configuration file references a single anchor, found in <code>/etc/pf.anchors/com.apple</code>. This anchor, however, does not contain any actual <code>pf</code> rules; instead, it appears to be nothing more than a placeholder.</p>
<p>Since there is a configuration file already in place, you have two options ahead of you:</p>
<ol>
<li>
<p>You can overwrite the existing configuration file. The drawback of this approach is that a) Apple has been known to change this file during system updates, undoing your changes; and b) it could break future OS X functionality.</p>
</li>
<li>
<p>You can bypass the existing configuration file. This is the approach I took, partly due to the reasons listed above and partly because I found that <code>pfctl</code> (the program used to manage <code>pf</code>) wouldn&#8217;t activate the filter rules when the existing configuration file was used. (It complained about improper order of lines in the existing configuration file.)</p>
</li>
</ol>
<p>Note that some tools (like <a href="http://www.hanynet.com/icefloor/index.html">IceFloor</a>) take the first approach and modify the existing configuration file.</p>
<p>I&#8217;ll assume you&#8217;re going to use option #2. What you&#8217;ll need, then, are (at a minimum) two configuration files:</p>
<ol>
<li>The <code>pf</code> configuration file you want it to parse on startup</li>
<li>At least one anchor file that contains the various options and rules you want to pass to <code>pf</code> when it starts</li>
</ol>
<p>Since we&#8217;re bypassing the existing configuration file, all you really need is an extremely simple configuration file that points to your anchor and loads it, like this:</p>
<p><script src="https://gist.github.com/lowescott/5581696.js"></script></p>
<p>The other file you need has the actual options and rules that will be passed to <code>pf</code> when it starts. You can get fancy here and use a separate file to define macros and tables, or you can bundle the macros and tables in with the rules. Whatever approach you take, be <strong>sure</strong> that you have the commands in this file in the right order: options, normalization, queueing, translation, and filtering. Failure to put things in the right order will cause <code>pf</code> not to enable and will leave your system without this additional layer of network protection.</p>
<p>A <em>very</em> simple set of rules in an anchor might look something like this:</p>
<p><script src="https://gist.github.com/lowescott/5581710.js"></script></p>
<p>Naturally, you&#8217;d want to customize these rules to fit your environment. At the end of this article I provide some additional resources that might help with this task.</p>
<p>Once you have the configuration file in place and at least one anchor defined with rules (in the right order!), then you&#8217;re ready to move ahead with creating the launchd item for <code>pf</code> so that it starts automatically.</p>
<p><em>However</em>, there is one additional thing you might want to do first&#8212;test your rules to be sure everything is correct. Use this command in a terminal window while running as an administrative user:</p>
<div>
<pre>sudo pfctl -v -n -f <em>&lt;path to configuration file&gt;</em></pre>
</div>
<p>If this command reports errors, go back and fix them before proceeding.</p>
<h2 id="creatingthelaunchditemforpf">Creating the launchd Item for pf</h2>
<p>Creating the launchd item simply involves creating a properly-formatted XML file and placing it in <code>/Library/LaunchDaemons</code>. It must be owned by root, otherwise it won&#8217;t be processed at all. If you aren&#8217;t clear on how to make sure it&#8217;s owned by root, go do a bit of reading on <code>sudo</code> and <code>chown</code>.</p>
<p>Here&#8217;s a launchd item you might use for <code>pf</code>:</p>
<p><script src="https://gist.github.com/lowescott/5581726.js"></script></p>
<p>A few notes about this launchd item:</p>
<ul>
<li>You&#8217;ll want to change the last <code>&lt;string&gt;</code> item under the ProgramArguments key to properly reflect the path and filename of the custom configuration file you created earlier. In my case, I&#8217;m storing both the configuration file and the anchor in the <code>/etc/pf.anchors</code> directory.</li>
<li>As I stated earlier, you <em>must</em> ensure this file is owned by root once you put it into <code>/Library/LaunchDaemons</code>. It won&#8217;t work otherwise.</li>
<li>If you have additional parameters you want/need to pass to <code>pfctl</code>, add them as separate lines in the ProgramArguments array. Each individual argument on the command line must be a separate item in the array.</li>
</ul>
<p>Once this file is in place with the right ownership, you can either use <code>launchctl</code> to load it or restart your computer. The robust <code>pf</code> firewall should now be running on your OS X Mountain Lion system. Enjoy!</p>
<h2 id="someadditionalresources">Some Additional Resources</h2>
<p>Finally, it&#8217;s important to note that I found a few different web sites helpful during my experimentations with <code>pf</code> on OS X. <a href="http://krypted.com/mac-os-x/a-cheat-sheet-for-using-pf-in-os-x-lion-and-up/">This write-up</a> was written with Lion in mind, but applies equally well to Mountain Lion, and <a href="https://calomel.org/pf_config.html">this site</a>&#8212;while clearly focused on OpenBSD and FreeBSD&#8212;was nevertheless quite helpful as well.</p>
<p>It should go without saying, but I&#8217;ll say it nevertheless: courteous comments are welcome! Feel free to add your thoughts, ideas, questions, or corrections below.</p>
<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/15/using-pf-on-os-x-mountain-lion/">Using pf on OS X Mountain Lion</a></p>
Similar Posts:<ul><li><a href="http://blog.scottlowe.org/2012/04/05/setting-up-ipfw-on-mac-os-x/" rel="bookmark" title="Thursday, April 5, 2012">Setting Up ipfw on Mac OS X</a></li>

<li><a href="http://blog.scottlowe.org/2012/04/30/updated-launchd-property-list-file-for-synergy/" rel="bookmark" title="Monday, April 30, 2012">Updated launchd Property List File for Synergy</a></li>

<li><a href="http://blog.scottlowe.org/2012/04/24/running-synergy-server-automatically-on-os-x-lion/" rel="bookmark" title="Tuesday, April 24, 2012">Running Synergy Server Automatically on OS X Lion</a></li>

<li><a href="http://blog.scottlowe.org/2010/09/07/making-manual-edits-to-dynamic-dns-zones/" rel="bookmark" title="Tuesday, September 7, 2010">Making Manual Edits to Dynamic DNS Zones</a></li>

<li><a href="http://blog.scottlowe.org/2006/07/02/trojan-horse-exploiting-os-x-flaw/" rel="bookmark" title="Sunday, July 2, 2006">Trojan Horse Exploiting OS X Flaw</a></li>
</ul><!-- Similar Posts took 9.886 ms --><img src="http://feeds.feedburner.com/~r/slowe/content/feed/~4/tujXdjuES_w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.scottlowe.org/2013/05/15/using-pf-on-os-x-mountain-lion/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://blog.scottlowe.org/2013/05/15/using-pf-on-os-x-mountain-lion/</feedburner:origLink></item>
		<item>
		<title>Joint OpenStack Denver and Infracoders Denver Meetup</title>
		<link>http://feeds.scottlowe.org/~r/slowe/content/feed/~3/CyXX8_uv0v8/</link>
		<comments>http://blog.scottlowe.org/2013/05/14/joint-openstack-denver-and-infracoders-denver-meetup/#comments</comments>
		<pubDate>Tue, 14 May 2013 15:19:07 +0000</pubDate>
		<dc:creator>slowe</dc:creator>
				<category><![CDATA[Collaboration]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[OpenStack]]></category>

		<guid isPermaLink="false">http://blog.scottlowe.org/?p=3180</guid>
		<description><![CDATA[The next OpenStack Denver meetup event and the inaugural Infracoders Denver meetup event will be jointly held on Monday, May 20, at 7PM. Read the full post for details.<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/14/joint-openstack-denver-and-infracoders-denver-meetup/">Joint OpenStack Denver and Infracoders Denver Meetup</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Next Monday, May 20, the <a href="http://www.meetup.com/OpenStack-Denver/">OpenStack Denver meetup group</a> will gather jointly with the inaugural meeting of the <a href="http://www.meetup.com/Infracoders-Denver/">Infracoders Denver meetup group</a> for a talk titled &#8220;Infrastructure as Code with Chef and OpenStack.&#8221; The joint meeting will be held at Innovation Pavilion in Centennial/Englewood (location information <a href="http://ipcentennial.com/our-location/">here</a>). The event will start at 7PM.</p>
<p>Giving the presentation will be none other than Joshua Timberman of <a href="http://www.opscode.com/">OpsCode</a> (<a href="http://twitter.com/jtimberman/">@jtimberman</a> on Twitter). Joshua will be speaking on Chef, a system integration framework that is commonly used in &#8220;infrastructure as code&#8221; environments and in a number of OpenStack deployments. Joshua will discuss the basic principles of Chef, the primitives it provides, and how you can use it to drive your infrastructure toward full automation.</p>
<p>For more information, or to RSVP for the meetup event, you can visit either the <a href="http://www.meetup.com/OpenStack-Denver/events/118387222/">OpenStack Denver meetup group event page</a> or the <a href="http://www.meetup.com/Infracoders-Denver/events/118388152/">Infracoders Denver meetup group event page</a>. We do ask that you RSVP so that we can plan food and drinks for the event, but please only RSVP in one of the two meetup groups (not both).</p>
<p>&lt;aside&gt;Also, if you are interested in presenting at the OpenStack Denver meetup group or the Infracoders Denver meetup group, please let me know. We are actively seeking co-organizers as well as speakers/presenters for future events.&lt;/aside&gt;</p>
<p>If you live in the South Denver metro area and are interested in either OpenStack or infrastructure as code, this is an event you won&#8217;t want to miss!</p>
<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/14/joint-openstack-denver-and-infracoders-denver-meetup/">Joint OpenStack Denver and Infracoders Denver Meetup</a></p>
Similar Posts:<ul><li><a href="http://blog.scottlowe.org/2013/01/03/inaugural-openstack-denver-meetup/" rel="bookmark" title="Thursday, January 3, 2013">Inaugural OpenStack Denver Meetup</a></li>

<li><a href="http://blog.scottlowe.org/2012/11/12/infrastructure-coders-denver-and-openstack-denver-meetups/" rel="bookmark" title="Monday, November 12, 2012">Infrastructure Coders Denver and OpenStack Denver Meetups</a></li>

<li><a href="http://blog.scottlowe.org/2012/07/22/seeking-feedback-on-infrastructure-coders-denver/" rel="bookmark" title="Sunday, July 22, 2012">Seeking Feedback on Infrastructure Coders Denver</a></li>

<li><a href="http://blog.scottlowe.org/2009/06/08/vwire-launched/" rel="bookmark" title="Monday, June 8, 2009">vWire Launched</a></li>

<li><a href="http://blog.scottlowe.org/2012/10/16/openstack-summit-day-1-recap-links/" rel="bookmark" title="Tuesday, October 16, 2012">OpenStack Summit Day 1 Recap Links</a></li>
</ul><!-- Similar Posts took 9.407 ms --><img src="http://feeds.feedburner.com/~r/slowe/content/feed/~4/CyXX8_uv0v8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.scottlowe.org/2013/05/14/joint-openstack-denver-and-infracoders-denver-meetup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.scottlowe.org/2013/05/14/joint-openstack-denver-and-infracoders-denver-meetup/</feedburner:origLink></item>
		<item>
		<title>Using GRE Tunnels with Open vSwitch</title>
		<link>http://feeds.scottlowe.org/~r/slowe/content/feed/~3/DnqzPMR9DoQ/</link>
		<comments>http://blog.scottlowe.org/2013/05/07/using-gre-tunnels-with-open-vswitch/#comments</comments>
		<pubDate>Tue, 07 May 2013 22:59:18 +0000</pubDate>
		<dc:creator>slowe</dc:creator>
				<category><![CDATA[Interoperability]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[KVM]]></category>
		<category><![CDATA[OVS]]></category>

		<guid isPermaLink="false">http://blog.scottlowe.org/?p=3175</guid>
		<description><![CDATA[In this post, I'll show you how to set up GRE (Generic Routing Encapsulation) tunnels between OVS instances on separate hypervisor hosts for VM connectivity on private networks.<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/07/using-gre-tunnels-with-open-vswitch/">Using GRE Tunnels with Open vSwitch</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m back with another &#8220;how to&#8221; article on <a href="http://openvswitch.org/">Open vSwitch (OVS)</a>, this time taking a look at using GRE (Generic Routing Encapsulation) tunnels with OVS. OVS can use GRE tunnels between hosts as a way of encapsulating traffic and creating an overlay network. OpenStack Quantum can (and does) leverage this functionality, in fact, to help separate different &#8220;tenant networks&#8221; from one another. In this write-up, I&#8217;ll walk you through the process of configuring OVS to build a GRE tunnel to build an overlay network between two hypervisors running KVM.</p>
<p>Naturally, any sort of &#8220;how to&#8221; such as this always builds upon the work of others. In particular, I found a couple of Brent Salisbury&#8217;s articles (<a href="http://networkstatic.net/open-vswitch-gre-tunnel-configuration/">here</a> and <a href="http://networkstatic.net/configuring-vxlan-and-gre-tunnels-on-openvswitch/">here</a>) especially useful.</p>
<p>This process has 3 basic steps:</p>
<ol>
<li>Create an isolated bridge for VM connectivity.</li>
<li>Create a GRE tunnel endpoint on each hypervisor.</li>
<li>Add a GRE interface and establish the GRE tunnel.</li>
</ol>
<p>These steps assume that you&#8217;ve already installed OVS on your Linux distribution of choice. I haven&#8217;t explicitly done a write-up on this, but there are numerous posts from a variety of authors (in this regard, Google is your friend).</p>
<p>We&#8217;ll start with an overview of the topology, then we&#8217;ll jump into the specific configuration steps.</p>
<h2 id="reviewingthetopology">Reviewing the Topology</h2>
<p>The graphic below shows the basic topology of what we have going on here:</p>
<p><img src="http://blog.scottlowe.org/wp-content/uploads/2013/05/ovs-gre-tun-overview.png" alt="Topology overview" /></p>
<p>We have two hypervisors (CentOS 6.3 and KVM, in my case), both running OVS (an older version, version 1.7.1). Each hypervisor has one OVS bridge that has at least one physical interface associated with the bridge (shown as <code>br0</code> connected to <code>eth0</code> in the diagram). As part of this process, you&#8217;ll create the other internal interfaces (the <code>tep</code> and <code>gre</code> interfaces, as well as the second, isolated bridge to which VMs will connect. You&#8217;ll then create a GRE tunnel between the hypervisors and test VM-to-VM connectivity.</p>
<h2 id="creatinganisolatedbridge">Creating an Isolated Bridge</h2>
<p>The first step is to create the isolated OVS bridge to which the VMs will connect. I call this an &#8220;isolated bridge&#8221; because the bridge has no physical interfaces attached. (Side note: this idea of an isolated bridge is fairly common in OpenStack and NVP environments, where it&#8217;s usually called the <em>integration bridge</em>. The concept is the same.)</p>
<p>The command is very simple, actually:</p>
<div>
<pre>ovs-vsctl add-br br2</pre>
</div>
<p>Yes, that&#8217;s it. Feel free to substitute a different name for <code>br2</code> in the command above, if you like, but just make note of the name as you&#8217;ll need it later.</p>
<p>To make things easier for myself, once I&#8217;d created the isolated bridge I then <a href="http://blog.scottlowe.org/2012/11/07/using-vlans-with-ovs-and-libvirt/">created a libvirt network for it</a> so that it was dead-easy to attach VMs to this new isolated bridge.</p>
<h2 id="configuringthegretunnelendpoint">Configuring the GRE Tunnel Endpoint</h2>
<p>The GRE tunnel endpoint is an interface on each hypervisor that will, as the name implies, serve as the endpoint for the GRE tunnel. My purpose in creating a separate GRE tunnel endpoint is to separate hypervisor management traffic from GRE traffic, thus allowing for an architecture that might leverage a separate management network (which is typically considered a recommended practice).</p>
<p>To create the GRE tunnel endpoint, I&#8217;m going to use the same technique I described in my post on <a href="http://blog.scottlowe.org/2012/10/30/running-host-management-on-open-vswitch/">running host management traffic through OVS</a>. Specifically, we&#8217;ll create an internal interface and assign it an IP address.</p>
<p>To create the internal interface, use this command:</p>
<div>
<pre>ovs-vsctl add-port br0 tep0 -- set interface tep0 type=internal</pre>
</div>
<p>In your environment, you&#8217;ll substitute <code>br2</code> with the name of the isolated bridge you created earlier. You could also use a different name than <code>tep0</code>. Since this name is essentially for human consumption only, use what makes sense to you. Since this is a tunnel endpoint, <code>tep0</code> made sense to me.</p>
<p>Once the internal interface is established, assign it with an IP address using <code>ifconfig</code> or <code>ip</code>, whichever you prefer. I&#8217;m still getting used to using <code>ip</code> (more on that in a future post, most likely), so I tend to use <code>ifconfig</code>, like this:</p>
<div>
<pre>ifconfig tep0 192.168.200.20 netmask 255.255.255.0</pre>
</div>
<p>Obviously, you&#8217;ll want to use an IP addressing scheme that makes sense for your environment. One important note: don&#8217;t use the same subnet as you&#8217;ve assigned to other interfaces on the hypervisor, or else you can&#8217;t control that the GRE tunnel will originate (or terminate) on the interface you specify. This is because the Linux routing table on the hypervisor will control how the traffic is routed. (You could use source routing, a topic I plan to discuss in a future post, but that&#8217;s beyond the scope of this article.)</p>
<p>Repeat this process on the other hypervisor, and be sure to make note of the IP addresses assigned to the GRE tunnel endpoint on each hypervisor; you&#8217;ll need those addresses shortly. Once you&#8217;ve established the GRE tunnel endpoint on each hypervisor, test connectivity between the endpoints using <code>ping</code> or a similar tool. If connectivity is good, you&#8217;re clear to proceed; if not, you&#8217;ll need to resolve that before moving on.</p>
<h2 id="establishingthegretunnel">Establishing the GRE Tunnel</h2>
<p>By this point, you&#8217;ve created the isolated bridge, established the GRE tunnel endpoints, and tested connectivity between those endpoints. You&#8217;re now ready to establish the GRE tunnel.</p>
<p>Use this command to add a GRE interface to the isolated bridge on each hypervisor:</p>
<div>
<pre>ovs-vsctl add-port br2 gre0 -- set interface gre0 type=gre \
options:remote_ip=<em>&lt;GRE tunnel endpoint on other hypervisor&gt;</em></pre>
</div>
<p>Substitute the name of the isolated bridge you created earlier here for <code>br2</code> and feel free to use something other than <code>gre0</code> for the interface name. I think using <code>gre</code> as the base name for the GRE interfaces makes sense, but run with what makes sense to you.</p>
<p>Once you repeat this command on both hypervisors, the GRE tunnel should be up and running. (Troubleshooting the GRE tunnel is one area where my knowledge is weak; anyone have any suggestions or commands that we can use here?)</p>
<h2 id="testingvmconnectivity">Testing VM Connectivity</h2>
<p>As part of this process, I spun up an Ubuntu 12.04 server image on each hypervisor (using <code>virt-install</code> as I outlined <a href="http://blog.scottlowe.org/2012/08/21/working-with-kvm-guests/">here</a>), attached each VM to the isolated bridge created earlier on that hypervisor, and assigned each VM an IP address from an entirely different subnet than the physical network was using (in this case, 10.10.10.x).</p>
<p>Here&#8217;s the output of the <code>route -n</code> command on the Ubuntu guest, to show that it has <em>no</em> knowledge of the &#8220;external&#8221; IP subnet&#8212;it knows only about its own interfaces:</p>
<div>
<pre>ubuntu:~ root$ route -n
Kernel IP routing table
Destination  Gateway       Genmask        Flags Metric Ref Use Iface
0.0.0.0      10.10.10.254  0.0.0.0        UG    100    0   0   eth0
10.10.10.0   0.0.0.0       255.255.255.0  U     0      0   0   eth0</pre>
</div>
<p>Similarly, here&#8217;s the output of the <code>route -n</code> command on the CentOS host, showing that it has <em>no</em> knowledge of the guest&#8217;s IP subnet:</p>
<div>
<pre>centos:~ root$ route -n
Kernel IP routing table
Destination  Gateway        Genmask        Flags Metric Ref Use Iface
192.168.2.0  0.0.0.0        255.255.255.0  U     0      0   0   tep0
192.168.1.0  0.0.0.0        255.255.255.0  U     0      0   0   mgmt0
0.0.0.0      192.168.1.254  0.0.0.0        UG    0      0   0   mgmt0</pre>
</div>
<p>In my case, VM1 (named <code>web01</code>) was given 10.10.10.1; VM2 (named <code>web02</code>) was given 10.10.10.2. Once I went through the steps outlined above, I was able to successfully ping VM2 from VM1, as you can see in this screenshot:</p>
<p><img src="http://blog.scottlowe.org/wp-content/uploads/2013/05/ovs-gre-tun-vm-ping-test.png" alt="VM-to-VM connectivity over GRE tunnel" /></p>
<p>(Although it&#8217;s not shown here, connectivity from VM2 to VM1 was obviously successful as well.)</p>
<p>&#8220;OK, that&#8217;s cool, but why do I care?&#8221; you might ask.</p>
<p>In this particular context, it&#8217;s a bit of a science experiment. However, if you take a step back and begin to look at the bigger picture, then (hopefully) something starts to emerge:</p>
<ul>
<li>We can use an encapsulation protocol (GRE in this case, but it could have just as easily been STT or VXLAN) to isolate VM traffic from the physical network and from other VM traffic. (Think multi-tenancy.)</li>
<li>While this process was manual, think about some sort of controller (an OpenFlow controller, perhaps?) that could help automate this process based on its knowledge of the VM topology.</li>
<li>Using a virtualized router or virtualized firewall, I could easily provide connectivity into or out of this isolated (encapsulated) private network. (This is probably something I&#8217;ll experiment with later.)</li>
<li>What if we wrapped some sort of orchestration framework around this, to help deploy VMs, create networks, add routers/firewalls automatically, all based on the customer&#8217;s needs? (OpenStack Networking, anyone?)</li>
</ul>
<p>Anyway, I hope this is helpful to someone. As always, I welcome feedback and suggestions for improvement, so feel free to speak up in the comments below. Vendor disclosures, where appropriate, are greatly appreciated. Thanks!</p>
<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/07/using-gre-tunnels-with-open-vswitch/">Using GRE Tunnels with Open vSwitch</a></p>
Similar Posts:<ul><li><a href="http://blog.scottlowe.org/2013/05/15/examining-open-vswitch-traffic-patterns/" rel="bookmark" title="Wednesday, May 15, 2013">Examining Open vSwitch Traffic Patterns</a></li>

<li><a href="http://blog.scottlowe.org/2012/10/30/running-host-management-on-open-vswitch/" rel="bookmark" title="Tuesday, October 30, 2012">Running Host Management on Open vSwitch</a></li>

<li><a href="http://blog.scottlowe.org/2012/10/31/layer-3-routing-with-open-vswitch/" rel="bookmark" title="Wednesday, October 31, 2012">Layer 3 Routing with Open vSwitch</a></li>

<li><a href="http://blog.scottlowe.org/2012/11/27/connecting-ovs-bridges-with-patch-ports/" rel="bookmark" title="Tuesday, November 27, 2012">Connecting OVS Bridges with Patch Ports</a></li>

<li><a href="http://blog.scottlowe.org/2012/10/19/vlans-with-open-vswitch-fake-bridges/" rel="bookmark" title="Friday, October 19, 2012">VLANs with Open vSwitch Fake Bridges</a></li>
</ul><!-- Similar Posts took 5.845 ms --><img src="http://feeds.feedburner.com/~r/slowe/content/feed/~4/DnqzPMR9DoQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.scottlowe.org/2013/05/07/using-gre-tunnels-with-open-vswitch/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		<feedburner:origLink>http://blog.scottlowe.org/2013/05/07/using-gre-tunnels-with-open-vswitch/</feedburner:origLink></item>
		<item>
		<title>Very Early Thoughts about EMC ViPR</title>
		<link>http://feeds.scottlowe.org/~r/slowe/content/feed/~3/BPjLom-GYY8/</link>
		<comments>http://blog.scottlowe.org/2013/05/06/very-early-thoughts-about-emc-vipr/#comments</comments>
		<pubDate>Mon, 06 May 2013 23:44:45 +0000</pubDate>
		<dc:creator>slowe</dc:creator>
				<category><![CDATA[Storage]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[EMC]]></category>

		<guid isPermaLink="false">http://blog.scottlowe.org/?p=3173</guid>
		<description><![CDATA[Here are some early thoughts on EMC ViPR, which was announced earlier today.<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/06/very-early-thoughts-about-emc-vipr/">Very Early Thoughts about EMC ViPR</a></p>
]]></description>
			<content:encoded><![CDATA[<p>EMC announced ViPR today, the culmination of the not-so-secret Project Bourne and its lesser-known predecessor, Project Orion. Although I used to work at EMC before <a href="http://blog.scottlowe.org/2013/01/25/new-year-new-challenges-new-opportunities/">I joined VMware earlier this year</a>, I never really had deep access to what was going on with this project, so my thoughts here are strictly based on what&#8217;s been publicly disclosed. Naturally, given that the product was only announced today, these are <em>very</em> early thoughts.</p>
<p>Naturally, Chad Sakac has <a href="http://virtualgeek.typepad.com/virtual_geek/2013/05/storage-virtualization-platform-re-imagined.html">a write-up on ViPR</a> and what led up to its creation. It&#8217;s worth having a read, but allocate plenty of time (it <em>is</em> a bit on the long side).</p>
<p>Based on the limited material that is publicly available so far, here are a few thoughts about ViPR:</p>
<ul>
<li>
<p>I like the control plane-data plane separation model that EMC is taking with ViPR. I&#8217;ve had a few conversations about network virtualization and software-defined networking (SDN) recently (see <a href="http://blog.scottlowe.org/2013/04/16/network-overlays-vs-network-virtualization/">here</a> and <a href="http://blog.scottlowe.org/2013/04/30/on-network-virtualization-and-sdn/">here</a>) and the amorphous use of the term &#8220;software-defined.&#8221; In fact, my good friend Matthew Lieb wrote <a href="http://virtuallytiedtomydesktop.wordpress.com/2013/05/03/software-defined-storage-what-does-that-mean-to-me-anyway/">a post about software-defined storage</a> in response to an exchange of tweets about the overuse of &#8220;software-defined <em>[insert whatever here]</em>&#8220;. If we go back to the original definition of what SDN meant, it referred to the separation of the networking control plane from the networking data plane and the architectural changes resulting from that separation. SDN wasn&#8217;t (and isn&#8217;t) about virtualizing network switches, routers, or firewalls; that&#8217;s NFV (Network Functions Virtualization). Similarly, running storage controller software as virtual machines isn&#8217;t software-defined storage, it&#8217;s the storage equivalent of NFV (SFV?). Separating the storage control plane from the storage data plane is a much closer storage analogy to SDN, in my opinion. I&#8217;m sure that EMC hopes that it will spark a renaissance in storage the way SDN has sparked a renaissance in networking (more on that below).</p>
</li>
<li>
<p>I like that EMC is including a variety of object storage APIs, including Atmos, AWS S3, and OpenStack Swift, and that there is API support for OpenStack Cinder and OpenStack Glance as well. It would have been the wrong move not to support these APIs in ViPR&#8212;in my opinion, EMC won&#8217;t get another opportunity like this to broaden their API and platform support.</p>
</li>
<li>
<p>Obviously, a key difference between SDN and SDS <em>a la</em> ViPR is <strong>openness.</strong> While EMC proclaims the openness of the solution based on broad API support, 3rd party back-end storage support, a public northbound API, and source code and examples for third-party southbound &#8220;plugins&#8221; for other platforms, the reality is that this separation of control plane and data plane is being driven by a vendor rather than as a result of collaboration between academic research and industry. The reason this distinction is important is that it&#8217;s one thing for a networking vendor to build OpenFlow support into its switches when OpenFlow wasn&#8217;t and isn&#8217;t created/controlled by a competing vendor, but it&#8217;s another thing for a storage vendor to build support into their products for a solution that belongs to EMC. Whether this really matters or not remains yet to be seen&#8212;it may be a non-issue. (Yes, I recognize the irony in the fact that I work for VMware, some of whose solutions might be similarly criticized with regard to openness.)</p>
</li>
<li>
<p>Hey, where&#8217;s the network virtualization support? <img src='http://blog.scottlowe.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
</li>
</ul>
<p>Anyway, those are my initial thoughts. Since I haven&#8217;t had access to more detailed information on what it does/doesn&#8217;t support or how it works, I reserve the right to revise these thoughts and impressions after I get more exposure to ViPR. In the meantime, feel free to add your own thoughts in the comments below. Courteous comments are always welcome (but do please add vendor affiliations where applicable)!</p>
<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/06/very-early-thoughts-about-emc-vipr/">Very Early Thoughts about EMC ViPR</a></p>
Similar Posts:<ul><li><a href="http://blog.scottlowe.org/2013/04/30/on-network-virtualization-and-sdn/" rel="bookmark" title="Tuesday, April 30, 2013">On Network Virtualization and SDN</a></li>

<li><a href="http://blog.scottlowe.org/2013/04/16/openstack-summit-2013-networking-in-the-cloud-an-sdn-primer/" rel="bookmark" title="Tuesday, April 16, 2013">OpenStack Summit 2013: Networking In the Cloud, an SDN Primer</a></li>

<li><a href="http://blog.scottlowe.org/2013/04/16/network-overlays-vs-network-virtualization/" rel="bookmark" title="Tuesday, April 16, 2013">Network Overlays vs. Network Virtualization</a></li>

<li><a href="http://blog.scottlowe.org/2012/09/12/idf-2012-day-1-summary-and-thoughts/" rel="bookmark" title="Wednesday, September 12, 2012">IDF 2012 Day 1 Summary and Thoughts</a></li>

<li><a href="http://blog.scottlowe.org/2012/06/12/technology-short-take-23/" rel="bookmark" title="Tuesday, June 12, 2012">Technology Short Take #23</a></li>
</ul><!-- Similar Posts took 8.500 ms --><img src="http://feeds.feedburner.com/~r/slowe/content/feed/~4/BPjLom-GYY8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.scottlowe.org/2013/05/06/very-early-thoughts-about-emc-vipr/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.scottlowe.org/2013/05/06/very-early-thoughts-about-emc-vipr/</feedburner:origLink></item>
		<item>
		<title>Technology Short Take #32</title>
		<link>http://feeds.scottlowe.org/~r/slowe/content/feed/~3/Tlvi2Xj21Fo/</link>
		<comments>http://blog.scottlowe.org/2013/05/03/technology-short-take-32/#comments</comments>
		<pubDate>Fri, 03 May 2013 13:20:38 +0000</pubDate>
		<dc:creator>slowe</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[iSCSI]]></category>
		<category><![CDATA[KVM]]></category>
		<category><![CDATA[OpenFlow]]></category>
		<category><![CDATA[OpenStack]]></category>
		<category><![CDATA[RedHat]]></category>
		<category><![CDATA[SDN]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[vSphere]]></category>
		<category><![CDATA[VXLAN]]></category>

		<guid isPermaLink="false">http://blog.scottlowe.org/?p=3171</guid>
		<description><![CDATA[Welcome to Technology Short Take #32, my latest collection of data center technology-related links, thoughts, questions, ideas, and rants. Here's hoping you find something useful or interesting!<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/03/technology-short-take-32/">Technology Short Take #32</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Welcome to Technology Short Take #32, the latest installment in my irregularly-published series of link collections, thoughts, rants, raves, and miscellaneous information. I try to keep the information linked to data center technologies like networking, storage, virtualization, and the like, but occasionally other items slip through. I hope you find something useful.</p>
<h3 id="networking">Networking</h3>
<ul>
<li>Ranga Maddipudi (<a href="https://twitter.com/vCloudNetSec">@vCloudNetSec</a> on Twitter) has put together two blog posts on vCloud Networking and Security&#8217;s App Firewall (<a href="http://blogs.vmware.com/vsphere/2013/04/vcloud-networking-and-security-5-1-app-firewall-part-1.html">part 1</a> and <a href="http://blogs.vmware.com/vsphere/2013/04/vcloud-networking-and-security-5-1-app-firewall-part-2.html">part 2</a>). These two posts are detailed, hands-on, step-by-step guides to using the vCNS App firewall&#8212;good stuff if you aren&#8217;t familiar with the product or haven&#8217;t had the opportunity to really use it.</li>
<li>The sentiment behind this post isn&#8217;t unique to networking (or networking engineers), but that was the original audience so I&#8217;m including it in this section. Nick Buraglio climbs on <a href="http://www.forwardingplane.net/2013/03/my-sdn-soapbox-now-with-ipv6/">his SDN soapbox</a> to tell networking professionals that changes in the technology field are part of life&#8212;but then provides some specific examples of how this has happened in the past. I particularly appreciated the latter part, as it helps people relate to the fact that they <em>have</em> undergone notable technology transitions in the past but probably just don&#8217;t realize it. As I said, this doesn&#8217;t just apply to networking folks, but to everyone in IT. Good post, Nick.</li>
<li>Some good advice here on <a href="http://blog.ioshints.info/2013/04/vxlan-scalability-challenges.html">scaling/sizing VXLAN</a> in VMware deployments (as well as some useful background information to help explain the advice).</li>
<li>Jason Edelman goes on a thought journey <a href="http://www.jedelman.com/1/post/2013/03/connecting-the-dots-network-apis-abstractions-and-consumption-models.html">connecting some dots around network APIs, abstractions, and consumption models</a>. I&#8217;ll let you read his post for all the details, but I do agree that it is important for the networking industry to converge on a consistent set of abstractions. Jason and I disagree that OpenStack Networking (formerly Quantum) should be the basis here; he says it shouldn&#8217;t be (not well-known in the enterprise), I say it should be (already represents work created collaboratively by multiple vendors and allows for different back-end implementations).</li>
<li>Need a reasonable introduction to OpenFlow? <a href="http://www.dasblinkenlichten.com/?p=2582">This post</a> gives a good introduction to OpenFlow, and the author takes care to define OpenFlow as accurately and precisely as possible.</li>
<li>SDN, NFV&#8212;what&#8217;s the difference? <a href="http://cplane.net/blog/?p=269">This post</a> does a reasonable job of explaining the differences (and the relationship) between SDN and NFV.</li>
</ul>
<h3 id="servershardware">Servers/Hardware</h3>
<ul>
<li>Chris Wahl provides <a href="http://wahlnetwork.com/2013/04/09/a-technical-look-into-hp-moonshot/">a quick overview of the HP Moonshot servers</a>, HP&#8217;s new ARM-based offerings. I think that Chris may have accidentally overlooked the fact that these servers are <strong>not</strong> x86-based; therefore, a hypervisor such as vSphere is not supported. Linux distributions that offer ARM support, though&#8212;like Ubuntu, RHEL, and SuSE&#8212;are supported, however. The target market for this is massively parallel workloads that will benefit from having many different cores available. It will be interesting to see how the support of a &#8220;Tier 1&#8243; hardware vendor like HP affects the adoption of ARM in the enterprise.</li>
</ul>
<h3 id="security">Security</h3>
<ul>
<li>Ivan Pepelnjak talks about a demonstration of <a href="http://blog.ioshints.info/2013/04/vm-bpdu-spoofing-attack-works-quite.html">an attack based on VM BPDU spoofing</a>. In vSphere 5.1, VMware addressed this potential issue with a feature called BPDU Filter. Check out how to configure BPDU Filter <a href="https://blogs.vmware.com/vsphere/2012/11/vsphere-5-1-vds-new-features-bpdu-filter.html">here</a>.</li>
</ul>
<h3 id="cloudcomputingcloudmanagement">Cloud Computing/Cloud Management</h3>
<ul>
<li>Check out <a href="http://cloudassassin.wordpress.com/2013/04/09/24/">this post</a> for some vCloud Director and RHEL 6.x interoperability issues.</li>
<li>Nick Hardiman has a good write-up on <a href="http://www.techrepublic.com/blog/datacenter/anatomy-of-an-aws-cloudformation-template/6117">the anatomy of an AWS CloudFormation template</a>.</li>
<li>If you missed the OpenStack Summit in Portland, Cody Bunch has a reasonable collection of Summit summary posts <a href="http://openstack.prov12n.com/openstack-summit-summary-part-1/">here</a> (as well as materials for his hands-on workshops <a href="http://openstack.prov12n.com/openstack-summit-summary-pt-2/">here</a>). I was also there, and I have some <a href="http://blog.scottlowe.org/2013/04/22/collection-of-openstack-summit-session-liveblogs/">session live blogs</a> available for your pleasure.</li>
<li>We&#8217;ve probably all heard the &#8220;pets vs. cattle&#8221; argument applied to virtual machines in a cloud computing environment, but Josh McKenty of Piston Cloud Computing asks whether it is now time <a href="http://www.pistoncloud.com/2013/04/say-goodbye-to-your-operating-system/">to apply that thinking to the physical hosts as well</a>. Considering that the IT industry still seems to be struggling with applying this line of thinking to virtual systems, I suspect it might be a while before it applies to physical servers. However, Josh&#8217;s arguments are valid, and definitely worth considering.</li>
<li>I have to give Rob Hirschfeld some credit for&#8212;as a member of the OpenStack Board&#8212;acknowledging that, in his words, &#8220;we&#8217;ve created such a love fest for OpenStack that I fear we are drinking our own kool aide.&#8221; Open, honest, transparent dealings and self-assessments are critically important for a project like OpenStack to succeed, so kudos to Rob for posting a <a href="http://robhirschfeld.com/2013/04/23/openstack-enters-rapids-with-grizzly-watch-for-strong-currents-hidden-rocks-eddies/">list of some of the challenges</a> facing the project as adoption, visibility, and development accelerate.</li>
</ul>
<h3 id="operatingsystemsapplications">Operating Systems/Applications</h3>
<p>Nothing this time around, but I&#8217;ll stay alert for items to add next time.</p>
<h3 id="storage">Storage</h3>
<ul>
<li>Nigel Poulton <a href="http://blog.nigelpoulton.com/3par-asictwo-edged-sword/">tackles</a> the question of whether ASIC (application-specific integrated circuit) use in storage arrays elongates the engineering cycles needed to add new features. This &#8220;double edged sword&#8221; argument is present in networking as well, but this is the first time I can recall seeing the question asked about modern storage arrays. While Nigel&#8217;s article specifically refers to the 3PAR ASIC and its relationship to &#8220;flash as cache&#8221; functionality, the broader question still stands: at what point do the drawbacks of ASICs begin to outweight the benefits?</li>
<li>Quite some time ago I pointed readers to a post about Target Driven Zoning from Erik Smith at EMC. Erik recently announced that <a href="http://brasstacksblog.typepad.com/brass-tacks/2013/04/target-driven-zoning-works.html">TDZ works</a> after a successful test run in a lab. Awesome&#8212;here&#8217;s hoping the vendors involved will push this into the market.</li>
<li>Using iSER (iSCSI Extensions for RDMA) to accelerate iSCSI traffic seems to offer some pretty promising storage improvements (see <a href="http://www.mirantis.com/blog/offloading-cpu-data-traffic-in-openstack-cloud-iscsi-over-rdma/">this article</a>), but I can&#8217;t help but feel like this is a really complex solution that may not offer a great deal of value moving forward. Is it just me?</li>
</ul>
<h3 id="virtualization">Virtualization</h3>
<ul>
<li>Kevin Barrass has <a href="http://communities.vmware.com/blogs/kevinbarrass/2012/11/21/simple-vxlan-lab-on-workstation-viewing-traffic-with-wireshark">a blog post</a> on the VMware Community site that shows you how to create VXLAN segments and then use Wireshark to decode and view the VXLAN traffic, all using VMware Workstation.</li>
<li>Andre Leibovici explains <a href="http://myvirtualcloud.net/?p=4730">how Horizon View Multi-VLAN works and how to configure it</a>.</li>
<li>Looking for a good list of virtualization and cloud podcasts? <a href="http://techhead.co/virtualization-cloud-podcast-directory/">Look no further</a>.</li>
<li>Need Visio stencils for VMware? <a href="http://technodrone.blogspot.com/2013/04/vmware-visio.html">Look no further</a>.</li>
<li>It doesn&#8217;t look like it has changed much from previous versions, but nevertheless some people might find it useful: a &#8220;how to&#8221; on <a href="http://www.howtoforge.com/virtualization-with-kvm-on-a-centos-6.4-server">virtualization with KVM on CentOS 6.4</a>.</li>
<li>Captain KVM (cute name, a take-off of Captain Caveman for those who didn&#8217;t catch it) has a couple of posts on maximizing 10Gb Ethernet on KVM and RHEV (the KVM post is <a href="http://captainkvm.com/2013/04/maximizing-your-10gb-ethernet-in-kvm/">here</a>, the RHEV post is <a href="http://captainkvm.com/2013/04/maximizing-your-10gb-ethernet-in-rhev/">here</a>). I&#8217;m not sure that I agree with his description of LACP bonds (&#8220;2 10GbE links become a single 20GbE link&#8221;), since any given flow in a LACP configuration can still only use 1 link out of the bond. It&#8217;s more accurate to say that aggregate bandwidth increases, but that&#8217;s a relatively minor nit overall.</li>
<li>Ben Armstrong has a write-up on <a href="http://blogs.technet.com/b/virtualization/archive/2013/04/19/how-to-install-integration-services-when-the-virtual-machine-is-not-running.aspx">how to install Hyper-V&#8217;s integration components when the VM is offline</a>.</li>
<li>What are the differences between QuickPrep and Sysprep? Jason Boche&#8217;s <a href="http://www.boche.net/blog/index.php/2013/05/02/quickprep-and-sysprep/">got you covered</a>.</li>
</ul>
<p>I suppose that&#8217;s enough information for now. As always, courteous comments are welcome, so feel free to add your thoughts in the comments below. Thanks for reading!</p>
<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/03/technology-short-take-32/">Technology Short Take #32</a></p>
Similar Posts:<ul><li><a href="http://blog.scottlowe.org/2013/03/05/technology-short-take-30/" rel="bookmark" title="Tuesday, March 5, 2013">Technology Short Take #30</a></li>

<li><a href="http://blog.scottlowe.org/2012/10/05/technology-short-take-25/" rel="bookmark" title="Friday, October 5, 2012">Technology Short Take #25</a></li>

<li><a href="http://blog.scottlowe.org/2012/12/06/technology-short-take-27/" rel="bookmark" title="Thursday, December 6, 2012">Technology Short Take #27</a></li>

<li><a href="http://blog.scottlowe.org/2012/10/29/technology-short-take-26/" rel="bookmark" title="Monday, October 29, 2012">Technology Short Take #26</a></li>

<li><a href="http://blog.scottlowe.org/2013/02/04/technology-short-take-29/" rel="bookmark" title="Monday, February 4, 2013">Technology Short Take #29</a></li>
</ul><!-- Similar Posts took 12.466 ms --><img src="http://feeds.feedburner.com/~r/slowe/content/feed/~4/Tlvi2Xj21Fo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.scottlowe.org/2013/05/03/technology-short-take-32/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://blog.scottlowe.org/2013/05/03/technology-short-take-32/</feedburner:origLink></item>
		<item>
		<title>Potential Fix for Kerberos, SSH, LDAP, and Active Directory Issue</title>
		<link>http://feeds.scottlowe.org/~r/slowe/content/feed/~3/Pwa6K76F1WI/</link>
		<comments>http://blog.scottlowe.org/2013/05/02/potential-fix-for-kerberos-ssh-ldap-and-active-directory-issue/#comments</comments>
		<pubDate>Thu, 02 May 2013 22:07:29 +0000</pubDate>
		<dc:creator>slowe</dc:creator>
				<category><![CDATA[Interoperability]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ActiveDirectory]]></category>
		<category><![CDATA[Kerberos]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://blog.scottlowe.org/?p=3169</guid>
		<description><![CDATA[Although it's been a number of years since I did any Active Directory integration work, readers still contact me with issues. Here's an issue, and the fix, for a reader who recently contacted me.<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/02/potential-fix-for-kerberos-ssh-ldap-and-active-directory-issue/">Potential Fix for Kerberos, SSH, LDAP, and Active Directory Issue</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I had a reader contact me with a question on using Kerberos and LDAP for authentication into Active Directory, based on <a href="http://blog.scottlowe.org/2007/01/15/active-directory-integration-index/">Active Directory integration work</a> I did many years ago. I was unable to help him, but he did find the solution to the problem, and I wanted to share it here in case it might help others.</p>
<p>The issue was that he was experiencing a problem using native Kerberos authentication against Active Directory with SSH. Specifically, when he tried open an SSH session to another system from a user account that had a Kerberos Ticket Granting Ticket (TGT), the remote system dropped the connection with a &#8220;connection closed&#8221; error message. (The expected behavior should have been to authenticate the user automatically using the TGT.) However, when he stopped the SSH daemon and then ran it manually as root, the Kerberos authentication worked.</p>
<p>It&#8217;s been a number of years since I dealt with this sort of integration, so I wasn&#8217;t really sure where to start, to be honest, and I relayed this to the reader.</p>
<p>Fortunately, the reader contacted me a few days later with the solution. As it turns out, the problem was with SELinux. Apparently, by copying the keytab file from a Windows KDC (an Active Directory domain controller), the keytab is considered &#8220;foreign&#8221; because it doesn&#8217;t have the right security context. The fix, as my reader discovered, is to use the <code>restorecon</code> command to reset the security context on the Kerberos files, like this (the last command may not be necessary):</p>
<div>
<pre>restorecon /etc/krb5.conf
restorecon /etc/krb5.keytab
restorecon /root/.k5login</pre>
</div>
<p>Once the security context had been reset, the Kerberos authentication via SSH worked as expected. Thanks Tomas!</p>
<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/02/potential-fix-for-kerberos-ssh-ldap-and-active-directory-issue/">Potential Fix for Kerberos, SSH, LDAP, and Active Directory Issue</a></p>
Similar Posts:<ul><li><a href="http://blog.scottlowe.org/2006/08/21/native-kerberos-authentication-with-ssh/" rel="bookmark" title="Monday, August 21, 2006">Native Kerberos Authentication with SSH</a></li>

<li><a href="http://blog.scottlowe.org/2006/08/29/follow-ups-on-solaris-native-kerberos-authentication/" rel="bookmark" title="Tuesday, August 29, 2006">Follow Ups on Solaris, Native Kerberos Authentication</a></li>

<li><a href="http://blog.scottlowe.org/2006/05/16/follow-up-on-esx-server-integration/" rel="bookmark" title="Tuesday, May 16, 2006">Follow Up on ESX Server Integration</a></li>

<li><a href="http://blog.scottlowe.org/2007/12/04/centos-5-active-directory-integration-problem/" rel="bookmark" title="Tuesday, December 4, 2007">CentOS 5 Active Directory Integration Problem</a></li>

<li><a href="http://blog.scottlowe.org/2006/08/10/kerberos-based-sso-with-apache/" rel="bookmark" title="Thursday, August 10, 2006">Kerberos-Based SSO with Apache</a></li>
</ul><!-- Similar Posts took 10.246 ms --><img src="http://feeds.feedburner.com/~r/slowe/content/feed/~4/Pwa6K76F1WI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.scottlowe.org/2013/05/02/potential-fix-for-kerberos-ssh-ldap-and-active-directory-issue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.scottlowe.org/2013/05/02/potential-fix-for-kerberos-ssh-ldap-and-active-directory-issue/</feedburner:origLink></item>
		<item>
		<title>Spousetivities at IBM Edge 2013</title>
		<link>http://feeds.scottlowe.org/~r/slowe/content/feed/~3/hA9uJZ2FUwk/</link>
		<comments>http://blog.scottlowe.org/2013/05/02/spousetivities-at-ibm-edge-2013/#comments</comments>
		<pubDate>Thu, 02 May 2013 06:16:44 +0000</pubDate>
		<dc:creator>slowe</dc:creator>
				<category><![CDATA[Collaboration]]></category>

		<guid isPermaLink="false">http://blog.scottlowe.org/?p=3166</guid>
		<description><![CDATA[Traveling to IBM Edge 2013? Bring your spouse, domestic partner, or significant other and get them involved in Spousetivities!<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/02/spousetivities-at-ibm-edge-2013/">Spousetivities at IBM Edge 2013</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Regular readers of this site know that my wife, Crystal, runs something called <a href="http://spousetivities.com">Spousetivities</a>. Spousetivities originated out of boredom, essentially&#8212;Crystal was traveling with me to VMworld and wanted to find someone to hang out with while I was at the conference. That was VMworld 2008, and since that time she&#8217;s had activities at <a href="http://blog.scottlowe.org/2009/06/19/vmworld-2009-spouse-activities/">VMworld 2009</a>, <a href="http://blog.scottlowe.org/2010/08/22/vmworld-2010-spouse-activities-calendar/">VMworld 2010</a> (including <a href="http://blog.scottlowe.org/2010/10/01/vmworld-emea-spousetivities-update/">VMworld Europe 2010</a>), VMworld 2011 (both <a href="http://blog.scottlowe.org/2011/07/26/vmworld-2011-spousetivities/">US</a> and <a href="http://blog.scottlowe.org/2011/09/21/spousetivities-at-vmworld-emea-2011/">Europe</a>), and <a href="http://blog.scottlowe.org/2012/07/27/spouse-activities-at-vmworld-2012/">VMworld 2012</a> (US and Europe). She&#8217;s also had activities at EMC World (2011 and 2012), <a href="http://blog.scottlowe.org/2011/11/08/spousetivities-at-hp-discover-vienna/">HP Discover EMEA</a>, and Dell Storage Forum in Boston. This year, she&#8217;s added another conference: IBM Edge 2013 in Las Vegas!</p>
<p>IBM Edge 2013 (conference site <a href="http://www-03.ibm.com/systems/edge/">here</a>) runs from June 10&#8211;14 at Mandalay Bay in Las Vegas. If you are attending IBM Edge 2013 this year, I&#8217;d encourage you to consider bringing your spouse or significant other with you and getting them involved in Spousetivities. As is always the case, Crystal has a great line-up of activities planned for participants, including:</p>
<ul>
<li>The ever-popular &#8220;Getting to Know You&#8221; breakfast on Monday, June 10</li>
<li>A &#8220;Culinary Mystery Tour&#8221; of famous restaurants along the Strip</li>
<li>A tour of Red Rock Canyon Conservation area and highlights of the famous Vegas strip</li>
<li>&#8220;Cooking at the Ranch,&#8221; where you&#8217;ll get to meet Chef Philip Dell of Sin City Chefs and the Food Network&#8217;s show &#8220;Chopped&#8221; (More details <a href="http://spousetivities.com/2013/04/celebrity-chef-ibm-edge-and-spousetivities/">here</a>.)</li>
<li>A Grand Canyon tour</li>
<li>A Hoover Dam tour</li>
<li>A wide variety of spa services from THE Bathhouse, including facials, manicures, massages, and pedicures</li>
</ul>
<p>All in all, it looks like a great week of activities. For the conference attendee, you gain the benefit of being able to spend time with your partner in the evenings without having to worry about them during the day (leaving you to be able to focus on the conference). For the partner traveling with the attendee, you don&#8217;t have to worry about being alone, finding your way around town, or bothering your partner at the conference. It is truly a &#8220;win-win&#8221; for everyone involved.</p>
<p>All these activities have been discounted, thanks to IBM&#8217;s sponsorship of Spousetivities, so I encourage you to visit <a href="http://edge2013-spousetivities.eventbrite.com">the registration page</a> and get signed up as soon as possible.</p>
<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/05/02/spousetivities-at-ibm-edge-2013/">Spousetivities at IBM Edge 2013</a></p>
Similar Posts:<ul><li><a href="http://blog.scottlowe.org/2011/11/08/spousetivities-at-hp-discover-vienna/" rel="bookmark" title="Tuesday, November 8, 2011">Spousetivities at HP Discover Vienna</a></li>

<li><a href="http://blog.scottlowe.org/2012/04/27/spousetivities-at-emc-world-2012/" rel="bookmark" title="Friday, April 27, 2012">Spousetivities at EMC World 2012</a></li>

<li><a href="http://blog.scottlowe.org/2012/05/28/spousetivities-at-a-new-conference/" rel="bookmark" title="Monday, May 28, 2012">Spousetivities at a New Conference</a></li>

<li><a href="http://blog.scottlowe.org/2011/03/07/spousetivities-at-emc-world-2011/" rel="bookmark" title="Monday, March 7, 2011">Spousetivities at EMC World 2011</a></li>

<li><a href="http://blog.scottlowe.org/2012/07/27/spouse-activities-at-vmworld-2012/" rel="bookmark" title="Friday, July 27, 2012">Spouse Activities at VMworld 2012</a></li>
</ul><!-- Similar Posts took 10.577 ms --><img src="http://feeds.feedburner.com/~r/slowe/content/feed/~4/hA9uJZ2FUwk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.scottlowe.org/2013/05/02/spousetivities-at-ibm-edge-2013/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.scottlowe.org/2013/05/02/spousetivities-at-ibm-edge-2013/</feedburner:origLink></item>
		<item>
		<title>On Network Virtualization and SDN</title>
		<link>http://feeds.scottlowe.org/~r/slowe/content/feed/~3/UQ9EyCkJ51c/</link>
		<comments>http://blog.scottlowe.org/2013/04/30/on-network-virtualization-and-sdn/#comments</comments>
		<pubDate>Tue, 30 Apr 2013 23:52:12 +0000</pubDate>
		<dc:creator>slowe</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[SDN]]></category>

		<guid isPermaLink="false">http://blog.scottlowe.org/?p=3162</guid>
		<description><![CDATA[Like the confusion between network overlays and network virtualization, I think there's a great deal of confusion regarding the relationship between SDN and network virtualization. Here are my thoughts.<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/04/30/on-network-virtualization-and-sdn/">On Network Virtualization and SDN</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Is there a difference between network virtualization and Software-Defined Networking (SDN)? If so, what is the relationship between them? Is one a subset of the other? This is a topic that is increasingly being discussed and debated. So, in a similar fashion to my post on <a href="http://blog.scottlowe.org/2013/04/16/network-overlays-vs-network-virtualization/">network overlays vs. network virtualization</a>, I thought I&#8217;d weigh in with some thoughts. This post, like all of my posts, is intended to help spark a conversation, so I encourage you to share your thoughts in the comments after you&#8217;ve finished reading.</p>
<p>Last week I had the opportunity to join John Troyer on the VMware Communities podcast. My purpose, as John put it when he invited me, was to &#8220;gently introduce&#8221; the community to the idea of network virtualization, which is where I now spend most of my time since <a href="http://blog.scottlowe.org/2013/01/25/new-year-new-challenges-new-opportunities/">joining VMware in early February</a>. One of the topics we discussed on the podcast was the relationship between SDN and network virtualization, which sparked <a href="http://virtualizedgeek.com/2013/04/24/networkvirtualizationvssdn/">this blog post</a> by Keith Townsend, one of the attendees. I encourage you to read Keith&#8217;s full blog post, but I think the key point he makes is right here:</p>
<blockquote>
<p>How is this different from Software Defined Networking or SDN? I think VMware (who Scott works for) would like you to consider SDN as just the abstraction of the control plane from the physical plane&#8230;<em><strong>I believe the industry outside of VMware is defining SDN in a broader sense.</strong></em> <em>(emphasis mine)</em></p>
</blockquote>
<p>I&#8217;ll get to the definition of SDN in just a moment, but first let&#8217;s look at the definition of network virtualization. In my earlier post on <a href="http://blog.scottlowe.org/2013/04/16/network-overlays-vs-network-virtualization/">network overlays vs. network virtualization</a>, I provided a definition (taken from <a href="http://blog.scottlowe.org/2013/04/15/openstack-summit-2013-nicira-nvp-deep-dive/">a presentation Dan Wendlandt gave</a> at the OpenStack Summit in Portland) for network virtualization: <em>&#8220;A faithful and accurate reproduction of the physical network that is fully isolated and provides both location independence and physical network state independence.&#8221;</em> Several of the readers of that particular blog post then came up with a definition of a virtualized network: <em>&#8220;A virtualized network is one which can be instantiated, operated, and removed without physical asset interaction by the network manager.&#8221;</em></p>
<p>These definitions are, in my humble opinion, reasonably precise and accurate. They are easy to understand and easy to explain to others who aren&#8217;t familiar with the concept of network virtualization.</p>
<p>With this definition in hand, let&#8217;s compare network virtualization to SDN. To compare network virtualization to SDN, we must first define SDN. So&#8212;how do we define SDN?</p>
<p>There are two definitions we can use for SDN:</p>
<ol>
<li>We can use the original definition when SDN was first coined in 2009.</li>
<li>We can use the definition currently in use within the industry.</li>
</ol>
<p>Let&#8217;s look at the first scenario, and let&#8217;s examine SDN and network virtualization in the context of the original definition of SDN. I&#8217;ve had some discussions with Martin Casado, the so-called &#8220;Father of SDN&#8221; (he&#8217;s going to hate me for using that term&#8212;sorry Martin!), about what SDN meant when it was first coined. According to Martin, the term SDN originally referred to a change in the network architecture to include a) decoupling the distribution model of the control plane from the data plane; and b) generalized rather than fixed function forwarding hardware.</p>
<p>Bruce Davie (Principal Engineer at VMware and long-time networking guru) recently talked with some of the other creators of OpenFlow in preparation for his presentation at ONS 2013. According to the research that Bruce did, the term &#8220;SDN&#8221; was first coined in 2009 to refer specifically to the work being done on OpenFlow. Their original definition of SDN is consistent with Martin&#8217;s definition&#8211;it refers to the decoupling of the control plane from the data plane.</p>
<p>Therefore, if we look at the original definition of SDN&#8212;not VMware&#8217;s definition, but the definition of those involved in the creation of the term in 2009&#8212;it becomes fairly clear that SDN is not the same as network virtualization. Instead, SDN is a tool that can be leveraged in order to create network virtualization. SDN is a tool or a technique that can be used in the creation of virtualized networks and in satisfying the definition of network virtualization. This subtle distinction, by the way, is one that Bruce addressed in <a href="http://networkheresy.com/2013/04/29/netvirt-delivering/">his recent ONS 2013 presentation</a>.</p>
<p>Now, let&#8217;s talk about the second scenario, and let&#8217;s examine SDN and network virtualization in the context of the current industry definition of SDN. The problem that we have here is that &#8220;SDN,&#8221; like &#8220;cloud,&#8221; can really be made to mean just about anything. Think about it: existing protocols like OSPF and BGP (which run in <em>software</em>) manipulate the forwarding rules in the data plane&#8212;does that make them SDN, too? What about NX-OS, JUNOS, or EOS? These are all software&#8212;does that make them SDN? What about having APIs on switches? What about virtualized load balancers? Or virtualized firewalls? Are these SDN too? What about products that existed long before the SDN term was coined in 2009? Are they now SDN? No, we generally don&#8217;t accept all the vast assortment of software that&#8217;s involved in networking today as SDN, because SDN originated as a term to refer to the separation of the control plane from the data plane. I think it&#8217;s telling when Martin Casado indicates that <a href="http://www.enterprisenetworkingplanet.com/netsp/openflow-inventor-martin-casado-sdn-vmware-software-defined-networking-video.html">he doesn&#8217;t even know what SDN means anymore</a>, the term is probably being overused. SDN-washing, anyone?</p>
<p>Therefore, we can&#8217;t take the current industry definition of SDN, because SDN currently means all things to all people. If your company is doing &#8220;something cool&#8221; in networking, it&#8217;s probably going to be called SDN. There is no clear, crisp, understandable definition.</p>
<p>This lack of clarity around &#8220;what is SDN vs. what isn&#8217;t SDN&#8221; is part of the reason, I think, that VMware has converged on the use of network virtualization. This isn&#8217;t just about differentiating itself from all the other SDN players out there, but it&#8217;s also about giving customers something concrete and precise they can understand.</p>
<p>Now, if we want to&#8212;as an industry&#8212;come up with a clearer and more precise definition of SDN, then we can revisit this discussion. In fact, I encourage you to speak up in the comments below with what you might consider would be a useful, clear, precise definition of SDN. Clear definitions and better understanding enable meaningful communication, which can only be beneficial for everyone.</p>
<p>This article was originally posted on <a href="http://blog.scottlowe.org">blog.scottlowe.org</a>. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.<br/><br/><a href="http://blog.scottlowe.org/2013/04/30/on-network-virtualization-and-sdn/">On Network Virtualization and SDN</a></p>
Similar Posts:<ul><li><a href="http://blog.scottlowe.org/2013/05/06/very-early-thoughts-about-emc-vipr/" rel="bookmark" title="Monday, May 6, 2013">Very Early Thoughts about EMC ViPR</a></li>

<li><a href="http://blog.scottlowe.org/2013/04/16/network-overlays-vs-network-virtualization/" rel="bookmark" title="Tuesday, April 16, 2013">Network Overlays vs. Network Virtualization</a></li>

<li><a href="http://blog.scottlowe.org/2013/04/16/openstack-summit-2013-networking-in-the-cloud-an-sdn-primer/" rel="bookmark" title="Tuesday, April 16, 2013">OpenStack Summit 2013: Networking In the Cloud, an SDN Primer</a></li>

<li><a href="http://blog.scottlowe.org/2012/09/11/coms002-next-generation-cloud-infrastructure-with-data-plane-virtualization/" rel="bookmark" title="Tuesday, September 11, 2012">COMS002: Next Generation Cloud Infrastructure with Data Plane Virtualization</a></li>

<li><a href="http://blog.scottlowe.org/2008/08/06/virtualization-interview-posted/" rel="bookmark" title="Wednesday, August 6, 2008">Virtualization Interview Posted</a></li>
</ul><!-- Similar Posts took 8.700 ms --><img src="http://feeds.feedburner.com/~r/slowe/content/feed/~4/UQ9EyCkJ51c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.scottlowe.org/2013/04/30/on-network-virtualization-and-sdn/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://blog.scottlowe.org/2013/04/30/on-network-virtualization-and-sdn/</feedburner:origLink></item>
	</channel>
</rss>
