Morgen!
Ich setze auf meinem Server openVPN ein. Weiterhin gibt es auf seiten des Hosts (ist ein virtualisierter dedi) einen vSwitch, der jeden vServer mit den anderen und dem Host verbindet. Ein Internes Netz also.
Jetzt möchte ich, dass VPN und das interne Netz verbunden werden via bridge. Dazu erstmal ein paar Daten:
VPN-Server hat zwei interfaces, eth0 und eth1 (öffentl. IP-Addressen geändert):
eth0: IP 123.123.123.123/29 (Internetzugang)
eth1: IP 10.10.0.1/16 (Interner vSwitch)
Ähnlich sieht es auch bei allen anderen Servern aus.
Weiterhin habe ich via openvpn --mktun --dev tap0 ein TAP-Interface fix erstellt.
Der Server ist ein Debian Squeeze mit installierten bridge-utils, somit ist folgendes Setup theoretisch möglich:
Meine /etc/network/interfaces (öffentl. IPs wieder maskiert, das Subnetz von eth0 könnte hier evtl falsch sein, allerdings ist es in der echten interfaces korrekt angelegt.):
Wenn ich nun auf diesem Server Wireshark starte, und versuche vom Client (10.10.10.1) aus auf den DHCP/DNS/AD-Server (10.10.0.2) zu pingen, bekomme ich timeouts.
Ping von client (10.10.10.1) zu VPN-Server (10.10.0.1) klappt.
Kingt, als wäre die Bridge nicht aktiv (Rahmenbedingung: Alle Server 10.10.0.x sind derzeit über den vSwitch verbunden, und damit vom VPN-Server aus über eth1 zu erreichen. Alle Clients sind via VPN angebungen und somit "physikalisch" auf tap0)... ABER:
Ping vom VPN auf Server 10.10.0.2 sowie zum Client 10.10.10.1 sind möglich
Okay... immernoch evtl. die Bridge...
Ping vom 10.10.0.2 zu 10.10.10.1 => Fehler
Ping vom 10.10.0.2 zu 10.10.0.1 => Klappt
Bridge... Ich nehem an ihr seid sicher? Dann werde ich das widerlegen:
Der Client bekommt von 10.10.0.2 DHCP-Antworten
Symptomatik:
Offensichtlich verschluckt die Bridge eine bestimmte Art von Paketen, sobald sie von eth1 zu tap0 und/oder umgekehrt gebridget müssen.
Also nicht eghen unter anderem DNS und ICMP. Dafür funktioniert aber DHCP...
Wenn ich außerdem einen tracert von 10.10.10.1 auf 10.10.0.2 mache, dauert es erst ein ganzes stück, bevor dann versucht wird über mein Standardgateway dorthin zu gelangen... (Normalerwiese müsste das über das VPN ja sofort gehen...) Die Routen im Windows Client sind korrekt.
Betroffen sind die beiden Netzteile komplett, kein Client via VPN kann keinen Server via vSwitch korrekt erreichen und umgekehrt.
Noch ein paar Details, in der Hoffnung, dass das indize gibt:
Ich habe ein Monitoring mit Wireshark gemacht bzw ich habe mit die NIC-Liste anziegen lassen, wo er die Paketzahlen anzeigt. Bei einer Bridge müssten ja auf eth1, vpn0 und tap0 dieselbe Anzahl Pakete vermittelt werden.
Allerdings sobald ich einen Ping starte, driften die Pakete auseinander: tap0 und vpn0 haben mehr Pakete als eth1 (ping von 10.10.10.1 aus)
Ausgabe von ifconfig (Wieder einige Daten maskiert):
Ausgabe von brctl show:
Soweit mal das und ich hoffe jemand hat eine Idee.
Sorry schonmal für Tippfehler und dergleichen.
UPDATE 10:13 Uhr:
Ein weiteres Monitoring zeigt:
Ping-Paket-Weg:
10.10.10.4 (anderer VPN-Client) -> 10.10.0.1 (tap0) -> vpn0 -> eth1 -> ???
Also ich sehe mit Wireshark das Paket noch auf eth1, danach ist der Weg ungewiss... Ein Test auf dem Zielserver folgt gleich noch... Ein Antwortpaket ist nicht feststellbar.
Ich setze auf meinem Server openVPN ein. Weiterhin gibt es auf seiten des Hosts (ist ein virtualisierter dedi) einen vSwitch, der jeden vServer mit den anderen und dem Host verbindet. Ein Internes Netz also.
Jetzt möchte ich, dass VPN und das interne Netz verbunden werden via bridge. Dazu erstmal ein paar Daten:
VPN-Server hat zwei interfaces, eth0 und eth1 (öffentl. IP-Addressen geändert):
eth0: IP 123.123.123.123/29 (Internetzugang)
eth1: IP 10.10.0.1/16 (Interner vSwitch)
Ähnlich sieht es auch bei allen anderen Servern aus.
Weiterhin habe ich via openvpn --mktun --dev tap0 ein TAP-Interface fix erstellt.
Der Server ist ein Debian Squeeze mit installierten bridge-utils, somit ist folgendes Setup theoretisch möglich:
Meine /etc/network/interfaces (öffentl. IPs wieder maskiert, das Subnetz von eth0 könnte hier evtl falsch sein, allerdings ist es in der echten interfaces korrekt angelegt.):
Code:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 123.123.123.123
netmask 255.255.255.248
network 123.123.123.120
broadcast 123.123.123.130
gateway 123.123.123.121
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 213.133.AAA.AAA 213.133.BBB.BBB 213.133.CCC.CCC
dns-search firesplash.de
iface vpn0 inet static
address 10.10.0.1
netmask 255.255.0.0
network 10.10.0.0
broadcast 10.10.255.255
bridge_ports tap0 eth1
Wenn ich nun auf diesem Server Wireshark starte, und versuche vom Client (10.10.10.1) aus auf den DHCP/DNS/AD-Server (10.10.0.2) zu pingen, bekomme ich timeouts.
Ping von client (10.10.10.1) zu VPN-Server (10.10.0.1) klappt.
Kingt, als wäre die Bridge nicht aktiv (Rahmenbedingung: Alle Server 10.10.0.x sind derzeit über den vSwitch verbunden, und damit vom VPN-Server aus über eth1 zu erreichen. Alle Clients sind via VPN angebungen und somit "physikalisch" auf tap0)... ABER:
Ping vom VPN auf Server 10.10.0.2 sowie zum Client 10.10.10.1 sind möglich
Okay... immernoch evtl. die Bridge...
Ping vom 10.10.0.2 zu 10.10.10.1 => Fehler
Ping vom 10.10.0.2 zu 10.10.0.1 => Klappt
Bridge... Ich nehem an ihr seid sicher? Dann werde ich das widerlegen:
Der Client bekommt von 10.10.0.2 DHCP-Antworten
Symptomatik:
Offensichtlich verschluckt die Bridge eine bestimmte Art von Paketen, sobald sie von eth1 zu tap0 und/oder umgekehrt gebridget müssen.
Also nicht eghen unter anderem DNS und ICMP. Dafür funktioniert aber DHCP...
Wenn ich außerdem einen tracert von 10.10.10.1 auf 10.10.0.2 mache, dauert es erst ein ganzes stück, bevor dann versucht wird über mein Standardgateway dorthin zu gelangen... (Normalerwiese müsste das über das VPN ja sofort gehen...) Die Routen im Windows Client sind korrekt.
Betroffen sind die beiden Netzteile komplett, kein Client via VPN kann keinen Server via vSwitch korrekt erreichen und umgekehrt.
Noch ein paar Details, in der Hoffnung, dass das indize gibt:
Ich habe ein Monitoring mit Wireshark gemacht bzw ich habe mit die NIC-Liste anziegen lassen, wo er die Paketzahlen anzeigt. Bei einer Bridge müssten ja auf eth1, vpn0 und tap0 dieselbe Anzahl Pakete vermittelt werden.
Allerdings sobald ich einen Ping starte, driften die Pakete auseinander: tap0 und vpn0 haben mehr Pakete als eth1 (ping von 10.10.10.1 aus)
Ausgabe von ifconfig (Wieder einige Daten maskiert):
Code:
root@vpnserver:~# ifconfig -a
eth0 Link encap:Ethernet Hardware Adresse 00:0c:29:XX:XX:XX
inet Adresse:123.123.123.123 Bcast:123.123.123.130 Maske:255.255.255.248
inet6-Adresse: <<nicht von belangen>> Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:32695 errors:0 dropped:0 overruns:0 frame:0
TX packets:46728 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:8028945 (7.6 MiB) TX bytes:13795404 (13.1 MiB)
eth1 Link encap:Ethernet Hardware Adresse 00:0c:29:XX:XX:XX
BROADCAST MULTICAST MTU:1500 Metrik:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:758 (758.0 B) TX bytes:894 (894.0 B)
lo Link encap:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
UP LOOPBACK RUNNING MTU:16436 Metrik:1
RX packets:2928 errors:0 dropped:0 overruns:0 frame:0
TX packets:2928 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:410863 (401.2 KiB) TX bytes:410863 (401.2 KiB)
pan0 Link encap:Ethernet Hardware Adresse 56:8a:55:XX:XX:XX
BROADCAST MULTICAST MTU:1500 Metrik:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
tap0 Link encap:Ethernet Hardware Adresse aa:0e:22:XX:XX:XX
inet6-Adresse: fe80::a80e:22ff:fe64:7d88/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:19084 errors:0 dropped:0 overruns:0 frame:0
TX packets:651 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:100
RX bytes:5516894 (5.2 MiB) TX bytes:85936 (83.9 KiB)
vpn0 Link encap:Ethernet Hardware Adresse 00:0c:29:XX:XX:XX
inet Adresse:10.10.0.1 Bcast:10.10.255.255 Maske:255.255.0.0
inet6-Adresse: fe80::20c:29ff:fe11:8436/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:19080 errors:0 dropped:0 overruns:0 frame:0
TX packets:631 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:5249430 (5.0 MiB) TX bytes:82577 (80.6 KiB)
Ausgabe von brctl show:
Code:
root@vpn:~# brctl show
bridge name bridge id STP enabled interfaces
pan0 8000.000000000000 no
vpn0 8000.000c29118436 no eth1
tap0
Soweit mal das und ich hoffe jemand hat eine Idee.
Sorry schonmal für Tippfehler und dergleichen.
UPDATE 10:13 Uhr:
Ein weiteres Monitoring zeigt:
Ping-Paket-Weg:
10.10.10.4 (anderer VPN-Client) -> 10.10.0.1 (tap0) -> vpn0 -> eth1 -> ???
Also ich sehe mit Wireshark das Paket noch auf eth1, danach ist der Weg ungewiss... Ein Test auf dem Zielserver folgt gleich noch... Ein Antwortpaket ist nicht feststellbar.
Last edited by a moderator: