Re: [ovs-discuss] password in plain text?!

2019-02-01 Thread Grant Taylor via discuss

On 02/01/2019 03:44 AM, Riccardo Ravaioli wrote:
Why is the mailing list memberships reminder sending me my password in 
plain text? That's not too nice... :)


That is how Mailman operates.  (At least the 2.x versions that I've 
subscribed to.)



Can that be fixed?


You can modify your subscriber preferences to not receive the monthly 
reminder email, which includes your password.


You can take your concerns about the fact that Mailman is storing 
passwords in an unhashed to the Mailman maintainers.




--
Grant. . . .
unix || die



smime.p7s
Description: S/MIME Cryptographic Signature
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] ARP issues with KVM and OVS..?

2019-01-06 Thread Grant Taylor via discuss

On 1/4/19 3:19 PM, Alexander Witte wrote:

Hi!


Hi Alex,


Environment: KVM Fedora

I have a weird issue where a VM can ping one way through the open vswitch 
but the other way doesn't seem to want to go through.  The setup is 
like this:


VM1 --> OVS --> VM2.

VM1 has two interfaces: interfaceA is tagging a VLAN in the VM. 
InterfaceB has no tagging anywhere.


So VM1 interfaceA is adding 802.1Q VLAN tagging inside the guest OS. 
Correct?


Is OvS doing any filtering?  Or is it trying to handle all traffic, 
tagged and untagged from the guest as best as it can?


VM2 has two interfaces: interfaceA is being tagged (in OVS) with the 
same VLAN as VM1.  Interface B has no VLAN.


So VM2 interfaceA is untagged and OvS is assigning a Port VLAN ID (PVID) 
to the untagged traffic that's coming into OvS.  Correct?


Is OvS doing any filtering?

Are interfaces A and interfaces B in the same VLAN in OvS?  Or are they 
in different VLANs?


Interface B can ping through both ways fine.  InterfaceA can ONLY ping 
through Centos --> Cisco.  Pinging in the other direction does not work.


Please clarify what CentOS & Cisco are in this context.  You've been 
saying VM1 & VM2.  Are CentOS & Cisco the names of the VMs 
(respectively?)?  Or are you also trying to connect from OvS out to the 
real world and talk to a physical Cisco device?


We traced it to arp replies not making it back through the OVS in one 
direction.  Pretty weird.


Please elaborate on which way traffic works.  Also, please elaborate on 
what tcpdump (et al) shows on the interfaces when pinging either direction.



I can ping one way but not the other way.


What happens if you clear the ARP cache?  Do things work?  Or is this by 
chance a bigger issue?


The OVS ports are being created dynamically.  I'm defining some libvirt 
network XMLs that have portgroups in them that are assigned to an OVS. 
Then I do a virt-install to create the VMs which places the NICs in the 
portgroups on the OVS.  So I create the OVS ports dynamically when the 
VM boots.  OVS-VSCTL show looks fine.  If needed I can paste it here 
(just gotta clean it up a bit since I've been experimenting).


Sadly, I don't know enough about how libvirt interfaces with OvS to 
comment.  Though I should do some reading as I'd like to start using it 
with libvirt.  -  I'd appreciate any pointers you have handy to what you 
followed.  (I've not gone looking yet.)


I'm curious if this is common issue/user mistake or are there some 
gotchas when doing this with KVM virtual machines...?  Do these need to 
be hardcoded as TAP interfaces or INTERNAL interfaces.


I would be quite surprised if you needed to hard code anything, be it 
TAP or internal interfaces.  I would /think/ that you would want to use 
internal interfaces.  At least that's what I use for all my manually 
created network namespaces (proto containers).


If this is not a common problem/resolution are there any specific commands 
I can run to paste here to give any willing helper some more insight?


I'd like to see the pertinent parts of the output from "ovs-vsctl show" 
while both VM1 and VM2 are running and connected.  Please state which 
OvS interfaces belong to which VM & associated guest interface.



Things I've tried:

-Removing the VLAN tag.


I would expect that you would need to remove the tagging from the guest 
OS in VM1 and the port tagging from the OvS port connected to VM2.



-Separating the two interfaces to separate OpenvSwitches.


I would think that you could connect the interfaces to the same OvS as 
long as they were in non-overlapping VLANs.  I.e. interfaces A playing 
with VID 11 and interfaces B in VLAN .



Any help is greatly appreciated!


I don't know if it's related at all.  But I've had a problem creep into 
my sandbox workstation configuration (it's probably a kernel nob that i 
fobbed without realizing it) where I have to disable Rx & Tx offload on 
my OvS (internal) interface.  If I don't do that, (I /think/) I am able 
to ARP & ping, but TCP (I notice it with SSH) connections establish and 
then subsequently stall & ultimately fail to pass traffic.  Disabling Rx 
& Tx offload on the OvS (internal) interface returns things to normal. 
Note:  This is the OvS (internal) interface from the host, not the OvS 
interfaces for the guests.




--
Grant. . . .
unix || die



smime.p7s
Description: S/MIME Cryptographic Signature
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] Single nic server and ovn

2018-12-19 Thread Grant Taylor via discuss

On 12/19/2018 02:51 PM, Vasiliy Tolstov wrote:
I know about that, but if ovs have panics/crushes or misconfigured i can' 
get access to my server via ethernet


Fair concern.

I've not personally experienced problems with OvS.  But I'm not pushing it.

You might consider something like MACVLAN and / or IPVLAN.  Let them 
provide one connection for the local system and another connection for OvS.


I know you can also do things with Linux native bridges, but that seems 
sort of antithetical to the purpose of OvS and this discussion list. 
¯\_(ツ)_/¯




--
Grant. . . .
unix || die



smime.p7s
Description: S/MIME Cryptographic Signature
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] Single nic server and ovn

