Giter Club home page Giter Club logo

vyos-virtual-router's Introduction

Instalar y configurar VyOS como router en un entorno virtualizado con Proxmox

Autor

Introducción

VyOS es un sistema operativo de red de código abierto basado en Debian GNU/Linux. Proporciona una plataforma de enrutamiento gratuita que compite directamente con otras soluciones disponibles en el mercado de proveedores de red, como Huawei y Cisco, entre los más conocidos. Provee, entre otras, las funcionalidades de enrutamiento, cortafuegos, VPN y VLAN. Para su gestión, VyOS provee una interfaz de línea de comandos (CLI por sus siglas en Inglés), al más puro estilo tradicional de configuración de routers.

Escenario

En Cuba la adopción de las tecnologías de virtualización van ganando cada vez más adeptos; al mismo tiempo, va siendo común en las redes cubanas la existencia de conexión por fibra óptica -jaque mate al cobre y las tecnologías de conexión DSL-; lo que presupone el despliegue de electrónica avanzada de red -routers y switches L2/L3-, las cuales en no pocas ocasiones, están subutilizadas.

A los efectos de esta guía, se utilizará un entorno de virtualización basado en Proxmox, donde se creará una máquina virtual ejecutando un VyOS router con los siguientes requisitos de hardware y software.

  1. Hardware

    • CPU: 1 core
    • RAM: 512 MiB
    • HDD: 2 GiB
    • Arquitectura: i586 ó amd64
    • Adaptador de red: 2 (solo 1, de utilizarse VLAN bajo protocolo de etiquetado IEEE 802.1Q)
  2. Software

    • Imagen ISO de VyOS para la arquitectura seleccionada, disponibles en VyOS Downloads.

NOTA: Si se despliega VLAN bajo protocolo de etiquetado IEEE 802.1Q, debe disponerse de un switch L2, donde se crearán las mismas VLANs que utilizará el VyOS router.

Instalación

El proceso de instalación de VyOS es en extremo sencillo, basta con ejecutar el comando install image y aceptar (recomendado) o modificar las opciones que nos presenta el asistente; al concluir, reiniciar.

Una vez instalado, VyOS dispone de dos modos de gestión; el modo operacional y el modo de configuración. En el primero es donde se ejecutan todos los comandos de verificación y monitoreo, y en el segundo, como su propio nombre indica; los comandos de configuración.

Configuración

Acceder al modo de configuración a través del comando configure.

