¿Cómo cambiar el enrutamiento en el PC?

Spread the love

10 cosas que hay que saber sobre Netsh. Pues hace rato que quería hacer algo en mi casa, donde tengo mi acceso banda ancha normal y tengo acceso inalámbrico a la banda ancha de un vecino (que me lo permite, claro). A veces mi Internet falla o se pone malito y yo inmediatamente me paso al Internet de mi vecino si tengo algo urgente que hacer en Internet como mirar/enviar un correo corto o guardar algo que estaba haciendo en línea. Esta entrada trata de cómo hacer eso usando línea de comandos y en el camino otras cositas que pueden resultar muy útiles. Disfrútenlo.

¿Qué es enrutamiento para un PC?
Primero hay que hablar del enrutamiento en el PC. Si el sólo término le parece muy extraño, le recomiendo que lea otras entradas en las que se explica qué es el enrutamiento o entradas anteriores sobre subredes (Red punto a punto en Windows, Compartir una conexión, Conexión compartida de windows). El enrutamiento consiste en saber por dónde encapsular un paquete una vez que se sabe la dirección IP destino. Un PC hace un enrutamiento trivial a través de la llamada puerta de enlace, es decir, una ruta por defecto. Cuando un PC envía un paquete, primero compara su dirección IP con la propia para determinar si están en la misma subred, en caso positivo, el mismo PC tiene mecanismos para definir un destinatario directo y encapsular con esa dirección de capa de enlace. Cuando el PC encuentra que la IP no pertenece su misma red, busca la dirección de capa de enlace pero de la ruta por defecto, o puerta de enlace (gateway) y encapsula con ésa dirección de Capa 2 para obligar al enrutador a que lea y reenvíe ese paquete a Internet. El concepto clave acá es puerta de enlace, pero ¿qué hacemos cuando hay dos potenciales puertas de enlace ( y probablemente dos IPs diferentes)?. Supongamos que tenemos dos interfaces de red (NICs) una alambrada y otra inalámbrica, cada una con una IP diferente de diferentes subredes, y por cualquiera de las dos podríamos acceder a Internet, pero la forma en que funciona el PC hace que se use sólo una. ¿Cómo cambiar cuál usamos para acceder a Internet en determinado momento?
¿Cómo cambiar el enrutamiento en el PC?
La forma larga es desactivando la interfaz por la que NO vamos a acceder a Internet, eso nos da como resultado que perdemos el acceso a los recursos de la red de la interfaz que desactivamos. La respuesta sería un cambio de la ruta por defecto o puerta de enlace. Existen dos formas por las que el PC obtiene una IP: configurada manualmente por nosotros o automáticamente por DHCP. Manualmente, por modo gráfico (configuración de la interfaz), la puerta de enlace es automática y podemos omitirla en una de las interfaces, entonces como puerta de enlace quedará aquella de la interfaz en que la dejemos, es decir, si ponemos puerta de enlace en una interfaz y no en la otra esa es la GW (gateway) del PC. Pero usualmente las direcciones IP del PC llegan por DHCP (automáticamente) y por ese medio ámbas van a tener GW. El PC ordena estas GW de tal manera que prefiere una de las dos, la que tenga la menor métrica (costo). Entonces ya tenemos una idea de cómo cambiar cuál interfaz usar: bajando la métrica de la interfaz que queremos usar para acceder a Internet y subiendo la otra. El cambi0 en cuestión se puede hacer en Windows con el comando:
  • route change <IP de la red> mask <máscara de red> <ip de salida> metric <N>
Para ser más precisos, mis redes son: la inalámbrica la red 192.168.2.0/24 y el GW es 192.168.2.1; la alambrada es 192.168.1.0/24 y la GW de ella es 192.168.1.1. Lo primero que hay que hacer es verificar cómo está el enrutamiento con ésta configuración, se usa el comando route print, allí veremos un conjunto de redes (las de la primera columna), su respectiva máscarade red, puerta de acceso (la que hemos estado diciendo), la interfaz por la que se accede a esa red y la métrica (se prefiere la menor en caso de que se repitan). Lo otro es mirar efectivamente cómo se está enrutando, para eso se usa el comando tracert google.com, éste comando ejecuta un seguimiento punto a punto de la ruta que toman los paquetes hacia el destino (google en el ejemplo), el primer salto debe ser la puerta de enlace en uso. En resumen:
  1. Verificar el enrutamiento con route print
  2. Verificar el enrutamiento con tracert google.com
  3. Cambiar la métrica de le puerta de enlace: route change 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 80
  4. Vol ver a verificar con route print y con tracert
El comando propuesto tiene un problema, se asume que la puerta de enlace es sólo UNA por PC, entonces si anteriormente teníamos do puertas de enlace, ahora tenemos sólo una. Eso puede generar problemas para acceder a los recursos de la red para la que no quedó puerta de enlace. Otra forma es eliminar una de las rutas por defecto. Entonces, cuando se vaya a usar la otra se quita la que haya y se pone la que se va a usar. Existen otros mecanismos más fáciles de usar, pero eso será tema de otra entrada.
Conclusión
Bueno, la conclusión es que en Windows también se puede jugar con la línea de comandos y de hecho, cuando veamos netsh veremos que es una herramienta poderosa e interesante. Otra cosa que la gente se puede estar preguntando es ¿por qué no usarlas simultáneamente? Bueno, eso sería ideal pero no es un concepto trivial, se llama balanceo de cargas y probablemente escribiré en una entrada futura sobre el tema. Esta entrada la he programado varias veces y de hecho se me ha pasado la fecha y ha sido publicada en borrador (lo siento) y no he sacado el tiempo de terminarla, así que decidí publicar lo que vaya escribiendo y hoy ya no puedo escribir más. Lo que nos queda faltando es hacer un guión que haga estos cambios (con sólo doble clic), la próxima entrada será la descripción de cómo hacer ésto último, en especial, netsh que es una herramienta que permite hacer guiones ejecutables (scripts) para alterar los parámetros de red. Corriendo con suerte, ésta semana la termino de escribir. Así que hasta pronto.]]>

8 comentarios en “¿Cómo cambiar el enrutamiento en el PC?”

  1. Seria bueno que nos mostrara los comandos para los sistemas gnu/linux de igual manera, la entrada dice cambiar el enrutamiento en un pc. Además en la entrada que realizo sobre s.l. se habla de lo mucho q nos aporta.

  2. Hola Fabián,

    gracias por el comentario. Sí, me parece muy justo. Deme unos días y escribo algo sobre el enrutamiento en GNU/Linux. Lo que sí no puedo hacer es hablar de cómo se hace en Mac (aunque partiendo de que es un Unix debe ser similar a GNU/Linux).

    Hasta pronto.
    P.D.: Aunque lo de Linux iría después de terminar de hablar del netsh 🙂

  3. Excelente entrada,

    nada mas una pequeña correccion

    3 # Cambiar la métrica de le puerta de enlace: route change route change 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 80

    ahi esta dos veces el comando route change.

  4. Hola:
    Soy novato en esto de redes, y estoy experimentando con dos pc´s. Lo que tengo es un modem de Cablemodem que tiene salida por RJ45 y USB.
    La idea es colocar una Pc por RJ45 y otra por USB. Experimentando siçolo con una logre tener elresultado que si enchufo el RJ45 enlasa si desconecto este y conecto el USB(previo indroducción de drivers) se conecta también. Lamentablemente a la otra pc no pude hacer lo mismo. Pregunta: ¿Habrá una forma de «Exportar» todas las coencciones y configuraciones de una pc a otra? Con la salvedad de le tendre que cambiar los IP.
    Gracias y desde ahora seguiré leyendo sus guias. MUY INTERESANTES…

    1. Hola Pablo,

      gracias por el comentario. No comprendo muy bien lo que quieres, si lo que quieres es que tu PC se conecte a veces a una red y a veces a otra, la publicación dice lo que necesitas: usa netsh dump, si lo que pasa es que el cablemodem sólo deja conectar una de las dos entradas, probablemente esté programado para hacerlo y habrá que hackear el aparato para que funcionen los dos. Lo último no lo sé hacer y seguramente dependerá de la marca de tu cablemodem.

      Gracias y hasta pronto.

  5. Hola muchas gracias por el articulo y el interés en la comunidad, en este momento luego de buscar mucho por fin encuentro un post que hable de mi problema, tengo dos ISP (claro 192.168.1.1 y ETB 192.168.0.1) tengo 5 computadores conectados a estos ISP por medio de un Swith, están con las ip fija y con la adicional así como lo planteas y tengo el problema de que siempre se me conectan por el GW de la ETB, tu solución ya me permite elegir cual GW usar, pero necesito realmente usar las dos en los casos de que uno de los ISP falla, por favor dime como mantener los dos GW pero con las métricas diferentes según conveniencia.

Responder a Omar Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.