igmp-proxy

Xartax

Well-Known Member
Hallo alle,

mein igmp-proxy routet keine multikast pakete. Ich denke, dass das nicht richtig konfiguriert ist.

Ich hab beides enabled, mrouted und igmpproxy vielleicht ist das auch falsch, hab da kein Ahnung. Ich kann auch pimd verwenden, aber das scheint mir nicht notwendig zu sein wenn es mit igmp-proxy geht.

Fakt ist dass es nicht funktioniert. die Multicast-Packete die in igb0 ankommen, kommen in den Interfaces re0,vlan7,tun0 nicht an, geprüft mit tcpdump.

Also ich mach da was falsch, weis aber nicht was.


Interfaceliste:

re0: vigorNIC 132 als Modem konfiguriert
vlan7: VDSL-TAGS
tun0: VDLS Verbindung
igb0: downstream


Code:
mrouted_enable="yes"
igmpproxy_enable="yes"

Code:
##------------------------------------------------------
## Enable Quickleave mode (Sends Leave instantly)
##------------------------------------------------------
quickleave


##------------------------------------------------------
## Configuration for Upstream Interface
##------------------------------------------------------
phyint tun0  upstream    ratelimit 0  threshold 1
        altnet 224.0.0.0/4;
        altnet 172.18.0.0/16;



##------------------------------------------------------
## Configuration for Downstream Interface
##------------------------------------------------------
phyint igb0 downstream  ratelimit 0  threshold 1


##------------------------------------------------------
## Configuration for eth2 (Disabled Interface)
##------------------------------------------------------
phyint re0 disabled
phyint em0 disabled
phyint lo0 disabled
phyint vlan7 disabled
phyint tun0 disabled


Code:
root@FreeBSD11:/usr/local/etc # cat mrouted.conf
# mrouted.conf,v 3.8 1995/11/29 22:40:47 fenner Rel
#
#   This is the configuration file for "mrouted", an IP multicast router.
#   mrouted looks for it in "/etc/mrouted.conf".
#
#   Command formats:
#
# name <boundname> <scoped-addr>/<mask-len>
# cache_lifetime 3600           # seconds
# pruning on
#
# phyint <local-addr> [disable] [metric <m>] [threshold <t>] [rate_limit <b>]
#                         [boundary (<boundname>|<scoped-addr>/<mask-len>)]
#                         [altnet (<subnet>/<mask-len>|<subnet>)]
# tunnel <local-addr> <remote-addr> [srcrt] [metric <m>]
#                                      [threshold <t>] [rate_limit <b>]
#                         [boundary (<boundname>|<scoped-addr>/<mask-len>)]
#
#   NOTE: any phyint commands MUST precede any tunnel commands
#   NOTE: the mask-len is the no. of leading 1's in the mask
#   NOTE: rate_limit is in kilobits, and defaults to 500 for tunnels
#
# Example of named bounary:
#name LOCAL 239.255.0.0/16
#name EE 239.254.0.0/16         # i.e. the EE dept wants local groups
#
# Example of use of named boundary
#phyint le1 boundary EE         # le1 is our interface to comp sci,
#                               # keep them away from our local groups
#
#
# Template tunnel for mcast_install
#tunnel 128.4.0.77 128.4.0.8 metric 1 threshold 64 rate_limit 500  # <-- REPLACE
#       boundary LOCAL
#
# You might want to specify a boundary on your tunnel to the outside world,
# as above.
 
Hi alle,

ich hab soeben den Export meiner Fritzbox untersucht und festgestellt, dass da nur mrouter (Linux) initialisiert wird.

Kann es sein, dass ich nur mroute (FreeBSD) brauche)?

Hier ein Tcpdump vom tun0 (WAN)

Code:
root@FreeBSD11:~ # tcpdump -i tun0 -p igmp -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type NULL (BSD loopback), capture size 262144 bytes
13:09:54.508572 IP 62.155.245.69 > 224.0.0.1: igmp query v3
13:09:56.206630 IP 93.234.10.119 > 224.0.0.22: igmp v3 report, 2 group record(s)
13:10:54.492407 IP 62.155.245.69 > 224.0.0.1: igmp query v3
13:10:56.240507 IP 93.234.10.119 > 224.0.0.22: igmp v3 report, 2 group record(s)
13:11:54.506955 IP 62.155.245.69 > 224.0.0.1: igmp query v3
13:12:02.657341 IP 93.234.10.119 > 224.0.0.22: igmp v3 report, 2 group record(s)
13:12:54.496295 IP 62.155.245.69 > 224.0.0.1: igmp query v3
13:12:59.090185 IP 93.234.10.119 > 224.0.0.22: igmp v3 report, 2 group record(s)
13:13:54.500804 IP 62.155.245.69 > 224.0.0.1: igmp query v3
13:14:03.721690 IP 93.234.10.119 > 224.0.0.22: igmp v3 report, 2 group record(s)
13:14:54.490314 IP 62.155.245.69 > 224.0.0.1: igmp query v3
13:14:58.956716 IP 93.234.10.119 > 224.0.0.22: igmp v3 report, 2 group record(s)
13:15:54.499867 IP 62.155.245.69 > 224.0.0.1: igmp query v3
13:15:56.757307 IP 93.234.10.119 > 224.0.0.22: igmp v3 report, 2 group record(s)
13:16:54.469123 IP 62.155.245.69 > 224.0.0.1: igmp query v3
13:16:59.373186 IP 93.234.10.119 > 224.0.0.22: igmp v3 report, 2 group record(s)

und hier ein dump von igb0 (LAN)

Code:
13:14:20.004480 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:14:30.104035 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:14:39.270979 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:14:49.488612 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:14:59.973453 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:15:10.123844 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:15:19.307502 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:15:29.590422 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:15:39.357488 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:15:45.796496 IP 172.17.17.200 > 224.0.0.1: igmp query v3
13:15:49.823871 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:15:53.957463 IP 172.17.20.1 > 224.0.0.22: igmp v3 report, 2 group record(s)
13:15:59.790287 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:16:09.356856 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:16:20.020736 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:16:30.139595 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:16:39.322763 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:16:49.489396 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:16:59.373222 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:17:09.523589 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:17:19.656772 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:17:29.835954 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe
13:17:39.957114 IP 172.17.20.1 > 224.0.0.4: igmp dvmrp Probe

Andere Pakete tauchen nicht auf.

Gibt es ein PC (Windows) Tool um igmp-Pakete zu Testzwecken zu versenden?

Edit:
ich hab soeben einen Versuch mit mrouted unternommen. Hier das Ergebnis:
Code:
root@FreeBSD11:/usr/local/etc # mrouted -d
debug level 0x2de (pruning,routing,peers,cache,interface,membership,igmp)
14:04:11.750 mrouted version 3.9.8 starting
14:04:11.751 Getting vifs from kernel interfaces
14:04:11.751 Installing igb0 (172.17.20.1 on subnet 172.17/16) as VIF #0, rate 0 pps
14:04:11.751 Installing re0 (172.19.20.1 on subnet 172.19/16) as VIF #1, rate 0 pps
14:04:11.751 Installing em0 (172.18.20.1 on subnet 172.18/16) as VIF #2, rate 0 pps
14:04:11.751 Installing em1 (172.16.20.1 on subnet 172.16/16) as VIF #3, rate 0 pps
14:04:11.751 Installing tun0 (93.234.9.86 on subnet 93.234.9.86/32) as VIF #4, rate 0 pps
14:04:11.751 Getting vifs from /etc/mrouted.conf
14:04:11.751 Installing vifs in mrouted ...
14:04:11.751 vif #0, phyint 172.17.20.1
14:04:11.751 Assuming querier duties on vif 0
14:04:11.751 Sending query on vif 0
14:04:11.751 SENT membership query   from 172.17.20.1     to 224.0.0.1
14:04:11.751 SENT neighbor probe     from 172.17.20.1     to 224.0.0.4
14:04:11.751 vif #1, phyint 172.19.20.1
14:04:11.751 Assuming querier duties on vif 1
14:04:11.751 Sending query on vif 1
14:04:11.751 SENT membership query   from 172.19.20.1     to 224.0.0.1
14:04:11.751 SENT neighbor probe     from 172.19.20.1     to 224.0.0.4
14:04:11.751 vif #2, phyint 172.18.20.1
14:04:11.751 Assuming querier duties on vif 2
14:04:11.751 Sending query on vif 2
14:04:11.751 SENT membership query   from 172.18.20.1     to 224.0.0.1
14:04:11.751 SENT neighbor probe     from 172.18.20.1     to 224.0.0.4
14:04:11.751 vif #3, phyint 172.16.20.1
14:04:11.765 Assuming querier duties on vif 3
14:04:11.765 Sending query on vif 3
14:04:11.765 SENT membership query   from 172.16.20.1     to 224.0.0.1
14:04:11.765 SENT neighbor probe     from 172.16.20.1     to 224.0.0.4
14:04:11.765 vif #4, phyint 93.234.9.86
14:04:11.765 Assuming querier duties on vif 4
14:04:11.765 Sending query on vif 4
14:04:11.765 SENT membership query   from 93.234.9.86     to 224.0.0.1
14:04:11.765 SENT neighbor probe     from 93.234.9.86     to 224.0.0.4
vifs_with_neighbors = 0

Virtual Interface Table
Vif  Name  Local-Address                               M  Thr  Rate   Flags
0   igb0  172.17.20.1     subnet: 172.17/16           1   1      0   querier
                     IGMP querier: 172.17.20.1        (this system)
                      Nbr bitmaps: 0x0000000000000000

1    re0  172.19.20.1     subnet: 172.19/16           1   1      0   querier
                     IGMP querier: 172.19.20.1        (this system)
                      Nbr bitmaps: 0x0000000000000000

2    em0  172.18.20.1     subnet: 172.18/16           1   1      0   querier
                     IGMP querier: 172.18.20.1        (this system)
                      Nbr bitmaps: 0x0000000000000000

3    em1  172.16.20.1     subnet: 172.16/16           1   1      0   querier
                     IGMP querier: 172.16.20.1        (this system)
                      Nbr bitmaps: 0x0000000000000000

4   tun0  93.234.9.86     subnet: 93.234.9.86/32      1   1      0   querier rexmit_prunes
                     IGMP querier: 93.234.9.86        (this system)
                      Nbr bitmaps: 0x0000000000000000


Multicast Routing Table (5 entries)
Origin-Subnet      From-Gateway    Metric Tmr Fl In-Vif  Out-Vifs
93.234.9.86/32                        1     0 C.   4    0* 1* 2* 3*
172.19/16                             1     0 C.   1    0* 2* 3* 4*
172.18/16                             1     0 C.   2    0* 1* 3* 4*
172.17/16                             1     0 C.   0    1* 2* 3* 4*
172.16/16                             1     0 C.   3    0* 1* 2* 4*

14:04:11.765 RECV membership query   from 172.17.20.1     to 224.0.0.1
14:04:11.765 Ignoring query from 172.17.20.1; querier on vif 0 is still me
14:04:11.765 RECV membership query   from 172.19.20.1     to 224.0.0.1
14:04:11.765 Ignoring query from 172.19.20.1; querier on vif 1 is still me
14:04:11.765 RECV membership query   from 172.18.20.1     to 224.0.0.1
14:04:11.765 Ignoring query from 172.18.20.1; querier on vif 2 is still me
14:04:11.765 RECV membership query   from 172.16.20.1     to 224.0.0.1
14:04:11.765 Ignoring query from 172.16.20.1; querier on vif 3 is still me
14:04:11.765 RECV membership query   from 93.234.9.86     to 224.0.0.1
14:04:11.765 Ignoring query from 93.234.9.86; querier on vif 4 is still me

