вторник, 19 августа 2008 г.

Множественные таблицы маршрутизации в FreeBSD 7.0-STABLE

  • Обновляем исходные коды системы из CVS-ветки «RELENG_7»
    # csup cvsup.RELENG7
    Файл cvsup.RELENG7
    *default host=cvsup.ru.FreeBSD.org
    *default base=/usr
    *default prefix=/usr
    *default release=cvs tag=RELENG_7
    *default delete use-rel-suffix
    src-all
  • В опции ядра добавляем
    options ROUTETABLES=N
    где N - число используемых таблиц.
    Собираем ядро и систему
    # make buildworld kernel
    Переходим в однопользовательский режим и после установки системы перезагружаемся
    # init 1
    # mergemaster -p
    # make installworld
    # make delete-old
    # mergemaster
    # reboot
  • Таблицы маршрутизации управляются через команду setfib.
    Синтаксис команды
    setfib [-[F]]N command
    где N - номер таблицы маршрутизации.

    Просмотр таблиц
    # setfib N netstat -rn
    Изменение таблиц
    # setfib N route {add|change|delete|flush} ...
    Пример применения в консоли
    # setfib N traceroute www.domain.ru
  • В ipfw добавлены две дополнительные конструкции
    setfib N ip from any to any
    и
    count ip from any to any fib N
  • В PF для работы с таблицами маршрутизации предусмотрена опция «rtable N». Пример:
    pass out on fxp0 from any to any keep state rtable N

Комментариев нет: