Re: GIF tunnel doesnt like fragmented packets?

2012-07-11 Thread Ermal Luçi
On Wed, Jul 11, 2012 at 4:27 AM, Chris Benesch  wrote:
> So I'm trying to set up a tunnel with Hurricane Electric.  Works great on
> OpenBSD BTW, took only a minute or two.
>
There is no support for fragmented ipv6 packets in pf(4) for FreeBSD.

> So heres rc.conf
>
> ipv6_gateway_enable="YES"
> gif_interfaces="gif0"
> gifconfig_gif0="198.168.0.2 64.62.134.130"
> ipv6_network_interfaces="rl0 em0 gif0 lo0"
> ifconfig_gif0_ipv6="inet6 2001:470:66:3a3::2 2001:470:66:3a3::1 prefixlen
> 128"
> ipv6_defaultrouter="2001:470:66:3a3::1"
>
> And I am running pf on the box.
>
> # macros
> ext_if="rl0"
> int_if="em0"
> if_6="gif0"
>
> tcp_services="{ 22,25,80 }"
> udp_services="{ 500 }"
> icmp_types="echoreq"
>
> workstation="192.168.231.15"
>
> # options
> set optimization normal
> set block-policy return
> set skip on { lo gif0 }
>
> # scrub
> scrub in no-df
>
> # nat/rdr
> nat on $ext_if inet from !($ext_if) -> ($ext_if:0)
>
>
> # filter rules
> block in log on rl0
> pass out quick flags S/SA keep state
> pass in quick on $int_if flags S/SA keep state allow-opts
> pass in quick from 192.168.231.1 to 192.168.231.1
> pass in log from 64.62.134.130 to any
>
> antispoof quick for { lo }
>
> pass in on $ext_if inet proto tcp from any to ($ext_if) port $tcp_services
> pass in on $if_6 inet6 proto tcp from any to ($if_6) port $tcp_services
> pass in on $ext_if inet proto udp from any to ($ext_if) port $udp_services
> pass in on $if_6 inet6 proto udp from any to ($if_6) port $udp_services
>
> pass in inet6 proto icmp6 from any to any
> pass in inet proto icmp from any to any
>
> Ok, so now thats out of the way.
>
> Basically I see packets going out, but none coming back, and they clearly
> are coming back on the internet facing interface.  I've ran a dump on pflog
> and nothing its not dropping it.
>
> Here is a dump for a couple pings from the outside interface:
>
> 18:53:09.462410 00:11:09:01:c8:26 > 00:24:7b:c8:f1:70, ethertype IPv4
> (0x0800), length 90: (tos 0x0, ttl 30, id 35752, offset 0, flags [none],
> proto IPv6 (41), length 76)
>     192.168.0.2 > 64.62.134.130: (hlim 64, next-header ICMPv6 (58) payload
> length: 16) 2001:470:66:3a3::2 > 2001:470:66:3a3::1: [icmp6 sum ok] ICMP6,
> echo request, length 16, seq 0
> 18:53:09.507572 00:24:7b:c8:f1:70 > 00:11:09:01:c8:26, ethertype IPv4
> (0x0800), length 90: (tos 0x0, ttl 248, id 0, offset 0, flags [DF], proto
> IPv6 (41), length 76)
>     64.62.134.130 > 192.168.0.2: (hlim 64, next-header ICMPv6 (58) payload
> length: 16) 2001:470:66:3a3::1 > 2001:470:66:3a3::2: [icmp6 sum ok] ICMP6,
> echo reply, length 16, seq 0
> 18:53:09.507598 00:11:09:01:c8:26 > 00:24:7b:c8:f1:70, ethertype IPv4
> (0x0800), length 90: (tos 0x0, ttl 247, id 0, offset 0, flags [none], proto
> IPv6 (41), length 76)
>     192.168.0.2 > 198.168.0.2: (hlim 64, next-header ICMPv6 (58) payload
> length: 16) 2001:470:66:3a3::1 > 2001:470:66:3a3::2: [icmp6 sum ok] ICMP6,
> echo reply, length 16, seq 0
> 18:53:10.462714 00:11:09:01:c8:26 > 00:24:7b:c8:f1:70, ethertype IPv4
> (0x0800), length 90: (tos 0x0, ttl 30, id 35756, offset 0, flags [none],
> proto IPv6 (41), length 76)
>     192.168.0.2 > 64.62.134.130: (hlim 64, next-header ICMPv6 (58) payload
> length: 16) 2001:470:66:3a3::2 > 2001:470:66:3a3::1: [icmp6 sum ok] ICMP6,
> echo request, length 16, seq 1
> 18:53:10.509347 00:24:7b:c8:f1:70 > 00:11:09:01:c8:26, ethertype IPv4
> (0x0800), length 90: (tos 0x0, ttl 248, id 0, offset 0, flags [DF], proto
> IPv6 (41), length 76)
>     64.62.134.130 > 192.168.0.2: (hlim 64, next-header ICMPv6 (58) payload
> length: 16) 2001:470:66:3a3::1 > 2001:470:66:3a3::2: [icmp6 sum ok] ICMP6,
> echo reply, length 16, seq 1
> 18:53:10.509366 00:11:09:01:c8:26 > 00:24:7b:c8:f1:70, ethertype IPv4
> (0x0800), length 90: (tos 0x0, ttl 247, id 0, offset 0, flags [none], proto
> IPv6 (41), length 76)
>     192.168.0.2 > 198.168.0.2: (hlim 64, next-header ICMPv6 (58) payload
> length: 16) 2001:470:66:3a3::1 > 2001:470:66:3a3::2: [icmp6 sum ok] ICMP6,
> echo reply, length 16, seq 1
>
> You get the picture there is back and forth
>
> And here is gif0
>
> [root@maricopacomputer ~]# tcpdump -leni gif0
> tcpdump: WARNING: gif0: no IPv4 address assigned
> tcpdump: listening on gif0, link-type NULL (BSD loopback), capture size
> 65535 bytes
> 18:52:34.975121 AF IPv6 (28), length 60: (hlim 64, next-header ICMPv6 (58)
> payload length: 16) 2001:470:66:3a3::2 > 2001:470:66:3a3::1: [icmp6 sum ok]
> ICMP6, echo request, length 16, seq 0
> 18:52:35.975701 AF IPv6 (28), length 60: (hlim 64, next-header ICMPv6 (58)
> payload length: 16) 2001:470:66:3a3::2 > 2001:470:66:3a3::1: [icmp6 sum ok]
> ICMP6, echo request, length 16, seq 1
> 18:52:36.975684 AF IPv6 (28), length 60: (hlim 64, next-header ICMPv6 (58)
> payload length: 16) 2001:470:66:3a3::2 > 2001:470:66:3a3::1: [icmp6 sum ok]
> ICMP6, echo request, length 16, seq 2
> 18:52:37.975689 AF IPv6 (28), length 60: (hlim 64, next-header ICMPv6 (58)
> payload length: 16) 2001:470:66:3a3:

