[FreeBSD] bridge ethernet over Gif-Tunnel?

Pagina: 1
Acties:
  • 183 views sinds 30-01-2008
  • Reageer

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
Wat ik zoek is een manier om eigenlijk al het TCP/IP verkeer over een Gif tunnel te sturen.

ik heb 2 interfaces fxp0 en fxp1 en 2 tunnels Gif0 en Gif1

nu kan ik wel op de andere netwerken pingen en direct connect doen echter over de tunnels gaat geen IPX/spx en broadcasts wat ik wel in mijn eigen lan heb (o.a voor games)

na veel lezen op google en google en google + search kwam ik nergens tegen hoe je nu het best een bridge over een Gif0 tunnel zou kunnen maken.


wel vond ik veel over bridging / vlan over een freebsd bak op een intern netwerk maar daar heb ik niks aan omdat mijn 2de lan wat ik wil "toevoegen" op het moment over een Gif0 (ipsec-tunnel) te benanderen is

Tja vanalles


  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

Zoals gezegd in het Professionele Netwerken forum-dingetje, je kunt geen layer2 over die tunnels doen. Je zult tap-tunnels moeten gebruiken, dat zijn namelijk ethernet-tunnels. Die kun je over TCP laten werken dmv vtund.

Als je per se IPSec en gif-tunnels wil gebruiken kun je natuurlijk gewoon de endpoints van de gif-tunnels gebruiken als IP-adressen voor de vtund tunnels :)

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
serkoon schreef op 23 december 2003 @ 22:57:
Zoals gezegd in het Professionele Netwerken forum-dingetje, je kunt geen layer2 over die tunnels doen. Je zult tap-tunnels moeten gebruiken, dat zijn namelijk ethernet-tunnels. Die kun je over TCP laten werken dmv vtund.

Als je per se IPSec en gif-tunnels wil gebruiken kun je natuurlijk gewoon de endpoints van de gif-tunnels gebruiken als IP-adressen voor de vtund tunnels :)
<grijs> ;) ik las dat je het ook over gif tunnels zou moeten kunnen vandaar mijn volharding.

alleen ik vraag me nu af als ik ethernet over de vtun device laat lopen kan dat dan zonder giftunnel ?
heb je al hier eerder mee gewerkt ?

http://vtun.sourceforge.net/ is wel intressant ik gaat het proberen,

heb je er zelf mee gewerkt ? wat is jou ervaring met voor /na-delen ervan ?


_/-\o_ als het inderdaad doet wat ik il ;)

Tja vanalles


  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

Mjah, ik heb 2 tap-tunnels: tussen m'n bak thuis en een remote systeem en vanaf daar weer naar een ander systeem.

De tap-interface thuis:

code:
1
2
3
4
tap0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        inet X.X.88.90 netmask 0xfffffff8 broadcast X.X.88.95
        ether 00:bd:a1:57:9a:00
        Opened by PID 42008


En die remote:

code:
1
2
3
4
tap1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet X.X.88.89 netmask 0xfffffff8 broadcast X.X.88.95
        ether 00:bd:af:53:00:01
        Opened by PID 32442


De tunnel kun je dus zien als een fysiek lan. M'n systeem thuis gebruikt .89 remote als gateway, om traffic heen te routeren. Er staat ook gewoon netjes een arp entry in de arp table voor X.X.88.89..

Ik heb thuis tap0 gebridged met xl0, m'n LAN-interface. Dit heb ik gedaan met netgraph, maar 't kan ook gewoon met de standaard bridging. Als ik nu op m'n tap0 tcpdump, krijg ik bijv. :

code:
1
2
3
4
5
6
tcpdump: listening on tap0
10:37:17.191957 arp who-has 10.0.0.6 (0:0:d4:78:44:9b) tell 10.0.0.1
10:37:38.546872 10.0.0.3.631 > 10.0.0.255.631: udp 115
10:37:40.578262 195.147.105.212 > X.X.88.90: icmp: echo request
10:37:40.578541 X.X.88.90 > 195.147.105.212: icmp: echo reply
10:37:40.599828 arp who-has X.X.88.91 (de:1:8:0:8:f3) tell X.X.88.89


Op 't remote systeem zou ik tap1 nog kunnen bridgen met ed0, zodat mijn lan hier thuis met het lan daar gekoppeld is. Maar dat is niet wat ik wil, maar wat jij wil :)

PS: Vtund zit in de ports, je hoeft dus niet het sourceforge tarretje te pakken ;)

  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 13:18
Yup, vtun is ideaal voor ethernet tunnels. Ik heb het onder Linux in gebruik i.c.m. VLAN's en ethernet bridging. :)

Over IPSec schijn je ook ethernet te kunnen gooien met L2TP (layer 2 tunneling protocol), maar onder Linux kreeg ik in een test een IP (ppp) device in plaats van een ethernet device..

Verwijderd

vso schreef op 24 december 2003 @ 08:49:
[...]


<grijs> ;) ik las dat je het ook over gif tunnels zou moeten kunnen vandaar mijn volharding.

alleen ik vraag me nu af als ik ethernet over de vtun device laat lopen kan dat dan zonder giftunnel ?
heb je al hier eerder mee gewerkt ?

http://vtun.sourceforge.net/ is wel intressant ik gaat het proberen,

heb je er zelf mee gewerkt ? wat is jou ervaring met voor /na-delen ervan ?


_/-\o_ als het inderdaad doet wat ik il ;)
Ik ben een vtun gebruiker en zeer positief :)
Echter is het op een langzame verbinding niet helemaal stabiel.

  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 13:18
Die onstabiliteit is wel af te vangen met een controlescriptje om je tunnel te herstellen bij falen. Merkt je verkeer niets van als het goed is. :)

Verwijderd

Freak_NL schreef op 24 december 2003 @ 16:47:
Die onstabiliteit is wel af te vangen met een controlescriptje om je tunnel te herstellen bij falen. Merkt je verkeer niets van als het goed is. :)
Hij wordt vooral erg traag met zware packetloss.
Maar als ik via tcp /ip de tunnel opzet ipv udp gaat het wel prima.

Het werkt nu wel aardig. Vrienden van me zijn bezig met een vernieuwde versie van vtun. Er zit nog een behoorlijk aantal grote problemen in.

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
ik heb nu vtun geconfigureerd en nu zit ik nog te twisten met de config file,

client /server op het moment heb ik 3 nodes.
tuurlijk probeer ik het eerst met 2 nodes

alleen ik zit met wat vragen

ik draai FreeBSD 4.7 en hoger. samen met ipfw

ik weet niet wat jullie draaien maar mocht iemand met dezelfde config, kan iemand voor mij een config file hoe ik dus de links op kan zetten met 1 server + client. ? in bridged modus ?

moet ik hierbij arp deamon draaien en firewall rules aanpassen ?

ik heb veel gelezen over loops als ik 1 of 2 hosts erbij voeg waar moet ik dan op letten ? ze moeten allemaal bridged ethernet worden en eigenlijk moet het 1 transprant LAN worden.


ik zie vtun als een extra stap in de "evolutie van mijn netwerk"

ik neem aan dat ik ook bv specifieke broadcasts kan filteren ? met firewall rules ?
ik vind het wel positief om jullie reacties te lezen

Tja vanalles


  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

Mijn config op 'server':
code:
1
2
3
4
5
6
7
8
9
10
11
12
thuis {
  proto tcp;
  password *******;
  type ether;
  device tap1;
  up {
        ifconfig"%% X.X.88.89 netmask 255.255.255.248";
  };
  down {
        ifconfig"%% down";
  };
}


En thuis:
code:
1
2
3
4
5
6
7
8
9
10
11
12
thuis {
  proto tcp;
  password ********;
  type ether;
  device tap0;
  up {
        ifconfig"%% X.X.88.90 netmask 255.255.255.248";
  };
  down {
        ifconfig"%% down";
  };
}


Bridgen kan dmv deze sysctls:
net.link.ether.bridge_cfg: xl0:0,tap0:0
net.link.ether.bridge:1
net.link.ether.bridge_ipfw: 1
(als je ipf wil gebruiken kan dat ook, dmv de sysctl net.link.ether.bridge_ipf)

Met bovenstaande sysctls zijn mijn LAN-interface (xl0) en de tunnel (tap0) gebridged. Met ipfw kan er op de bridge worden gefirewalled. Bij mij gaat dat allemaal wat lastig omdat ik routeer over de bridge-interface, maar in jouw geval zou het in principe gewoon moeten werken.

