Networking commands

Configuracion de IP

ip address show                         muestra direccion ip y mac asociadas a distintas interfaces y si esta up
ip address add x.x.x.x/y dev ethz       asocia la ip x.x.x.x con mascara y a la interfaz ethz
ip address del x.x.x.x/y dev ethz       desasocia la ip x.x.x.x con mascara y a la interfaz ethz
ip address flush dev ethz               borra todas las direcciones asociadas a ethz y limpia su cache
ip link show                            muestra las direcciones mac asociadas a todas las interfaces y si estan up
ip link set ethx up                     levanta la interfaz asignada
arp                                     muestra el mapeo ip - mac en cache

Ruteo

ip route flush table main               flushea la tabla principal de ruteo
ip route add x.x.x.x/y via z.z.z.z      agrega la fila a la tabla de ruteo estandar
ip route show                           muestra la tabla de ruteo estandar
traceroute x.x.x.x                      nos informa la ruta tomada por los paquetes a traves de la red
ping x.x.x.x                            nos informa si el host x.x.x.x es alcanzable
ip neigh flush all                      borra todas las tablas arp
tcpdump -ennqti ethx arp                nos da el trafico arp de la interfaz ethx
ip route flush cache                    borra toda la cache de ruteo

Policy Routing

ip rule show                            muestra las reglas de ruteo por default:
                                        0: from all lookup local
                                        32766: from all lookup main
                                        32767: from all lookup default

1) editamos /etc/iproute2/rt_tables
    agregamos una tabla nueva: e.g. `252 isp2`
2) agregamos una ruta a la tabla isp2
    ip route add x.x.x.x/y via z.z.z.z table isp2
3) agregamos la regla que derive a la tabla isp2
    ip rule add from x.x.x.x/y table isp2 prio 10
    prio 10 es para que quede antes de main pero despues de local

Configuracion de ip y rutas con zebra

telnet localhost 2601
password: redes
router> enable                                  pasamos a modo privilegiado
router# configure terminal
router(config)# interface ethx                  entramos en la configuracion de la interface
router(config-if)# ip address x.x.x.x/y         le asignamos la direccion a la interfaz especificada
router(config-if)# no shutdown                  levanta la interfaz asignada
router(config)# ip route x.x.x.x/y z.z.z.z      hace lo mismo que ip route add

Configuracion de ruteo por RIP

telnet localhost 2602
password: redes
router> enable                                  pasamos a modo privilegiado
router# configure terminal
router(config)# router rip                      enciende el modo rip del router
router(config-router)# network x.x.x.x/y        reenvia los datos de ruteo a esa red por multicast
router(config-router)# neighbor x.x.x.x         reenvia los datos de ruteo a ese ip por mensajes simples
                                                (se usa uno u otro, no los dos)
router(config-router)# redistribute connected   redistribuye los datos de las redes conectadas
router(config-router)# redistribute static      redistribuye los datos de las redes configuradas
                                                estaticamente con zebra
router# default-information originate           se pone en el router rip mas cercano a internet,
                                                en el cual estaticamente configuramos la puerta de enlace
router# show ip rip                             muestra las tables de ruteo por rip
router# show run                                muestra la configuracion actual (running config)

DHCP (server side)

1) editamos /etc/default/dhcp-server
    agregamos las interfaces donde va a escuchar el dhcp separadas por un espacio, e.g.
        INTERFACES="eth0 eth1"

2) editamos /etc/dhcp3/dhcpconf
    para definir la subred entera a la cual le daremos servicio:

    subnet x.x.x.x netmask y.y.y.y {
    range x.x.x.x z.z.z.z                           rango del pool asignable
    option routers r.r.r.r                          da la direccion del router (en nuestro caso nuestro ip)
    option domain-name "ejemplo.dominio.com";
    option domain-name-servers x.x.x.x, z.z.z.z;    indica los servers de dns
    }
    host pc-ejemplo {
    hardware ethernet 08:00:07:26:c0:a5;            mac de pc-ejemplo
    fixed-address x.x.x.x;                          le asocia la ip x.x.x.x
                                                    fija una direccion con una mac para darle a una
                                                    maquina la misma ip siempre, debe estar fuera
                                                    del rango del pool
    }

3) levantamos el servicio
    ./etc/init.c/dhcp-server start                  (stop y restart tambien son validos)

4) miramos el log del archivo para comprobar el estado
    tail /var/log/daemon.log

DHCP (client side)

dhclient                                        le pide al servidor dhcp datos

DNS (server side)

1) agregar zonas a /etc/binc/named.conf.local

zone "ejemplo.com" {
type master;
file "/etc/bind/db.ejemplo.com";
};

zone "1.168.192.in-addr.arpa" {                 ip al reves de una red /24
type master;
file "/etc/bind/db.1.168.192.in-addr.arpa";
};

2) creamos los archivos de zonas

no olvidar los punto al final de las direcciones dns
usar tab y no espacio

primero el comun

@   IN  SOA     server.ejemplo.com. mail.ejemplo.com. (
      1  ; Serial
 604800  ; Refresh
  86400  ; Retry
2419200  ; Expire
  86400) ; Negative cache ttl

@   IN  NS      server.ejemplo.com.
server IN A 192.168.1.5     ; ip de la maquina server del dns
miami IN A 192.168.1.10     ; maquina windows

luego el inverso

@   IN  SOA     server.ejemplo.com. root.ejemplo. (
      1  ; Serial
 604800  ; Refresh
  86400  ; Retry
2419200  ; Expire
  86400) ; Negative cache ttl
)

@   IN  NS server.ejemplo.com.
5 IN PTR server         ; las direcciones se escriben de forma inversa y solo la parte que no cubre la mascara
10 IN PTR miami

3) modificar los forwarders
sirve cuando queremos que otro server nos resuelva las consultas que no conocemos directamente

/etc/bind/named.conf.options

forwarders {
172.31.0.253;
172.31.0.254;
}

4) ejecutar el servidor dns

./etc/init.d/bind9 start        (stop y restart tambien son validos)

5) mirar el archivo de log para verificar que esta andando

tail /var/log/daemon.log

## DNS (client side)

vi / etc/resolv.conf

agregar:

search ejemplo.com                      (va sin punto al final)
nameserver x.x.x.x                      (donde x.x.x.x es el server dns)