[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problema extraño de red



El 19/02/13 12:15, Francisco J. Bejarano escribió:
> El 19/02/13 08:23, Francisco J. Bejarano escribió:
>> El 18/02/13 18:09, consultores escribió:
>>> On Mon, 18 Feb 2013 15:26:43 +0100
>>> "Francisco J. Bejarano" <francisco.bejarano@openknowledgenetwork.com> wrote:
>>>
>>>> Hola
>>>>
>>>> Tengo un problema extraño de red, o bueno, que no se muy bien a que se
>>>> debe. Tengo dos LAN que pasan a traves de un switch(1) y llega a un
>>>> firewall Linux (FW). Este firewall linux tiene una interfaz a la red
>>>> (IFLAN1) y otra a la IFLAN2 y otras interfaces. Una de ellas IFSDSL va a
>>>> otro switch(2) donde estan conectados 2 SDSLs (SDLS y SDSL2).
>>>>
>>>> TEngo una serie de reglas que marcan los paquetes que vienen de LAN1 y
>>>> LAN2 al puerto 22 con marca1 y marca2 respectivamente. Despues tengo las
>>>> siguientes reglas
>>>>
>>>> 30010:  from all fwmark 0x2 lookup sdsl2
>>>> 30020:  from all fwmark 0x1 lookup sdsl
>>>> 30030:  from LAN1 lookup adsl
>>>> 30040:  from LAN2 lookup adsl
>>>> 32766:  from all lookup main
>>>> 32767:  from all lookup default
>>>>
>>>> La tabla de rutas main va, por defecto, a SDSL. Lo que se marca con 1 va
>>>> a sdsl y lo que se marca con 2 a sdsl2. El marcado funciona porque envia
>>>> a sdsl si viene de la LAN 1 y destino puerto 22 y a SDSL2 si viene de
>>>> LAN2 con destino puerto 22. Si no es el puerto 22 va la ADSL. Esto en la
>>>> tabla mangle en prerouting.
>>>>
>>>> Despues en la tabla filter dejo pasar todo para pruebas a una direccion
>>>> de la LAN2 (mi ordenador IPLAN2) para que no haya problemas con puertos.
>>>>
>>>> Y por ultimo, en la tabla NAT en postrouting tengo una regla de SNAT
>>>> para que traduzca lo que salga por la IFSDSL del firewall y le ponga esa IP.
>>>>
>>>> Pues bien, mi problema es el siguiente:
>>>>
>>>> Cuando conecto desde mi IP de la LAN2 (aunque pasa lo mismo con la LAN1)
>>>> con ssh a un servidor de internet mio me da timeout. Hago en firewall
>>>> una captura de todas las interfaces del puerto 22 y el servidor de
>>>> internet (INTSERV) y obtengo que hay un syn para la conexion y la vuelta
>>>> hay un syn,ack para la IFSDSL pero no hay un SYN,ACK para la IPLAN2.
>>>>
>>>> IPLAN2---> INTSERV         SYN
>>>> IPSDSL---> INTSERV         SYN
>>>> INTSERV--> IPSDSL           SYN,ACK
>>>> Se repite lo mismo
>>>>
>>>> Esto me provoca un timeout en ssh, es decir, no puedo conectar. Sin
>>>> embargo, esto es lo raro. Si pongo la siguiente regla en ip rule,
>>>> quedando asi:
>>>>
>>>> 29999:  from IPLAN2 lookup sdsl
>>>> 30010:  from all fwmark 0x2 lookup sdsl2
>>>> 30020:  from all fwmark 0x1 lookup sdsl
>>>> 30030:  from LAN1 lookup adsl
>>>> 30040:  from LAN2 lookup adsl
>>>> 32766:  from all lookup main
>>>> 32767:  from all lookup default
>>>>
>>>> Vuelvo a conectar por ssh al mismo servidor y se produce lo siguente:
>>>>
>>>> IPLAN2---> INTSERV         SYN
>>>> IPSDSL---> INTSERV         SYN
>>>> INTSERV--> IPSDSL           SYN,ACK
>>>> INTSERV--> IPLAN2           SYN,ACK
>>>> Y despues, todos los ACK y paquetes relacionados con ssh.
>>>>
>>>> Es decir hay un paquete más de vuelta a mi IP en la LAN2 y puedo
>>>> conectar por ssh. Lo mismo ocurre con la LAN1 y las IPs de la LAN1.
>>>>
>>>> Estoy usando las mismas reglas de firewall, las mismas rutas, los mismos
>>>> componentes de hardware, etc. Y estoy dejando pasar todo si el origen y
>>>> destino es mi IPLAN2 por cualquier protocolo y puerto. Entonces, por que
>>>> en un caso llega el segundo SYN, ACK mi IPLAN2 y se establece la
>>>> conexion y en el otro caso no llega produciendo un timeout si solo
>>>> cambia la regla de ip rule?
>>>>
>>>> Además tengo otras 2 lan conectadas al firewall pero que no hacen
>>>> marcado por el puerto 22. Estas 2 redes si que conectan por ssh sin
>>>> problemas a traves del firewall usando la regla de la tabla main que va
>>>> por SDSL...
>>>>
>>>> ¿Alguien sabe que puede estar pasando? Es muy raro ¿o se me escapa
>>>> alguna tonteria relacionada con ip rule que estoy haciendo mal? Lo que
>>>> no entiendo es porque solo pasa con dos LAN. Os pongo las reglas del mangle.
>>>>
>>>> target     prot opt in     out     source               destination
>>>> MARK       tcp  --  *      *      ! LAN2         0.0.0.0/0           
>>>> multiport dports 22,1723 MARK set 0x1
>>>> MARK       tcp  --  *      *        LAN2         0.0.0.0/0           
>>>> tcp dpt:22 MARK set 0x2
>>>>
>>>> Saludos
>>> Hacia adonde apuntan tus busquedas DNS?
>>>
>> Hola
>>
>> Apuntan hacia un DNS interno que esta en otra LAN conectada al firewall.
>> El DNS si lo resuelve, por?
>>
>> 2 puntualizaciones que he puesto mal. El trafico de las otras lan que
>> probe con ssh sale por sdsl como he puesto pero si que estan marcadas
>> con 1. He puesto que salían por main, pero son otros puertos no el 22.
>> Por el 22 conectan correctamente las otras LAN (no la LAN1, marcada
>> tambien con 1 ni la LAN2 marcada con 2).
>>
>>
> Hola
>
> ¿Nadie sabe que puede estar pasando?
>
> Añado un par de cosas
>
> Si hago un
>
> tcptraceroute -s IFLAN2 INETSERVER 80
>
> traceroute to INETSERVER (74.125.230.215), 30 hops max, 60 byte packets
>  1  ADSL  0.081 ms  0.061 ms  0.055 ms
>  2  10.15.3.6 (10.15.3.6)  0.661 ms  1.377 ms  1.846 ms
>  3  1.16.218.87.dynamic.jazztel.es (87.218.16.1)  29.813 ms  32.820 ms 
> 34.803 ms
>  4  10.255.2.254 (10.255.2.254)  37.538 ms  38.500 ms  38.984 ms
>  5  106.217.106.212.static.jazztel.es (212.106.217.106)  39.222 ms
> 114.217.106.212.static.jazztel.es (212.106.217.114)  52.948 ms
> 106.217.106.212.static.jazztel.es (212.106.217.106)  42.190 ms
>  6  113.217.106.212.static.jazztel.es (212.106.217.113)  42.187 ms 
> 48.500 ms  48.442 ms
>  7  254.216.106.212.static.jazztel.es (212.106.216.254)  45.146 ms 
> 46.024 ms  46.166 ms
>  8  * 2.217.106.212.static.jazztel.es (212.106.217.2)  28.281 ms  28.658 ms
>  9  72.14.235.18 (72.14.235.18)  29.659 ms 72.14.235.20 (72.14.235.20) 
> 29.313 ms  35.925 ms
> 10  209.85.240.191 (209.85.240.191)  46.862 ms 209.85.240.189
> (209.85.240.189)  55.524 ms  54.605 ms
> 11  72.14.235.168 (72.14.235.168)  56.654 ms 72.14.235.172
> (72.14.235.172)  116.389 ms  46.697 ms
> 12  209.85.242.49 (209.85.242.49)  51.695 ms  47.953 ms  55.410 ms
> 13  par08s09-in-f23.1e100.net (74.125.230.215) <syn,ack>  49.896 ms 
> 47.677 ms  47.690 ms
>
> me devuelve todo ok
>
> Si lo hago al puerto 22
>
> tcptraceroute -s IFLAN2 INETSERVER 22
> traceroute to INETSERVER (173.194.34.24), 30 hops max, 60 byte packets
>  1  SDSL2  7.380 ms  9.126 ms  10.667 ms
>  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  * * *
>
> Esto me pasa con la LAN1 y la LAN2 y el SDSL y el SDSL2. Pero si, a
> través del firewall, me conecto por ssh desde otra LAN que usa SDSL y el
> puerto 22, es decir usa la regla de mangle ! LAN2 mark 1... llega
> perfectamente.
>
> tcptraceroute -s IFLAN3 INETSERVER 22
> traceroute to INETSERVER , 30 hops max, 60 byte packets
>  1  SDSL  10.758 ms  12.110 ms  13.291 ms
>  2  * * *
>  3  10.115.54.49 (10.115.54.49)  63.195 ms  85.385 ms  87.591 ms
>  4  10.127.160.1 (10.127.160.1)  93.517 ms  94.710 ms  95.780 ms
>  5  10.254.8.198 (10.254.8.198)  90.033 ms  91.122 ms  92.314 ms
>  6  10.254.8.177 (10.254.8.177)  97.806 ms  87.989 ms  88.193 ms
>  7  10.254.3.126 (10.254.3.126)  87.991 ms 10.254.3.114 (10.254.3.114) 
> 106.782 ms 10.254.5.238 (10.254.5.238)  112.581 ms
>  8  xe-11-1-0.bar2.Madrid2.Level3.net (213.242.71.181)  111.886 ms
> 213.242.109.169 (213.242.109.169)  110.468 ms
> xe-11-1-0.bar2.madrid2.level3.net (213.242.71.181)  110.524 ms
>  9  4.69.158.169 (4.69.158.169)  110.560 ms 4.69.158.161 (4.69.158.161) 
> 119.588 ms 4.69.158.165 (4.69.158.165)  120.443 ms
> 10  * * *
> 11  ae-58-113.csw1.Paris1.Level3.net (4.69.161.46)  127.823 ms
> ae-59-114.csw1.paris1.level3.net (4.69.161.50)  128.649 ms
> ae-57-112.csw1.paris1.level3.net (4.69.161.42)  138.804 ms
> 12  ae-1-51.edge5.paris1.level3.net (4.69.139.203)  138.310 ms  137.916
> ms  137.997 ms
> 13  11-INTERNET.edge5.Paris1.Level3.net (212.73.200.54)  148.675 ms 
> 148.601 ms  153.598 ms
> 14  te-2-4.bb-d.bap.rhr.de.oneandone.net (212.227.120.42)  152.672 ms 
> 152.397 ms  151.696 ms
> 15  ae-10.gw-distp-a.bad.oneandone.net (212.227.121.165)  151.995 ms 
> 138.174 ms  150.945 ms
> 16  ae-1.gw-prtr-r261-a.bad.oneandone.net (195.20.247.53)  151.578 ms 
> 152.751 ms  152.687 ms
> 17  INETSERVER <syn,ack>  149.574 ms  148.968 ms  149.948 ms
>
> En este caso el ip rule que esta usando es ip rule from all fwmark 1
> lookup sdsl.
>
> Si hago lo mismo desde la LAN1 que usa las mismas reglas que la LAN3 del
> firewall mangle y del ip rule y del nat. Esto no funciona. Pasa como en
> la LAN2.
>
> Tambien veo que la IFLAN1 y la IFLAN2 estan conectadas a una tarjeta de
> red Broadcom con modulo tg3 y que todas las demas IF del firewall estan
> conectadas una tarjeta de 4 puertos con modulo r8169. De todas formas no
> creo que sea de hardware puesto que si pongo el ip rule con una IP de la
> LAN1 o la LAN2 con mayor prioridad y la envio por la misma tabla de
> rutas (sdsl o sdsl2) funciona perfectamente con el puerto 22...
>
> No entiendo nada :-D. ¿Alguna sugerencia?
>
>
>
>

He visto que cuando no especifico la IP en el ip rule, la el servidor
INETSERVER no llegan paquetes y si la especifico en ip rule por delante
de las fwmark si recivo paquetes y respondo en el INETSERVER. Por eso me
falta un ack. La cuestion es por que desde LAN1 no llegan paquetes a
INETSERV con las ip rule fwmark y si desde la LAN3 y la misma regla
fwmark y cuando especifico la IP de la LAN2 conecta perfectamente.


Reply to: