A start job is running for LSB: Raise network interfaces

Hace poco tuve este mensaje y fue nuevo para mí. El caso más raro está en que no prosigue el arranque del sistema operativo, en este caso Debian, allí queda y ni con un ctrl+c se logra saltar el mensaje, puede durar por horas allí esperando.

Inicialmente pensé que pudiera ser por la falta de conexión en una de las tarjetas de red, que era mi caso, la eth0 del servidor no tenía conexión, aún así, conectando el cable, nada hizo que prosiguiera el arranque.

Usé un LiveCD de Gparted para levantar el sistema y revisar varias cosas de configuración, todo en teoría estaba bien. Hasta que navegando conseguí dentro de un foro la solución factible del problema.

Y la forma más práctica que conseguí para acomodar el problema, fue crear un directorio nuevo en la ruta /etc/systemd/system de la siguiente forma, como root:

mkdir /etc/systemd/system/networking.service.d

Posteriormente creé un archivo dentro de ese nuevo directorio que lo llamé reduce-timeout.conf con el siguiente contenido:

[Service]
TimeoutStartSec=15

Finalmente concedí permisos de ejecución a dicho archivo, reinicié y funcionó sin problemas.

Posted in Debian, Linux | Leave a comment

Enlace VPN con OpenVPN

OpenVPN es uno de los servicios por excelencia para interconectar dos segmentos de red diferentes, una vez más manipulo una conexión vía Internet con dicho servicio y esta vez lo hice de manera sencilla, gracias a la propuesta dispuesta aquí.

El caso es que tengo dos segmentos de red en dos espacios físicos distantes, cada sitio tiene una conexión vía Internet a través de un módem. Ejemplo de lo que hice sobre un sistema operativo Debian:

Sitio A

Archivo de configuración: /etc/network/if-up/vpn-servidor1

Contenido:

#!/bin/bash

openvpn --remote servidor2.ddns.net --dev tun1 --ifconfig 10.0.0.1 10.0.0.2 --float
route add -net 10.0.1.0 netmask 255.255.255.0 gw 10.0.0.1 tun1

exit 0

Sitio B

Archivo de configuración: /etc/network/if-up/vpn-servidor2

Contenido:

#!/bin/bash

openvpn --remote servidor1.ddns.net --dev tun1 --ifconfig 10.0.0.2 10.0.0.1 --float
route add -net 10.0.2.0 netmask 255.255.255.0 gw 10.0.0.2 tun1

exit 0

Una vez que el servicio de red se levanta durante el inicio del sistema operativo, se cargan ambos archivos en sus respectivos servidores con permisos de ejecución.

El contenido del archivo lo que hace básicamente es con el comando openvpn activa ciertos parámetros de la siguiente manera:

  • remote; indica el segmento o dominio remoto hacia donde se desea conectar Sitio A.
  • dev; indica la interfaz que hará el túnel de conexión, en este caso tun1.
  • ifconfig; se le asigna dirección IP local de la interfaz túnel y la dirección IP remota de la interfaz túnel remota.
  • float; permite que OpenVPN acepte a cualquier dirección IP que viene de la interfaz túnel del segmento no solo del dominio o segmento especificado en el parámetro –remote

Con el comando route canaliza peticiones del segmento de red local hacia el segmento de red remoto. Este tipo de conexión, también puede ser usado con llaves seguras y certificados, con la intención de pasar la información más segura, así como está, toda la información viaja de manera trasparente.

Posted in Debian, VPN | Leave a comment

Configuración de servicio DHCP con dos VLAN

Recientemente, tuve la oportunidad de configurar un servidor DHCP para dos segmentos diferentes de red sobre dos VLAN diferentes con la intención de separar la red de datos de la intranet de la empresa y la red de datos de posibles invitados. Todo sobre sistema operativo GNU/Linux Debian.

Antes que nada, configuré las interfaces de red. El archivo de configuración para las interfaces de red en el servidor, está ubicado en la siguiente ruta absoluta:

/etc/network/interfaces

El servidor DHCP contiene dos interfaces de red, una está destinada para la red de datos de los empleados e invitados, la configuración de dicha interfaz de red la desglosé de la siguiente manera al final del archivo interfaces:

auto eth1
iface eth1 inet static
	address 10.0.4.1
	netmask 255.255.255.0

auto eth1.1
iface eth1.1 inet static
	address 192.168.4.1
	netmask 255.255.255.0
	vlan-raw-device eth1

Donde hace referencia a una dirección IP estática y una determinada máscara de red, la interfaz base y física es eth1 y trabaja por defecto sobre una VLAN 0, la interfaz para la VLAN 1 es la interfaz eth1.1, el .1 es una marca que se hace para que se despliegue sobre una VLAN que también será la número 1.

Una vez que se tiene dicho contenido dentro del archivo mencionado, se debe realizar la instalación del programa vlan para que el sistema operativo pueda trabajar sobre diferentes sistemas de VLAN. Como usuario root se realiza de la siguiente manera:

aptitude install vlan

Una vez editado el archivo de configuración para interfaces e instalado el programa vlan se reinicia el servicio de red como usuario root de la siguiente manera:

invoke-rc.d networking restart

Igualmente, cuando se realizan instalaciones de programas que inciden directamente sobre dispositivos físicos como el caso del programa vlan, es mejor reiniciar el sistema operativo.

Servicio DHCP

El acrónimo DHCP significa: Dynamic Host Configuration Protocol. El servicio se encarga de despachar direcciones IP con un determinado segmento de red y máscara de red. La instalación del servicio DHCP se realiza como usuario root de la siguiente manera:

aptitude install isc-dhcp-server
Archivo de configuración

El archivo de configuración que realicé, está conformado por los siguientes datos:

authoritative;
ddns-update-style none;
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
####################################################
# Red de datos para empleados
####################################################
subnet 10.0.4.0 netmask 255.255.255.0 {
	authoritative;
	DHCPD_INTERFACE="eth1";
	range 10.0.4.50 10.0.4.200;
	option domain-name-servers 8.8.8.8, 8.8.4.4; 
	option domain-name "dominio.local";
	option routers 10.0.4.1;
	option broadcast-address 10.0.4.201;
	default-lease-time 600;
	max-lease-time 7200;
}
####################################################
# Red de datos para Invitados
####################################################
subnet 192.168.4.0 netmask 255.255.255.0 {
	authoritative;
	DHCPD_INTERFACE="eth1.1";
	range 192.168.4.50 192.168.4.100;
	option domain-name-servers 8.8.8.8, 8.8.4.4;
	option domain-name "invitado.dominio.local";
	option routers 192.168.4.1;
	option broadcast-address 192.168.4.101;
	default-lease-time 600;
	max-lease-time 7200;
}

Existen dos segmentos de red, un segmento para la red de datos para empleados y otro segmento para una red de datos para invitados. Cada segmento va guiado a través de una interfase de red determinado que se declara en el parámetro: DHCPD_INTERFACE=

Administración del servicio de DHCP

El servicio de DHCP puede estar en dos estados: detenido o iniciado. Para iniciar el servicio como usuario root se realiza de la siguiente manera:

invoke-rc.d isc-dhcp-server start

Para detener el servicio se realiza como usuario root de la siguiente manera:

invoke-rc.d isc-dhcp-server stop

Para reiniciar el servicio como usuario root se realiza de la siguiente manera:

invoke-rc.d isc-dhcp-server stop
Mensajes de DHCP en el sistema (logs)

Para visualizar los mensajes del servicio DHCP en el sistema, se puede usar como root la siguiente instrucción:

tail -f /var/log/syslog

Sin embargo, esto proporciona mucha información, porque el archivo syslog es el que recoge y guarda todo los mensajes de los eventos que están ocurriendo dentro del sistema operativo, entonces, para filtrar un poco mejor la información exclusiva del servicio DHCP, como usuario root se puede usar la siguiente instrucción:

tail -f /var/log/syslog | grep -i dhcp

Así solo se muestran en tiempo real, mensajes del servicio DHCP.

Posted in Debian, DHCP, Red | Leave a comment

Recursos python para uso de comandos SAP Hana Client sobre Windows

Hace poco debí realizar unas tareas administrativas para dejar tareas programadas de SAP Hana Client sobre Windows. Inicialmente la idea era dejar algunos archivos scripts batch, pero python maneja un mayor número de herramientas que pueden ser útiles a la hora de desarrollar tareas como el manejo de archivos, procesos, directorios del sistema, comandos propios del sistema. En este caso, se necesitaba casi todo lo mencionado, incluyendo enviar un correo electrónico junto con un archivo adjunto.

Pero el ejemplo de esta publicación estará enfocado en la creación de un script para leer una sentencia sql sobre una base de datos de SAP Hana y dejará un archivo de texto plano con la salida de la información consultada.

El archivo sql con la sentencia lo llamé sentencia.sql, y quedó de la siguiente manera:

SELECT T0."DocEntry",T0."DocNum" FROM DATABASE_NAME.OINV T0 WHERE T0."DocStatus" LIKE 'C';

En donde se realiza una consulta a la base de datos DATABASE_NAME y su tabla OINV, solo a facturas cerradas.

Luego, en el equipo con Windows, instalé python, posteriormente algunas librearías desde repositorios python a través de pip, por ejemplo:

pip install pypiwin32

Una vez con las herramientas instaladas, se realiza el script que se requiere, lo llamé consulta_sap_hana.py, la forma sencilla que usé para realizar la prueba fue la siguiente:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import win32api

HANA_SERVER = 'IP_SERVIDOR'
PORT_SERVER = 'PUERTO_CONEXIÓN'
USER_ADMIN = 'SYSTEM'
PASS_ADMIN = 'PASSWORD'

win32api.WinExec('"C:/Program Files (x86)/SAP/hdbclient/hdbsql.exe" -n '+HANA_SERVER+':'+PORT_SERVER+' -u '+USER_ADMIN+' -p '+PASS_ADMIN+' -c ";" -o "C:/Users/felix/programacion/python/resultado_facturas.txt" -I "C:/Users/felix/programacion/python/sentencia.sql"')

