Date: Sun, 2 Jun 2002 01:07:35 +1000 (EST) From: <steve@pipenetworks.com> To: <m_evmenkin@yahoo.com> Cc: <freebsd-net@freebsd.org>, <maxk@qualcomm.com> Subject: bridge code, tap or vtun issue on freebsd Message-ID: <Pine.LNX.4.33.0206020022321.23169-100000@internal.pipenetworks.com>
next in thread | raw e-mail | index | archive | help
Hello, I have found a bug in using vtun on freebsd in the type ether mode in order to try and bridge ethernet over IP. I am not too sure where the problem lies. The interfaces that are being placed into the bridge group are not going into promiscuos mode. The crux of it that the vtun can establish but no frames can get through the bridge unless I do something really ugly to turn on promiscuous mode : (cat > /dev/tap1 | head -c 1 ; then clean up the net.link.ether.bridge_cfg oid back to normal again) Both machines are i386 4.5-RELEASE FreeBSD The "up" section of the vtund.conf looks like : up { ifconfig "%% inet 10.12.12.240 netmask 255.255.255.0"; #ifconfig "%% up"; program "/sbin/sysctl net.link.ether.bridge=0" wait ; program "/sbin/sysctl net.link.ether.bridge_cfg=\"\"" wait ; program "/sbin/sysctl net.link.ether.bridge_cfg=\"sis0:5,%%:5\"" wait ; program "/sbin/sysctl net.link.ether.bridge=1" wait ; }; That seems to be working as you can see from the server and cleint dumps below but I do not think that the bridge or tap code is putting the ethernet interface and tap device into promiscuous mode. From fresh boot for box acting as vtun server ============================================= bash# ifconfig -a sis0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet6 fe80::2a0:ccff:fe79:2a06%sis0 prefixlen 64 scopeid 0x1 ether 00:a0:cc:79:2a:06 media: Ethernet autoselect (10baseT/UTP) status: active rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 10.11.11.100 netmask 0xffffff00 broadcast 10.11.11.255 inet6 fe80::210:dcff:fe20:d53e%rl0 prefixlen 64 scopeid 0x2 ether 00:10:dc:20:d5:3e media: Ethernet autoselect (100baseTX <full-duplex>) status: active lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5 inet 127.0.0.1 netmask 0xff000000 ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552 bash# vtund -s -f /usr/local/etc/vtund.conf bash# ps ax PID TT STAT TIME COMMAND 0 ?? DLs 0:00.00 (swapper) 1 ?? SLs 0:00.01 /sbin/init -- 2 ?? DL 0:00.00 (pagedaemon) 3 ?? DL 0:00.00 (vmdaemon) 4 ?? DL 0:00.00 (bufdaemon) 5 ?? DL 0:00.00 (syncer) 6 ?? DL 0:00.00 (vnlru) 23 ?? Is 0:00.00 adjkerntz -i 62 ?? Ss 0:00.03 /usr/sbin/syslogd -s 69 ?? Is 0:00.00 /usr/sbin/inetd -wW 71 ?? Ss 0:00.00 /usr/sbin/cron 73 ?? Is 0:00.18 /usr/sbin/sshd 94 ?? S 0:00.05 sshd: root@ttyp0 (sshd) 98 ?? Ss 0:00.00 vtund: waiting for connections on port 5000 (vtund) 95 p0 Ss 0:00.03 -bash (bash) 99 p0 R+ 0:00.00 ps ax 86 v0 Is+ 0:00.01 /usr/libexec/getty Pc ttyv0 87 v1 Is+ 0:00.00 /usr/libexec/getty Pc ttyv1 88 v2 Is+ 0:00.00 /usr/libexec/getty Pc ttyv2 89 v3 Is+ 0:00.00 /usr/libexec/getty Pc ttyv3 90 v4 Is+ 0:00.00 /usr/libexec/getty Pc ttyv4 91 v5 Is+ 0:00.00 /usr/libexec/getty Pc ttyv5 92 v6 Is+ 0:00.00 /usr/libexec/getty Pc ttyv6 93 v7 Is+ 0:00.00 /usr/libexec/getty Pc ttyv7 bash# !sys:p sysctl -a | grep bridge bash# sysctl -a | grep bridge net.link.ether.bridge_cfg: sis0:1,rl0:1, net.link.ether.bridge: 0 net.link.ether.bridge_ipfw: 0 net.link.ether.bridge_ipfw_drop: 0 net.link.ether.bridge_ipfw_collisions: 0 [THIS IS WHEN THE CLIENT CONNECTS] bash# Jun 2 00:47:25 stan /kernel: BRIDGE 011031, have 8 interfaces Jun 2 00:47:25 stan /kernel: BRIDGE 011031, have 8 interfaces Jun 2 00:47:25 stan /kernel: -- index 1 sis0:1 type 6 phy 0 addrl 6 addr 00.a0.cc.79.2a.06 Jun 2 00:47:25 stan /kernel: -- index 1 sis0:1 type 6 phy 0 addrl 6 addr 00.a0.cc.79.2a.06 Jun 2 00:47:25 stan /kernel: -- index 2 rl0:1 type 6 phy 0 addrl 6 addr 00.10.dc.20.d5.3e Jun 2 00:47:25 stan /kernel: -- index 2 rl0:1 type 6 phy 0 addrl 6 addr 00.10.dc.20.d5.3e Jun 2 00:47:25 stan /kernel: -- index 8 type 6 phy 0 addrl 6 addr 00.bd.fa.13.00.00 Jun 2 00:47:25 stan /kernel: -- index 8 type 6 phy 0 addrl 6 addr 00.bd.fa.13.00.00 bash# sysctl -a | grep bridge net.link.ether.bridge_cfg: "sis0:5,tap0:5" net.link.ether.bridge: 1 net.link.ether.bridge_ipfw: 0 net.link.ether.bridge_ipfw_drop: 0 net.link.ether.bridge_ipfw_collisions: 0 Fresh from boot for box acting as vtun client ============================================= bash-2.05a# sysctl -a | grep bridge net.link.ether.bridge_cfg: sis0:1,rl0:1, net.link.ether.bridge: 0 net.link.ether.bridge_ipfw: 0 net.link.ether.bridge_ipfw_drop: 0 net.link.ether.bridge_ipfw_collisions: 0 bash-2.05a# ifconfig -a sis0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet6 fe80::2a0:ccff:fe77:d6f%sis0 prefixlen 64 scopeid 0x1 ether 00:a0:cc:77:0d:6f media: Ethernet autoselect (100baseTX <full-duplex>) status: active rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 10.11.11.200 netmask 0xffffff00 broadcast 10.11.11.255 inet6 fe80::210:dcff:fe20:d59d%rl0 prefixlen 64 scopeid 0x2 ether 00:10:dc:20:d5:9d media: Ethernet autoselect (100baseTX <full-duplex>) status: active lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5 inet 127.0.0.1 netmask 0xff000000 ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552 bash-2.05a# vtund -f /usr/local/etc/vtund.conf wc 10.11.11.100 bash-2.05a# Jun 2 00:47:25 kenny /kernel: BRIDGE 011031, have 8 interfaces Jun 2 00:47:25 kenny /kernel: BRIDGE 011031, have 8 interfaces Jun 2 00:47:25 kenny /kernel: -- index 1 sis0:1 type 6 phy 0 addrl 6 addr 00.a0.cc.77.0d.6f Jun 2 00:47:25 kenny /kernel: -- index 1 sis0:1 type 6 phy 0 addrl 6 addr 00.a0.cc.77.0d.6f Jun 2 00:47:25 kenny /kernel: -- index 2 rl0:1 type 6 phy 0 addrl 6 addr 00.10.dc.20.d5.9d Jun 2 00:47:25 kenny /kernel: -- index 2 rl0:1 type 6 phy 0 addrl 6 addr 00.10.dc.20.d5.9d Jun 2 00:47:25 kenny /kernel: -- index 8 type 6 phy 0 addrl 6 addr 00.bd.dd.19.00.00 Jun 2 00:47:25 kenny /kernel: -- index 8 type 6 phy 0 addrl 6 addr 00.bd.dd.19.00.00 bash-2.05a# sysctl -a | grep bridge net.link.ether.bridge_cfg: "sis0:5,tap0:5" net.link.ether.bridge: 1 net.link.ether.bridge_ipfw: 0 net.link.ether.bridge_ipfw_drop: 0 net.link.ether.bridge_ipfw_collisions: 0 bash-2.05a# ifconfig -a sis0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet6 fe80::2a0:ccff:fe77:d6f%sis0 prefixlen 64 scopeid 0x1 ether 00:a0:cc:77:0d:6f media: Ethernet autoselect (100baseTX <full-duplex>) status: active rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 10.11.11.200 netmask 0xffffff00 broadcast 10.11.11.255 inet6 fe80::210:dcff:fe20:d59d%rl0 prefixlen 64 scopeid 0x2 ether 00:10:dc:20:d5:9d media: Ethernet autoselect (100baseTX <full-duplex>) status: active lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5 inet 127.0.0.1 netmask 0xff000000 ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552 tap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 10.12.12.240 netmask 0xffffff00 broadcast 10.12.12.255 inet6 fe80::2bd:ddff:fe19:0%tap0 prefixlen 64 scopeid 0x8 ether 00:bd:dd:19:00:00 Opened by PID 98 bash-2.05a# To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.33.0206020022321.23169-100000>