Je hoeft op de bridge dus geen arp daemon te draaien oid, want de ethernet-broadcasts (zoals arp) worden gewoon netjes alle kanten op gestuurd :)

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
nu ik ben het aan het proberen, ik laat je de uitkomst weten !

probleem waar ik tegen aan loop/liep is dat ik eerst het commando
code:
1
ifconfig tapXX create


moet doen voordat hij de tap interfaces aanmaakt

code:
1
2
3
4
tap1: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet x.x.x.45 netmask 0xfffffff8 broadcast x.x.x.47
        inet6 fe80::2bd:4fff:fea4:1%tap1 prefixlen 64 tentative scopeid 0xa
        ether 00:bd:4f:a4:00:01


dit is van de client dat ziet er goed uit maar nu de host

code:
1
2
3
tap1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
        ether 00:bd:54:f4:4c:01
        Opened by PID 1715


dit ziet er niet goed uit


code:
1
ifconfig tap1 inet x.x.x.245 netmask 255.255.255.248


dan weer wel :)

hoe komt dit ?

[ Voor 59% gewijzigd door vso op 29-12-2003 15:09 ]

Tja vanalles


  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

In de vtund-config kun je dus commando's opnemen die uitgevoerd worden als de tunnel up komt of down gaat. Misschien die niet ok?

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
de ifconfig commando's gaan idd niet goed op de server


hieronder staan de scripts, die ik gebruik
1 = server config
2 = client config
3 = apart scriptje om een paar irritante zaken te automatizeren

het probleem is dat vanaf de client alles perfect schijnt te werken kan gewoon pingen elke host

maar vanaf de server(192.168.0.x) kan ik het 192.168.1.x netwerk niet benaderen terwijl andersom het dus wel kan :(


omdat ik niet weet wat/waar het probleem zit post ik zoveel mogelijk info, het 3de script is maar tijdelijk totdat ik een oplossing heb.

o, ja ik heb op de server een tun0 device voor ADSL verbinding

server vtund.conf FreeBSD 4.8
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
options {
  port 5000;            # Listen on this port.

  # Syslog facility
  syslog        daemon;

  # Path to various programs
  ppp           /usr/sbin/pppd;
  ifconfig      /sbin/ifconfig;
  route         /sbin/route;
  firewall      /sbin/ipfw;
  ip            /sbin/ip;
}

# Default session options
default {
  compress no;          # Compression is off by default
  speed 0;              # By default maximum speed, NO shaping
}

lion {
  pass  leef12;         # Password
  type  ether;          # Ethernet tunnel
  device tap1;          # Device tap0
  proto tcp;            # UDP protocol
  comp  lzo:1;          # LZO compression level 1
  encr  no;             # Encryption
  stat  yes;            # Log connection statistic
  keepalive yes;        # Keep connection alive

  up {
        # Connection is Up

        # Assign IP address
        ifconfig "%% create";
    ifconfig "%% inet 192.168.1.254 netmask 255.255.255.0";
        route "-n add -net 192.168.1.0 -iface tap1"
        
    ifconfig tap1 inet 192.168.1.254 netmask 255.255.255.0
  };

  down {
        # Connection is Down
        ifconfig "%% down";
       
  };
}


de client vtund.conf FreeBSD 4.5
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
options {
  port 5000;            # Connect to this port.
  timeout 60;           # General timeout

  # Path to various programs
  ppp           /usr/sbin/pppd;
  ifconfig      /sbin/ifconfig;
  route         /sbin/route;
  firewall     /sbin/ipfw;
}

# Ethernet example. Session 'lion'.
lion {
  pass  leef12;         # Password
  type  ether;          # Ethernet tunnel
  device tap1;          # Device tap1
  proto tcp;


        up {
        # Connection is Up

        # Assign IP address and netmask.
        ifconfig "%% create";
    ifconfig "%% inet 192.168.0.254 netmask 255.255.255.0";
    route "-n add -net 192.168.0.0 -iface tap1";
  };
  down {
        # Connection is Down

        # Shutdown tap device
        ifconfig "%% down";
  };
}


de volgende code is voor zowel client / server alleen vtund -s kan ook vtund lion x.x.x.x zijn, en natuurlijk 192.168.0.254 ipv 192.168.1.254

code:
1
2
3
4
5
6
7
8
#!/bin/sh
ifconfig tap1 create
vtund -s
ifconfig tap1 inet 192.168.1.254 netmask 255.255.255.0
sysctl -w net.link.ether.bridge=1
sysctl -w net.link.ether.bridge_ipfw=1
sysctl -w net.inet.ip.fw.one_pass=1
sysctl -w net.link.ether.bridge_cfg=fxp1:1,tap1:1

Tja vanalles


  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

Probeer eens te tcpdumpen op alle interfaces om te zien waar het mis gaat...

Die ifconfigs in je shell-script zijn trouwens niet nodig, die worden immers al door vtund uitgevoerd :)

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
als ik tcpdump -i tap1 doe dan gaat het van 1 kant naar de andere goed,

dus van "vtund client" naar server gaat alles perfect ik kan pingen en de rest

alleen andersom niet het lijkt alsof hij de andere zijde niet ziet. (
dus van server ---> client is er geen ethernet "bridge"

Tja vanalles


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 18-12-2025

CmdrKeen

Krentenboltosti

offtopic:
Victor?

Bloed, zweet & koffie


  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
offtopic:
ja ?

Tja vanalles


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 18-12-2025

CmdrKeen

Krentenboltosti

offtopic:
* lifting glasses
It is I, Huijgen.

Bloed, zweet & koffie


  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
code:
1
psuedo-device tap


helpt ook :)

* vso had even inspiratie


ifconfig tap1 create is nu verholpen echter ik zit nog steeds met het zelfde probleem ik heb maar 1 kant verkeer op :(

[ Voor 119% gewijzigd door vso op 30-12-2003 16:23 ]

Tja vanalles


  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
oke

het bridgen (oftewel in promisc modus zetten van tap1) client side lukt niet

code:
1
/sbin/sysctl -w net.link.ether.bridge_cfg=fxp1:1,tap1:1


fxp1 is interne netwerk, hoort dit ? kan iemand me verder helpen ?

Tja vanalles


  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

vso schreef op 30 december 2003 @ 16:57:
oke

het bridgen (oftewel in promisc modus zetten van tap1) client side lukt niet

code:
1
/sbin/sysctl -w net.link.ether.bridge_cfg=fxp1:1,tap1:1


fxp1 is interne netwerk, hoort dit ? kan iemand me verder helpen ?
Normaalgesproken gebruikt men voor de eerste bridge '0', niet '1' (dus fxp1:0,tap1:0), maar opzich zou dit vast ook wel moeten werken. Je hebt toch wel "net.link.ether.bridge" op 1 staan he? :P

[ Voor 5% gewijzigd door serkoon op 30-12-2003 18:52 ]


  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
serkoon schreef op 30 december 2003 @ 18:52:
[...]

Normaalgesproken gebruikt men voor de eerste bridge '0', niet '1' (dus fxp1:0,tap1:0), maar opzich zou dit vast ook wel moeten werken. Je hebt toch wel "net.link.ether.bridge" op 1 staan he? :P
code:
1
2
3
4
/sbin/sysctl -w net.link.ether.bridge=1
/sbin/sysctl -w net.link.ether.bridge_ipfw=1
/sbin/sysctl -w net.inet.ip.fw.one_pass=1
/sbin/sysctl -w net.link.ether.bridge_cfg=fxp1:0,tap1:0


toevallig is dit voor beide hosts relevant ze hebben beide fxp1 als home netwerk en tap1 als bridge


nu lijkt het ook zo dat je vanaf de client wel kan pingen maar het netwerk wat aan de client ligt niet naar het server netwerk kan pingen. vreemde situatie allemaal

Tja vanalles


  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
*schopje*

weet niemand waarom ik mijn tap1-device niet in promisc (bridging modus) krijg ??? zoek me nu helemaal wezenloos

Tja vanalles


  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
oke ik zoek me nog steeds rot naar een oplossing waarom 1 [tap] device niet in promisc modus krijg

help ? iemand een goed idee ?

Tja vanalles


Verwijderd

Eej VSO :) Een paar vraagjes:

1) Mag ik de routing tabellen zien van beide systemen
2) Genereerd vtund nog enige output (evt in debugging mode starten)
3) Had je al geprobeert om alle fbsd boxen te upgraden naar 4-stable?

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Topicstarter
@R3boot

nu ik heb de 2 boxen in kwestie geupgrade naar 4.9 stable mbv je scripts echter de make world (rebuldsys.sh) die je gestuurd had die gaat fout dus die moet ik eerst nog gaan debuggen.

Tja vanalles

Pagina: 1