Desde el terminal propio de Windows se puede ejecutar el script simplemente ejecutando con el nombre consulta_sap_hana.py. Esto creará un archivo llamado resultado_facturas.txt dentro de la ruta definidaen la línea del comando en el script.

Posted in Python, SAP, Windows | 1 Comment

DmiDecode sobre Windows

Una de las herramientas básicas para validar elementos de hardware sobre un sistema operativo GNU/Linux, es el programa dmidecode, dicho programa hace despliegues de información de diferentes elementos básicos de hardware e información de modelo y características del equipo o máquina.

Para el caso de Windows no conozco uno, pero debe existir alguno parecido, sin embargo usando la shell Cygwin, se pueden rescatar algunos comandos útiles que normalmente se usan sobre GNU/Linux, tal es el caso del comando dmidecode, para esto debemos inicialmente buscar en su web oficial la descarga del dmidecode dependiendo de la arquitectura del sistema operativo Windows que se está usando.

Una vez descargado el programa, se descomprime y debería aparece un pequeño árbol parecido al siguiente:

contrib
man
manifest
sbin

Dentro del directorio sbin, existen unos programas que se convertirán en comandos, estos deben copiarse dentro de la estructura de Cygwin, que en teoría debería ser la siguiente:

C:\cygwin64\bin

Los copio en el directorio bin debido a que si se copian dentro de sbin, no tendría privilegios para ejecutarlos con mi usuario de sistema por defecto.

Una vez copiados en la ruta mencionada, se puede realizar una prueba de la siguiente manera:

dmidecode -t 17

Un ejemplo que muestra información de RAM.

Posted in Windows | Leave a comment

SIGNATURE.SMF en SAP Hana

Cuando se realiza una instalación de Hana, los paquetes originales de este sistema vienen con una extensión .SAR, para desempaquetar o descomprimir dichos paquetes, se debe usar una herramienta llamada SAPCAR (Recomiendo esta versión de SAPCAR), el comando típico sería:

SAPCAR -xvf PAQUETE.SAR

Deberían ser 4 los paquetes principales de Hana para descomprimir, y de acuerdo a la arquitectura de la máquina, por ejemplo, si mi máquina es de arquitectura de 64 bits, entonces debería usar los siguientes programas:

  • HANA_AFL100_102P_50.SAR
  • HANA_CLIENT100_102_5.SAR
  • HANA_SERVER100_102_5.SAR
  • HANA_STUDIO100_102_5.SAR

Dentro del contenido de cada uno de estos paquetes, existe un archivo llamado SIGNATURE.SMF, es simplemente un archivo de texto con una pequeña lista de todo el contenido del paquete y viene bajo una llave de seguridad o firma digital.

Existe una manera práctica para descomprimir todos los archivos de manera simultánea, que pudiera ser:

SAPCAR -xvf "HANA_*.SAR"

Luego de descomprimir, deberían quedar unos directorios parecidos a los siguientes:

  • SAP_HANA_AFL
  • SAP_HANA_CLIENT
  • SAP_HANA_DATABASE
  • SAP_HANA_STUDIO

Sin embargo, cuando el comando empieza descomprimir el primero de la lista, éste extrae la información incluyendo el SIGNATURE, pero cuando el segundo archivo empieza a descomprir, éste sobreescribe el archivo SIGNATURE del primero y así sucecivamente. Posteriormente, Esto causa un problema al momento de realizar la instalación bajo el comando hdblcmgui.

Se muestra un mensaje parecido al siguiente:

mensaje_firma

Para evitar este error, debemos descomprimir un paquete por paquete, cuando se descomprime el primero, se guarda el SIGNATURE en otro directorio, puede ser dentro del mismo directorio del paquete que se ha descomprimido, y así con los siguientes paquetes, guardar su respectivo SIGNATURE en sus respectivos directorios.

Luego, se concatenan todos los SIGNATURE en uno solo. En el directorio padre de todos los directorios de los paquetes descomprimidos, se pudiera ser de la siguiente manera:

cat SAP_HANA_AFL/SIGNATURE.SMF SAP_HANA_CLIENT/SIGNATURE.SMF SAP_HANA_DATABASE/SIGNATURE.SMF SAP_HANA_STUDIO/SIGNATURE.SMF > SIGNATURE.SMF

Una vez haciendo este cat, se puede continuar la instalación con el comando hdblcmgui y en teoría debería pasar sin problemas.

Posted in SAP, SuSE | Leave a comment

Versión SAPCAR para SAP Hana

Realizando unas instalaciones de SAP Hana sobre SuSE, una de las herramientas que se usa para descomprimir los paquetes de Hana es el SAPCAR, recientemente interactué con varias versiones, donde solo una versión me funcionó muy bien, otras fallaron con diferentes versiones de paquetes .SAR de Hana.

La versión que me funcionó sin problemas fue la SAPCAR_315-20010450.EXE

Esta versión me funcionó para los paquetes de SAP Hana 9.1 con revisión 102.

Posted in Recomendación, SAP | 1 Comment