Re: GIF tunnel doesnt like fragmented packets?

2012-07-11 Thread Bjoern A. Zeeb

On 11. Jul 2012, at 07:14 , Ermal Luçi wrote:

> On Wed, Jul 11, 2012 at 4:27 AM, Chris Benesch  
> wrote:
>> So I'm trying to set up a tunnel with Hurricane Electric.  Works great on
>> OpenBSD BTW, took only a minute or two.
>> 
> There is no support for fragmented ipv6 packets in pf(4) for FreeBSD.

It's wrong to say it like that.  There is no support for transparent reassembly 
and checking in FreeBSD but we can happily filter on IPv6 fragments and allow 
or block them.

/bz

-- 
Bjoern A. Zeeb You have to have visions!
   It does not matter how good you are. It matters what good you do!

___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: GIF tunnel doesnt like fragmented packets?

2012-07-11 Thread Daniel Hartmeier
On Tue, Jul 10, 2012 at 07:27:04PM -0700, Chris Benesch wrote:

> The only thing I notice is that the ones coming from HE have the DF flag
> set?  Am I on the wrong path?  Have no idea how to get this to work.

The problem isn't fragmentation (those DF packets are not large enough to
require fragmentation), but the fact that you're not answering the
neighbor solicitation queries from the peer.

> ifconfig_gif0_ipv6="inet6 2001:470:66:3a3::2 2001:470:66:3a3::1 prefixlen 128"

See http://www.tunnelbroker.net/forums/index.php?topic=1191.0

Daniel
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


VNET and IPv6 multicast routing

2012-07-11 Thread Hartmut Brandt


Is $subj supposed to work in -current? When I set MFC entries in a second 
jails the ones installed from the first jail get destroyed or mixed up.


harti
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: GIF tunnel doesnt like fragmented packets?

2012-07-11 Thread Chris Benesch
OMG I am so stupid

gifconfig_gif0="192.168.0.2 64.62.134.130" << works

gifconfig_gif0="198.168.0.2 64.62.134.130" << what it was before, doesnt
work

Sorry to waste everyones time
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


RE: lacp lagg port flags do not show correctly resulting in poor traffic distribution/performance

2012-07-11 Thread Adarsh Joshi
I tried to configure lagg with the latest source from SVN head and it did not 
help.

Regards
Adarsh

-Original Message-
From: owner-freebsd-...@freebsd.org [mailto:owner-freebsd-...@freebsd.org] On 
Behalf Of Adarsh Joshi
Sent: Tuesday, July 10, 2012 10:53 AM
To: Andrew Boyer
Cc: freebsd-net@freebsd.org
Subject: RE: lacp lagg port flags do not show correctly resulting in poor 
traffic distribution/performance

Andrew,

Here are the logs with LACP_DEBUG defined in ieee802.3ad_lacp.c,

 after typing

Ifconfig lagg0 create
ifconfig lagg0 laggproto lacp laggport ql0 laggport ql1 192.168.100.1 netmask 
255.255.255.0

I compiled it as a standalone driver by the way.

System 1:

# ifconfig -v lagg0
lagg0: flags=8843 metric 0 mtu 1500
options=13b
ether 00:0e:1e:08:05:20
inet 192.168.100.1 netmask 0xff00 broadcast 192.168.100.255
nd6 options=29
media: Ethernet autoselect
status: active
groups: lagg
laggproto lacp
lag id: [(8000,00-0E-1E-08-05-20,01D3,,),
 (8000,00-0E-1E-04-2C-F0,0213,,)]
laggport: ql1 flags=18 state=7D
[(8000,00-0E-1E-08-05-20,01D3,8000,000D),
 (,00-00-00-00-00-00,,,)]
laggport: ql0 flags=1c state=3D
[(8000,00-0E-1E-08-05-20,01D3,8000,000C),
 (8000,00-0E-1E-04-2C-F0,0213,8000,000E)]


System 2:

# ifconfig -v lagg0
lagg0: flags=8843 metric 0 mtu 1500
options=13b
ether 00:0e:1e:04:2c:f0
inet 192.168.100.2 netmask 0xff00 broadcast 192.168.100.255
nd6 options=29
media: Ethernet autoselect
status: active
groups: lagg
laggproto lacp
lag id: [(8000,00-0E-1E-04-2C-F0,0213,,),
 (,00-00-00-00-00-00,,,)]
laggport: ql1 flags=1c state=7D
[(8000,00-0E-1E-04-2C-F0,0213,8000,000F),
 (,00-00-00-00-00-00,,,)]
laggport: ql0 flags=18 state=3D
[(8000,00-0E-1E-04-2C-F0,0213,8000,000E),
 (8000,00-0E-1E-08-05-20,01D3,8000,000C)]


System 1 logs :

