Título: Duda básica Publicado por: leogtz en 21 Febrero 2011, 23:41 pm Hola, qué tal, estoy desarrollando un script que se encarga de setear un tipo de conexión. Tengo que hacer un script que dada una IP me devuelva algunas datos.
La sintaxis del programa que estoy haciendo es esta: Código
-r : estática o dinámica y la ip Por ejemplo, yo teniendo la IP 172.26.0.35, cómo debería ser la "network", "broadcast", "gateway", "address", "gateway", "netmask", es decir, ¿cómo cambiarían de acuerdo a la IP dada? Esto lo necesito porque editaré un archivo, concretamente el archivo "/etc/network/interfaces". ¿Y cómo sería para una red dinámica? Título: Re: Duda básica Publicado por: madpitbull_99 en 22 Febrero 2011, 00:29 am En Linux para pasar de IP estatica a dinamica hay que cambiar esta linea en el fichero de configuracion:
Código: iface eth0 inet dhcp por Código: iface eth0 inet static Cuando esta configurada por DHCP, no hay que poner mas datos, pero si vas a configurar una IP estática hay que poner los siguientes valores: address 172.26.0.35 <- Ip del interfaz. netmask 255.255.255.0 <- Mascara de red. network 172.26.0.0 <- Dirección de la red. broadcast 172.26.0.255 <- Dirección de broadcast. gateway 172.26.0.1 <- Ip de la puerta de enlace. dns-nameservers 8.8.8.8 <- Ip del servidor DNS. Para detectar si esta puesta en dinámica puedes buscar dentro del fichero de configuración la palabra "dhcp" si no se encuentra es que esta en estática. Para calcular los demás datos puedes echar un vistazo a las calculadoras IP y a los tutoriales que he puesto en el post de abajo: Calculo Mascara (http://foro.elhacker.net/redes/calculo_mascara-t319850.0.html) Si tienes dudas de como calcular los parametros, pudes mirar proyectos ya hechos como: PHP Subnet, Calculator (http://sourceforge.net/projects/subntcalc/), IP Net Calculator (http://www.phpclasses.org/package/6456-PHP-Compute-the-common-mask-from-multiple-IP-addresses.html). Los dos están en PHP, pero si sabes scripting se entiende y tambien los hay en otros lenguajes. Para Webmin hay un plugin (http://www.niemueller.de/webmin/modules/nettools/) (en Perl) que mirar para ver como calcula los parámetros. Título: Re: Duda básica Publicado por: leogtz en 22 Febrero 2011, 00:59 am Gracias, me has aclarado la duda, solo esa parte me faltaba para ponerme a trabajar, gracias.
Cualquier duda te comento. Título: Re: Duda básica Publicado por: leogtz en 28 Febrero 2011, 07:37 am @madpitbull_99
Y si mi fichero está como sigue? Código: auto lo ¿En qué está? Te explico mi duda. Mira, mi script es algo así: comando -r dinamica IP ¿Si el usuario me da "dinamica" solo tengo que volcar al archivo /etc/network/interfaces lo siguiente? Código: iface eth0 inet dhcp ¿qué es lo que debiera tener en cuenta? ¿o solo así como te lo pongo? ¿Se pueden tener varias interfaces? ¿Es decir, con cada llamada al script puedo sobreescribir los valores o tengo que agregar al final dependiendo de lo que me de el usuario? Título: Re: Duda básica Publicado por: madpitbull_99 en 28 Febrero 2011, 08:18 am Citar Y si mi fichero está como sigue? El interface lo es es el interface de bucle local o el loopback, ese tiene que estar obligatoriamente en el archivo de configuración de la tarjeta de red.Código: auto lo Citar ¿Si el usuario me da "dinamica" solo tengo que volcar al archivo /etc/network/interfaces lo siguiente? Si, así pediría una IP por DHCP al servidor que hay en la red. Debes tener en cuenta que el nombre del interfaz es diferente en cada sistema.Código: iface eth0 inet dhcp En un equipo se puede llamar eth0 y en otro se puede llamar eth3. Para ver el nombre que tiene la tarjeta de red en un equipo puedes ejecutar el comando ifconfig -a y luego parsear (con regex, por ejemplo) la palabra que empieza por eth* y así sacar el nombre del interfaz de red. Citar ¿Se pueden tener varias interfaces? Si, un equipo puede tener mas de una tarjeta de red, si se trata de un servidor proxy o un firewall, tendrá mas de una tarjeta de red.Citar ¿Es decir, con cada llamada al script puedo sobreescribir los valores o tengo que agregar al final dependiendo de lo que me de el usuario? Puedes sobreescribirlo, al final del script si todas las acciones se han realizado bien, reinicia el daemon de la tarjeta de red: /etc/init.d/networking restart.Mira un script parecido a lo que quieres hacer: Código Fuente (http://usalug.com/phpBB3//viewtopic.php?t=1844) Título: Re: Duda básica Publicado por: leogtz en 28 Febrero 2011, 08:29 am Gracias, mañana lo miro con detenimiento, creo que mis dudas por ahora están solventadas.
Por cierto, para la configuración estática creo que tendré que recurrir a esto: Citar Si tienes dudas de como calcular los parametros, pudes mirar proyectos ya hechos como: PHP Subnet, Calculator, IP Net Calculator. Los dos están en PHP, pero si sabes scripting se entiende y tambien los hay en otros lenguajes. Para Webmin hay un plugin (en Perl) que mirar para ver como calcula los parámetros. Pero vaya, estoy solo con shell script, y mi script se ejecutará en varias máquinas, así que debo buscar la manera de hacer esos calculos en el mismo script, sabes como podría hacerle sin usar esos programas? ¿podría hacer el calculo con los mismos comandos del sistema ó como podría generalizarlo? Título: Re: Duda básica Publicado por: leogtz en 1 Marzo 2011, 01:47 am Nunca me pensé que fuera a ser tan complicado el cálculo ese, pero bueno, tendré que usar "ipcalc", un pequeño ejecutable en c, lo compilo, uso y borro.
Una pregunta, para estos parámetros: script -r estatica 172.26.0.35 Los siguientes valores son los que me da el programa: Código: leo@leo-desktop:~/Escritorio/proyectos/345$ ipcalc 172.26.0.35 ¿Me puedes ayudar a saber cómo crear los dns públicos en el /etc/resolv.conf? Saludos. Título: Re: Duda básica Publicado por: y0g-s0th0th en 1 Marzo 2011, 03:47 am es q esos datos dependen exclusivamente de la red en la q estes. podes poner dns genericos, pero los q van no tenes forma de conseguirlos sin tener una conexion activa.
el netmask q pones en el ejemplo podria ser tranquilamente /16 en lugar de /24 ya q la ip es de clase b, pero cualquiera de los 2 va a funcionar en todo caso. el gw tampoco tiene un lugar fijo, lo pueden haber puesto en cualquier lado. saludos Título: Re: Duda básica Publicado por: leogtz en 1 Marzo 2011, 03:50 am Gracias, pregunto porque en el script que me encargaron no me dieron ningún otro dato, y no sé sobre estas configuraciones. Mira lo que me pusieron:
Citar Y crear los dns públicos que queramos en el /etc/resolv.conf. La forma de uso sería: mtk -r estatica 172.26.0.35 Pero no me dicen qué valores debe tener. ¿Me podrías decir como poner dns genéricos? Título: Re: Duda básica Publicado por: madpitbull_99 en 1 Marzo 2011, 11:58 am ¿Me podrías decir como poner dns genéricos? Los DNS no hay que calcularlos. Simplemente tienes que poner la IP del servidor DNS que quieras para ese equipo. Eso se hace en el archivo /etc/resolv.conf de la siguiente manera: Código: nameserver 8.8.8.8 En caso de disponer de un servidor de nombres (DNS) en la red, habrá que poner la IP de ese servidor en el fichero de configuración DNS. Por ejemplo, si la IP del servidor DNS de mi red es: 172.26.0.100 y el nombre de dominio de mi red es: elhacker.net el fichero /etc/resolv.conf quedaría de la siguiente manera: Código: search elhacker.net |