Difference between pages "Open vSwitch" and "Welcome"

From Funtoo
(Difference between pages)
Jump to navigation Jump to search
(update)
 
 
Line 1: Line 1:
== Open vSwitch ==
<div class="container" style="font-family: Open Sans; font-size: 14px; line-height: 20px;"><div class="row"><div class="col-xs-12 col-md-8 col-lg-8">
{{Slideshow}}
</div><div class="col-xs-12 col-md-4 col-lg-4">
'''Funtoo Linux''' is a Linux-based operating system that is a variant of [http://en.wikipedia.org/wiki/Gentoo_Linux Gentoo Linux], led by [[User:Drobbins|Daniel Robbins]] (the creator and former Chief Architect of Gentoo) who serves as benevolent dictator for life (BDFL) of the project. ''Funtoo Linux is optimized for the best possible performance, supporting Intel Core i7, AMD FX Processors, and others.''  [[Subarches|See what we support.]] See [[#Distinctives|Distinctives]], below, for more information about what makes us special.


Open vSwitch is a production quality, multilayer virtual switch licensed under the open source Apache 2.0 license. It is designed to enable massive network automation through programmatic extension, while still supporting standard management interfaces and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In addition, it is designed to support distribution across multiple physical servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V.
'''Other Funtoo Projects include''':
*  '''[[Keychain]]''', an SSH/GPG agent front-end.
* '''[[Metro]]''', automated Funtoo build engine.
* '''[[Linux_Fundamentals,_Part_1|Learn Linux]]'''! [[Awk_by_Example,_Part_1|Awk]], [[Bash_by_Example,_Part_1|Bash]], [[Sed_by_Example,_Part_1|Sed]]  and more.


=== Features ===


The current stablerelease of Open vSwitch (version 1.4.0) supports the following features:
'''Ebuild pages recently updated:''' {{#ask: [[Category:Ebuilds]]
| order=descending
| sort=Modification date
| format=list
| limit=10
| searchlabel=
}} [[Ebuilds|more...]]


* Visibility into inter-VM communication via NetFlow, sFlow(R), SPAN, RSPAN, and GRE-tunneled mirrors
'''Want to submit a screenshot? [http://forums.funtoo.org/index.php?/topic/180-screenshots/ See here.]'''
* LACP (IEEE 802.1AX-2008)
</div></div><div class="row"><div class="col-xs-12">
* Standard 802.1Q VLAN model with trunking
{{Announce|[[Support Funtoo]] and help us grow! '''Donate $15 per month and get a free SSD-based [[Funtoo Hosting|Funtoo Virtual Container]].'''}}
* A subset of 802.1ag CCM link monitoring
</div></div><div class="row"><div class="col-xs-12 col-md-4 col-lg-4">
* STP (IEEE 802.1D-1998)
=== News ===
* Fine-grained min/max rate QoS
{{NewsList|3}}
* Support for HFSC qdisc
[[News|View More News...]]
* Per VM interface traffic policing
* NIC bonding with source-MAC load balancing, active backup, and L4 hashing
* OpenFlow protocol support (including many extensions for virtualization)
* IPv6 support
* Multiple tunneling protocols (Ethernet over GRE, CAPWAP, IPsec, GRE over IPsec)
* Remote configuration protocol with local python bindings
* Compatibility layer for the Linux bridging code
* Kernel and user-space forwarding engine options
* Multi-table forwarding pipeline with flow-caching engine
* Forwarding layer abstraction to ease porting to new software and hardware platforms


== Configuring Open vSwitch ==
=== Expand the wiki! ===


Open vSwitch needs to be compiled with the kernel modules (modules USE flag) for kernel versions <3.3, since 3.3.0 it is included in the kernel as a module named "Open vSwitch" and can be found in kernel at '''Networking Support -> Networking Options -> Open vSwitch'''. Then just emerge openvswitch with
The [[:Help:Funtoo_Editing_Guidelines | How to 'wiki']] will help get you started on wiki editing. Have a look at [[Requested-Documents]] and [[:Category:Needs_Updates | pages that need to be updated.]]


<pre>
See [[:Category:Ebuilds|Ebuilds]] for a list of all ebuild pages, and [[Adding an Ebuild to the Wiki]] for information on how to add one.
# emerge -avt openvswitch
</div><div class="col-sm-12 col-xs-12 col-md-4 col-lg-4">
</pre>
=== Distinctives ===


== Using Open vSwitch ==
Funtoo Linux is a meta-distribution, which means it is built (fully automatically) with the functionality and optimizations that ''you'' want, not what some distro maintainer thought was best for you. Packages are installed directly from source code, thanks to the [http://en.wikipedia.org/wiki/Portage_(software) Portage ports system], inspired by the FreeBSD ports system, written in Python and with full advanced package management functionality.


These Configs are taken from the Open vSwitch website at http://openvswitch.org and adjusted to funtoo's needs
''Benefits for desktops'': leaner, optimized, faster system. ''Additional benefits for servers'': enable only what you actually need to reduce attack surface, thus improving security.


=== VLANs ===
We use [http://en.wikipedia.org/wiki/Git_(software) Git] for all our development, and we also use Git to deliver our ports tree to you.


==== Setup ====
In contrast to Gentoo Linux, we offer a number of innovations, including our extensive use of git, [[Funtoo 1.0 Profile|our profile system]], [[Package:Boot-Update|boot-update]] boot management tool, our incredibly flexible [[Funtoo Linux Networking|template-based networking scripts]], [[Metro Quick Start Tutorial|Metro]] distribution build system, support of Debian, RHEL and other kernels, [[Creating_Python-related_Ebuilds|enhanced Python support]], Portage mini-manifests, user-centric distribution model, and a large number of community infrastructure improvements.
</div><div class="col-sm-12 col-xs-12 col-md-4 col-lg-4">
=== Getting Started ===


* Two Physical Networks
'''[[Funtoo Linux Installation|Install Funtoo Linux]]''' and get involved in our user community. Get to know fellow users on our '''[http://forums.funtoo.org forums]'''. Funtoo Linux has a very active [http://en.wikipedia.org/wiki/IRC IRC] community on [http://freenode.net Freenode] (in the <code>#funtoo</code> channel) and you are encouraged to hang out with us.
** Data Network: Eternet network for VM data traffic, which will carry VLAN tagged traffic between VMs. Your physical switch(es) must be capable of forwarding VLAN tagged traffic and the physical switch ports should be VLAN trunks (Usually this is default behavior. Configuring your physical switching hardware is beyond the scope of this document).
** Management Network: This network is not strictly required, but it is a simple way to give the physical host an IP address for remote access, since an IP address cannot be assigned directly to eth0.
* Two Physical Hosts
Host1, Host2. Both hosts are running Open vSwitch. Each host has two NICs:
** eth0 is connected to the Data Network. No IP address can be assigned on eth0
** eth1 is connected to the Management Network (if necessary). eth1 has an IP address that is used to reach the physical host for management.
* Four VMs
VM1, VM2 run on Host1. VM3, VM4 run on Host2.
Each VM has a single interface that appears as a Linux device (e.g., "tap0") on the physical host. (Note: for Xen/XenServer, VM interfaces appear as Linux devices with names like "vif1.0").
[[image:2host-4vm.png]]


==== Goal ====
'''[[Reporting Bugs|We welcome bug reports and suggestions]]'''.  Please report bugs to our '''[http://bugs.funtoo.org bug tracker]'''. We take all bugs seriously, and all work performed is tracked on our bug tracker, for purposes of transparency.


Isolate VMs using VLANs on the Data Network.
'''{{CreateAccount}}''', which allows you to log in to the wiki, [http://forums.funtoo.org forums] and [https://bugs.funtoo.org bug tracker]. See the [[Funtoo Authentication FAQ|Auth FAQ]] for more info about account creation.
VLAN1: VM1, VM3
VLAN2: VM2, VM4


==== Configuration ====
'''See our [[Funtoo Linux FAQ|FAQ]] for answers to common questions.'''
Perform the following configuration on Host1:
# Create an OVS bridge <pre>ovs-vsctl add-br br0</pre>
# Add eth0 to the bridge (by default, all OVS ports are VLAN trunks, so eth0 will pass all VLANs) <pre>ovs-vsctl add-port br0 eth0</pre>
# Add VM1 as an "access port" on VLAN1 <pre>ovs-vsctl add-port br0 tap0 tag=1</pre>
# Add VM2 on VLAN2 <pre>ovs-vsctl add-port br0 tap0 tag=2</pre>
On Host2, repeat the same configuration to setup a bridge with eth0 as a trunk <pre>ovs-vsctl add-br br0
ovs-vsctl add-port br0 eth0</pre>
# Add VM3 to VLAN1 <pre>ovs-vsctl add-port br0 tap0 tag=1</pre>
# Add VM4 to VLAN2 <pre>ovs-vsctl add-port br0 tap0 tag=2</pre>


=== sFlow ===
Other resources include [http://larrythecow.org larrythecow.org], the Gentoo blog aggregator, [http://kernel-seeds.org kernel-seeds.org], and [http://git.funtoo.org git.funtoo.org], our cgit repository browser.
This will setup a VM traffic Monitor using sFlow.
</div></div></div>
==== Setup ====
* Two Physical Networks
** Data Network: Eternet network for VM data traffic.
** Management Network: This network must exist, as it is used to send sFlow data from the agent to the remote collector.
* Two Physical Hosts
** Host1 runs Open vSwitch and has two NICs:
*** eth0 is connected to the Data Network. No IP address can be assigned on eth0.
*** eth1 is connected to the Management Network. eth1 has an IP address for management traffic (including sFlow).
** Monitoring Host can be any computer that run the sFlow collector. Here we use [http://www.inmon.com/products/sFlowTrend.php sFlowTrend], a free sFlow collector, a simple cross-platform Java tool. Other sFlow collectors should work equally well.
*** eth0 is connected to the Management Netowrk: eth0 has an IP address that can reach Host1.
* Two VMs
VM1, VM2 run on Host1. Each VM has a single interface that appears as a Linux device (e.g., "tap0") on the physical host. (Note: same for Xen/XenServer as in the VLANs section.)
[[image:sflow-setup.png]]


==== Goal ====
__NOTITLE__
Monitor traffic sent to/from VM1 and VM2 on the Data network using an sFlow collector.
__NOEDITSECTION__
{{#subobject:|slideIndex=0|slideCaption=
<h4>h3nnn4n</h4>


==== Configuration ====
Awesome WM / Conky / screenfetch
Define the following configuration values in your shell environment. The default port for sFlowTrend is 6343. You will want to set your own IP address for the collector in the place of 10.0.0.1. Setting the AGENT_IP value to eth1 indicates that the sFlow agent should send traffic from eth1's IP address. The other values indicate settings regarding the frequency and type of packet sampling that sFlow should perform.
|slideImage=File:H3nnn4n.jpg}}
<pre>
{{#subobject:|slideIndex=1|slideCaption=
# export COLLECTOR_IP=10.0.0.1
<h4>Help us document the Gentoo Ecosystem!</h4>
# export COLLECTOR_PORT=6343
From Enoch to Gentoo to Funtoo to ChromeOS, and beyond...
# export AGENT_IP=eth1
|slideImage=File:Ecosystem-snapshot.jpg|slideLink=Gentoo Ecosystem}}
# export HEADER_BYTES=128
{{#subobject:|slideIndex=2|slideCaption=
# export SAMPLING_N=64
<h4>brushdemon</h4>
# export POLLING_SECS=10
</pre>
Run the following command to create an sFlow configuration and attach it to bridge br0:
<pre>
ovs-vsctl -- -id=@sflow create sflow agent=${AGENT_IP} target=\”${COLLECTOR_IP}:${COLLECTOR_PORT}\” header=${HEADER_BYTES} sampling=${SAMPLING_N} polling=${POLLING_SECS} — set bridge br0 sflow=@sflow
</pre>
That is all. To configure sFlow on additional bridges, just replace "br0" in the above command with a different bridge name.
To remove sFlow configuration from a bridge (in this case, 'br0'), run:
<pre>
ovs-vsctl remove bridge br0 sflow $SFLOWUUID
</pre>
To see all current sets of sFlow configuration parameters, run:
<pre>
ovs-vsctl list sflow
</pre>


=== QoS Rate-limiting ===
OpenBox / screenfetch
|slideImage=File:brushdemon.jpg}}
{{#subobject:|slideIndex=3|slideCaption=
<h4>drobbins</h4>
 
[[GNOME First Steps|GNOME 3.14]]  / [[Funtoo_Linux_FAQ#Do_you_support_systemd.3F|without systemd]] / Badgers optional
|slideImage=File:gnome3122.jpg|slideLink=GNOME First Steps}}
 
{{#subobject:|slideIndex=4|slideCaption=
<h4>spectromas</h4>
 
[[Package:Awesome_(Window_Manager)|Awesome WM]]
|slideImage=File:awesome.jpg|slideLink=Package:Awesome (Window Manager)}}
 
{{#seo:
|title=Funtoo Linux
|keywords=funtoo,linux,gentoo,Daniel Robbins
|description=Funtoo Linux is a Gentoo-based OS that uses a git-based Portage tree. Run by Daniel Robbins, creator of Gentoo.
}}

Revision as of 04:54, January 2, 2015

Funtoo Linux is a Linux-based operating system that is a variant of Gentoo Linux, led by Daniel Robbins (the creator and former Chief Architect of Gentoo) who serves as benevolent dictator for life (BDFL) of the project. Funtoo Linux is optimized for the best possible performance, supporting Intel Core i7, AMD FX Processors, and others. See what we support. See Distinctives, below, for more information about what makes us special.

Other Funtoo Projects include:


Ebuild pages recently updated: {{#ask: | order=descending | sort=Modification date | format=list | limit=10 | searchlabel= }} more...

Want to submit a screenshot? See here.

   {{{title}}}
{{{body}}}

News

Ego-2.2.0 Released

User:Drobbins
2017-10-18 by
Drobbins

Latest Innovations

This news item documents the latest innovations now available under Funtoo Linux.
2017-09-07 by Drobbins
More... View More News...

Expand the wiki!

The How to 'wiki' will help get you started on wiki editing. Have a look at Requested-Documents and pages that need to be updated.

See Ebuilds for a list of all ebuild pages, and Adding an Ebuild to the Wiki for information on how to add one.

Distinctives

Funtoo Linux is a meta-distribution, which means it is built (fully automatically) with the functionality and optimizations that you want, not what some distro maintainer thought was best for you. Packages are installed directly from source code, thanks to the Portage ports system, inspired by the FreeBSD ports system, written in Python and with full advanced package management functionality.

Benefits for desktops: leaner, optimized, faster system. Additional benefits for servers: enable only what you actually need to reduce attack surface, thus improving security.

We use Git for all our development, and we also use Git to deliver our ports tree to you.

In contrast to Gentoo Linux, we offer a number of innovations, including our extensive use of git, our profile system, boot-update boot management tool, our incredibly flexible template-based networking scripts, Metro distribution build system, support of Debian, RHEL and other kernels, enhanced Python support, Portage mini-manifests, user-centric distribution model, and a large number of community infrastructure improvements.

Getting Started

Install Funtoo Linux and get involved in our user community. Get to know fellow users on our forums. Funtoo Linux has a very active IRC community on Freenode (in the #funtoo channel) and you are encouraged to hang out with us.

We welcome bug reports and suggestions. Please report bugs to our bug tracker. We take all bugs seriously, and all work performed is tracked on our bug tracker, for purposes of transparency.

Create a Funtoo account, which allows you to log in to the wiki, forums and bug tracker. See the Auth FAQ for more info about account creation.

See our FAQ for answers to common questions.

Other resources include larrythecow.org, the Gentoo blog aggregator, kernel-seeds.org, and git.funtoo.org, our cgit repository browser.


{{#subobject:|slideIndex=0|slideCaption=

h3nnn4n

Awesome WM / Conky / screenfetch |slideImage=File:H3nnn4n.jpg}} {{#subobject:|slideIndex=1|slideCaption=

Help us document the Gentoo Ecosystem!

From Enoch to Gentoo to Funtoo to ChromeOS, and beyond... |slideImage=File:Ecosystem-snapshot.jpg|slideLink=Gentoo Ecosystem}} {{#subobject:|slideIndex=2|slideCaption=

brushdemon

OpenBox / screenfetch |slideImage=File:brushdemon.jpg}} {{#subobject:|slideIndex=3|slideCaption=

drobbins

GNOME 3.14 / without systemd / Badgers optional |slideImage=File:gnome3122.jpg|slideLink=GNOME First Steps}}

{{#subobject:|slideIndex=4|slideCaption=

spectromas

Awesome WM |slideImage=File:awesome.jpg|slideLink=Package:Awesome (Window Manager)}}

{{#seo: |title=Funtoo Linux |keywords=funtoo,linux,gentoo,Daniel Robbins |description=Funtoo Linux is a Gentoo-based OS that uses a git-based Portage tree. Run by Daniel Robbins, creator of Gentoo. }}