....
14:04:14.693 RECV V2 member report   from 62.155.245.69   to 224.0.0.22
14:04:14.693 Ignoring group membership report from non-adjacent host 62.155.245.69
14:04:17.740 Aging forwarding cache entries
14:04:17.740 Sending query on vif 0
14:04:17.740 SENT membership query   from 172.17.20.1     to 224.0.0.1
14:04:17.740 Sending query on vif 1
14:04:17.740 SENT membership query   from 172.19.20.1     to 224.0.0.1
14:04:17.740 Sending query on vif 2
14:04:17.740 SENT membership query   from 172.18.20.1     to 224.0.0.1
14:04:17.740 Sending query on vif 3
14:04:17.740 SENT membership query   from 172.16.20.1     to 224.0.0.1
14:04:17.740 Sending query on vif 4
14:04:17.740 SENT membership query   from 93.234.9.86     to 224.0.0.1
14:04:17.740 SENT neighbor probe     from 172.17.20.1     to 224.0.0.4
14:04:17.740 SENT neighbor probe     from 172.19.20.1     to 224.0.0.4
14:04:17.740 SENT neighbor probe     from 172.18.20.1     to 224.0.0.4
14:04:17.740 SENT neighbor probe     from 172.16.20.1     to 224.0.0.4
14:04:17.740 SENT neighbor probe     from 93.234.9.86     to 224.0.0.4
14:04:17.740 RECV membership query   from 172.17.20.1     to 224.0.0.1
14:04:17.740 Ignoring query from 172.17.20.1; querier on vif 0 is still me
14:04:17.740 RECV membership query   from 172.19.20.1     to 224.0.0.1
14:04:17.740 Ignoring query from 172.19.20.1; querier on vif 1 is still me
14:04:17.740 RECV membership query   from 172.18.20.1     to 224.0.0.1
14:04:17.740 Ignoring query from 172.18.20.1; querier on vif 2 is still me
14:04:17.740 RECV membership query   from 172.16.20.1     to 224.0.0.1
14:04:17.740 Ignoring query from 172.16.20.1; querier on vif 3 is still me
14:04:17.740 RECV membership query   from 93.234.9.86     to 224.0.0.1
14:04:17.740 Ignoring query from 93.234.9.86; querier on vif 4 is still me
14:04:21.801 mrouted version 3.9.8
14:04:21.801 Installing vifs in kernel...
14:04:21.801 vif #0, phyint 172.17.20.1
14:04:21.801 vif #1, phyint 172.19.20.1
14:04:21.801 vif #2, phyint 172.18.20.1
14:04:21.801 vif #3, phyint 172.16.20.1
14:04:21.801 vif #4, phyint 93.234.9.86
14:04:21.801 Aging forwarding cache entries
14:04:22.668 RECV V2 member report   from 172.17.20.1     to 224.0.0.4
14:04:22.668 Group 224.0.0.4 joined on vif 0
14:04:24.701 update 0 starting at 5 of 5
14:04:25.718 update 0 starting at 5 of 5
14:04:25.762 RECV V2 member report   from 62.155.245.69   to 224.0.0.22
14:04:25.762 Ignoring group membership report from non-adjacent host 62.155.245.69
14:04:26.084 RECV V2 member report   from 93.234.9.86     to 224.0.0.4
14:04:26.084 Group 224.0.0.4 joined on vif 4
14:04:26.084 update 0 starting at 5 of 5
14:04:27.101 Aging forwarding cache entries
14:04:27.101 SENT neighbor probe     from 172.17.20.1     to 224.0.0.4
14:04:27.101 SENT neighbor probe     from 172.19.20.1     to 224.0.0.4
14:04:27.101 SENT neighbor probe     from 172.18.20.1     to 224.0.0.4
14:04:27.101 SENT neighbor probe     from 172.16.20.1     to 224.0.0.4
14:04:27.101 SENT neighbor probe     from 93.234.9.86     to 224.0.0.4
14:04:27.101 update 0 starting at 5 of 5
14:04:27.492 RECV V2 member report   from 172.18.20.1     to 224.0.0.4
14:04:27.492 Group 224.0.0.4 joined on vif 2
14:04:28.534 update 0 starting at 5 of 5
14:04:29.551 update 0 starting at 5 of 5
14:04:30.567 update 0 starting at 5 of 5
14:04:31.580 update 0 starting at 5 of 5
14:04:32.585 Aging forwarding cache entries
14:04:32.585 update 0 starting at 5 of 5
14:04:33.600 update 0 starting at 5 of 5
14:04:34.613 update 0 starting at 5 of 5
14:04:35.617 update 0 starting at 5 of 5
14:04:36.630 update 0 starting at 5 of 5
14:04:37.631 Aging forwarding cache entries
14:04:37.631 SENT neighbor probe     from 172.17.20.1     to 224.0.0.4
14:04:37.631 SENT neighbor probe     from 172.19.20.1     to 224.0.0.4
14:04:37.631 SENT neighbor probe     from 172.18.20.1     to 224.0.0.4
14:04:37.631 SENT neighbor probe     from 172.16.20.1     to 224.0.0.4
14:04:37.631 SENT neighbor probe     from 93.234.9.86     to 224.0.0.4
14:04:37.631 update 0 starting at 5 of 5
14:04:38.650 update 0 starting at 5 of 5
14:04:39.666 update 0 starting at 5 of 5
14:04:40.683 update 0 starting at 5 of 5
14:04:41.700 update 0 starting at 5 of 5
14:04:42.701 Aging forwarding cache entries
14:04:42.701 update 0 starting at 5 of 5
....
14:05:07.265 Aging forwarding cache entries
14:05:07.265 SENT neighbor probe     from 172.17.20.1     to 224.0.0.4
14:05:07.265 SENT neighbor probe     from 172.19.20.1     to 224.0.0.4
14:05:07.265 SENT neighbor probe     from 172.18.20.1     to 224.0.0.4
14:05:07.265 SENT neighbor probe     from 172.16.20.1     to 224.0.0.4
14:05:07.265 SENT neighbor probe     from 93.234.9.86     to 224.0.0.4
14:05:07.265 update 0 starting at 5 of 5
14:05:08.281 update 0 starting at 5 of 5
14:05:09.298 update 0 starting at 5 of 5
14:05:10.314 update 0 starting at 5 of 5
14:05:11.331 update 0 starting at 5 of 5
14:05:12.348 Aging forwarding cache entries
14:05:12.348 update 0 starting at 5 of 5
14:05:17.430 Aging forwarding cache entries
14:05:17.431 SENT neighbor probe     from 172.17.20.1     to 224.0.0.4
14:05:17.431 SENT neighbor probe     from 172.19.20.1     to 224.0.0.4
14:05:17.431 SENT neighbor probe     from 172.18.20.1     to 224.0.0.4
14:05:17.431 SENT neighbor probe     from 172.16.20.1     to 224.0.0.4
14:05:17.431 SENT neighbor probe     from 93.234.9.86     to 224.0.0.4
14:05:22.497 Aging forwarding cache entries
14:05:24.513 update 0 starting at 5 of 5
14:05:25.530 update 0 starting at 5 of 5
14:05:25.758 RECV unk: 0x22/0x00     from 172.18.17.200   to 224.0.0.22
14:05:25.758 ignoring unknown IGMP message type 22 from 172.18.17.200 to 224.0.0.22
14:05:25.769 RECV unk: 0x22/0x00     from 172.18.17.200   to 224.0.0.22
14:05:25.769 ignoring unknown IGMP message type 22 from 172.18.17.200 to 224.0.0.22
14:05:25.769 update 0 starting at 5 of 5
14:05:26.033 Add cache entry (172.18.17.200 239.255.255.250) gm:0, parent-vif:2
14:05:27.042 Aging forwarding cache entries
14:05:27.042 SENT neighbor probe     from 172.17.20.1     to 224.0.0.4
14:05:27.042 SENT neighbor probe     from 172.19.20.1     to 224.0.0.4
14:05:27.042 SENT neighbor probe     from 172.18.20.1     to 224.0.0.4
14:05:27.042 SENT neighbor probe     from 172.16.20.1     to 224.0.0.4
14:05:27.042 SENT neighbor probe     from 93.234.9.86     to 224.0.0.4
14:05:27.042 update 0 starting at 5 of 5
14:05:27.781 RECV unk: 0x22/0x00     from 172.18.17.200   to 224.0.0.22
14:05:27.781 ignoring unknown IGMP message type 22 from 172.18.17.200 to 224.0.0.22
14:05:27.781 update 0 starting at 5 of 5
14:05:28.788 update 0 starting at 5 of 5
14:05:29.792 update 0 starting at 5 of 5
14:05:30.796 update 0 starting at 5 of 5
14:05:31.801 Aging forwarding cache entries
14:05:31.801 update 0 starting at 5 of 5
14:05:32.813 update 0 starting at 5 of 5
14:05:33.828 update 0 starting at 5 of 5
14:05:34.846 update 0 starting at 5 of 5
14:05:35.862 update 0 starting at 5 of 5
14:05:36.879 Aging forwarding cache entries
14:05:36.879 SENT neighbor probe     from 172.17.20.1     to 224.0.0.4
14:05:36.879 SENT neighbor probe     from 172.19.20.1     to 224.0.0.4
14:05:36.879 SENT neighbor probe     from 172.18.20.1     to 224.0.0.4
14:05:36.879 SENT neighbor probe     from 172.16.20.1     to 224.0.0.4
14:05:36.879 SENT neighbor probe     from 93.234.9.86     to 224.0.0.4
14:05:36.879 update 0 starting at 5 of 5
14:05:37.895 update 0 starting at 5 of 5
14:05:38.912 update 0 starting at 5 of 5
14:05:39.929 update 0 starting at 5 of 5
14:05:40.962 update 0 starting at 5 of 5
14:05:41.979 Aging forwarding cache entries
14:05:41.979 update 0 starting at 5 of 5
14:05:42.995 update 0 starting at 5 of 5
14:05:44.008 update 0 starting at 5 of 5
14:05:45.012 update 0 starting at 5 of 5
14:05:46.028 update 0 starting at 5 of 5
14:05:47.042 Aging forwarding cache entries
14:05:47.042 SENT neighbor probe     from 172.17.20.1     to 224.0.0.4
14:05:47.042 SENT neighbor probe     from 172.19.20.1     to 224.0.0.4
14:05:47.042 SENT neighbor probe     from 172.18.20.1     to 224.0.0.4
14:05:47.042 SENT neighbor probe     from 172.16.20.1     to 224.0.0.4
14:05:47.042 SENT neighbor probe     from 93.234.9.86     to 224.0.0.4
14:05:47.042 update 0 starting at 5 of 5
14:05:48.044 update 0 starting at 5 of 5

und komisch ist das, (172.18.17.200 = Media Receiver)
Code:
14:05:25.758 RECV unk: 0x22/0x00 from 172.18.17.200 to 224.0.0.22
14:05:25.758 ignoring unknown IGMP message type 22 from 172.18.17.200 to 224.0.0.22

es funktioniert hat nicht.:confused:


Grüße
 
Zuletzt bearbeitet:
Hallo alle,
das Problem ist gelöst :)

hier die funktionierende igmpproxy Konfiguration

87.0.0.0/8 ist gegen den Adressbereich der t-com auszutauschen womit ich auch schon beim Nächten Thema Wäre.

Welche IP-Adressbereiche verwendet Telekom (T-online) bei vdsl vectoring Anschlüssen?
Denn die müssen alle in die Konfig sonst muss man bei jedem resync den Adressbereich ergänzen

Und danke allen die mir helfen wollten aber nicht konnten :)

grüße

Code:
quickleave

phyint tun0  upstream    ratelimit 0  threshold 1
        altnet 87.0.0.0/8;

phyint em0 downstream  ratelimit 0  threshold 1
 
Zurück
Oben