Archivo

Archive for 25 marzo 2012

Configurando la red en Debian y en RedHat

25 de marzo de 2012 Deja un comentario

Suele decirse que todos los Linux se parecen pero, si bien es cierto, existen pequeñas diferencias entre distribuciones que pueden suponer un pequeño quebradero de cabeza para alguien que comienza a manejarse con servidores Linux. Un ejemplo es la diferente manera que tienen los sistemas Debian y RedHat de configurar las interfaces de red.

Vamos a partir de la base de que hemos instalado dos servidores en nuestra red, uno Debian y otro RedHat, ambos sin interfaz gráfica (algo bastante común en servidores de producción por otra parte). Durante la instalación se nos da la posibilidad de configurar la red, pero como aún no teníamos clara la IP que le íbamos a dar, dejamos la configuración por defecto, es decir, DHCP.

Configurando la interfaz en RedHat

En RedHat, los ficheros de configuración de la red se encuentran en el directorio /etc/sysconfig/network-scripts. Cada interfaz de red (eth0) tendrá su correspondiente fichero con nombre ifcfg-ethX, donde la X es el número de la interfaz. Así, si echamos un vistazo al fichero de nuestra interfaz de red, encontraremos la siguiente configuración:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:A1:D2:09:18:FF
ONBOOT=yes

Como puede deducirse fácilmente, el primer parámetro es el nombre de la interfaz, el segundo establece que esta va a funcionar mediante DHCP y el tercero es la dirección MAC de la interfaz. Por su parte, el parámetro ONBOOT indica si queremos que la interfaz se levante automáticamente al iniciar el equipo o no.

Como hemos dicho, queremos establecer una configuración estática de la red de forma que nuestro servidor siempre tenga la misma IP. Para ello, no tenemos más que logarnos como usuario root y editar el fichero con para introducir la configuración deseada. Para ello, cambiamos el parámetro BOOTPROTO a static e introducimos los parámetros IPADDR y NETMASK:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:A1:D2:09:18:FF
IPADDR=172.16.40.130
NETMASK=255.255.255.0
ONBOOT=yes

El gateway puede incluirse como parámetro en este mismo fichero, pero hay que tener en cuenta que en caso de tener más de una interfaz prevalecerá como gateway por defecto para todas aquel que esté establecido en la última de ellas, lo cual puede darnos algún que otro quebradero de cabeza. Lo habitual es configurar el gateway en el fichero /etc/sysconfig/network, el mismo donde se configura el hostname de la máquina:

# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mi-servidor.dominio.es
GATEWAY=172.16.40.1

Una vez modificado el fichero, reiniciamos el servicio de red:

# service network restart

Configurando la interfaz en Debian

En el caso de Debian, hay un único fichero de configuración para todas las interfaces: /etc/network/interfaces. De inicio, si la interfaz está configurada en modo DHCP, este fichero tendrá el siguiente aspecto:

# cat /etc/network/interfaces
...
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

Así pues, si queremos que tenga configurada una IP estática, en este caso la sintaxis que habrá que incorporar al fichero será la siguiente:

# vi /etc/network/interfaces
iface eth0 inet static
address 172.16.40.131
netmask 255.255.255.0
gateway 172.16.40.2

El hostname se configura en el fichero /etc/hostname:

# vi /etc/hostname
mi-servidor2.dominio.es

Para que coja los cambios que hemos realizado en la red, en este caso tenemos que recurrir al script de arranque que hay en /etc/init.d:

# /etc/init.d/networking restart

Categorías:Linux Etiquetas: , , ,

Oracle RAC, de momento, no es compatible con IPv6

18 de marzo de 2012 Deja un comentario

Pues eso.

Andaba yo preocupada últimamente debido a que empiezan a escasearnos las IPs en algunas de las subredes que conforman nuestra infraestructura y me puse a investigar sobre la posibilidad de abordar una migración a IPv6. En su día, cuando hicimos el diseño de subredes, contábamos con un puñadito de aplicaciones y el dimensionamiento de las subredes nos pareció exageradamente grande. Cinco años después, estamos a punto de morir de éxito, vista la cantidad de aplicaciones (nuevas y migradas de otros CPD de la organización) que nuestros clientes quieren traernos.

La falta de IPs libres en algunas de nuestras subredes con máscara 25 es algo que está a la vuelta de la esquina y me preguntaba si podía IPv6 ser la solución a nuestros problemas. Al fin y al cabo, nuestros compañeros de Redes ya andan con el tema y están preparados para poner alguna aplicación en modo piloto sobre IPv6.

En principio, la capa de aplicaciones, apoyada en apache+tomcat o jboss, no debería ofrecer problemas pero ¿qué hay de la capa de datos? En nuestro caso, la capa de datos se apoya mayoritariamente sobre clústeres de Oracle. Aunque intentaré hablar aquí con más detenemiento del tema, la configuración de las interfaces de red es un aspecto crítico de los clústeres de Oracle y algo me decía que la cosa no iba a ser tan sencilla.

Echándole un vistazo en la web de Oracle a Oracle Database 11g release 2 (new features), encontramos lo siguiente:

1.5.4 IPv6 Support

The following sections describe improvements in IPv6 networking support.

1.5.4.1 Complete IPv6 Support for JDBC Thin Clients

JDBC supports Internet Protocol Version 6 (IPv6) style addresses in the JDBC URL and machine names that resolve to IPv6 addresses. For example:

2001:0db8:0000:0000:0000:0000:0000:0001
1080:0:0:0:8:800:200C:417A

A JDBC URL would look like the following:

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)
(HOST=[2001:0db8:0000:0000:0000:0000:0000:0001]) (PORT=5521))
(CONNECT_DATA=(SERVICE_NAME=boston.us.example.com)))

This feature provides Java interoperability with IPv6.

1.5.4.2 Complete IPv6 Support for JVM and Java Debuggers

IPv6 now provides support for the database resident Java virtual machine.

This allows Java applications running in the database to connect to and accept connections from both IPv4 and IPv6 hosts.

Parece indicar, pues, que la versión 2 de Oracle 11g incorpora por fin soporte para IPv6. En las notas de soporte sobre los nuevos drivers JDBC de Oracle 11g r2 nos advierten de que para activar el soporte para IPv6 será necesario parametrizar correctamente la máquina virtual java:

Internet Protocol Version 6 Support (IPv6)

This release of Oracle JDBC drivers supports Internet Protocol Version 6 (IPv6) addresses. For more information refer to “Internet Protocol Version 6 Support”.

Note:

All the new System classes that are required for IPv6 support are loaded when Java is enabled during database initialization. So, if your application does not have any IPv6 addressing, then you do not need to change your code to use IPv6 functionality. However, if your application has either IPv6 only or both IPv6 and IPv4 addressing, then you should set the java.net.preferIPv6Addresses system property in the command line. This enables the Oracle JVM to load appropriate libraries. These libraries are loaded once and cannot be reloaded without restarting the Java process.

Por lo que respecta al lado cliente la cosa está clara, pero ¿qué hay del lado servidor? ¿Es posible instalar una base de datos Oracle sobre un servidor que sólo tenga habilitado IPv6? La respuesta es: “depende”. Este white paper de septiembre de 2011 (PDF), Oracle Database and IPv6 Statement of Direction, matiza el asunto:

  • Desde la release 2 de Oracle 11g es posible la instalación de bases de datos sobre servidores sólo con IPv6.
  • No obstante, esto está soportado sólo para instalaciones stand alone, nada de clústeres con Oracle RAC ni, por supuesto, clusterware. Se pospone a versiones posteriores el soporte de IPv6 para entornos Oracle RAC.
  • Tampoco hay soporte para ASM sobre Windows. No menciona Linux, así que entiendo que sí es posible utilizar ASM en instalaciones stand alone sobre Linux con IPv6.

Parece que a las dificultades intrínsecas de migrar desde IPv4 a IPv6 tendremos que sumar que, a día de hoy, es incompatible con toda nuestra infraestructura de clústeres. Habrá que estudiar, pues, otras soluciones a nuestra escasez de IPs. Apache’s virtual hosts, you’re welcome!!

Categorías:Oracle Etiquetas: , , ,

echo “Hello world!”

18 de marzo de 2012 Deja un comentario

Hacía tiempo que quería llevar una bitácora de todo lo que aprendo a diario en mi trabajo. Sin embargo, esa certera sensación de saber poco de mucho y mucho de nada me echaba para atrás. Creo que, después de seis años administrando -más o menos- sistemas, puedo comenzar a escribir alguna cosilla sin meter demasiado la pata. Lo que colgaré aquí tendrá mucho de receta personal y poco de solución técnica irrefutable (qué más quisiera yo).

Hacía tiempo, también, que quería abandonar el mundo Google. Demasiado monopolio para mi gusto. Algún día, cuando venza a la pereza, acabaré por migrar mis otros dos blogs y abandonar blogspot para siempre. De momento, un buen comienzo es empezar este nuevo ya aquí, en WordPress.

Espero que alguno de los post que cuelgue por aquí les ayude a resolver alguno de esos problemas a los que los administradores de sistemas nos enfrentamos a diario. Ya saben, uno tiene una incidencia, se pone a investigar la causa, encuentra un foro donde a alguien le ha pasado exactamente lo mismo y, muy a menudo, la historia acaba así:

Wisdom of the ancients, por XKCDMi tira preferida del gran XKCD

Pero como no todo es currar en esta vida, si tienen un rato libre y ganas de perderlo, siéntanse libres de visitar mis otros dos blogs: En el ático, donde hablo de todo lo humano y lo divino, y lopezsanchez, donde cuelgo las cosillas que hago en mi faceta de pintamonas.

Categorías:memorabilia