2018-12-19 Thread Grant Taylor via discuss

On 12/18/2018 11:56 PM, Vasiliy Tolstov wrote:
Hi, i have some servers that have only one nic for network. As i 
understand for ovn i need to add this interface to ovs bridge.
But for host access i need some ip address on server and also if ovs or 
ovn is down or something else with this services i can't connect to server.


I have multiple machines with a single interface (or single logical that 
is multiple physicals bonded).  It works well.


How to deal with such case? Or only one thing is to create localnet port 
in ovn?


I add the interface(s) to OvS and use an internal OvS port to assign my 
IP(s) to.


5ff87006-3e41-4204-94f5-ad44a8f9d5a8
Bridge "eth0"
Port "eth0"
Interface "eth0"
type: internal
Port "lab1"
tag: 101
Interface "lab1"
type: internal

I have my management IP(s) on the eth0 internal (logical) interface.

I then use other internal ports for various different things.

It works great.

IMHO, OvS is somewhat better, especially when bonding and using VLANs. 
OvS handles those more cleanly than needing to create a bond interface 
and VLAN sub-interfaces on top of the bond.




--
Grant. . . .
unix || die



smime.p7s
Description: S/MIME Cryptographic Signature
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] Physical interface vs interface under OVS bridge Performance/throughput impact

2018-11-15 Thread Grant Taylor via discuss

On 11/15/2018 07:48 AM, Ben Pfaff wrote:
No.  (Why would running OVS in the simplest way increase the performance 
cost?)


Is it possible that there's slightly more overhead in the algorithm(s) 
of the simple L2 learning functionality of the "NORMAL" action? 
Compared to simple rules that explicitly match the frame and specify an 
action?  (Assuming that there aren't any other flows before the 
aforementioned flows would match and act.)




--
Grant. . . .
unix || die



smime.p7s
Description: S/MIME Cryptographic Signature
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] how to use ovs bridge without using OpenFlow switch?

2018-10-04 Thread Grant Taylor via discuss

On 10/04/2018 03:27 AM, Vikas Kumar wrote:
Note: somewhere i read that ovs can be used as a simple ethernet bridge 
also.


It is possible to use Open vSwitch as a bridge without an OpenFlow 
controller.  The OvS bridge will default to (what OpenFlow calls) a 
"NORMAL" bridge.  I think this is what you are asking for.




--
Grant. . . .
unix || die



smime.p7s
Description: S/MIME Cryptographic Signature
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] What is the best way to map a VTEP flow to an internal port?

2018-09-21 Thread Grant Taylor via discuss

On 09/21/2018 02:48 PM, Ben Pfaff wrote:

No.  A port can be an internal port or a vxlan port.  It can't be both.


Thank you for the confirmation.

Maybe you should use flows instead of OVSDB configuration.  Flows can 
also direct packets from one port to another.  I guess that this would 
be easy for a controller to set up.


I have been testing OpenFlow rules to match the in_port to assign the 
tunnel_id.  It seems to be working in my manual testing.  I just need to 
figure out a way to automatically configure things.




--
Grant. . . .
unix || die



smime.p7s
Description: S/MIME Cryptographic Signature
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] What is the best way to map a VTEP flow to an internal port?

2018-09-18 Thread Grant Taylor via discuss

Hi Ben,

Thank you for the reply.

On 09/17/2018 10:29 PM, Ben Pfaff wrote:

Something like this?  I have not tested it.

ovs-vsctl add-port br0 port0 -- set interface port0 type=internal -- set port 
port0 tag=100
ovs-vsctl add-port br0 port1 -- set interface port1 type=internal -- set port 
port1 tag=101
ovs-vsctl add-port br0 vtep0 -- set interface vtep0 type=vxlan 
options:remote_ip=192.0.2.1 options:key=100 tag=100
ovs-vsctl add-port br0 vtep1 -- set interface vtep1 type=vxlan 
options:remote_ip=192.0.2.1 options:key=101 tag=101


If I'm reading this correctly, it looks like you're assigning VLANs to 
(internal) ports and VTEPs.  Thus you are relying on VLANs.


Is there no way to assign a VNI directly to the (internal) port?

I don't foresee running out of VIDs per vSwitch.  But I'm being lazy and 
applying parsimony and would like to avoid VLANs if they aren't necessary.


I'd ideally like to apply options:key=123 to the (internal) port.  But I 
think that failed when I tried it.




--
Grant. . . .
unix || die



smime.p7s
Description: S/MIME Cryptographic Signature
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


[ovs-discuss] What is the best way to map a VTEP flow to an internal port?

2018-09-15 Thread Grant Taylor via discuss
What is the best way to map a specific flow ID coming in a VTEP to a 
specific internal port?


# ovs-vsctl add-br br0

# ovs-vsctl add-port br0 port0 -- set interface port0 type=internal -- 
set port port0 tag=100


# ovs-vsctl add-port br0 port1 -- set interface port1 type=internal -- 
set port port1 tag=101


# ovs-vsctl add-port br0 vtep0 -- set interface vtep0 type=vxlan 
options:remote_ip=192.0.2.1 options:key=flow


I want VNI / flow 100 to go to port0 and VNI / flow 101 to go to port1.

Do I need to map the VNIs to a VLAN (possibly via OpenFlow?) and then 
assign a VLAN to the internal port?


Is there a way to associate an internal port with a specific VNI / flow 
like there is a a way to associate a specific VLAN (tag=$VID)?




--
Grant. . . .
unix || die



smime.p7s
Description: S/MIME Cryptographic Signature
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] Complex, for me at least, setup with multiple hosts

2018-09-09 Thread Grant Taylor via discuss

On 09/09/2018 02:12 PM, Vassilis Aretakis wrote:
I have a LAN which is accessible by 3 servers. I would like to allow 
specific internet hosts to use this lan.


Okay.

Because I want ot have multiple links and All hosts to receive multicast 
etc. I thought of using multiple openvswitches on the hosts which has 
access to this lan, and use also VXLAN to make a mesh network (MAybe I 
am thinking wrong).


I don't know if I would call what I'm thinking of as a mesh per say. 
Certainly wouldn't call it a full mesh.


It sounds like you want to create an OvS on each of the three servers, 
each with eth1 as a member port, and a OvS on each of the VMs.  Then add 
OvS VTEPs between:


 - Server1 & VM1
 - Server1 & VM2
 - Server2 & VM1
 - Server2 & VM2
 - Server3 & VM1
 - Server3 & VM2

I think you want to NOT have VTEPs between the servers or the VMs.

It's my understanding that your goal / motivation is to get multicast 
traffic from the private LAN to the VMs.  Correct?


I think that you are going to want to do /something/ to prevent loops. 
I think the minimum is STP.  Hopefully the private LAN switch is the 
root.  I'm guessing that STP will pick one of the links between the 
servers and each VM as the forwarding link and put the links to the 
other servers into a blocking state.


I'm sure there are other things you can do with SDN to prevent the 
looping too.


