Undeterministische Verbindungsverluste mit Linuxfirewall, Bonding und Ciscoswitch
Hi! Ich bin gestern ueber ein interessantes Problem gestolpert, dass ich noch nicht ganz zuordnen kann. Hintergrund: Wir haben vor ein paar Wochen unsere Haupt-Firewall auf eine neue Maschine umgezogen, die per Bonding (beide Anschluesse einer e1000 PCI-X-Karte (64Bit x 133MHz)) an einen Cisco 3560. Ueber den Channel laeuft ein Trunk mit im Moment 12 Vlans mit unseren internen Netzen. Der externe Anschluss haengt an ner anderen e1000 PCI-X-Karte (64Bit x 100MHz) und noch nen Heartbeat-Cross-Link ueber eine der onBoard e1000 (32Bit x 66MHz). Seitdem wir von einer einzelnen Strippe zum Channel gewechselt haben, haben wir Probleme mit unserem Symantec Live State Delivery Server. (Windows Installationsserver und Softwareverteilung) Wenn zwei Interfaces im Bonding aktiv sind, schafft es der PC-DOS basierte LSD Client nicht mehr ueber ein vermutlich eigenes Protokoll Logdaten an den Server zu schreiben. Macht man manuell in 'net use' bekommt man eine Verbindung und kann auch Problemlos Daten schreiben. Das gleiche Verhalten tritt undeterministisch ueber TCP und UDP auf (zwei verschiedene LSD-Client Versionen). Gleichzeitig braucht das LSD-Admin-Tool, mit dem man den Server verwalten kann, 5 - 15 Sekunden um eine Verbindung mit dem Server herzustellen. All diese Probleme sind schlagartig weg, wenn man das zweite Interface aus den Bonding nimmt. Auf Firewallseite sieht das so aus: | auto bond0 | iface bond0 inet manual | pre-up ifconfig bond0 up | post-up ifenslave bond0 eth2 eth3 | pre-down ifenslave -d bond0 eth2 eth3 | post-down ifconfig bond0 down | | iface bond0.xxx | [...] Auf Ciscoseite sieht das so aus: ----- schnipp ------ | interface GigabitEthernet0/45 | description TR_Chan_fw2 | switchport access vlan 101 | switchport trunk encapsulation dot1q | switchport trunk allowed vlan <liste> | switchport mode trunk | channel-group 1 mode on | spanning-tree portfast | end | ! | interface GigabitEthernet0/46 | description TR_Chan_fw2 | switchport access vlan 101 | switchport trunk encapsulation dot1q | switchport trunk allowed vlan <liste> | switchport mode trunk | channel-group 1 mode on | spanning-tree portfast | end | ! | interface Port-channel1 | description Channel-fw2-int | switchport access vlan 101 | switchport trunk encapsulation dot1q | switchport trunk allowed vlan <liste> | switchport mode trunk | end ----- schnipp ------ | cat3560-d2#show etherchannel 1 detail | Group state = L2 | Ports: 2 Maxports = 8 | Port-channels: 1 Max Port-channels = 1 | Protocol: - | Ports in the group: | ------------------- | Port: Gi0/45 | ------------ | | Port state = Down Not-in-Bndl | Channel group = 1 Mode = On/FEC Gcchange = - | Port-channel = null GC = - Pseudo port-channel = Po1 | Port index = 0 Load = 0x00 Protocol = - | | Age of the port in the current state: 00d:21h:15m:13s | | Port: Gi0/46 | ------------ | | Port state = Up Mstr In-Bndl | Channel group = 1 Mode = On/FEC Gcchange = - | Port-channel = Po1 GC = - Pseudo port-channel = Po1 | Port index = 0 Load = 0x00 Protocol = - | | Age of the port in the current state: 29d:17h:18m:57s | | Port-channels in the group: | --------------------------- | | Port-channel: Po1 | ------------ | | Age of the Port-channel = 29d:20h:50m:36s | Logical slot/port = 10/1 Number of ports = 1 | GC = 0x00000000 HotStandBy port = null | Port state = Port-channel Ag-Inuse | Protocol = - | | Ports in the Port-channel: | | Index Load Port EC state No of bits | ------+------+------+------------------+----------- | 0 00 Gi0/46 On/FEC 0 | | Time since last port bundled: 00d:21h:15m:13s Gi0/45 | Time since last port Un-bundled: 00d:21h:12m:56s Gi0/45 ----- schnapp ------ Google hat mir einiges von zwei Channel Protokollen: | cat3560-d2(config-if)#channel-protocol ? | lacp Prepare interface for LACP protocol | pagp Prepare interface for PAgP protocol Ich habe einige Configbeispiele gesehen, dass die lacp aktivieren. Mir hat sich leider noch nicht erschlossen, was die beiden Protokolle bewirken und welches ich ggf. nutzen will. Lange Rede kurzer Sinn: Hat wer ne Idee, wie man das ganze Setup in einen deterministisch funktionierenden Zustand bringt bzw. wo/warum es so nicht geht? Ciao Max
Teilnehmer (3)
-
Florian Lohoff
-
Jan 'RedBully' Seiffert
-
Maximilian Wilhelm