SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Downloaden Sie, um offline zu lesen
Linux Networking
                        Routing Policy Data Base
                                  RPDB
                             Teoría y Ejemplos




                                            Juan Sánchez
jsancheznav@gmail.com                     Diciembre 2009
Índice
   •   Arquitectura
   •   Conceptos básicos
   •   ip link
   •   ip address
   •   ip route
   •   ip rule
   •   Implementaciones

jsancheznav@gmail.com
Arquitectura




jsancheznav@gmail.com
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Implementaciones
                Flujo paquetes




jsancheznav@gmail.com
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
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
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
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
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
Implementaciones
                QoS
 Cola pfifo_fast
   • Para establecer el tamaño de la cosa utilizar
     txqueuelen con “ip link” o “ifconfig”




jsancheznav@gmail.com
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
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
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
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
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
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
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
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.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
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
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
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
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
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
Implementaciones
                Gestión
 Caso 8
   • Redirigir todo el tráfico marcado como 1 al router_adsl y su
     tabla trouter_adsl




jsancheznav@gmail.com
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
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Que es y para que sirve el DNS
Que es y para que sirve el DNSQue es y para que sirve el DNS
Que es y para que sirve el DNS
Rosariio92
 
Directiva de seguridad local
Directiva de seguridad localDirectiva de seguridad local
Directiva de seguridad local
VeidaDamara
 
File transfer protocol
File transfer protocolFile transfer protocol
File transfer protocol
Milind Swane
 

Was ist angesagt? (20)

Algoritmos distribuidos bully o abusón, ronda,anillo o ring, bizantino
Algoritmos distribuidos bully o abusón, ronda,anillo o ring, bizantinoAlgoritmos distribuidos bully o abusón, ronda,anillo o ring, bizantino
Algoritmos distribuidos bully o abusón, ronda,anillo o ring, bizantino
 
Metodologia para el diseño de redes
Metodologia para el diseño de redesMetodologia para el diseño de redes
Metodologia para el diseño de redes
 
Dhcp
DhcpDhcp
Dhcp
 
Arquitectura cliente servidor
Arquitectura cliente servidorArquitectura cliente servidor
Arquitectura cliente servidor
 
OpenvSwitch Deep Dive
OpenvSwitch Deep DiveOpenvSwitch Deep Dive
OpenvSwitch Deep Dive
 
Modelo y transicion
Modelo y transicionModelo y transicion
Modelo y transicion
 
Puertos comunicacion
Puertos comunicacionPuertos comunicacion
Puertos comunicacion
 
Directory Services Nma Unit-1
Directory Services Nma Unit-1Directory Services Nma Unit-1
Directory Services Nma Unit-1
 
Arquitectura web
Arquitectura webArquitectura web
Arquitectura web
 
Que es y para que sirve el DNS
Que es y para que sirve el DNSQue es y para que sirve el DNS
Que es y para que sirve el DNS
 
CNIT 126 5: IDA Pro
CNIT 126 5: IDA ProCNIT 126 5: IDA Pro
CNIT 126 5: IDA Pro
 
Openstack Summit Vancouver 2018 - Multicloud Networking
Openstack Summit Vancouver 2018 - Multicloud NetworkingOpenstack Summit Vancouver 2018 - Multicloud Networking
Openstack Summit Vancouver 2018 - Multicloud Networking
 
Protocolo dns
Protocolo dnsProtocolo dns
Protocolo dns
 
Directiva de seguridad local
Directiva de seguridad localDirectiva de seguridad local
Directiva de seguridad local
 
Network Virtualization
Network Virtualization Network Virtualization
Network Virtualization
 
Introduction to Network Performance Measurement with Cisco IOS IP Service Lev...
Introduction to Network Performance Measurement with Cisco IOS IP Service Lev...Introduction to Network Performance Measurement with Cisco IOS IP Service Lev...
Introduction to Network Performance Measurement with Cisco IOS IP Service Lev...
 
Chapter01
Chapter01Chapter01
Chapter01
 
Pfsense
PfsensePfsense
Pfsense
 
Servidor escuela
Servidor escuelaServidor escuela
Servidor escuela
 
File transfer protocol
File transfer protocolFile transfer protocol
File transfer protocol
 

Andere mochten auch (7)

Blue Designs Presentation
Blue Designs PresentationBlue Designs Presentation
Blue Designs Presentation
 
20120622 fridayadelboden
20120622 fridayadelboden20120622 fridayadelboden
20120622 fridayadelboden
 
2014 10-01-assembly summaryvariantsoverview
2014 10-01-assembly summaryvariantsoverview2014 10-01-assembly summaryvariantsoverview
2014 10-01-assembly summaryvariantsoverview
 
Semut programming minds
Semut programming mindsSemut programming minds
Semut programming minds
 
GS Rubber Industries
GS Rubber IndustriesGS Rubber Industries
GS Rubber Industries
 
Improvement of Military Planes From War to War
Improvement of Military Planes From War to WarImprovement of Military Planes From War to War
Improvement of Military Planes From War to War
 
