# vtysh - CLI к FRR (BGP/OSPF) _Команды · LinuxLab Knowledge Base_ **TL;DR:** vtysh - Cisco-подобный CLI к FRRouting. Через него настраиваются все routing-демоны (zebra, bgpd, ospfd) одной интегрированной сессией. ## Что такое FRR и vtysh **FRR** (FRRouting) - open-source реализация классических routing-протоколов: BGP, OSPF, IS-IS, RIP, BFD, EIGRP. Состоит из набора демонов: - **zebra** - ядро: общается с kernel routing table, агрегирует маршруты - **bgpd** - BGP-демон ([bgp](/kb/bgp.md)) - **ospfd** - OSPF v2 для IPv4 ([ospf](/kb/ospf.md)) - **ospf6d** - OSPF v3 для IPv6 - **isisd, ripd, eigrpd** - соответствующие протоколы Каждый демон слушает свой UNIX-сокет с CLI. **vtysh** - терминал который может общаться с **всеми** демонами одновременно, давая единое окно конфигурации (как Cisco IOS / Junos CLI). ## Режимы (как в Cisco) ``` router# ← privileged (read+show) router# configure terminal ← перейти в config-mode router(config)# ← можно править конфиг router(config)# router bgp 65001 router(config-router)# ← подкоманда конкретного process'а router(config-router)# exit router(config)# exit router# ← обратно в privileged ``` Команды show / debug - в privileged, конфиг - в configure. ## Самые ходовые команды ### Общая диагностика ```bash sudo vtysh -c "show version" sudo vtysh -c "show running-config" # текущий конфиг sudo vtysh -c "show ip route" # все маршруты в kernel + RIB sudo vtysh -c "show interface brief" ``` ### BGP ```bash sudo vtysh -c "show ip bgp summary" # таблица соседей + state sudo vtysh -c "show ip bgp" # все полученные/анонсированные prefix'ы sudo vtysh -c "show ip bgp neighbors 10.0.0.2" sudo vtysh -c "show ip bgp neighbors 10.0.0.2 advertised-routes" sudo vtysh -c "show ip bgp neighbors 10.0.0.2 received-routes" ``` Что мы хотим увидеть в `show ip bgp summary`: ``` Neighbor V AS MsgRcvd MsgSent ... State/PfxRcd 10.0.0.2 4 65002 100 100 ... 5 ``` Если в `State/PfxRcd` число - сессия Established и принимаем 5 prefix'ов. Если `Active` / `Idle` - handshake не завершился (обычно сетевая или конфиг). ### OSPF ```bash sudo vtysh -c "show ip ospf neighbor" # adjacencies (нужно 'Full') sudo vtysh -c "show ip ospf interface brief" # на каких интерфейсах работает sudo vtysh -c "show ip ospf database" # LSDB - карта топологии sudo vtysh -c "show ip ospf route" # рассчитанные SPF-маршруты ``` ## Конфиг через here-doc Удобный способ применить конфиг скриптом: ```bash sudo vtysh <<'EOF' configure terminal router bgp 65001 no bgp default ipv4-unicast neighbor 10.0.0.2 remote-as 65002 address-family ipv4 unicast neighbor 10.0.0.2 activate network 10.0.0.0/24 exit-address-family exit do write EOF ``` `do write` сохраняет running-config в `/etc/frr/frr.conf` чтобы пережил рестарт демонов. ## Команды ```bash sudo vtysh -c 'show version' ``` Версия FRR и список запущенных демонов ```bash sudo vtysh -c 'show ip route' ``` RIB + FIB - все маршруты которые знает FRR ```bash sudo vtysh -c 'show ip bgp summary' ``` Состояние BGP-соседей: AS, sessions, принимаемые prefix'ы ```bash sudo vtysh -c 'show ip ospf neighbor' ``` OSPF adjacencies - должны быть в state Full для работающего OSPF ```bash sudo vtysh ``` Войти в интерактивную CLI; команды как в Cisco IOS ## См. также - [BGP - Border Gateway Protocol](/kb/bgp.md) - [OSPF - Open Shortest Path First](/kb/ospf.md) - [Routing table](/kb/routing-table.md)