Solución de problemas

A veces las cosas se rompen o no funcionan como se esperaba. Esta sección describe varias herramientas de solución de problemas proporcionadas por VyOS que pueden ayudar cuando algo sale mal.

Pruebas de conectividad

Pruebas básicas de conectividad

La verificación de la conectividad se puede realizar con los comandos familiares ping y traceroute. Se muestran las opciones para cada uno (las opciones para cada comando se mostraron utilizando la ayuda integrada como se describe en la sección Interfaz de línea de comandos y se omiten en el resultado aquí):

ping <destination>

Envía solicitudes de eco ICMP al host de destino. Hay múltiples opciones para hacer ping, inkl. Soporte VRF.

vyos@vyos:~$ ping 10.1.1.1
Possible completions:
  <Enter>       Execute the current command
  adaptive      Ping options
  allow-broadcast
  audible
  bypass-route
  count
  deadline
  do-not-fragment
  flood
  interface
  interval
  mark
  no-loopback
  numeric
  pattern
  quiet
  record-route
  size
  timestamp
  tos
  ttl
  verbose
  vrf
traceroute <destination>

Traza la ruta al objetivo.

vyos@vyos:~$ traceroute
Possible completions:
  <hostname>    Track network path to specified node
  <x.x.x.x>
  <h:h:h:h:h:h:h:h>
  ipv4          Track network path to <hostname|IPv4 address>
  ipv6          Track network path to <hostname|IPv6 address>

Pruebas de conectividad avanzadas

monitor traceroute <destination>

Sin embargo, hay otro asistente disponible que combina ping y traceroute en una sola herramienta. Se muestra un ejemplo de su salida:

vyos@vyos:~$ mtr 10.62.212.12

                           My traceroute  [v0.85]
vyos (0.0.0.0)
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                  Packets               Pings
Host                            Loss%   Snt   Last   Avg  Best  Wrst StDev
1. 10.11.110.4                   0.0%    34    0.5   0.5   0.4   0.8   0.1
2. 10.62.255.184                 0.0%    34    1.1   1.0   0.9   1.4   0.1
3. 10.62.255.71                  0.0%    34    1.4   1.4   1.3   2.0   0.1
4. 10.62.212.12                  0.0%    34    1.6   1.6   1.6   1.7   0.0

Nota

La salida consume la pantalla y reemplazará su símbolo del sistema.

Hay varias opciones disponibles para cambiar la salida de la pantalla. Presione h para invocar el sistema de ayuda integrado. Para salir, simplemente presione q y volverá al símbolo del sistema de VyOS.

Detección de topología IPv6

IPv6 utiliza diferentes técnicas para descubrir sus vecinos/topología.

Descubrimiento de enrutadores

force ipv6-rd interface <interface> [address <ipv6-address>]

Descubra enrutadores a través de eth0.

Ejemplo:

vyos@vyos:~$ force ipv6-rd interface eth0
Soliciting ff02::2 (ff02::2) on eth0...

Hop limit                 :           60 (      0x3c)
Stateful address conf.    :           No
Stateful other conf.      :           No
Mobile home agent         :           No
Router preference         :         high
Neighbor discovery proxy  :           No
Router lifetime           :         1800 (0x00000708) seconds
Reachable time            :  unspecified (0x00000000)
Retransmit time           :  unspecified (0x00000000)
 Prefix                   : 240e:fe:8ca7:ea01::/64
  On-link                 :          Yes
  Autonomous address conf.:          Yes
  Valid time              :      2592000 (0x00278d00) seconds
  Pref. time              :        14400 (0x00003840) seconds
 Prefix                   : fc00:470:f1cd:101::/64
  On-link                 :          Yes
  Autonomous address conf.:          Yes
  Valid time              :      2592000 (0x00278d00) seconds
  Pref. time              :        14400 (0x00003840) seconds
 Recursive DNS server     : fc00:470:f1cd::ff00
  DNS server lifetime     :          600 (0x00000258) seconds
 Source link-layer address: 00:98:2B:F8:3F:11
 from fe80::298:2bff:fef8:3f11

Descubrimiento de vecinos

force ipv6-nd interface <interface> address <ipv6-address>

Ejemplo:

vyos@vyos:~$ force ipv6-nd interface eth0 address fc00:470:f1cd:101::1

Soliciting fc00:470:f1cd:101::1 (fc00:470:f1cd:101::1) on eth0...
Target link-layer address: 00:98:2B:F8:3F:11 from fc00:470:f1cd:101::1

Nombres de interfaz

Si encuentra que los nombres de sus interfaces han cambiado, esto podría deberse a que sus direcciones MAC han cambiado.

  • Por ejemplo, tiene una VM VyOS con 4 interfaces Ethernet llamadas eth0, eth1, eth2 y eth3. Luego, migra su VyOS VM a un host diferente y encuentra que sus interfaces ahora son eth4, eth5, eth6 y eth7.

    Una forma de solucionar este problema tomar el control de las direcciones MAC es:

    Inicie sesión en VyOS y ejecute este comando para mostrar la configuración de su interfaz.

    show interfaces detail
    

    Tome nota de las direcciones MAC.

    Ahora, para actualizar una dirección MAC en la configuración, ejecute este comando especificando el nombre de la interfaz y la dirección MAC que desea.

    set interfaces eth0 hw-id 00:0c:29:da:a4:fe
    

    Si se trata de una máquina virtual, acceda a la configuración del host y configure la dirección MAC en la configuración que se encuentra en el archivo config.boot. También puede configurar el MAC en estático si el host lo permite.

  • Otro ejemplo podría ser cuando se clonan máquinas virtuales VyOS en GNS3 y se encuentra con el mismo problema: los nombres de las interfaces han cambiado.

    Y una forma más genérica de arreglarlo es simplemente borrar cada dirección MAC en el archivo de configuración de la máquina clonada. Se regenerarán correctamente de forma automática.

Supervisión

VyOS presenta varias herramientas de monitoreo.

vyos@vyos:~$ monitor
Possible completions:
  bandwidth     Monitor interface bandwidth in real time
  bandwidth-test
                Initiate or wait for bandwidth test
  cluster       Monitor clustering service
  command       Monitor an operational mode command (refreshes every 2 seconds)
  conntrack-sync
                Monitor conntrack-sync
  content-inspection
                Monitor Content-Inspection
  dhcp          Monitor Dynamic Host Control Protocol (DHCP)
  dns           Monitor a Domain Name Service (DNS) daemon
  firewall      Monitor Firewall
  https         Monitor the Secure Hypertext Transfer Protocol (HTTPS) service
  lldp          Monitor Link Layer Discovery Protocol (LLDP) daemon
  log           Monitor last lines of messages file
  nat           Monitor network address translation (NAT)
  ndp           Monitor the NDP information received by the router through the device
  openvpn       Monitor OpenVPN
  protocol      Monitor routing protocols
  snmp          Monitor Simple Network Management Protocol (SNMP) daemon
  stop-all      Stop all current background monitoring processes
  traceroute    Monitor the path to a destination in realtime
  traffic       Monitor traffic dumps
  vpn           Monitor VPN
  vrrp          Monitor Virtual Router Redundancy Protocol (VRRP)
  webproxy      Monitor Webproxy service

Volcados de tráfico

Para monitorear el tráfico de la interfaz, emita :code:`monitor de interfaz de tráfico<name> comando `, reemplazando `<name> ` con la interfaz elegida.

vyos@vyos:~$ monitor traffic interface eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
15:54:28.581601 IP 192.168.0.1 > vyos: ICMP echo request, id 1870, seq 3848, length 64
15:54:28.581660 IP vyos > 192.168.0.1: ICMP echo reply, id 1870, seq 3848, length 64
15:54:29.583399 IP 192.168.0.1 > vyos: ICMP echo request, id 1870, seq 3849, length 64
15:54:29.583454 IP vyos > 192.168.0.1: ICMP echo reply, id 1870, seq 3849, length 64
^C
4 packets captured
4 packets received by filter
0 packets dropped by kernel
vyos@vyos:~$

Para dejar de monitorear, presione Ctrl-c y regresará al símbolo del sistema de VyOS.

El tráfico se puede filtrar y guardar.

vyos@vyos:~$ monitor traffic interface eth0
Possible completions:
  <Enter>       Execute the current command
  filter        Monitor traffic matching filter conditions
  save          Save traffic dump from an interface to a file

Uso del ancho de banda de la interfaz

para obtener una vista rápida del ancho de banda utilizado de una interfaz, utilice el comando supervisar ancho de banda

vyos@vyos:~$ monitor bandwidth interface eth0

mostrar lo siguiente:

     B                      (RX Bytes/second)
198.00 .|....|.....................................................
165.00 .|....|.....................................................
132.00 ||..|.|.....................................................
 99.00 ||..|.|.....................................................
 66.00 |||||||.....................................................
 33.00 |||||||.....................................................
       1   5   10   15   20   25   30   35   40   45   50   55   60

   KiB                      (TX Bytes/second)
  3.67 ......|.....................................................
  3.06 ......|.....................................................
  2.45 ......|.....................................................
  1.84 ......|.....................................................
  1.22 ......|.....................................................
  0.61 :::::||.....................................................
       1   5   10   15   20   25   30   35   40   45   50   55   60

Rendimiento de la interfaz

Para observar el ancho de banda de la red entre dos nodos, se usa el comando monitor de ancho de banda-prueba para ejecutar iperf.

vyos@vyos:~$ monitor bandwidth-test
Possible completions:
  accept        Wait for bandwidth test connections (port TCP/5001)
  initiate      Initiate a bandwidth test
  • El comando accept abre un servidor iperf de escucha en el puerto TCP 5001

  • El comando iniciar se conecta a ese servidor para realizar la prueba.

vyos@vyos:~$ monitor bandwidth-test initiate
Possible completions:
  <hostname>    Initiate a bandwidth test to specified host (port TCP/5001)
  <x.x.x.x>
  <h:h:h:h:h:h:h:h>

Supervisar comando

El comando monitor de comando le permite ejecutar repetidamente un comando para ver una salida actualizada continuamente. El comando se ejecuta y emite cada 2 segundos, lo que le permite monitorear la salida continuamente sin tener que volver a ejecutar el comando. Esto puede ser útil para seguir la formación de adyacencia de enrutamiento.

vyos@router:~$ monitor command "show interfaces"

Borrará la pantalla y le mostrará la salida de mostrar interfaces cada 2 segundos.

Every 2.0s: /opt/vyatta/bin/vyatta-op-cmd-wrapper    Sun Mar 26 02:49:46 2019

Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
eth0             192.168.1.1/24                    u/u
eth0.5           198.51.100.4/24                   u/u  WAN
lo               127.0.0.1/8                       u/u
                 ::1/128
vti0             172.25.254.2/30                   u/u
vti1             172.25.254.9/30                   u/u

Terminal/Consola

A veces es necesario borrar contadores o estadísticas para solucionar mejor los problemas.

Para hacer esto, use el comando clear en el modo Operacional.

para borrar la salida de la consola

vyos@vyos:~$ clear console

para borrar contadores de interfaz

# clear all interfaces
vyos@vyos:~$ clear interface ethernet counters
# clear specific interface
vyos@vyos:~$ clear interface ethernet eth0 counters

El comando sigue la misma lógica que el comando set en el modo de configuración.

# clear all counters of a interface type
vyos@vyos:~$ clear interface <interface_type> counters
# clear counter of a interface in interface_type
vyos@vyos:~$ clear interface <interface_type> <interace_name> counters

para borrar contadores en conjuntos de reglas de firewall o reglas individuales

vyos@vyos:~$ clear firewall name <ipv4 ruleset name> counters
vyos@vyos:~$ clear firewall name <ipv4 ruleset name> rule <rule#> counters

vyos@vyos:~$ clear firewall ipv6-name <ipv6 ruleset name> counters
vyos@vyos:~$ clear firewall ipv6-name <ipv6 ruleset name> rule <rule#> counters

Información del sistema

Pasos de arranque

VyOS 1.2 utiliza Debian Jessie como sistema operativo base de Linux. Jessie fue la primera versión de Debian que utiliza systemd como sistema de inicio predeterminado.

Estos son los pasos de arranque para VyOS 1.2

  1. El BIOS carga Grub (o isolinux para el Live CD)

  2. Grub luego inicia el arranque de Linux y carga el Kernel de Linux /boot/vmlinuz

  3. Kernel inicia Systemd /lib/systemd/systemd

  4. Systemd carga el archivo de servicio de VyOS /lib/systemd/system/vyos-router.service

  5. El archivo de servicio inicia el script de inicio del enrutador VyOS /usr/libexec/vyos/init/vyos-router - esto es parte del paquete vyatta-cfg Debian

  1. Inicia FRR - sucesor de GNU Zebra y Quagga

  2. Inicializa el archivo de configuración de arranque - copias sobre config.boot.default si no hay configuración

  3. Ejecuta la migración de configuración, si la configuración es para una versión anterior de VyOS

  4. Ejecuta el script de configuración previa, si hay uno /config/scripts/vyos-preconfig-bootup.script

  5. Si el archivo de configuración se actualizó, ejecuta cualquier secuencia de comandos posterior a la actualización /config/scripts/post-upgrade.d

  6. Inicia rl-system y firewall

  7. Monta la partición /boot

  8. Luego, el archivo de configuración de arranque se aplica mediante /opt/vyatta/sbin/vyatta-boot-config-loader/opt/vyatta/etc/config/config.boot

  1. El script del cargador de configuración escribe entradas de registro en /var/log/vyatta-config-loader.log

  1. Ejecuta telinit q para decirle al sistema de inicio que vuelva a cargar /etc/inittab

  2. Finalmente, ejecuta el script posterior a la configuración /config/scripts/vyos-postconfig-bootup.script