0
Linux Networking
                        Routing Policy Data Base
                                  RPDB
                 ...
Índice
   •   Arquitectura
   •   Conceptos básicos
   •   ip link
   •   ip address
   •   ip route
   •   ip rule
   •  ...
Arquitectura




jsancheznav@gmail.com
Conceptos básicos
                TCP/IP
 ¿Qué representa una dirección IP?
   • Un host                          • Boundi...
Conceptos básicos
                CIDR – Classless Inter-Domain Routing
   •   Permite agrupar direcciones para routing
  ...
Conceptos básicos
                Partes de RPDB

                                     Address




                       ...
Conceptos básicos
                Tablas

   • Conjunto de reglas
   • Máximo 255 tablas
   • El sistema crea por defecto ...
Conceptos básicos
                Tablas
   Tabla                Descripción
   DEFAULT (253) Tabla vacia y reservada para...
Conceptos básicos
                iproute2 commands
   Capa                       Parte RPDB   Comando
   Enlace de datos ...
Conceptos básicos
                iproute2 – Ficheros configuración
 /etc/iproute2/*
  Fichero               Contenido
  r...
Comandos iproute2
                ip link
 Comando
   ip link set DEVICE { up | down | arp {
     on | off } | dynamic { o...
Comandos iproute2
                ip link
 Comando
   •   dev NAME => Nombre del dispositivo
   •   arp on|off => Cambia f...
Comandos iproute2
                ip link
 Ejemplos
   •   ip link set dummy address 000000000001
   •   ip link set dummy...
Comandos iproute2
                     ip link
 Ejemplos – ip –s link show eth0

                                         ...
Comandos iproute2
                ip link show
 Flags
  Etiqueta              Descripción
  UP / DOWN             Disposit...
Comandos iproute2
                ip link show
 Flags
  Etiqueta              Descripción
  PROMISC               Se recib...
Comandos iproute2
                ip link
 Equivalencias
  Antiguo                         Nuevo
  ifconfig eth0 up       ...
Comandos iproute2
                ip address
 Comando
   ip addr { add|del} IFADDR dev STRING
   ip addr { show|flush} [ d...
Comandos iproute2
                ip address
 Broadcast address
   + => Broadcast add igual a poner 1 en parte host

   - ...
Comandos iproute2
                ip address
 Scope
  Etiqueta              Descripción
  global                La direcci...
Comandos iproute2
                ip address
 Ejemplos
   •   ip addr add 127.0.0.1/8 dev lo brd + scope host
   •   ip ad...
Comandos iproute2
                ip address
 Ejemplos de multidirección
   •   ip addr add 10.1.1.1/24 dev eth0
   •   ip...
Comandos iproute2
                ip address
 Equivalencias
  Antiguo                         Nuevo
  ifconfig eth0 192.16...
Comandos iproute2
             ip route
 Comando
    ip route { list | flush } SELECTOR
            ip route get ADDRESS [...
Comandos iproute2
            ip route
Tipos de rutas
Etiqueta    Descripción
unicast     La ruta describe caminos buenos
...
Comandos iproute2
                ip route
 Tipos de protocolo
  Etiqueta      Descripción
  kernel        Ruta creada por...
Comandos iproute2
                ip route
 Multi camino
   • nexthop
        – Permite crear rutas alternativas
        –...
Comandos iproute2
                ip route
 Ejemplos
   • ip route add 192.168.20.0/24 via 192.168.20.1 dev eth0
   • ip r...
Comandos iproute2
                ip route
 Ejemplos
   • ip route get 192.168.20.8
   • ip route get 192.168.40.3 from 19...
Comandos iproute2
                ip rule
 Comando
 ip rule [ list | add | del ] SELECTOR ACTION
 SELECTOR := [ from PREFI...
Comandos iproute2
                ip route
 Ejemplos
   • ip rule add from 192.168.20.0/24 table trouter_shdsl priority
  ...
Implementaciones
                Gestión de Direcciones
 Consideraciones previas
   • Un dispositivo puede tener más de un...
Implementaciones
                Flujo paquetes




jsancheznav@gmail.com
Implementaciones
                Marcado de paquetes
 Consideraciones previas
   • Marcado de nivel de preferencia
       ...
Implementaciones
          Marcado de paquetes
Consideraciones previas
  • TOS vs MARK
     – TOS => Se propaga
     – MAR...
Implementaciones
                Marcado de paquetes
 Consideraciones previas
   • Bits de TOS
        –   1000 => Minimiz...
Implementaciones
                QoS
 Cola pfifo_fast
   • Utiliza técnica FIFO
   • No realiza ningún cambio en los paque...
Implementaciones
                QoS
 Cola pfifo_fast
                              Banda 1
                              ...
Implementaciones
                QoS
 Cola pfifo_fast
   • Para establecer el tamaño de la cosa utilizar
     txqueuelen c...
Implementaciones
                Gestión
 Caso 1
   •   Asignar 3 IP de diferentes redes a eth0 con ip
   •   Extraer conf...
Implementaciones
        Gestión
Caso 2
    • ip address add 192.168.10.1/24 brd + dev eth0
    • ip address add 192.168.2...
Implementaciones
                Gestión
 Caso 2
   • Asignar 3 IP de diferentes redes a eth0 usando
     ifconfig
   • Ex...
Implementaciones
                Gestión
 Caso 1
   •   ifconfig eth0 192.168.10.1/24
   •   ifconfig eth0:1 192.168.20.1/...
Implementaciones
                Gestión
 Caso 3
   • Borrar todas las rutas de eth0
   • Crear todas las rutas directas p...
Implementaciones
                Gestión
 Caso 3
 •   ip address flush dev eth0
 •   ip route flush dev eth0
 •   ip addre...
Implementaciones
                Gestión
 Caso 4
   • Crear un ruta que descarte todos los paquetes
     que se redirijan ...
Implementaciones
                Gestión
 Caso 4
   • ip route add blackhole 192.168.20.0/24




jsancheznav@gmail.com
Implementaciones
                Gestión
 Caso 5
   • Crear la ruta por defecto en 192.168.10.1 o
     192.168.20.1 o 192....
Implementaciones
                Gestión
 Caso 5
 • ip route add default equalize scope global nexthop via 192.168.10.1 ne...
Implementaciones
                Gestión
 Caso 6
   • Crear una regla en tabla main para que
     permita que:
        –  ...
Implementaciones
                Gestión
 Caso 6
   •   ip rule add from 192.168.10.0/24 to 192.168.20.0/24 priority 1600
...
Implementaciones
                Gestión
 Caso 7
   • Crear 2 tablas una para cada router
   • Asignar el tráfico de 192.1...
Implementaciones
                Gestión
 Caso 7
   •   echo 1 trouter_adsl >> /etc/iproute/rt_tables
   •   echo 2 troute...
Implementaciones
                Gestión
 Caso 8
   • Redirigir todo el tráfico marcado como 1 al router_adsl y su
     ta...
Implementaciones
                Gestión
 Caso 8
   •   iptables –A PREROUTING –i eth0 –t mangle –j MARK --set-mark 1
   •...
Implementaciones
                Gestión de Direcciones
 Caso 9
   • Marcar con TOS todo tcp/25 para que salga con baja pr...
Implementaciones
                Gestión
 Caso 9
   • iptables –A POSTROUTING –p tcp --dport 25 –t mangle –j TOS --set-tos...
Upcoming SlideShare
Loading in...5
×

Linux Routing

4,199

Published on

Gestión Redes con ip y Routing Policy Database (routing)

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,199
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
102
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Linux Routing"

  1. 1. Linux Networking Routing Policy Data Base RPDB Teoría y Ejemplos Juan Sánchez jsancheznav@gmail.com Diciembre 2009
  2. 2. Índice • Arquitectura • Conceptos básicos • ip link • ip address • ip route • ip rule • Implementaciones jsancheznav@gmail.com
  3. 3. Arquitectura jsancheznav@gmail.com
  4. 4. Conceptos básicos TCP/IP ¿Qué representa una dirección IP? • Un host • Bounding • Una NIC => NO => • Balanceo • Multi IP • Un router • Un conjunto de servicios => SÍ jsancheznav@gmail.com
  5. 5. Conceptos básicos CIDR – Classless Inter-Domain Routing • Permite agrupar direcciones para routing • Mejora performance routing • Minimizan tamaño tablas de routing • Supernetting Wikipedia 192.168.96.0/20 jsancheznav@gmail.com
  6. 6. Conceptos básicos Partes de RPDB Address Antiguo + Identificación de un Conjunto de servicios Usado Route Identificación de Conjunto de Direcciones Nuevo Rule - Conjunto de ACL aplicadas a las rutas jsancheznav@gmail.com
  7. 7. Conceptos básicos Tablas • Conjunto de reglas • Máximo 255 tablas • El sistema crea por defecto y las usa • Los antiguos comandos las utizan de forma transparente • /etc/iproute2/rt_tables # reserved values 255 local 254 main 253 default 0 unspec # local #1 inr.ruhep jsancheznav@gmail.com
  8. 8. Conceptos básicos Tablas Tabla Descripción DEFAULT (253) Tabla vacia y reservada para post-proceso si no existen reglas que procesen el paquete. Esta ruta puede ser borrada. MAIN (254) Tabla de enrutado normal de rutas non-policy. Esta ruta puede ser borrada y sobreescrita LOCAL (255) Tabla de alta prioridad de control de rutas de direcciones locales o broadcast Esta ruta no se puede borrar ni sobreescribir Una regla (rule) pertenece a una tabla Una tabla puede contener 1 o mas reglas Una tabla desaparece si no contiene reglas jsancheznav@gmail.com
  9. 9. Conceptos básicos iproute2 commands Capa Parte RPDB Comando Enlace de datos / NAL ip link Red / Internet Address ip neighbour ip address Transport Route ip route Aplicación Rule ip rule ip tunnel ip monitor jsancheznav@gmail.com
  10. 10. Conceptos básicos iproute2 – Ficheros configuración /etc/iproute2/* Fichero Contenido rc_tables Tablas creadas y definidas rc_scopes Ámbitos de actuación. Utilizado por scope rc_protos Lista de protocolos utilizados por protocol jsancheznav@gmail.com
  11. 11. Comandos iproute2 ip link Comando ip link set DEVICE { up | down | arp { on | off } | dynamic { on | off } | multicast { on | off } | txqueuelen PACKETS | name NEWNAME | address LLADDR | broadcast LLADDR | mtu MTU } ip link show [ DEVICE ] jsancheznav@gmail.com
  12. 12. Comandos iproute2 ip link Comando • dev NAME => Nombre del dispositivo • arp on|off => Cambia flag NOARP • multicast on|off => Cambia flag MULTICAST • dynamic on|off => Cambia flag DYNAMIC • txqueuelen <num> => Tamaño cola TX • mtu <num> => Conf tamaño unidad transf • address <dir> => Cambia MAC • broadcast <dir> => Cambia broadcast MAC • peer <dir> => Cambia MAC peer para POINTOPOINT jsancheznav@gmail.com
  13. 13. Comandos iproute2 ip link Ejemplos • ip link set dummy address 000000000001 • ip link set dummy up • ip link show • ip –s link show eth0 jsancheznav@gmail.com
  14. 14. Comandos iproute2 ip link Ejemplos – ip –s link show eth0 Flags MTU T.Cola 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:0c:29:69:b5:97 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 0 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 1674 21 0 0 0 0 Campos a vigilar jsancheznav@gmail.com
  15. 15. Comandos iproute2 ip link show Flags Etiqueta Descripción UP / DOWN Dispositivo activado o no para recibir LOWER_UP Activado pero cable desconectado LOOPBACK Dispositivo de loopback, que por lo tanto no se comunica con otros hosts. BROADCAST Dispositivo puede enviar a otros hosts POINTOPOINT Comunicación punto a punto entre dispositivos NOARP No se necesita resolución ARP ya que se jsancheznav@gmail.com conoce.
  16. 16. Comandos iproute2 ip link show Flags Etiqueta Descripción PROMISC Se reciben todos los paquetes. Usado en broadcast links, monitorización y bridging. DYNAMIC Dispositivo creado y borrado dinamicamente MULTICAST Envío a mas de un destinatario. Broadcast es un SLAVE Dispositivo es parte de un dispositivo bounded (ver) jsancheznav@gmail.com
  17. 17. Comandos iproute2 ip link Equivalencias Antiguo Nuevo ifconfig eth0 up ip link set eth0 up ifup eth0 ifconfig eth0 down ip link set eth0 down ifdown eth0 ifconfig eth0 mtu 1450 ip link set eth0 mtu 1450 ---- ip link set ppp0 dynamic on ---- ip link set eth0 name ethADSL ifconfig eth0 txqueuelen 1000 ip link set eth0 txqueuelen 1000 jsancheznav@gmail.com
  18. 18. Comandos iproute2 ip address Comando ip addr { add|del} IFADDR dev STRING ip addr { show|flush} [ dev STRING ] [ scope SCOPE-ID ][ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] IFADDR := PREFIX | ADDR peer PREFIX [ broadcast ADDR ] [ anycast ADDR ] [ label STRING ] [ scope SCOPE-ID ] SCOPE-ID := [ host | link | global | NUMBER ] FLAG-LIST := [ FLAG-LIST ] FLAG FLAG := [ permanent | dynamic | secondary | primary | tentative | deprecated ] jsancheznav@gmail.com
  19. 19. Comandos iproute2 ip address Broadcast address + => Broadcast add igual a poner 1 en parte host - => Broadcast add igual a poner 0 en parte host jsancheznav@gmail.com
  20. 20. Comandos iproute2 ip address Scope Etiqueta Descripción global La dirección es válida globalmente link La dirección es válida en la LAN host La dirección es válida solo dentro del host, por ejemplo 127.0.0.1 ip addr add 127.0.0.1/8 dev lo brd + scope host jsancheznav@gmail.com
  21. 21. Comandos iproute2 ip address Ejemplos • ip addr add 127.0.0.1/8 dev lo brd + scope host • ip addr add 10.0.0.1/24 brd + dev eth0 • ip addr del 127.0.0.1/8 dev lo • ip –s addr show • ip -4 addr flush label "eth*“ jsancheznav@gmail.com
  22. 22. Comandos iproute2 ip address Ejemplos de multidirección • ip addr add 10.1.1.1/24 dev eth0 • ip addr add 10.1.1.64/32 dev eth0 • ip addr add 10.1.1.200/16 dev eth0 • ip addr list dev eth0 CUIDADO: No es lo mismo que ifconfig eth0 10.1.1.1/24 ifconfig eth0:1 10.1.1.64/32 ifconfig eth0:2 10.1.1.200/16 jsancheznav@gmail.com
  23. 23. Comandos iproute2 ip address Equivalencias Antiguo Nuevo ifconfig eth0 192.168.1.12/24 ip address add 192.168.1.12/24 dev eth0 --- ip address add 192.168.1.12/24 dev eth0 --- ip address add 192.168.2.12/24 dev eth0 jsancheznav@gmail.com
  24. 24. Comandos iproute2 ip route Comando ip route { list | flush } SELECTOR ip route get ADDRESS [ from ADDRESS iif STRING ] [ oif STRING ] [ tos TOS ] ip route { add | del | change | append | replace | monitor } ROUTE SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ] [ table TABLE_ID ] [ proto RTPROTO ] [ type TYPE ] [ scope SCOPE ] ROUTE := NODE_SPEC [ INFO_SPEC ] NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ] [ table TABLE_ID ] [ proto RTPROTO ] [ scope SCOPE ] [ metric METRIC ] INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]... NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ rtt NUMBER ] [ rttvar NUMBER ] [ window NUMBER] [ cwnd NUMBER ] [ ssthresh REALM ] [ realms REALM ] TYPE := [ unicast | local | broadcast | multicast | throw | unreachable | prohibit | blackhole | nat ] TABLE_ID := [ local | main | default | all | NUMBER ] SCOPE := [ host | link | global | NUMBER ] FLAGS := [ equalize ] NHFLAGS := [ onlink | pervasive ] RTPROTO := [ kernel | boot | static | NUMBER ] jsancheznav@gmail.com
  25. 25. Comandos iproute2 ip route Tipos de rutas Etiqueta Descripción unicast La ruta describe caminos buenos unreachab El destino es inalcanzable y se devuelve mensaje ICMP “host unreachable - le EHOSTUNREACH” (ICMP Tipo 3 Código 1) blackhole El destino es inalcanzable y el paquete se descarta sin mensaje de error, salvo para envíos locales que se devuelve EINVAL. prohibit El destino es inalcanzable y se devuelve mensaje ICMP “communication admin prohibited - EACCESS”(ICMP Tipo 3 Código 13) local El destino es el propio host y son reenviados localmente broadcast El destino son direcciones broadcast y enviados a la LAN como broadcast throw Se rompe la busqueda de rutas y se devuelve mensaje ICMP “net unreachable – ENETUNREACH” (ICMP Tipo 3 Código 0) nat El destino son direcciones externas que requieren NAT antes de ser enviadas
  26. 26. Comandos iproute2 ip route Tipos de protocolo Etiqueta Descripción kernel Ruta creada por el kernel durante la autoconfiguración boot Ruta creada en boot time. Si se arranca routed, estas rutas se borrarán static Ruta añadida manualmente para reescribir rutas dinámicas redirect Ruta añadida divido a una redirección ICMP ra Ruta añadida por el protocolo Router Discovery jsancheznav@gmail.com
  27. 27. Comandos iproute2 ip route Multi camino • nexthop – Permite crear rutas alternativas – nexthop via ROUTER dev DISP_SALIDA weigh PESO • equalize – Paquete a paquete se decide de forma aleatoria una ruta – Necesario si bloqueo en una ruta jsancheznav@gmail.com
  28. 28. Comandos iproute2 ip route Ejemplos • ip route add 192.168.20.0/24 via 192.168.20.1 dev eth0 • ip route delete default • ip route show • ip route flush • ip route add default equalize scope global nexthop via 192.168.10.1 dev eth0 nexthop via 192.168.20.1 dev eth1 • ip route add nat 192.168.20.1 via 192.168.30.1 • ip -4 route flush scope global type unicast jsancheznav@gmail.com
  29. 29. Comandos iproute2 ip route Ejemplos • ip route get 192.168.20.8 • ip route get 192.168.40.3 from 192.168.20.2 iif eth0 • ip route get 192.168.40.3 from 192.168.20.2 iif eth0 oif eth1 cache – local => Destino Local (loopback) – src-direct => Destino conectado directamente – reject => La ruta es incorrecta – equalize => Redirección de forma aleatoria – src-nat, dst-nat => Nat de origen o destino jsancheznav@gmail.com
  30. 30. Comandos iproute2 ip rule Comando ip rule [ list | add | del ] SELECTOR ACTION SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK ] [ dev STRING ] [ pref NUMBER ] ACTION := [ table TABLE_ID ] [ nat ADDRESS ] [ prohibit | reject | unreachable ] [ realms [SRCREALM/]DSTREALM ] TABLE_ID := [ local | main | default | NUMBER ] jsancheznav@gmail.com
  31. 31. Comandos iproute2 ip route Ejemplos • ip rule add from 192.168.20.0/24 table trouter_shdsl priority 100 • ip rule add from 192.168.20.3 nat 192.168.20.1 table 254 prio 120 • ip rule delete priority 32767 • ip rule show jsancheznav@gmail.com
  32. 32. Implementaciones Gestión de Direcciones Consideraciones previas • Un dispositivo puede tener más de una IP • Un dispositivo puede estar fragmentado o no • La primera IP de una red es la primaria del dispositivo, la siguientes son secundarias y dependientes jsancheznav@gmail.com
  33. 33. Implementaciones Flujo paquetes jsancheznav@gmail.com
  34. 34. Implementaciones Marcado de paquetes Consideraciones previas • Marcado de nivel de preferencia iptables –t mangle –A PREROUTING –p <prot> -- dport <dport> -j TOS --set-tos 0x00 • Marcado de tipo de paquete iptables –t mangle –A PREROUTING –p <prot> -- dport <dport> -j MARK --set-mark 2 jsancheznav@gmail.com
  35. 35. Implementaciones Marcado de paquetes Consideraciones previas • TOS vs MARK – TOS => Se propaga – MARKET => Kernel • Valores TOS – 0x10 => Retraso Mínimo => ssh, telnet – 0x00 => Servicio Normal => resto – 0x08 => Rendimiento Máximo => www, ftp 21 – 0x04 => Fiabilidad Máxima => dns – 0x02 => Coste mínimo => smtp jsancheznav@gmail.com
  36. 36. Implementaciones Marcado de paquetes Consideraciones previas • Bits de TOS – 1000 => Minimizar Retraso – 0100 => Maximizar Transferencia – 0010 => Maximizar Fiabilidad – 0001 => Minimizar coste monetario – 0000 => Servicio Normal jsancheznav@gmail.com
  37. 37. Implementaciones QoS Cola pfifo_fast • Utiliza técnica FIFO • No realiza ningún cambio en los paquetes • Tiene 3 repositorios o bandas (0, 1 y 2), siendo el 0 el de mayor prioridad y el 2 el de menor. • No se trata ningún paquete si existe un paquete en la banda de mayor prioridad • Basado en TOS jsancheznav@gmail.com
  38. 38. Implementaciones QoS Cola pfifo_fast Banda 1 Subnivel 0 Banda 2 0x00 Subnivel 1 Banda 0 0x04 0x02 Subnivel 0 0x06 0x10 0x12 Subnivel 2 0x08 0x14 Subnivel 4 0x0a 0x16 0x18 0x0c 0x1a 0x0e 0x1c 0x1e jsancheznav@gmail.com
  39. 39. Implementaciones QoS Cola pfifo_fast • Para establecer el tamaño de la cosa utilizar txqueuelen con “ip link” o “ifconfig” jsancheznav@gmail.com
  40. 40. Implementaciones Gestión Caso 1 • Asignar 3 IP de diferentes redes a eth0 con ip • Extraer configuración eth0 con ifconfig y ip • Borrar IP 2 asignada a eth0 • Extraer configuración eth0 usando ifconfig y ip • Borrar IP primaria asignada a eth0 • Extraer configuración eth0 usando ifconfig y ip jsancheznav@gmail.com
  41. 41. Implementaciones Gestión Caso 2 • ip address add 192.168.10.1/24 brd + dev eth0 • ip address add 192.168.20.1/24 brd + dev eth0 • ip address add 192.168.30.1/24 brd + dev eth0 • ip address show dev eth0 • ifconfig • ip address delete 192.168.20.1 dev eth0 • ip address show dev eth0 • ifconfig jsancheznav@gmail.com
  42. 42. Implementaciones Gestión Caso 2 • Asignar 3 IP de diferentes redes a eth0 usando ifconfig • Extraer configuración eth0 usando ip • Borrar IP 2 asignada a eth0 • Extraer configuración eth0 usando ip • Borrar IP primaria asignada a eth0 • Extraer configuración eth0 usando ip jsancheznav@gmail.com
  43. 43. Implementaciones Gestión Caso 1 • ifconfig eth0 192.168.10.1/24 • ifconfig eth0:1 192.168.20.1/24 • ifconfig eth0:2 192.168.30.1/24 • ifconfig eth0:2 delete 192.168.30.1 • ifconfig eth0 • ifconfig eth0 delete 192.168.10.1/24 • ifconfig jsancheznav@gmail.com
  44. 44. Implementaciones Gestión Caso 3 • Borrar todas las rutas de eth0 • Crear todas las rutas directas para 192.168.10.2, 192.168.20.2 y 192.168.30.2. • Crear la ruta por defecto en 192.168.10.1 o 192.168.20.1 o 192.168.30.1 jsancheznav@gmail.com
  45. 45. Implementaciones Gestión Caso 3 • ip address flush dev eth0 • ip route flush dev eth0 • ip address add 192.168.10.2/24 brd + dev eth0 • ip address add 192.168.20.2/24 brd + dev eth0 • ip address add 192.168.30.2/24 brd + dev eth0 • ip route show • ip route add 192.168.10.0/24 proto kernel scope link dev eth0 src 192.168.10.1 • ip route add 192.168.20.0/24 proto kernel scope link dev eth0 src 192.168.20.1 • ip route add 192.168.30.0/24 proto kernel scope link dev eth0 src 192.168.30.1 • ip route add default scope global nexthop via 192.168.10.1 nexthop via 192.168.20.1 nexthop via 192.168.30.1 jsancheznav@gmail.com
  46. 46. Implementaciones Gestión Caso 4 • Crear un ruta que descarte todos los paquetes que se redirijan a 192.168.20.0/24 jsancheznav@gmail.com
  47. 47. Implementaciones Gestión Caso 4 • ip route add blackhole 192.168.20.0/24 jsancheznav@gmail.com
  48. 48. Implementaciones Gestión Caso 5 • Crear la ruta por defecto en 192.168.10.1 o 192.168.20.1 o 192.168.30.1 por paquetes • Crear la ruta por defecto en 192.168.10.1 o 192.168.20.1 o 192.168.30.1 asignando prioridad al primera ruta jsancheznav@gmail.com
  49. 49. Implementaciones Gestión Caso 5 • ip route add default equalize scope global nexthop via 192.168.10.1 nexthop via 192.168.20.1 nexthop via 192.168.30.1 • ip route add default scope global nexthop via 192.168.10.1 weight 100 nexthop via 192.168.20.1 weight 10 nexthop via 192.168.30.1 weight 2 jsancheznav@gmail.com
  50. 50. Implementaciones Gestión Caso 6 • Crear una regla en tabla main para que permita que: – De 192.168.10.0/24 a 192.168.20.0/24 permitido – De 192.168.10.0/24 a 0/0 descartado – De 192.168.30.0/24 a 192.168.20.0/24 permitido – De 192.168.30.0/24 a 192.168.40.0/24 permitido – De 192.168.30.0/24 a 192.168.30.0/24 descartado jsancheznav@gmail.com
  51. 51. Implementaciones Gestión Caso 6 • ip rule add from 192.168.10.0/24 to 192.168.20.0/24 priority 1600 • ip rule add from 192.168.10.0/24 to 0/0 priority 1601 blackhole • ip rule add from 192.168.30.0/24 to 192.168.20.0/24 priority 1700 • ip rule add from 192.168.30.0/24 to 192.168.40.0/24 priority 1700 • ip rule add from 192.168.30.0/24 to 192.168.10.0/24 priority 1702 blackhole jsancheznav@gmail.com
  52. 52. Implementaciones Gestión Caso 7 • Crear 2 tablas una para cada router • Asignar el tráfico de 192.168.30.0/24 a la tabla del router_adsl (192.168.10.1) • Asignar el tráfico de 192.168.40.0/24 a la tabla del router_shdsl (192.168.20.1) • Asignar el resto de tráfico por router_adsl • No permitir los paquetes de 192.168.10.5 a 192.168.30.0/24 • No permitir los paquetes de 192.168.20.5 a 192.168.40.0/24 jsancheznav@gmail.com
  53. 53. Implementaciones Gestión Caso 7 • echo 1 trouter_adsl >> /etc/iproute/rt_tables • echo 2 trouter_shdsl >> /etc/iproute/rt_tables • ip route add default via 192.168.10.1 proto static table trouter_adsl • ip route add add 192.168.30.0/24 via 192.168.10.1 proto static table trouter- adsl • ip route add add 192.168.40.0/24 via 192.168.20.1 proto static table trouter- shdsl • ip rule add from 192.168.10.5/32 to 192.168.30.0/24 prio 1000 table trouter- adsl blackhole • ip rule add from 192.168.20.5/32 to 192.168.40.0/24 prio 1001 table trouter- adsl blackhole • ip route flush cache jsancheznav@gmail.com
  54. 54. Implementaciones Gestión Caso 8 • Redirigir todo el tráfico marcado como 1 al router_adsl y su tabla trouter_adsl jsancheznav@gmail.com
  55. 55. Implementaciones Gestión Caso 8 • iptables –A PREROUTING –i eth0 –t mangle –j MARK --set-mark 1 • echo 1 trouter_adsl >> /etc/iproute/rt_tables • ip route add default via 192.168.10.1 proto static table trouter_adsl • ip rule add fwmark 1 table trouter_adsl • ip route flush cache jsancheznav@gmail.com
  56. 56. Implementaciones Gestión de Direcciones Caso 9 • Marcar con TOS todo tcp/25 para que salga con baja prioridad • Marcar con TOS todo tcp/22 para que salga con alta prioridad jsancheznav@gmail.com
  57. 57. Implementaciones Gestión Caso 9 • iptables –A POSTROUTING –p tcp --dport 25 –t mangle –j TOS --set-tos 0x0 • iptables –A POSTROUTING –p tcp --dport 25 –t mangle –j TOS --set-tos 0x16 La cola pfifo-fast está activada por defecto y tiene 3 bandas siendo la 0 la de mayor prioridad. jsancheznav@gmail.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×