SafeChildren Banner

Havoc Oracle Solaris Experts

jueves, 30 de noviembre de 2006

Tunning de red para Solaris

Muchos de los parámetros que tiene configurado Solaris sobre la capa TCP/IP son algo escasos o ajustados, realizando algunas pequeñas modificaciones podemos obtener grandes rendimientos.

Para ello, crearemos un archivo llamado /etc/rc2.d/S99ndd con el siguiente conjunto de modificaciones, puedes descargarlo de aquí

# cat <<! >/etc/rc2.d/S99ndd

# tamaño máximo de ventana de congestión
# Según la relación: max_buf = 2 x cwnd_max
ndd -set /dev/tcp tcp_max_buf 4194304
ndd -set /dev/tcp tcp_cwnd_max 2097152

# aumentamos el tamaño de la ventana tcp
ndd -set /dev/tcp tcp_xmit_hiwat 65536
ndd -set /dev/tcp tcp_recv_hiwat 65536

# tiempo de espera antes de cerrar una conexion tcp
ndd -set /dev/tcp tcp_time_wait_interval 60000

# Ataque SYNC
ndd -set /dev/tcp tcp_ip_abort_cinterval 60000

# default: 480000
ndd -set /dev/tcp tcp_ip_abort_interval 60000

# default: 7200000
ndd -set /dev/tcp tcp_keepalive_interval 900000

# default: 1
ndd -set /dev/tcp tcp_slow_start_initial 2

# default: 1024
ndd -set /dev/tcp tcp_conn_req_max_q0 4096

# default: 128
ndd -set /dev/tcp tcp_conn_req_max_q 1024

# soporte para hacer de router
ndd -set /dev/tcp ip_forwarding 1

!

# chown root:sys /etc/rc2.d/S99ndd
# chmod 750 /etc/rc2.d/S99ndd

La variable ip_forwarding puede ser puesta a 0 si no queremos que nuestra máquina enrute paquetes, si esta variable no está puesta a 1, no será posible hacer NAT para utilizarla como Router.



Eliminar "Unknown Hostname" en Solaris cuando configuramos por DHCP el interface principal

Introducción
Updated: Esta entrada la escribí hace mucho tiempo y estaba pensada para Solaris 9, si quieres ver cómo se realiza el mismo proceso, pero en Solaris 10, tienes la actualización de Eliminar Unknow Hostname en Solaris 10


Si tenemos configurada nuestra salida a internet (external) en un interface que está sobre DHCP, entonces, Solaris intentará configurar el nombre de host a traves de este mismo. Esto supone que mi máquina Solaris quede con "unknown" como nombre de host.

Para solucionarlo, podemos hacer los siguientes pasos.

Asumimos que nuestro Sun tiene dos tarjetas de red, ce0 y ce1. La tarjeta ce0 está conectada a nuestro switch lan mediante una dirección estática y la tarjeta ce1 a nuestro modem ADSL mediante DHCP, según la siguiente imagen




Para ello vamos a empezar configurando los interfaces, y el nombre de nuestro host, topito

# echo "192.168.1.254 topito topito.example.com" >> /etc/hosts
# echo "topito" > /etc/nodename
# echo "topito" > /etc/hostname.ce0

Debemos crear una entrada de hostname.ce0 vacía para hacer que el DHCP carge una dirección IP válida, además de la entrada /etc/dhcp.ce1, que si está vacía contendrá los valores por defecto y si contiene datos serán las modificaciones de los mismos aplicados a este interface, en nuestro caso ce1

# touch /etc/hostname.ce1
# touch /etc/dhcp.ce1

Si no queremos que se nos asignen los parámetros por defecto, podemos utilizar estos modificadores:

  • wait TIEMPO_EN_SEGUNDOS por defecto son 30
  • primary si queremos que sea o no el interface primario

La configuración DHCP de Solaris está hecha, ahora sólo nos queda hacer que cada vez que nuestro sistema se inicie no intente resolver el nombre de host por DHCP y nos ponga "Unknown", para ello, utilizaremos este pequeño script que colocándolo en /etc/rc2.d hará que se nos asigne nuestro nombre

# cat <<! >/etc/init.d/set_hostname

#!/sbin/sh
#*********************************************
#
# Name: set_hostname
# SCCS Id: @(#)set_hostname 1.2 07/26/04
#
# Description:
# This file is a script for re-setting your hostname to the

# right value if you use DHCP (which has a habit of setting
# your hostname to "unknown" if you use a cable modem).
#
#
# Copyright © 2000-2004 by Rich Teer.
# All rights reserved.

#
#*********************************************

HOSTNAME=`cat /etc/nodename`
uname -S $HOSTNAME

!

# ln /etc/init.d/set_hostname /etc/rc2.d/set_hostname
# chown root:sys /etc/init.d/set_hostname
# chmod 750 /etc/init.d/set_hostname

En Solaris 10 las cosas cambian un poquito, este último paso podemos ignorarlo ya que basta con modificar un archivo de configuración para que sea el propio sistema quien se encarge de cargar el valor de /etc/nodename, para ello modificaremos el parámetro PARAM_REQUEST_LIST del archivo de configuración /etc/default/dhcpagent y eliminaremos el valor 12 de la lista, ya que este valor corresponde a hostname. (podemos obtener toda la información sobre los valores en el archivo)

  • PARAM_REQUEST_LIST=1,3,6,12,15,28,43
por
  • PARAM_REQUEST_LIST=1,3,6,15,28,43


Con esto tenemos ya configurado nuestra máquina Solaris para eliminar el molesto "Unknown", reiniciamos la máquina y listo!

Más información http://www.rite-group.com/rich/solaris_dhcp.html


Referencias


lunes, 27 de noviembre de 2006

Saludos y presentación

Hola mi nombre es Urko,

Durante mucho tiempo he estado leyendo blogs y por fin, me he decidido. No creaís que no me ha costado encontrar algo de tiempo para poder publicar diferentes cosas aunque con un entorno común Sun Solaris.

Si estás leyendo esto es que conoces (o te interesa) el Sistema Operativo de Sun, y bueno, aunque puede que a veces me pueda "ir un poco por ahí" intentaré hablar todo lo que pueda de Administración, Tunning, ... sobre este apasionante sistema operativo.

Bienvenido,

Urko Benito