Cтатическая маршрутизация в FreeBSD

Апрель, 07th 2011Рубрика: *NIX 27493
Подписаться на комментарии по RSS

Не так давно нужно было объединить 2 сети - обеспечить видимость серверов. Как-то до этого времени задач по маршрутизации не стояло. Эта небольшая статья о том как сделать статическую маршрутизацию на FreeBSD. Пример сети возьмем из хендбука:

статическая маршрутизация FreeBSD

RouterA - наш компьютер с FreeBSD, он же является маршрутизатором в Интернет. Его маршрут по умолчанию для связи с внешним миром 10.0.0.1. Собственно на его примере и покажу настройку маршрутизации.

RouterB в качестве шлюза использует 192.168.1.1, что видно из схемы.

Для начала посмотрим таблицу маршрутизации на RouterA (команда netstat -nr):

% netstat -nr
Routing tables
Internet:
Destination        Gateway         Flags    Refs      Use  Netif  Expire
default            10.0.0.1        UGS         0    49378    xl0
127.0.0.1          127.0.0.1       UH          0        6    lo0
10.0.0/24          link#1          UC          0        0    xl0
192.168.1/24       link#2          UC          0        0    xl1

Как видим, RouterA пока ничего не знает о внутренней сети 2 (Internal Net 2). Необходимо добавить маршрут в таблицу маршрутизации RouterA. В качестве маршрутизатора для сети 192.168.2.0 выступает хост с адресом 192.168.1.2 (RouterB). На RouterA даем слеющую команду:

# route add -net 192.168.2.0/24 192.168.1.2

Теперь RouterA сможет достучаться до любого хоста в сети 192.168.2.0/24. Однако, после перезагрузки FreeBSD, измененная маршрутная информация не сохранится. Теперь следует прописать наш маршрут в файл /etc/rc.conf. Для этого добавим следующие строки:

static_routes="internalnet2"
route_internalnet2="-net 192.168.2.0/24 192.168.1.2"

В переменной static_routes могут находиться строки, разделенные пробелами. Каждая строка соответствует имени маршрута. В примере static_routes содержит единственную строку - internalnet2. Переменная route_internalnet2, содержит все параметры, которые необходимо передать команде route для правильного добавления маршрута.

static_routes может содежать более одной строки. Таким образом создаются несколько статических маршрутов. В следующем примере показано добавление маршрутов для сетей 192.168.10.0/24 и 192.168.11.0/24 (адреса взяты просто для примера, не ищете на рисунке):

static_routes="net1 net2"
route_net1="-net 192.168.10.0/24 192.168.0.1"
route_net2="-net 192.168.11.0/24 192.168.1.1"

Ещё информацию по теме можно почитать в handbook: Сетевые шлюзы и маршруты

Подписывайтесь на канал Яндекс.Дзен и узнавайте первыми о новых материалах, опубликованных на сайте.

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

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

  1. 2017-03-10 в 03:05:18 | Dmitry Buzz

    Отлично расжовано! Спасибо!

  2. 2018-06-29 в 18:07:41 | Комментатор 154]]>avatar]]>

    Не работает через /etc/rc.conf на FreeBSD 10 и выше.

    Надо делать так:

    route_net1="-net 192.168.10.0/24 -gateway 192.168.0.1"

ваш комментарий будет опубликован после проверки
на указанный адрес будет отправлено письмо с кодом активации. Вы можете настроить собственный профиль и стать активным участником или автором.