Вирішення проблем
Іноді щось ламається або працює не так, як очікувалося. У цьому розділі описано кілька інструментів усунення несправностей, наданих VyOS, які можуть допомогти, коли щось піде не так.
Тести підключення
Базові тести підключення
Перевірити підключення можна за допомогою знайомих команд ping і traceroute. Відображаються параметри для кожної команди (параметри для кожної команди відображаються за допомогою вбудованої довідки, як описано в розділі Інтерфейс командного рядка, і тут не наводяться у вихідних даних):
Надсилайте ехо-запити 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
Розширені тести підключення
Однак доступний інший помічник, який поєднує 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 використовує різні методи для виявлення своїх сусідів/топології.
Виявлення маршрутизатора
Знайдіть маршрутизатори через 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
Відкриття сусіда
Назви інтерфейсів
Якщо ви виявите, що назви ваших інтерфейсів змінилися, це може бути тому, що ваші 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
BIOS завантажує Grub (або isolinux для Live CD)
Після цього Grub починає завантаження Linux і завантажує ядро Linux
/boot/vmlinuz
Ядро запускає Systemd
/lib/systemd/systemd
Systemd завантажує службовий файл VyOS
/lib/systemd/system/vyos-router.service
Сервісний файл запускає сценарій ініціалізації маршрутизатора VyOS
/usr/libexec/vyos/init/vyos-router
- це частина пакета vyatta-cfg Debian
Ініціалізує файл конфігурації завантаження - копіює поверх
config.boot.default
, якщо конфігурації немаєЗапускає міграцію конфігурації, якщо конфігурація призначена для старішої версії VyOS
Запускає сценарій попередньої конфігурації, якщо є такий
/config/scripts/vyos-preconfig-bootup.script
Якщо файл конфігурації було оновлено, запускає будь-які сценарії після оновлення
/config/scripts/post-upgrade.d
Запускає
rl-system
іfirewall
Монтує розділ
/boot
Потім файл конфігурації завантаження застосовано за допомогою
/opt/vyatta/sbin/ vyatta-boot-config-loader/opt/vyatta/etc/config/config.boot
Сценарій завантажувача конфігурації записує записи журналу в
/var/log/vyatta-config-loader.log
Запускає
telinit q
, щоб сказати системі ініціалізації перезавантажити/etc/inittab
Нарешті, він запускає сценарій постконфігурації
/config/scripts/vyos-postconfig-bootup.script