2014 12-09-oulu
2014 12-09-oulu2014 12-09-oulu
2014 12-09-oulu
 

Ähnlich wie Linux Routing

Ccna2 (chapter7) presentation by halvyn
Ccna2 (chapter7) presentation by halvynCcna2 (chapter7) presentation by halvyn
Ccna2 (chapter7) presentation by halvyn
Adames Bakery SRL
 
Config ospf
Config ospfConfig ospf
Config ospf
1 2d
 
Config ospf
Config ospfConfig ospf
Config ospf
1 2d
 
Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01
Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01
Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01
Jarch Rodriguez
 
Practica nat
Practica natPractica nat
Practica nat
1 2d
 
Direccionamiento ip
Direccionamiento ipDireccionamiento ip
Direccionamiento ip
1 2d
 
Conceptos y protocolos de enrutamiento: 1.1 Configuración básica de una red -...
Conceptos y protocolos de enrutamiento: 1.1 Configuración básica de una red -...Conceptos y protocolos de enrutamiento: 1.1 Configuración básica de una red -...
Conceptos y protocolos de enrutamiento: 1.1 Configuración básica de una red -...
Francesc Perez
 

Ähnlich wie Linux Routing (20)

Capitulo 2-grupo-2
Capitulo 2-grupo-2Capitulo 2-grupo-2
Capitulo 2-grupo-2
 
Ccna2 (chapter7) presentation by halvyn
Ccna2 (chapter7) presentation by halvynCcna2 (chapter7) presentation by halvyn
Ccna2 (chapter7) presentation by halvyn
 
Practica6 7
Practica6 7Practica6 7
Practica6 7
 
Data link
Data linkData link
Data link
 
Linux Redes
Linux RedesLinux Redes
Linux Redes
 
Config ospf
Config ospfConfig ospf
Config ospf
 
Config ospf
Config ospfConfig ospf
Config ospf
 
Prueba preliminar ccna3
Prueba preliminar ccna3Prueba preliminar ccna3
Prueba preliminar ccna3
 
Comandos de configuracion de dispositivos cisco
Comandos de configuracion de dispositivos ciscoComandos de configuracion de dispositivos cisco
Comandos de configuracion de dispositivos cisco
 
Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01
Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01
Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01
 
Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01 (1)
Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01 (1)Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01 (1)
Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01 (1)
 
Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01
Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01
Comandosdeconfiguraciondedispositivoscisco 130821210028-phpapp01
 
Comandos para configurar routers y switches
Comandos para configurar routers y switchesComandos para configurar routers y switches
Comandos para configurar routers y switches
 
cip_direc_2.ppt
cip_direc_2.pptcip_direc_2.ppt
cip_direc_2.ppt
 
Practica nat
Practica natPractica nat
Practica nat
 
Enrutamiento_Rip2_laboratorio_15-03-2014
Enrutamiento_Rip2_laboratorio_15-03-2014Enrutamiento_Rip2_laboratorio_15-03-2014
Enrutamiento_Rip2_laboratorio_15-03-2014
 
Direccionamiento ip
Direccionamiento ipDireccionamiento ip
Direccionamiento ip
 
Conceptos y protocolos de enrutamiento: 1.1 Configuración básica de una red -...
Conceptos y protocolos de enrutamiento: 1.1 Configuración básica de una red -...Conceptos y protocolos de enrutamiento: 1.1 Configuración básica de una red -...
Conceptos y protocolos de enrutamiento: 1.1 Configuración básica de una red -...
 
Comandos de red
Comandos de redComandos de red
Comandos de red
 
Comandos de red
Comandos de redComandos de red
Comandos de red
 

Mehr von Juan Sánchez (6)

SUSE DHCPv6
SUSE DHCPv6 SUSE DHCPv6
SUSE DHCPv6
 
Guia plsql breve
Guia plsql breveGuia plsql breve
Guia plsql breve
 
Compilación del Kernel
Compilación del KernelCompilación del Kernel
Compilación del Kernel
 
Oracle Tuning Opq
Oracle Tuning OpqOracle Tuning Opq
Oracle Tuning Opq
 
File System Management
File System ManagementFile System Management
File System Management
 
Bounding en Linux
Bounding en LinuxBounding en Linux
Bounding en Linux
 

Kürzlich hochgeladen

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Kürzlich hochgeladen (11)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

Linux Routing

  • 1. Linux Networking Routing Policy Data Base RPDB Teoría y Ejemplos Juan Sánchez jsancheznav@gmail.com Diciembre 2009
  • 2. Índice • Arquitectura • Conceptos básicos • ip link • ip address • ip route • ip rule • Implementaciones jsancheznav@gmail.com
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Implementaciones Flujo paquetes jsancheznav@gmail.com
  • 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. 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. 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. 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. 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. Implementaciones QoS Cola pfifo_fast • Para establecer el tamaño de la cosa utilizar txqueuelen con “ip link” o “ifconfig” jsancheznav@gmail.com
  • 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. 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. 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. 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. 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. 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. 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. Implementaciones Gestión Caso 4 • ip route add blackhole 192.168.20.0/24 jsancheznav@gmail.com
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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