That should extend the broadcast domain from the private LAN to the VMs.

I don't know what or how multicast will effect this.

When I began with building this with double GRE tunnels I ended up 
causing a mess instead of me Mesh.


Okay.

If you see the diagram example, I tried to make VM1 and VM2 to be able 
to access PRIVATE LAN, but I failed.

would you have a suggested setup? in order to pass traffic using SRV1/2/3?



   Private LAN
  ---+--- - - -
 |
+--+--+--+---+--+--+
|  |  | eth1 |  |  |
|  |  +--+  |  |
|  ||  |
|  |br0 |  |
|  ||  |
|  |  +--+  |  |
|  |  | vm1  +-+
|  +--+--+--+  |   :
|  |   :
| Server1  |   :
|  |   :
| +--+ |   :
| | eth0 | |   :
+-+--+---+-+   :
 | V
  ---+--- - - -X
   InternetL
  ---+--- - - -A
 | N
+-+--+---+-+   :
| | eth0 | |   :
| +--+ |   :
|  |   :
|   VM1|   :
|  |   :
|  +--+--+--+  |   :
|  |  | s1   +-+
|  |  +--+  |  |
|  ||  |
|  |br0 |  |
|  ||  |
+--++--+

Server1:vm1 and VM1:s1 are the interconnected VTEPs.

Obviously the OvSs on the systems would have additional VXLAN 
connections as described above.


That would make br0 on VM1 be an extension of the Private LAN.



--
Grant. . . .
unix || die



smime.p7s
Description: S/MIME Cryptographic Signature
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] tap ports...

2018-03-07 Thread Grant Taylor via discuss

On 03/07/2018 12:56 PM, Ben Pfaff wrote:
Q: I created a tap device tap0, configured an IP address on it, and 
added it to a bridge, like this::


$ tunctl -t tap0
$ ip addr add 192.168.0.123/24 dev tap0
$ ip link set tap0 up
$ ovs-vsctl add-br br0
$ ovs-vsctl add-port br0 tap0

I expected that I could then use this IP address to contact other hosts 
on the network, but it doesn't work.  Why not?


This does not relate to my question any more than the term collisions of 
"tap" and "OVS".


A: The short answer is that this is a misuse of a "tap" device.  Use an 
internal" device implemented by Open vSwitch, which works differently 
and is designed for this use.  To solve this problem with an internal 
device, instead run:


I am quite happily using internal ports for VMs.

Internal ports will not work for thinks like OpenVPN User-Mode Linux.

Both OpenVPN and UML expect to open the unix socket file (descriptor) 
and receive Ethernet frames.  They do not work with a traditional 
network interface, like an OVS "internal" port.


Even more simply, you can take advantage of the internal port that every 
bridge has under the name of the bridge::


$ ovs-vsctl add-br br0
$ ip addr add 192.168.0.123/24 dev br0
$ ip link set br0 up


I agree with the statement, but it has no relation to my question.

In more detail, a "tap" device is an interface between the Linux (or BSD) 
network stack and a user program that opens it as a socket.


I'm very well aware of that.  That is the exact behavior that I'm wanting.

When the "tap" device transmits a packet, it appears in the socket opened 
by the userspace program.  Conversely, when the userspace program writes 
to the "tap" socket, the kernel TCP/IP stack processes the packet as if 
it had been received by the "tap" device.

That is exactly what my understanding of a tap interface is used for.

It's close cousin, the tun interface, behaves quite similar, save for 
the fact that it operates at layer 3 with IP packets between the 
interface and the unix socket.


Consider the configuration above.  Given this configuration, if you "ping" 
an IP address in the 192.168.0.x subnet, the Linux kernel routing stack 
will transmit an ARP on the tap0 device.


I would expect such transmitted ping (or more likely an associated ARP 
request) to come out the unix socket that a user space program like 
OpenVPN or UML would process.  -  Unrelated to my question.


Open vSwitch userspace treats "tap" devices just like any other network 
device; that is, it doesn't open them as "tap" sockets.


That's what I expected.


That means that the ARP packet will simply get dropped.


I'd think the dropping or not has more to do with what opens the tap's 
associated unix socket and very little to do with OVS.  -  In the case 
you are describing.


You might wonder why the Open vSwitch kernel module doesn't intercept the 
ARP packet and bridge it.


Nope, not at all.

After all, Open vSwitch intercepts packets on other devices.  The answer 
is that Open vSwitch only intercepts received packets, but this is a 
packet being transmitted.  The same thing happens for all other types 
of network devices, except for Open vSwitch "internal" ports.  If you, 
for example, add a physical Ethernet port to an OVS bridge, configure 
an IP address on a physical Ethernet port, and then issue a "ping" to an 
address in that subnet, the same thing happens: an ARP gets transmitted 
on the physical Ethernet port and Open vSwitch never sees it.


This is what I would expect.


(You should not do that, as documented at the beginning of this section.)


IMHO the start of your reply gave an example alternative example, and 
this paragraph confirmed what I expected would be the case.


However, that being said, I have had plenty of times that I have done 
this very thing with Linux kernel native bridges for various reasons. 
Frequently the service IP would live on a bridge and the maintenance IP 
(in a different subnet) lived on the underlying Ethernet interface.  It 
worked perfectly fine.  Granted, I had to be aware of the caveat that 
you outlined.  -  My point being, there are times when it is okay (maybe 
sub-optimal) to put an IP on a member interface instead of the bridge 
device itself.


It can make sense to add a "tap" device to an Open vSwitch bridge, if some 
userspace program (other than Open vSwitch) has opened the tap socket.


This is the EXACT type of scenario that I was asking about.  OpenVPN and 
UML (et al) opening the unix socket with their associated network 
interfaces connected to an OVS bridge.


This is the case, for example, if the "tap" device was created by KVM 
(or QEMU) to simulate a virtual NIC.  In such a case, when OVS bridges 
a packet to the "tap" device, the kernel forwards that packet to KVM in 
userspace, which passes it along to the VM, and in the other direction, 
when the VM sends a packet, KVM writes it to the "tap" socket, which 
causes OVS to rec

[ovs-discuss] tap ports...

2018-03-05 Thread Grant Taylor via discuss
Can OVS create tap ports like OpenVPN or KVM (Qemu) or User Mode Linux 
use?  I.e. an Ethernet interface inside OVS and a socket that 
applications can glom onto and use.


I think I can create the tap interfaces manually (via tunctl or ip 
tuntap…) and then add them to a bridge.  However I feel like this is 
unnecessary and may very well be something that OVS can do without the 
separate devices.


Hence my question if OVS can create (internal) tap interfaces, much the 
same way that it can create (internal) vEth (like) interfaces.




--
Grant. . . .
unix || die



smime.p7s
Description: S/MIME Cryptographic Signature
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] OpenVswitch

2018-03-01 Thread Grant Taylor via discuss

On 02/28/2018 09:00 PM, Chris Boley wrote:

I've been tinkering with OVS on Ubuntu 16.04 with the libvirt hypervisor.


Tinkering ~> learning is always a good thing.

I've gotten the XML based networks defined in the hypervisor and I've 
gotten the host to understand it's interfacing with OVS.


:-)

So I'm hitting some sticking points that are starting to make me feel 
well.. "thick".


That's a weekly, if not daily, occurrence for me.


I built the bridge.

"sudo ovs-vsctl add-br vbridge0"

I set up an external bond port on the bridge.
ovs-vsctl add-bond vbridge0 vbond0 eth0 eth1 lacp=active 
other_config:lacp_time=fast trunks=2,3    *#*#I'm kind of confused about 
the trunks=2,3 part Do I really need that to pass the tagged frames to 
the Cisco Switch?


See Scott's reply.


That's brings up the bond "vbond0 tied to my vswitch0


Does it actually bring the vbond0 interface up?  Or just create it?


My config in my cisco switch is a standard 2 port etherchannel.
with the good ole:
switchport trunk encapsulation dot1q
switchport mode trunk

Switch#sh mac ad
Switch#sh mac address-table | i Po1
    2    5254.0071.b1b6    DYNAMIC     Po1   << here's my VM
    1    0004.23d7.bd0c    DYNAMIC     Po1
    1    0004.23d7.bd0d    DYNAMIC     Po1

I have my libvirt network defined, when I do an "ovs-vsctl show" it 
looks like this:

cboley@VMHOST:~$ sudo ovs-vsctl show
126a4b57-4837-42a9-95d6-d818b35e95bd
    Bridge "vbridge0"
    Port "vbond0"
    trunks: [2, 3]
    Interface "eth1"
    Interface "eth2"
    Port "vbridge0"
    Interface "vbridge0"
    type: internal
    Port "vnet0"
    tag: 2
    Interface "vnet0"
    ovs_version: "2.5.2"


That all seems reasonable enough.

What I'm "thick" about is the fact that unless I run the following 
commands my bridge just won't work.

manually at the CLI of the VM host I must run.
ifconfig vbridge0 up


I'd expect that you would need to bring the vbridge0 interface up. 
Hence my question above.


modprobe 8021q    <<< I know why that's happening and it's an easy fix.. 
just stick it in the interfaces file.

vconfig add vbridge0 2
vconfig add vbridge0 3


Won't this create two additional VLAN sub-interfaces?  vbridge0.2 and 
vbridge0.3


Are  you actually using those interfaces?  Or are you by chance defining 
them and not actually using them?


I sort of feel like bringing the vbridge0 interface up is the crux.

Also, doesn't OVS handle 802.1q VLAN tagging internally?  Won't that 
work without the 802.1q module loaded in the kernel?



After I do that my VM's have conectivity.


ACK

So after all that said, I know my vbridge0 doesn't come up without 
help.. I'm not an expert, I'm just muttling through info.


Muddling and tinkering are good things.  Just learn the why along the way.

I've been using a lot of helpful info from blog.scottlowe.org 
 BTW. His info really saved my tail with libvirt.


Yep, I've learned a LOT from Scott's blog, and I have good interactions 
with him on Twitter.


Should I assume it's to just create the bridge and the bond in the 
interfaces file manually like this instead?


I'm used to OVS creating network interfaces that the OS then works with. 
 This includes bringing the interfaces up ("ifconfig $interface up" or 
"ip link set dev $interface up") and assigning IP addresses to them.


OVS has always remembered the existence of the interface and reproduced 
that upon reboot.


OR can I create the vbridge0 under and OVS command and make it come up 
automatically with OVS commands that I'm missing?


I'm not aware of a way to have OVS bring an interface up.  I've always 
done that with the OS native tools.  -  Perhaps that's just my ignorance.


Though, given that the interface was up when OVS shuts down, and OVS 
remembers the state, I'm inclined to think that OVS can't actually set 
the interfaces up.


BTW.. I'm not reinvening anything and can't take credit for this idea. 
Some really smart person (not me ;D ) posted this:

https://zcentric.com/2014/07/07/openvswitch-kvm-libvirt-ubuntu-vlans-the-right-way/


$ReadingList++


Any guidance on how I can or should proceed would be greatly appreciated!
Thanks in advance...


I don't know if it will help or not, but that's my take on things.



--
Grant. . . .
unix || die



smime.p7s
Description: S/MIME Cryptographic Signature
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] OpenVswitch

2018-02-25 Thread Grant Taylor via discuss

On 02/25/2018 07:54 AM, Chris Boley wrote:
Sorry Grant, I think I replied directly to you the first time around. I 
forgot the Reply All.


Things happen.

Correct, *INLINE_IPS* filtering and dropping traffic. To the IPS VM it 
would look like two ethernet interfaces that were members of a 
transparent bridge.


Well, /almost/ transparent bridge.  ;-)


Here goes.. apologies for the lengthy explanation:

It all comes down to port count..I don’t want to run any more hardware 
than necessary.


Okay.

I think I was assuming that you would be bringing a physical port in, 
adding it to a bridge, which would then have another port connected to 
the VM.  Thus the inquiry about bypassing the bridging and just 
connecting the physical port to the VM directly.


…continuing to read your reply…

I’m trying to do a concept build for an All in 1 kind of thing. It 
hinges around virtualization of a couple OS’s.  This is meant for a 
SOHO environment with 25-50 users where load wouldn’t likely be much 
of an issue at all.


ACK

HOST: I’m running a supermicro server with Ubuntu 16.04 / libvirt 
based hypervisor, an 8 core Atom based proc, 32 gigs of ram 4 built in 
Intel nic’s onboard.


I'd like to know more details about the Supermicro server as it may fit 
desires that I have.  ;-)


GUESTS: 5 VM’s were planned to run as guests on this hardware. One 
Ubuntu guest running LogAnalyzer/syslog server, one Ubuntu guest running 
NFSEN, one vyOS router, and a Suricata based IPS porting it’s logs 
out via Syslog to the LogAnalyzer instance. Lastly a tiny instance 
of Ubuntu running Arpwatch to detect / log new hosts plugging into a 
customer network.


Okay.  I think I track most of that.  I'm having trouble placing NFSEN 
at the moment.  I want to say I ran across it while messing with NetFlow 
years ago.


…reading…

There are 4 intel nic’s that come onboard with the server. (My desire 
is to avoid adding NIC’s.)


Fair.


There would be 2 OVS logical bridges vbridge0 and vbridge1

One nic was to go to the mgmt of the host. 2 nics were to be bridged / 
linked to separate trunk ports on a Cisco 48 port 3750G to handle all 
traffic going to the guests I mentioned and internal user traffic 
connected to the vbridge1. The 3750g would handle access layer for 
physical computers running on the LAN.


Unless I'm missing something, that's three ports and vbridge1.

I'm not seeing the 4th port or vbridge0 yet.

…

The internal VM guests including the IPS would have nics that would be 
tap interfaces. Like this: ovs-vsctl add-port vswitch0 vnic0 tag=10 -- 
ovs-vsctl set interface vnic0 type=internal (vnic0 being the tap IF).


Okay.

Aside:  Do you need the second ovs-vsctl?  I thought you could run all 
of that as one command with the double dash separating commands to 
ovs-vsctl.  (Maybe that's what you're doing and it didn't translate well 
to email.)


The IPS will be a transparent bridge between the Logical OVS bridges. (a 
bridge within a bridge within a bridge ;D ) <== I might run into hiccups 
here as I don't know how OVS will react to a VM bridging two logical 
bridges??


I'm still not seeing vbirdge0 connected to anything other than the 
output of the IPS VM.


I don't feel like we've gone quite as far as Inception.  Maybe we need 
to give the switch stack a kick.  ;-)


Tap interfaces comes up via the /etc/network/interfaces   on the host. 
(the ones coming into the IPS would be tuned the same for the driver 
manipulation and the rest would be basic) (I’d also have to do the same 
for the virtio nics in the IPS VM to get continuity of nic behavior in 
all areas of the connectivity)


Okay.

The last host port was planned to be bridged directly to the WAN interface 
meant for the WAN side of the vyOS router so I could plug it into the 
WAN directly for sake of ease.


Is this where vbridge0 comes into play?

If vbridge0 is just to connect eth0 to the VyOS guest VM, i.e. the 
following ASCII diagram, this is where I'm suggesting foregoing the bridge.


[eth0]---[vbridge0]---[VyOS]

I'd be inclined to remove the bridge and just do this directly:

[eth0]---[VyOS]

Why does [vbridge0] need to be there?  Is it doing anything other than 
enabling what is effectively a point-to-point connection between eth0 
and VyOS?


Are you wanting to leverage other features of OVS, i.e. insturmentation, 
of the data flowing between eth0 and VyOS?


My concept is my own hair brained idea but I think it can be done without 
too much headache. Once perfected it would just be an install process. 
I just want to make sure that as traffic comes into the host, that 
the host nic driver isn’t modifying the packets before they hit 
the IPS. This may not even work but if it does, I could potentially 
save a bunch of money in discreet server costs and cut down on power 
use immensely. A single supermicro server like this with 6 terabytes 
of raid 5 space is less than 1500 USD. A cisco 3750G is cheap these 
days. Or upgrade to a 2960-X which is a defa

Re: [ovs-discuss] OpenVswitch

2018-02-24 Thread Grant Taylor via discuss

On 02/24/2018 01:52 PM, Chris Boley wrote:
I wanted to set up OVS to support a couple of interfaces belonging to an 
IPS VM.


Okay.

Is this going to be inline as in traffic flowing in one interface and 
out another interface to the rest of the network?  Thus a true Intrusion 
/Prevention/ System that will filter traffic?


Or are you really monitoring two different interfaces and action more 
like an Intrusion /Detection/ System?


First, I'm only just learning about OVS so please forgive any dumb 
questions I might submit due to my not understanding how this software 
behaves.


We all start somewhere.

I'm rather new to OVS myself.

I have in the past brought up a libvirt based VM and bridged a physical 
host interface to the eth0 belonging to the virtual machine like this:


Aside:  Why are you passing the traffic through a bridge instead of 
giving the interface directly to the VM?



auto br1               # eth0 on the IPSVM is tied to this bridge

iface br1 inet manual
bridge_ports eno2
post-up ifconfig eno2 mtu 1520
post-up ifconfig eno2 promisc
post-up ethtool -G eno2 rx 4096
post-up ethtool -K eno2 rx off tx off sg off tso off ufo off gso off gro 
off lro off rxvlan off txvlan off ntuple off rxhash off

post-up ethtool -N eno2 rx-flow-hash udp4 sdfn
post-up ethtool -N eno2 rx-flow-hash udp6 sdfn
post-up ethtool -C eno2 rx-usecs 1 rx-frames 0
post-up ethtool -C eno2 adaptive-rx off
bridge_stp off
bridge_maxwait 0
post-down brctl delbr br1


To me, you're doing three very distinct things: 1) adding eno2 to a 
bridge (via ip or brctl, under the hood) 2) changing some interface 
settings with ifconfig, and 3) changing other interface settings with 
ethtool.


You may have a point (elsewhere in your message) about the interface 
inheriting some settings from the bridge, thus the need to (re)set them 
after associating the interface with the bridge.  I've never needed to 
do anything quite like this, so I can't comment.



Now for the main part of the question.
In:     ovs-vsctl add-port vbridge0 eno2

What's the stanza look like to give it all the ethtool options and 
ifconfig options that I put on eno2 via the bridge commands as shown above?
Is there a way to add "ovs-vsctl set interface " to 
create an equivalent config?


IMHO you are replacing the Linux bridge with OVS, meaning #1 above.  I 
don't see why you can't still do #2 and #3 above like you have been. 
(Granted, you'll need to update syntax.)


Or would I simply bring up the interface manually via 
/etc/network/interfaces


Like:
auto eno2
iface eno2 inet manual
post-up ifconfig $IFACE up
post-up ifconfig $IFACE mtu 1520
post-up ifconfig $IFACE promisc
post-up ethtool -G $IFACE rx 4096
post-up ethtool -K $IFACE rx off tx off sg off tso off ufo off gso off 
gro off lro off rxvlan off txvlan off ntuple off rxhash off

post-up ethtool -N $IFACE rx-flow-hash udp4 sdfn
post-up ethtool -N $IFACE rx-flow-hash udp6 sdfn
post-up ethtool -C $IFACE rx-usecs 1 rx-frames 0
post-up ethtool -C $IFACE adaptive-rx off
bridge_stp off
bridge_maxwait 0
pre-down ifconfig $IFACE down


That's what I've done with member interfaces for bridges or other higher 
layer networks before.  E.g. bridging VLAN (sub)interface of a bond 
connection across multiple physical NICs.


I don't think that OVS changes this much.  -  But I could be wrong.

Then:  ovs-vsctl add-port vbridge0 eno2   #and it would maintain all the 
attributes I brought it up with manually?


In my experience you won't actually need to ovs-vsctl add-port more than 
once.  I think OVSDB remembers that eno2 was part of vbridge0 and will 
automatically add it when OVS (re)starts.  -  At least that's been my 
experience.


I've always operated under the pretense that when a bridge grabs an 
interface, the interface becomes a slave to the bridge and has to assume 
all of the bridges default settings.


You may be on to something here.  As stated above, I don't have any 
experience one way or the other.


So I'm thinking that bringing up eno2 manually with all those settings 
and adding the port eno2 after the fact would be a waste of time. I was 
thinking I would have to get OVS to set the attributes to the interface 
as it would be master over the slaved interface en02.


I can see how the bridge might reset something like MTU, but I doubt 
that the bridge will modify things like offloading, et al.


I'd make the changes, add the interface to the bridge, and then check 
the settings.  See if adding the interface to the bridge actually 
changed any of the settings that you care about.



Clear as mudd?


You call that mud?

I've had dirtier water from a glass at the surface of the Mississippi.  ;-)


I'm hoping what I wrote made sense.


I think I understood what you're asking about.

I hope that my reply makes sense and is not completely and totally 
inaccurate.


I have concern about all the NIC attributes because IPS systems really 
only perform correctly if all these attributes are applied to the 
i