Jul 10 10:38:49 bsd-14 kernel: lacp_attach[738] : lacp attached Jul 10 10:38:49 
bsd-14 kernel: lacp_attach[740] : lacp_defined Jul 10 10:38:49 bsd-14 kernel: 
lagg0: link state changed to UP Jul 10 10:38:49 bsd-14 kernel: ql0: media 
changed 0x0 -> 0x100033, ether = 1, fdx = 1, link = 1 Jul 10 10:38:49 bsd-14 
kernel: ql0: -> UNSELECTED Jul 10 10:38:49 bsd-14 kernel: ql1: media changed 
0x0 -> 0x100033, ether = 1, fdx = 1, link = 1 Jul 10 10:38:49 bsd-14 kernel: 
ql1: -> UNSELECTED Jul 10 10:38:49 bsd-14 kernel: lacp_select_tx_port: no 
active aggregator Jul 10 10:38:50 bsd-14 kernel: ql1: port 
lagid=[(8000,00-0E-1E-08-05-20,01D3,8000,000D),(,00-00-00-00-00-00,,,)]
Jul 10 10:38:50 bsd-14 kernel: ql1: aggregator created Jul 10 10:38:50 bsd-14 
kernel: ql1: aggregator 
lagid=[(8000,00-0E-1E-08-05-20,01D3,,),(,00-00-00-00-00-00,,,)]
Jul 10 10:38:50 bsd-14 kernel: ql1: mux_state 0 -> 1 Jul 10 10:38:50 bsd-14 
kernel: ql0: port 
lagid=[(8000,00-0E-1E-08-05-20,01D3,8000,000C),(,00-00-00-00-00-00,,,)]
Jul 10 10:38:50 bsd-14 kernel: ql0: aggregator created Jul 10 10:38:50 bsd-14 
kernel: ql0: aggregator 
lagid=[(8000,00-0E-1E-08-05-20,01D3,,),(,00-00-00-00-00-00,,,)]
Jul 10 10:38:50 bsd-14 kernel: ql0: mux_state 0 -> 1 Jul 10 10:38:51 bsd-14 
kernel: ql1: lacpdu transmit Jul 10 10:38:51 bsd-14 kernel: 
actor=(8000,00-0E-1E-08-05-20,01D3,8000,000D)
Jul 10 10:38:51 bsd-14 kernel: actor.state=85
Jul 10 10:38:51 bsd-14 kernel: partner=(,00-00-00-00-00-00,,,)
Jul 10 10:38:51 bsd-14 kernel: partner.state=2 Jul 10 10:38:51 bsd-14 
kernel: maxdelay=0 Jul 10 10:38:51 bsd-14 kernel: ql0: lacpdu transmit Jul 10 
10:38:51 bsd-14 kernel: actor=(8000,00-0E-1E-08-05-20,01D3,8000,000C)
Jul 10 10:38:51 bsd-14 kernel: actor.state=85
Jul 10 10:38:51 bsd-14 kernel: partner=(,00-00-00-00-00-00,,,)
Jul 10 10:38:51 bsd-14 kernel: partner.state=2 Jul 10 10:38:51 bsd-14 
kernel: maxdelay=0 Jul 10 10:38:51 bsd-14 kernel: ql0: lacpdu receive Jul 10 
10:38:51 bsd-14 kernel: actor=(8000,00-0E-1E-04-2C-F0,0213,8000,000E)
Jul 10 10:38:51 bsd-14 kernel: actor.state=5
Jul 10 10:38:51 bsd-14 kernel: partner=(8000,00-0E-1E-08-05-20,01D3,8000,000C)
Jul 10 10:38:51 bsd-14 kernel: partner.state=85
Jul 10 10:38:51 bsd-14 kernel: maxdelay=0 Jul 10 10:38:51 bsd-14 kernel: ql0: 
old pstate 2 Jul 10 10:38:51 bsd-14 kernel: ql0: new pstate 
5 Jul 10 10:38:51 bsd-14 kernel: ql0: partner timeout 
changed Jul 10 10:38:51 bsd-14 kernel: ql0: lacpdu receive Jul 10 10:38:51 
bsd-14 kernel: actor=(8000,00-0E-1E-04-2C-F0,0213,8000,000E)
Jul 10 10:38:51 bsd-14 kernel: actor.state=5
Jul 10 10:38:51 bsd-14 kernel: partner=(8000,00-0E-1E-08-05-20,01D3,8000,000C)
Jul 10 10:38:51 bsd-14 kernel: partner.state=85
Ju

