OpenvSwitch bridge és VLAN beállítás

Fórumok

Hi!

Xen doom0-ra tennék OpenvSwitch-et, mert az egyik doomU-m egy átjáró lesz, aminek az egyik lábán több VLAN-nak kell lennie. Több megoldás is létezik, az OpenvSwitch-et szeretném használni majd. Viszont első körben a doom0-ra is kellene egy IP, de jópár próbálgatás után sem szeretne menni, valamit benézek.
Amit eddig csináltam:
=============================
ovs-vsctl add-br xenbr0
ovs-vsctl add-port xenbr0 enp1s0
ovs-vsctl add-port xenbr0 vlan11 tag=11 -- set interface vlan11 type=internal
ip link set xenbr0 up
ip addr add 192.168.1.4/24 dev vlan11
ip link set vlan11 up
============================

Persze, ha "simán" az enp1s0-re húzok egy IP-t megfelelő VLAN-al, akkor ping, ha a fentivel próbálom, akkor nem.
Vagy nagyon nem értettem meg, vagy benézek valamit.

Minden ötletet előre is köszönök!

Hozzászólások

Helló,

Hogy szeretnéd kezelni?

Egy interface legyen a domU-ba, és azon legyen rajta minden vlan, vagy vlanonként külön interfacek?

xenbr0-ra nem kellene ip, csak a vlan11 -ra, azt használnád a dom0-ba, ha jól értem?

Első körbe, hogy a dom0-ba legyen egy külön interfaced amin a kitaggelt vlan van, ez kell kb.:

auto xenbr0
allow-ovs xenbr0
iface xenbr0 inet manual
ovs_type OVSBridge
ovs_ports eth0 vlan11

allow-xenbr0 vlan11
iface vlan11 inet static
ovs_type OVSIntPort
ovs_bridge xenbr0
ovs_options tag=11
ovs_extra set interface ${IFACE} external-ids:iface-id=$(hostname -s)-${IFACE}-vif
address xxx
netmask 255.255.255.0

Haladok, de itt elakadtam ismét:
====================


# ovs-vsctl show
89ba7828-12ba-42fe-8ace-691a0ea77a96
    Bridge "xenbr0"
        Port "xenbr0"
            Interface "xenbr0"
                type: OVSBridge
        Port "enp1s0"
            Interface "enp1s0"
        Port "vlan11"
            tag: 11
            Interface "vlan11"
                type: OVSIntPort
                error: "could not open network device vlan11 (Address family not supported by protocol)"
    ovs_version: "2.8.0"

=============================

Ezzel csináltam:
======
ovs-vsctl add-br xenbr0

ovs-vsctl set interface xenbr0 type=OVSBridge

ovs-vsctl show

ovs-vsctl add-port xenbr0 enp1s0

ovs-vsctl add-port xenbr0 vlan11 tag=11 -- set interface vlan11 type=OVSIntPort
=======================

Az extra paraméter is hiányzik még, annak a megoldását is keresem egyenlőre....

Picit küzdelmesebb lett, mint gondoltam. :-(((
Ubuntu 17.10-ben a netplan-ról visszaálltam a /etc/network/interface-ra, gondolván, hogy jó lesz. Sajna nem. :-(

Kezdjük az alapoknál:
=================


auto xenbr0
allow-ovs xenbr0
iface xenbr0 inet manual
    ovs_type OVSBridge
    ovs_ports enp1s0

=========================

A xenbr0 szépen fel is jön, éljen. Viszont belenézve a "switchbe", már látszik a bajság:
========


ovs-vsctl show
89ba7828-12ba-42fe-8ace-691a0ea77a96
    Bridge "xenbr0"
        Port "xenbr0"
            Interface "xenbr0"
                type: internal
    ovs_version: "2.8.0"

==========================

Tehát a típus nem stimmel! De miért nem?
Sajnos a logban sem látok semmit. :-(

======================


#tail -f /var/log/openvswitch/ovs-vswitchd.log
2018-01-05T15:35:19.048Z|00028|ofproto_dpif|INFO|system@ovs-system: Datapath supports recirculation
2018-01-05T15:35:19.048Z|00029|ofproto_dpif|INFO|system@ovs-system: VLAN header stack length probed as 2
2018-01-05T15:35:19.048Z|00030|ofproto_dpif|INFO|system@ovs-system: MPLS label stack length probed as 1
2018-01-05T15:35:19.048Z|00031|ofproto_dpif|INFO|system@ovs-system: Datapath supports truncate action
2018-01-05T15:35:19.048Z|00032|ofproto_dpif|INFO|system@ovs-system: Datapath supports unique flow ids
2018-01-05T15:35:19.048Z|00033|ofproto_dpif|INFO|system@ovs-system: Datapath does not support clone action
2018-01-05T15:35:19.048Z|00034|ofproto_dpif|INFO|system@ovs-system: Max sample nesting level probed as 10
2018-01-05T15:35:19.048Z|00035|ofproto_dpif|INFO|system@ovs-system: Datapath supports eventmask in conntrack action
2018-01-05T15:35:19.048Z|00036|ofproto_dpif|INFO|system@ovs-system: Datapath supports ct_state
2018-01-05T15:35:19.048Z|00037|ofproto_dpif|INFO|system@ovs-system: Datapath supports ct_zone
2018-01-05T15:35:19.048Z|00038|ofproto_dpif|INFO|system@ovs-system: Datapath supports ct_mark
2018-01-05T15:35:19.048Z|00039|ofproto_dpif|INFO|system@ovs-system: Datapath supports ct_label
2018-01-05T15:35:19.048Z|00040|ofproto_dpif|INFO|system@ovs-system: Datapath supports ct_state_nat
2018-01-05T15:35:19.048Z|00041|ofproto_dpif|INFO|system@ovs-system: Datapath supports ct_orig_tuple
2018-01-05T15:35:19.048Z|00042|ofproto_dpif|INFO|system@ovs-system: Datapath supports ct_orig_tuple6
2018-01-05T15:35:19.048Z|00001|ofproto_dpif_upcall(handler18)|INFO|received packet on unassociated datapath port 0
2018-01-05T15:35:19.051Z|00043|bridge|INFO|bridge xenbr0: added interface xenbr0 on port 65534
2018-01-05T15:35:19.051Z|00044|bridge|INFO|bridge xenbr0: using datapath ID 0000fa7b8c85fe47
2018-01-05T15:35:19.051Z|00045|connmgr|INFO|xenbr0: added service controller "punix:/var/run/openvswitch/xenbr0.mgmt"

==========================================================

Ötlete valakinek?

Előre is köszönöm!

Kezdem nagyon nem érteni. :-((((
A fentebb javasolt sorokat tettem be és hol megy, hol nem, nagyon instabil az egész.
Újraindítást követően inkább nem működik, de többször volt olyan is, hogy ment rendesen, csak épp nem jövök rá, hogy mitől.
Ami miatt nem megy - most - az az, hogy a a bridge-hez nem adódik hozzá a fizikai hálókártya:
===========


# ovs-vsctl show
89ba7828-12ba-42fe-8ace-691a0ea77a96
    Bridge "xenbr0"
        Port "xenbr0"
            Interface "xenbr0"
                type: internal
        Port "vlan11"
            tag: 11
            Interface "vlan11"
                type: internal
    ovs_version: "2.8.0"

===============

Ez látszik a switch-en is:
=====================


ovs-ofctl show xenbr0
OFPT_FEATURES_REPLY (xid=0x2): dpid:0000ded52e78e04f
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
 1(vlan11): addr:42:46:7a:36:47:10
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
 LOCAL(xenbr0): addr:de:d5:2e:78:e0:4f
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0

=========================

Aztán kézzel hozzáadom: ovs-vsctl add-port xenbr0 enp1s0
===============


# ovs-vsctl show
89ba7828-12ba-42fe-8ace-691a0ea77a96
    Bridge "xenbr0"
        Port "xenbr0"
            Interface "xenbr0"
                type: internal
        Port "vlan11"
            tag: 11
            Interface "vlan11"
                type: internal
        Port "enp1s0"
            Interface "enp1s0"
    ovs_version: "2.8.0"

=========================

Már csak up-ba kell tenni az interfacet és jó is: ip link set enp1s0 up

A jelenlegi config: /etc/network/interfaces
==========================


auto xenbr0
allow-ovs xenbr0
iface xenbr0 inet manual
    ovs_type OVSBridge
    ovs_ports enp1s0 vlan11

allow-xenbr0 vlan11
iface vlan11 inet static
ovs_type OVSIntPort
ovs_bridge xenbr0
ovs_options tag=11
ovs_extra set interface ${IFACE} external-ids:iface-id=$(hostname -s)-${IFACE}-vif
address 192.168.1.4
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

=================================

Tipp, ötlet?

A megoldás egyenlőre:
========================


auto xenbr0
allow-ovs xenbr0
iface xenbr0 inet manual
    ovs_type OVSBridge
    ovs_ports vlan11


allow-xenbr0 vlan11
iface vlan11 inet static
    ovs_type OVSIntPort
    ovs_bridge xenbr0
    ovs_options tag=11
    ovs_extra set interface ${IFACE} external-ids:iface-id=$(hostname -s)-${IFACE}-vif
    address 192.168.1.4
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255


iface xenbr0 inet manual
    ovs_type OVSBridge
    ovs_ports enp1s0

allow-xenbr0 enp1s0
iface enp1s0 inet manual
    ovs_bridge xenbr0
    ovs_type OVSPort

=================================

Úgy tűnik az volt a gond, hogy az ovs_ports-nál nem lehet "csak úgy" felsorolni a bridge-be tartozó portokat.

Köszönöm a segítséget és a türelmeteket!