Здесь я собрал некоторые не вполне очевидные, но полезные факты о внутреннем устройстве и настройке Vyatta, которые могут сделать общение с ней более комфортным и продуктивным.
1. Что внутри?
Многие функции Vyatta представляют собой обертки над существующими
открытыми программами. В частности:
- Маршрутизация: Quagga (quagga.net).
- Межсетевой экран, NAT: NetFilter/iptables (netfilter.org).
- Веб-прокси: Squid (squid-cache.org).
- Фильтрация URL: Squidguard (squidguard.org).
- IPsec IKE: StrongSWAN (strongswan.org).
- PPTP-сервер: pptpd (poptop.org).
- L2TP-сервер: xl2tpd (www.xelerance.com/software/xl2tpd/).
- DHCP: ISC dhcpd (www.isc.org/software/dhcp).
- Кэширующий DNS: dnsmasq (www.thekelleys.org.uk/dnsmasq/doc.html).
- Обнаружение вторжений: Snort (snort.org).
- Базовая система: Debian Lenny.
2. Как просмотреть команды, ввод которых дает текущий конфиг?
В отличии от IOS, скопировать и вставить фрагмент конфига здесь не получится. Но есть скрипт
/opt/vyatta/sbin/vyatta-config-gen-sets.pl , который выведет текущий конфиг в виде
набора команд. Вытащить нужное из вывода по ключевому слову можно путем |match KEYWORD,
или традиционного |grep KEYWORD.
Конечно, хотелось бы видеть что-то в стиле show firewall LAN|display-sets, но пока не
реализовано.
3. Управление выводом команд.
На вывод команд вроде show можно повлиять. В частности, следующими способами:
- show ...|count — выведет число строк в выводе.
- show ...|match KEYWORD — выведет все строки, содержащие KEYWORD.
- show ...|no-match KEYWORD
- show ...|more будет принудительно разделять вывод на страницы.
- show ...|no-more выведет без разделения на страницы, даже если по умолчанию оно было.
— выведет все строки, не содержащие KEYWORD.
4. Операции над фрагментами конфига
Начиная с Vyatta 6 (Kenwood), фрагменты вроде правил МСЭ и NAT, наборов правил и прочего можно копировать и переименовывать.
Для этого нужно зайти на уровень выше, чем находятся элементы, над которыми мы будем производить эти манипуляции (например, edit firewall для управления наборами правил МСЭ, или edit policy route-map eBGP для управления правилами карты маршрутов) и использовать команды вида:
rename name FromLAN to name FromLabNetwork (для МСЭ) copy rule 10 to rule 20
5. Выполнение команд из скрипта.
К сожалению, просто написать в скрипт команды и выполнить его не получится.
Нужно использовать исполняемые файлы /opt/vyatta/sbin/my_set,
/opt/vyatta/sbin/my_delete и /opt/vyatta/sbin/my_commit. Делают они то же
самое, что команды set, delete и commit в интерактивном режиме.
Например, /opt/vyatta/sbin/my_set protocols ospf.
Знакомого с UNIX не затруднит написать к этому красивую обертку (пожалуй, сделаю, но позже).
Опубликовано: Vyatta
о. то что нужно. Только я собрался изнасиловать свой мозг и осознать синтаксис вьятты и тут вот на тебе, такое замечательное пособие. Дикуи!
Временной парадокс какой-то. Я же эту запись несколько месяцев назад опубликовал, почему у нее дата 31.12? Пространство-время в опасности! 🙂
Пользуясь случаем, дополню, что в 6.1 таки сделали обертку для вывода команд: «show configuration cmds». А в 7.0 нас ждет API для скриптов.
Непонятно почему, но твой пост был в черновиках, ожидающих модерацию. Я его разрешил 31.12. Но я его точно видел раньше! Правда возможно из-под админки.
ЗЫ А возможно все дело в том, что Илюха только сейчас собрался помучить Виатту 🙂