2006-02-20 06:59:51

by Al

[permalink] [raw]
Subject: [Bluez-devel] BlueZ: NAP by PAND + BRIDGE

Hi,

I'm trying to implement a BlueZ NAP by using PAND + bridge + iptables.
The followings are what I've done:

1. on master (NAP) Fedora Core 2:
>brctl addbr pan0
>ifconfig pan0 10.0.0.1
>brctl setfd pan0 0
>brctl stp pan0 disable
>modprobe bnep
>pand --listen --master --role=NAP

2. on slave side #1 Fedora Core 1:
>modprobe bnep
>pand -c xx:xx:xx:xx:xx:xx
>ifconfig bnep0 10.0.0.2 netmask 255.255.255.0
>route add default gw 10.0.0.1

3. on master (NAP):
>brctl addif pan0 bnep0
>ifconfig bnep0 0.0.0.0

so far it works fine, bnep0 is created, and adding bridge interface
bnep0 to pan0 seems ok.
=============================================================
Feb 20 13:32:47 AL30 hcid[1960]: link_key_request (sba=00:10:60:A2:D8:7C, dba=00 :09:C5:02:00:42)
Feb 20 13:32:47 AL30 hcid[1960]: pin_code_request (sba=00:10:60:A2:D8:7C, dba=00 :09:C5:02:00:42)
Feb 20 13:32:54 AL30 hcid[1960]: link_key_notify (sba=00:10:60:A2:D8:7C)
Feb 20 13:32:54 AL30 hcid[1960]: Replacing link key 00:10:60:A2:D8:7C 00:09:C5:0 2:00:42
Feb 20 13:32:54 AL30 pand[11631]: New connection from 00:09:C5:02:00:42 bnep0
Feb 20 13:32:55 AL30 kernel: ip_tables: (C) 2000-2002 Netfilter core team
Feb 20 13:32:55 AL30 kernel: ip_tables: (C) 2000-2002 Netfilter core team
Feb 20 13:34:21 AL30 kernel: device bnep0 entered promiscuous mode
Feb 20 13:34:21 AL30 kernel: pan0: port 1(bnep0) entering learning state
Feb 20 13:34:21 AL30 kernel: pan0: topology change detected, propgating
Feb 20 13:34:21 AL30 kernel: pan0: port 1(bnep0) entering forwarding state
===========================================================================

4. slave side #2 connection to NAP:
>modprobe bnep
>pand -c xx:xx:xx:xx:xx:xx
>ifconfig bnep0 10.0.0.3 netmask 255.255.255.0
>route add default gw 10.0.0.1

5. Once bnep1 is created, on master NAP side:
>brctl addif pan0 bnep1
>ifconfig bnep1 0.0.0.0


#bnep1 cannot be added to bridge pan0:
#console shows: br_add_interface: File exists
#system log shows: kernel: bnep1: attempt to add interface with same source ad dress.
========================================================================Feb 20 13:34:50 AL30 hcid[1960]: link_key_request (sba=00:10:60:A2:D8:7C, dba=00 :11:67:09:2B:A3)
Feb 20 13:34:50 AL30 hcid[1960]: pin_code_request (sba=00:10:60:A2:D8:7C, dba=00 :11:67:09:2B:A3)
Feb 20 13:34:56 AL30 hcid[1960]: link_key_notify (sba=00:10:60:A2:D8:7C)
Feb 20 13:34:56 AL30 hcid[1960]: Replacing link key 00:10:60:A2:D8:7C 00:11:67:0 9:2B:A3
Feb 20 13:34:59 AL30 hcid[1960]: link_key_request (sba=00:10:60:A2:D8:7C, dba=00 :11:67:09:2B:A3)
Feb 20 13:35:03 AL30 hcid[1960]: link_key_request (sba=00:10:60:A2:D8:7C, dba=00 :11:67:09:2B:A3)
Feb 20 13:35:04 AL30 pand[11755]: New connection from 00:11:67:09:2B:A3 bnep1
Feb 20 13:35:28 AL30 kernel: bnep1: attempt to add interface with same source ad dress.
==============================================================================

>ifconfig
bnep0 Link encap:Ethernet HWaddr 00:10:60:A2:D8:7C
inet6 addr: fe80::210:60ff:fea2:d87c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:126 errors:0 dropped:0 overruns:0 frame:0
TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7592 (7.4 Kb) TX bytes:656 (656.0 b)

bnep1 Link encap:Ethernet HWaddr 00:10:60:A2:D8:7C
inet6 addr: fe80::210:60ff:fea2:d87c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:49 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5613 (5.4 Kb) TX bytes:188 (188.0 b)

eth0 Link encap:Ethernet HWaddr 00:01:29:4C:06:46
inet addr:172.16.20.30 Bcast:172.16.20.255 Mask:255.255.255.0
inet6 addr: fe80::201:29ff:fe4c:646/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:782 errors:0 dropped:0 overruns:0 frame:0
TX packets:577 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:622359 (607.7 Kb) TX bytes:81575 (79.6 Kb)
Interrupt:11 Base address:0x1000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2672 errors:0 dropped:0 overruns:0 frame:0
TX packets:2672 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1994880 (1.9 Mb) TX bytes:1994880 (1.9 Mb)

pan0 Link encap:Ethernet HWaddr 00:10:60:A2:D8:7C
inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:108 errors:0 dropped:0 overruns:0 frame:0
TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6496 (6.3 Kb) TX bytes:994 (994.0 b)
============================================================================

Why the bnep1 cannot be added to bridge pan0? Please note that bnep0 and bnep1
's BT addresses refer to the same address as pan0's address. Is it normal?


Thanks for the helps,

Al