lunes, noviembre 12, 2012

Configurando una IP estática persistente en Fedora 15 (y Virtual Box)




Al usar la imagen de Fedora 15 que se puede descargar de http://virtualboxes.org/images/ para crear una máquina virtual descubrí que en esa distribución configurar una IP estática persistente (que se mantenga tras el reinicio de la máquina) para la interfaz de red mediante línea de comando no es exactamente trivial. Configurar una IP estática con los comandos ifconfigroute es sencillo. Lo primero que hay que saber es que en Fedora 15 ya no tenemos interfaces tipo eth0, sino que han decidido traducir la interfaz a interfaces con nombres tipo p2p1 y que por defecto la IP es asignada por DHCP. Los comandos serían (usando como ejemplo una dirección 192.168.1.200/255.255.255.0 y puerta de enlace 192.168.1.1):

#ifconfig p2p1 192.168.1.200 netmask 255.255.255.0
#route add default gw 192.168.1.1

Pero con una configuración así, en cuanto reiniciemos la máquina perderemos la IP asignada a mano para volver a tener una IP asignada por DHCP.

Mediante la interfaz gráfica (Aplicaciones -> Herramientas del sistema -> Configuración del sistema / Red) la configuración es inmediata y persistente. ¿Pero cómo conseguir lo mismo mediante línea de comando?
Una posibilidad es crear directamente el fichero de configuración de la interfaz de red ifcfg-Wired_connection_1 en /etc/sysconfig/networ-scripts, y hacerlo como root. Desde una consola, y habiendo entrado ya como root (con su -l, por ejemplo):

#cd  /etc/sysconfig/networ-scripts
#vi   ifcfg-Wired_connection_1

Una vez dentro del fichero a editar, que estará vacío si no hemos configurado antes la interfaz desde la herramienta gráfica, añadimos las siguientes líneas:


TYPE=Ethernet

BOOTPROTO=static

IPADDR0=<IP que queramos configurar>

PREFIX0=24

GATEWAY0=<IP de la puerta de enlace>

DNS1=<IP de DNS>

DNS2=<IP de otro DNS>

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

NAME="Wired connection 1"

ONBOOT=yes

HWADDR=<MAC de la tarjeta>

DHCPPROTO=none


La mayor parte de los parámetros son autoexplicativos:


IPADDR0 es la dirección IP que queremos asignar a la interfaz.
PREFIX0 es la máscara (en formato CIDR) de la IP que queremos configurar.

GATEWAY0 es la dirección de la puerta de enlace.

HWADDR es la dirección MAC de la tarjeta de red, que puede obtenerse mediante un ifconfig.


Un ejemplo práctico de configuración:

TYPE=Ethernet

BOOTPROTO=static

IPADDR0=192.168.1.200

PREFIX0=24

GATEWAY0=192.168.1.1

DNS1=8.8.8.8

DNS2=8.8.4.4

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

NAME="Wired connection 1"

ONBOOT=yes

HWADDR=08:00:27:6C:E1:0A
DHCPPROTO=none

Ya solo queda reiniciar el servicio network o reiniciar la máquina:

service network restart


Con ifconfig podemos ver que la interfaz ya tiene asignada la IP que hemos querido ponerle y si reiniciamos comprobaremos además que el cambio persiste.

2 comentarios:

  1. Muchas gracias colega, me sacaste de un apuro para configurar un fedora :)

    Saludos!

    ResponderEliminar
  2. PERMANENTE
    Pasarela:
    nmcli con add con-name PTEXTERNA ifname enp0s3 type ethernet
    nmcli con mod PTEXTERNA ipv4.addresses 10.110.1.R/24
    nmcli con mod PTEXTERNA ipv4.gateway 10.110.1.1
    nmcli con add con-name PTINTERNA ifname enp0s8 type ethernet
    nmcli con mod PTINTERNA ipv4.addresses 10.110.R.1/24
    nmcli con mod PTEXTERNA ipv4.method manual
    nmcli con mod PTINTERNAipv4.method manual
    nmcli con down PTEXTERNA
    nmcli con down PTINTERNA
    nmcli con up PTEXTERNA
    nmcli con up PTINTERNA
    Estación:
    nmcli con add con-name PTEXTERNA ifname enp0s3 type ethernet
    nmcli con mod PTEXTERNA ipv4.addresses 10.110.R.2/24
    nmcli con mod PTEXTERNA ipv4.gateway 10.110.R.1
    nmcli con mod PTEXTERNA ipv4.method manual
    nmcli con down PTEXTERNA
    nmcli con up PTEXTERNA
    NO PERMANENTE
    Pasarela:
    ip a add 10.110.1.R/24 dev enp0s3
    ip r add default via 10.110.1.1
    DHCP
    Pasarela:
    vi /etc/dhcp/dhcpd.conf (pones i, escribes todo, le das a escape y :x)
    Fichero:
    subnet 10.110.R.0 netmask 255.255.255.0{
    range 10.110.R.120 10.110.R.150;
    default-lease-time 5;
    max-lease-time 120;
    option subnet-mask 255.255.255.0;
    option broadcat-address 10.110.R.255;
    option routers 10.110.R.1;
    option domain-name-servers 193.145.138.100,193.145.138.200;
    }
    systemctl start dhcpd
    Estación:
    systemctl stop NetworkManager
    ip a flush enp0s3
    dhclient (asigna ip)
    dhclient -r (desasigna la ip)
    ROUTER:
    Conectar la partición al router
    ip a add 192.168.1.R/24 dev eno1
    https://ui.linksys.com/SmartWi-FiFamilyRouters/EA7500/
    Cambiar la ip a 78.92.R.1
    Activar dhcp
    Poner rango asignable de 49 a 55
    Partición:
    -Conectar la partición con dhclient al router
    systemctl stop NetworkManager
    ip a flush eno1
    dhclient (asigna ip)
    dhclient -r (desasigna la ip)

    ResponderEliminar