VLANs und Bridges

Hi,

ich habe eine KVM domain angeschlossen an eine Linux Bridge - der typische Aufbau eben. Diese Bridge geht auf ein VLAN auf einem Bonding Interface raus:

Code:
root@kvm00:~# brctl show br-storage
bridge name     bridge id               STP enabled     interfaces
br-storage              8000.001999a29c94       no              bond0.20
                                                        vnet2
root@kvm00:~# ifconfig bond0.20
bond0.20  Link encap:Ethernet  HWaddr 00:19:99:a2:9c:94  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20963 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8647 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:5796135 (5.5 MiB)  TX bytes:1323873 (1.2 MiB)

root@kvm00:~#

root@kvm00:~# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:19:99:a2:9c:94
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:1b:21:39:95:63
Slave queue ID: 0
root@kvm00:~# 

root@kvm00:~# cat /proc/net/vlan/bond0.20 
bond0.20  VID: 20        REORDER_HDR: 1  dev->priv_flags: 4001
         total frames received        21007
          total bytes received      5799587
      Broadcast/Multicast Rcvd        13910

      total frames transmitted         8687
       total bytes transmitted      1327713
Device: bond0
INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
 EGRESS priority mappings: 
root@kvm00:~#

Wie ihr sehen könnt, hängt an br-storage auf eine VM (vnet2):

Code:
root@garagentor:~# ifconfig eth2
eth2      Link encap:Ethernet  HWaddr 52:54:00:95:38:c8  
          inet addr:172.16.20.1  Bcast:172.16.20.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:fe95:38c8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9693 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5766 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2083567 (1.9 MiB)  TX bytes:1135239 (1.0 MiB)

root@garagentor:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.10.1     0.0.0.0         UG    0      0        0 eth0
172.16.1.0      0.0.0.0         255.255.255.0   U     0      0        0 eth1
172.16.10.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.20.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2
root@garagentor:~#

Von dieser VM aus kann ich auch ein System im Storage Netz pingen:

Code:
root@garagentor:~# ping 172.16.20.20 -c 4
PING 172.16.20.20 (172.16.20.20) 56(84) bytes of data.
64 bytes from 172.16.20.20: icmp_req=1 ttl=64 time=0.281 ms
64 bytes from 172.16.20.20: icmp_req=2 ttl=64 time=0.381 ms
64 bytes from 172.16.20.20: icmp_req=3 ttl=64 time=0.386 ms
64 bytes from 172.16.20.20: icmp_req=4 ttl=64 time=0.343 ms

--- 172.16.20.20 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 0.281/0.347/0.386/0.047 ms
root@garagentor:~#

Die ICMP Packete gehen also

eth2 -> vnet2 -> br-storage -> bond0.20 -> bond0 -> eth0

Vom KVM server aus kann ich auch die ICMP Packete auf der Bridge sehen:

Code:
root@kvm00:~# tcpdump -i br-storage icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br-storage, link-type EN10MB (Ethernet), capture size 65535 bytes
17:58:49.564807 IP 172.16.20.1 > 172.16.20.20: ICMP echo request, id 3364, seq 1, length 64
17:58:49.564982 IP 172.16.20.20 > 172.16.20.1: ICMP echo reply, id 3364, seq 1, length 64
17:58:50.563771 IP 172.16.20.1 > 172.16.20.20: ICMP echo request, id 3364, seq 2, length 64
17:58:50.563884 IP 172.16.20.20 > 172.16.20.1: ICMP echo reply, id 3364, seq 2, length 64
17:58:51.563747 IP 172.16.20.1 > 172.16.20.20: ICMP echo request, id 3364, seq 3, length 64
17:58:51.563860 IP 172.16.20.20 > 172.16.20.1: ICMP echo reply, id 3364, seq 3, length 64
17:58:52.563794 IP 172.16.20.1 > 172.16.20.20: ICMP echo request, id 3364, seq 4, length 64
17:58:52.563921 IP 172.16.20.20 > 172.16.20.1: ICMP echo reply, id 3364, seq 4, length 64

Und jetzt kommts: Vom Hypervisor aus, der ja auch eine IP auf der Bridge aus dem Storage Netz hat, kann ich die 172.16.20.20 _nicht_ pingen!!!

Macht das irgendeinen Sinn für euch?

Grüße
serow
 
Hi, ich weiss woher es kommt, aber vllt könnt ihr mir noch bei der Lösung helfen:

Woher es kommt: Die KVM Server sind mit eth0 und eth1 auf active-backup eingestellt und eth0 ist das aktive Interface. eth0 ist an einen anderen Switch angeschlossen als eth1. Das Gerät aus dem Storage Netz (172.16.20.20) ist genauso angeschlossen, allerdings auf balance-alb eingestellt, sodass er vermutlich die VM (mit er er kommunizieren konnte) über eth0 (gleicher Switch) geschickt hat, während der KVM server selbst über den anderen Switch zugreifen sollte.

Und jetzt die Auflösung: Die Kommunikation zwischen den Switches scheint nicht zu funktionieren, die ja notwendig ist, wenn es passiert wie gerade beschrieben.

Gehe ich auf die Switche und zwinge die KVM Server über andere Switche zu gehen in dem ich entsprechende Ports ausschalte, können sich die KVM Server nicht mehr sehen.

So habe ich es auf den Switches konfiguriert:

- Ports 23 und 24 sind jeweils aneinander anschlossen
- auf beiden Switches habe ich eine Static LAG mit den Ports 23 und 24 angelegt
- hash algorithm auf "SRC MAC+DST MAC"
- inden VLAN Einstellungen habe ich die Ports (das LAG) auf den VLAN Modus "TRUNK" eingestellt
- PVID auf 1
- Wenn ich jetzt in die VLAN Konfig schaue stehen die Ports dort mit "TRUNK" und "TAG".

Irgendeine Idee was mit in der Konfiguration fehlt, damit das funktioniert?

grüße
serow
 
Zurück
Oben