NOTA: Si se utiliza versiones igual o inferior a la 1.1.8, es recomendable ejecutar delete system console device ttyS0.

  1. Parámetros globales

    set system host-name 'router'
    set system name-server 'ns1.etecsa.cu'
    set system name-server 'ns2.etecsa.cu'
    set system time-zone 'America/Havana'

    NOTA: Si su ISP cuenta con un servidor de hora, ejecutar set system ntp server 'IP_O_FQDN_SERVIDOR_NTP'.

    • Utilizar el router como servidor DNS para la subred LAN
    set service dns forwarding name-server 'ns1.etecsa.cu'
    set service dns forwarding name-server 'ns2.etecsa.cu'
    set service dns forwarding listen-on 200.55.143.153
    set service dns forwarding allow-from 200.55.143.152/29
  2. Parámetros de los adaptadores de red

    • Sin utilizar protocolo de etiquetado IEEE 802.1Q
    set interfaces ethernet eth0 address '192.168.30.2/30'
    set interfaces ethernet eth0 description 'WAN'
    set interfaces ethernet eth1 address '200.55.143.153/29'
    set interfaces ethernet eth1 description 'LAN'
    • Utilizando protocolo de etiquetado IEEE 802.1Q
    set interfaces ethernet eth0 vif '100' address '192.168.30.2/30'
    set interfaces ethernet eth0 vif '100' description 'WAN'
    set interfaces ethernet eth0 vif '101' address '200.55.143.153/29'
    set interfaces ethernet eth0 vif '101' description 'LAN'
  3. Parámetros de enrutamiento

    • Para versiones <=1.1.8
    set system gateway-address '192.168.30.1'

    NOTA: También puede usarse set protocols static route 0.0.0.0/0 next-hop '192.168.30.1'.

    • Para versiones >1.1.8
    set protocols static route 0.0.0.0/0 next-hop '192.168.30.1'
  4. Parámetros de seguridad

    • Reglas de cortafuegos
    set firewall all-ping enable
    set firewall broadcast-ping disable
    set firewall config-trap disable
    set firewall name OutSide
    set firewall name OutSide default-action accept
    set firewall name OutSide rule 1 action drop
    set firewall name OutSide rule 1 destination port 'ssh'
    set firewall name OutSide rule 1 protocol 'tcp'
    set firewall name OutSide rule 2 action drop
    set firewall name OutSide rule 2 destination port 'telnet'
    set firewall name OutSide rule 2 protocol 'tcp'
    • Sin utilizar protocolo de etiquetado IEEE 802.1Q
    set interfaces ethernet eth0 firewall local name OutSide
    • Utilizando protocolo de etiquetado IEEE 802.1Q
    set interfaces ethernet eth0 vif '100' firewall local name OutSide

    NOTA: La aplicación de la política de cortafuegos OutSide , evita que el router sea gestionado a través de la interfaz WAN.

    • Definir un usuario distinto al vyos por defecto
    set system login user 'username' full-name 'Descripción del usuario'
    set system login user 'username' authentication plaintext-password 'P@s$w0rd.2019'
    set system login user 'username' level 'admin'
    • Permitir acceso a través del protocolo SSH
    set service ssh listen-address '200.55.143.153'
    set service ssh port '22'
  5. Habilitar monitoreo de tráfico de red SNMPv2 (Simple Network Management Protocol)

    set service snmp listen-address '200.55.143.153'
    set service snmp community public authorization ro
    set service snmp community public network 200.55.143.152/29
    set service snmp location "CU, Nueva Gerona"
    set service snmp contact "[email protected]"

    NOTA: Para habilitar SNMPv3, revisar las referencias.

    Aplicar la configuración, guardar los cambios -para hacerlos permanentes en cada reinicio-, y salir del modo de configuración.

    commit && save
    exit

Verificación

  1. Mostrar los parámetros de configuración establecidos

    show configuration
  2. Mostrar los parámetros de los adaptadores de red

    show interfaces
  3. Mostrar el tráfico de red

    monitor interfaces

NOTA: Para listar todos los comandos de configuración ejecutados, utilizar, show configuration commands.

Actualización

  1. Obtener versión en ejecución

    show system image
    
    The system currently has the following image(s) installed:
    
       1: 1.2-rolling-201911061649 (default boot) (running image)
  2. Añadir nueva versión

    add system image https://downloads.vyos.io/rolling/current/amd64/vyos-rolling-latest.iso
    
    Checking MD5 checksums of files on the ISO image...OK.
    Done!
    What would you like to name this image? [1.3-rolling-202001160217]:
    OK.  This image will be named: 1.3-rolling-202001160217
    Installing "1.3-rolling-202001160217" image.
    Copying new release files...
    Would you like to save the current configuration
    directory and config file? (Yes/No) [Yes]:
    Copying current configuration...
    Would you like to save the SSH host keys from your
    current configuration? (Yes/No) [Yes]:
    Copying SSH keys...
    Running post-install script...
    Setting up grub configuration...
    Done.
  3. Reiniciar el sistema

    Contestar afirmativamente a las preguntas que se ofrecen durante el proceso de añadir versión y al concluir, reiniciar el sistema con el comando reboot.

NOTA: Se pude volver a verificar las versiones existentes con el comando show image system. También es posible añadir la nueva versión desde una imagen ISO previamente descargada y subida al sistema.

Conclusiones

La virtualización representa una de las tecnologías más eficientes para reducir los costos de las infraestructuras informáticas y de telecomunicaciones; jugando un papel esencial en Cuba, atendiendo a las limitaciones que enfrenta el país para la adquisición de equipamiento de última generación.

La virtualización puede ser aplicada tanto a servidores como a redes. Además, genera mayor eficiencia, agilidad y autonomía para la empresa cliente de un provedor de servicios de conectividad; con una mínima inversión que no rebase los presupuestos planificados.

Referencias

vyos-virtual-router's People

Contributors

kurosaki1976 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.