Вирішення проблем

Іноді щось ламається або працює не так, як очікувалося. У цьому розділі описано кілька інструментів усунення несправностей, наданих VyOS, які можуть допомогти, коли щось піде не так.

Тести підключення

Базові тести підключення

Перевірити підключення можна за допомогою знайомих команд ping і traceroute. Відображаються параметри для кожної команди (параметри для кожної команди відображаються за допомогою вбудованої довідки, як описано в розділі Інтерфейс командного рядка, і тут не наводяться у вихідних даних):

ping <destination>

Надсилайте ехо-запити ICMP на цільовий хост. Є кілька варіантів пінгування, зокрема. Підтримка 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>

Простежте шлях до мети.

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>

Розширені тести підключення

monitor traceroute <destination>

Однак доступний інший помічник, який поєднує ping і traceroute в один інструмент. Показано приклад його виходу:

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

Примітка

Результат займає весь екран і замінює ваш командний рядок.

Доступно кілька варіантів зміни вихідного сигналу дисплея. Натисніть h, щоб викликати вбудовану довідкову систему. Щоб вийти, просто натисніть q, і ви повернетеся до командного рядка VyOS.

Виявлення топології IPv6

IPv6 використовує різні методи для виявлення своїх сусідів/топології.

Виявлення маршрутизатора

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

Знайдіть маршрутизатори через eth0.

приклад:

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

Відкриття сусіда

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

приклад:

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

Назви інтерфейсів

Якщо ви виявите, що назви ваших інтерфейсів змінилися, це може бути тому, що ваші MAC-адреси змінилися.

  • Наприклад, у вас є віртуальна машина VyOS із 4 інтерфейсами Ethernet під назвами eth0, eth1, eth2 і eth3. Потім ви переносите віртуальну машину VyOS на інший хост і бачите, що ваші інтерфейси тепер eth4, eth5, eth6 і eth7.

    Один зі способів вирішення цієї проблеми взявши під контроль MAC-адреси:

    Увійдіть у VyOS і запустіть цю команду, щоб відобразити налаштування інтерфейсу.

    show interfaces detail
    

    Зверніть увагу на MAC-адреси.

    Тепер, щоб оновити MAC-адресу в конфігурації, виконайте цю команду, вказавши ім’я інтерфейсу та MAC-адресу, які ви хочете.

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

    Якщо це віртуальна машина, перейдіть до налаштувань хоста та встановіть для MAC-адреси параметри, знайдені у файлі config.boot. Ви також можете встановити статичний MAC, якщо це дозволяє хост.

  • Іншим прикладом може бути клонування віртуальних машин VyOS у GNS3, і ви потрапите в ту саму проблему: назви інтерфейсів змінилися.

    І більш загальний спосіб це виправити — просто видалити кожну MAC-адресу у файлі конфігурації клонованої машини. Вони будуть правильно відновлені автоматично.

Моніторинг

VyOS має кілька інструментів моніторингу.

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

Дампи трафіку

Щоб контролювати трафік інтерфейсу, запустіть інтерфейс трафіку :code:`monitor<name> ` команда, що замінює `<name> ` з вибраним інтерфейсом.

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:~$

Щоб вийти з моніторингу, натисніть Ctrl-c, і ви повернетеся до командного рядка VyOS.

Трафік можна фільтрувати та зберігати.

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

Використання пропускної здатності інтерфейсу

щоб швидко переглянути використану пропускну здатність інтерфейсу, скористайтеся командою monitor bandwidth

vyos@vyos:~$ monitor bandwidth interface eth0

показати наступне:

     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

Продуктивність інтерфейсу

Щоб переглянути пропускну здатність мережі між двома вузлами, для запуску iperf використовується команда monitor bandwidth-test.

vyos@vyos:~$ monitor bandwidth-test
Possible completions:
  accept        Wait for bandwidth test connections (port TCP/5001)
  initiate      Initiate a bandwidth test
  • Команда accept відкриває слухаючий сервер iperf на порту TCP 5001

  • Команда initiate підключається до цього сервера для виконання тесту.

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>

Команда моніторингу

Команда monitor command дозволяє вам багаторазово запускати команду для перегляду безперервно оновленого виводу. Команда виконується та виводиться кожні 2 секунди, що дозволяє постійно контролювати вихідні дані без повторного запуску команди. Це може бути корисним для відстеження формування суміжності маршрутизації.

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

Очищає екран і кожні 2 секунди показує результат показати інтерфейси.

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

Термінал/Консоль

Іноді вам потрібно очистити лічильники або статистику, щоб краще усунути несправності.

Для цього використовуйте команду clear в робочому режимі.

щоб очистити вихід консолі

vyos@vyos:~$ clear console

щоб очистити лічильники інтерфейсу

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

Команда дотримується тієї ж логіки, що й команда set у режимі налаштування.

# 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

щоб очистити лічильники наборів правил брандмауера або окремих правил

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

Інформація про систему

Етапи завантаження

VyOS 1.2 використовує Debian Jessie як базову операційну систему Linux. Jessie була першою версією Debian, яка використовує systemd як систему ініціалізації за замовчуванням.

Це кроки завантаження для VyOS 1.2

  1. BIOS завантажує Grub (або isolinux для Live CD)

  2. Після цього Grub починає завантаження Linux і завантажує ядро Linux /boot/vmlinuz

  3. Ядро запускає Systemd /lib/systemd/systemd

  4. Systemd завантажує службовий файл VyOS /lib/systemd/system/vyos-router.service

  5. Сервісний файл запускає сценарій ініціалізації маршрутизатора VyOS /usr/libexec/vyos/init/vyos-router - це частина пакета vyatta-cfg Debian

  1. Запускає FRR - наступника GNU Zebra і Quagga

  2. Ініціалізує файл конфігурації завантаження - копіює поверх config.boot.default, якщо конфігурації немає

  3. Запускає міграцію конфігурації, якщо конфігурація призначена для старішої версії VyOS

  4. Запускає сценарій попередньої конфігурації, якщо є такий /config/scripts/vyos-preconfig-bootup.script

  5. Якщо файл конфігурації було оновлено, запускає будь-які сценарії після оновлення /config/scripts/post-upgrade.d

  6. Запускає rl-system і firewall

  7. Монтує розділ /boot

  8. Потім файл конфігурації завантаження застосовано за допомогою /opt/vyatta/sbin/ vyatta-boot-config-loader/opt/vyatta/etc/config/config.boot

  1. Сценарій завантажувача конфігурації записує записи журналу в /var/log/vyatta-config-loader.log

  1. Запускає telinit q, щоб сказати системі ініціалізації перезавантажити /etc/inittab

  2. Нарешті, він запускає сценарій постконфігурації /config/scripts/vyos-postconfig-bootup.script