Interface MTU question...

2012-07-11 Thread gnn
Howdy,

Does anyone know the reason for this particular check in
ip_output.c?

if (rte != NULL && (rte->rt_flags & (RTF_UP|RTF_HOST))) {
/*
 * This case can happen if the user changed the MTU
 * of an interface after enabling IP on it.  Because
 * most netifs don't keep track of routes pointing to
 * them, there is no way for one to update all its
 * routes when the MTU is changed.
 */
if (rte->rt_rmx.rmx_mtu > ifp->if_mtu)
rte->rt_rmx.rmx_mtu = ifp->if_mtu;
mtu = rte->rt_rmx.rmx_mtu;
} else {
mtu = ifp->if_mtu;
}

To my mind the > ought to be != so that any change, up or down, of the
interface MTU is eventually reflected in the route.  Also, this code
does not check if it is both a HOST route and UP, but only if it is
one other the other, so don't be fooled by that, this check happens
for any route we have if it's up.

My proposed change is this:

Index: ip_output.c
===
--- ip_output.c (revision 225561)
+++ ip_output.c (working copy)
@@ -320,7 +320,7 @@
 * them, there is no way for one to update all its
 * routes when the MTU is changed.
 */
-   if (rte->rt_rmx.rmx_mtu > ifp->if_mtu)
+   if (rte->rt_rmx.rmx_mtu != ifp->if_mtu)
rte->rt_rmx.rmx_mtu = ifp->if_mtu;
mtu = rte->rt_rmx.rmx_mtu;
} else {

Please let me know what y'all think.

Best,
George
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: Interface MTU question...

2012-07-11 Thread Navdeep Parhar

On 07/11/12 14:30, g...@freebsd.org wrote:

Howdy,

Does anyone know the reason for this particular check in
ip_output.c?

if (rte != NULL && (rte->rt_flags & (RTF_UP|RTF_HOST))) {
/*
 * This case can happen if the user changed the MTU
 * of an interface after enabling IP on it.  Because
 * most netifs don't keep track of routes pointing to
 * them, there is no way for one to update all its
 * routes when the MTU is changed.
 */
if (rte->rt_rmx.rmx_mtu > ifp->if_mtu)
rte->rt_rmx.rmx_mtu = ifp->if_mtu;
mtu = rte->rt_rmx.rmx_mtu;
} else {
mtu = ifp->if_mtu;
}

To my mind the > ought to be != so that any change, up or down, of the
interface MTU is eventually reflected in the route.  Also, this code
does not check if it is both a HOST route and UP, but only if it is
one other the other, so don't be fooled by that, this check happens
for any route we have if it's up.


I believe rmx_mtu could be low due to some intermediate node between 
this host and the final destination.  An increase in the MTU of the 
local interface should not increase the path MTU if the limit was due to 
someone else along the route.


Regards,
Navdeep



My proposed change is this:

Index: ip_output.c
===
--- ip_output.c (revision 225561)
+++ ip_output.c (working copy)
@@ -320,7 +320,7 @@
 * them, there is no way for one to update all its
 * routes when the MTU is changed.
 */
-   if (rte->rt_rmx.rmx_mtu > ifp->if_mtu)
+   if (rte->rt_rmx.rmx_mtu != ifp->if_mtu)
rte->rt_rmx.rmx_mtu = ifp->if_mtu;
mtu = rte->rt_rmx.rmx_mtu;
} else {

Please let me know what y'all think.

Best,
George
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"




___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: ating 100Gbit transfer rate

2012-07-11 Thread Kevin Oberman
On Wed, Jul 11, 2012 at 1:31 PM, Sami Halabi  wrote:
> Hi,
>
> We have several boxes using 10G cards and using most of the bandwidth.
> as a future vision i would like to ask if someone ever combined hardware
> with freebsd/linux to saturate 100Gbit of traffic.
> what hardware (server, NICs, platform) and  software do you recommend that
> would allow me to acheive my goal?
>
> Is it possible with servers ? or i need dedicated hardware
> (cisco/juniper/other?) if dedicated hardware needed, i would be glad to
> hear from your experience what do you recommend in terms of performance and
> price.

I don't know of any 100GE hardware for any PC, but I may be a bit
behind on the times.

The way we saturate a 100GE with a FreeBSD (or Linux) system is using
a 10G transmission stream and loop the data stream over the net using
MPLS. Works quite well, though no end system ever sees more than about
9.9G, the routers do.

We are using Alcatel-Lucent routers at this time for our national test
network. It is available for research by educational, commercial and
research organizations for a little longer as a federally funded
testbed for 100G research. When the funding for that project runs out,
most of the hardware will be re-purposed and will no longer be
available for research. gnn@ mentioned it about a year ago and
suggested that some FreeBSD people might want to submit proposals, but
I sw no responses. We have tested with Juniper and they will work,
too. All 100G hardware is just a mite pricey, though it has dropped
tremendously over the past year and a half and I expect it will
continue to do so.
-- 
R. Kevin Oberman, Network Engineer
E-mail: kob6...@gmail.com
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: ating 100Gbit transfer rate

2012-07-11 Thread Sami Halabi
Hi,
Thank your for your response.

i have 2 questions:
1. can you explain the looping method that allowed you to reach 100GB ?
2. Alcatel-Lucent is routers are givven for research internationally ? or
its locally? what routers we are talking about here and what link do they
have? i appreciatre if you explain more how do these routers saturate 100GB.

Thanks,
Sami

On Thu, Jul 12, 2012 at 6:43 AM, Kevin Oberman  wrote:

> On Wed, Jul 11, 2012 at 1:31 PM, Sami Halabi  wrote:
> > Hi,
> >
> > We have several boxes using 10G cards and using most of the bandwidth.
> > as a future vision i would like to ask if someone ever combined hardware
> > with freebsd/linux to saturate 100Gbit of traffic.
> > what hardware (server, NICs, platform) and  software do you recommend
> that
> > would allow me to acheive my goal?
> >
> > Is it possible with servers ? or i need dedicated hardware
> > (cisco/juniper/other?) if dedicated hardware needed, i would be glad to
> > hear from your experience what do you recommend in terms of performance
> and
> > price.
>
> I don't know of any 100GE hardware for any PC, but I may be a bit
> behind on the times.
>
> The way we saturate a 100GE with a FreeBSD (or Linux) system is using
> a 10G transmission stream and loop the data stream over the net using
> MPLS. Works quite well, though no end system ever sees more than about
> 9.9G, the routers do.
>
> We are using Alcatel-Lucent routers at this time for our national test
> network. It is available for research by educational, commercial and
> research organizations for a little longer as a federally funded
> testbed for 100G research. When the funding for that project runs out,
> most of the hardware will be re-purposed and will no longer be
> available for research. gnn@ mentioned it about a year ago and
> suggested that some FreeBSD people might want to submit proposals, but
> I sw no responses. We have tested with Juniper and they will work,
> too. All 100G hardware is just a mite pricey, though it has dropped
> tremendously over the past year and a half and I expect it will
> continue to do so.
> --
> R. Kevin Oberman, Network Engineer
> E-mail: kob6...@gmail.com
>



-- 
Sami Halabi
Information Systems Engineer
NMS Projects Expert
FreeBSD SysAdmin Expert
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"