Здесь я собрал некоторые не вполне очевидные, но полезные факты о внутреннем
устройстве и настройке 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.
Традиционные фильтры UNIX тоже работают, и к одной команде можно применить более одного фильтра (глупый пример: show interfaces|match ethernet|count для получения числа ethernet-интерфейсов в системе).
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 в интерактивном режиме.
Например,
#!/bin/vbash /opt/vyatta/sbin/my_set protocols static route 10.0.0.0/8 next-hop 172.16.0.1 /opt/vyatta/sbin/my_comit
Знакомого с UNIX не затруднит написать к этому красивую обертку (пожалуй, сделаю, но позже).
Опубликовано: Vyatta
» Оставить комментарий
Вы должны войти чтобы прокомментировать.