Роутинг в Solaris

В 11 версии много изменений, в том числе и в роутинге. Ниже приведу небольшую хаутушку, в которой будет рассказано, как изменять маршрутизацию.

Тестовый стенд: Solaris 11

1) Просмотр текущих настроек роутинга:

# routeadm
              Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   enabled              enabled
               IPv6 routing   disabled             disabled
            IPv4 forwarding   enabled              enabled
            IPv6 forwarding   disabled             disabled

           Routing services   "route:default ripng:default"

Routing daemons:

                      STATE   FMRI
                   disabled   svc:/network/routing/ripng:default
                   disabled   svc:/network/routing/rdisc:default
                     online   svc:/network/routing/route:default
                   disabled   svc:/network/routing/legacy-routing:ipv4
                   disabled   svc:/network/routing/legacy-routing:ipv6
                     online   svc:/network/routing/ndp:default

2) Включение FORWARDING’a пакетов:

#routeadm -u -e ipv4-forwarding

Аналогично можно включить/выключить и для ipv6

3) Добавления нового маршрута:

# route add 1.1.1.1 10.5.5.44
add host 1.1.1.1: gateway 10.5.5.44
# netstat -rn

Routing Table: IPv4
  Destination           Gateway           Flags  Ref     Use     Interface
-------------------- -------------------- ----- ----- ---------- ---------
default              10.5.5.1             UG        1         19 net0
1.1.1.1              10.5.5.44            UGH       1          0
10.5.5.0             10.5.5.133           U         5        257 net0
127.0.0.1            127.0.0.1            UH        2        246 lo0       

Routing Table: IPv6
  Destination/Mask            Gateway                   Flags Ref   Use    If
--------------------------- --------------------------- ----- --- ------- -----
::1                         ::1                         UH      2      30 lo0
fe80::/10                   fe80::20c:29ff:fe61:3b66    U       3       3 net1
fe80::/10                   fe80::20c:29ff:fe61:3b5c    U       3       3 net0

4) Добавления постоянного маршрута.

Отличие от предыдущего пункта в том, что после ребута маршрут не будет добавлен. Что бы добавить на постоянной основе, применяем ключ -p:

# route -p add 3.3.3.3 10.5.5.44
add host 3.3.3.3: gateway 10.5.5.44
add persistent host 3.3.3.3: gateway 10.5.5.44

5) Просмотр роутинга постоянных машрутов:

# route -p show
persistent: route add default 10.5.5.1 -ifp net0
persistent: route add 3.3.3.3 10.5.5.44

6) Просмотр конфигурации отдельных элементов:

# routeadm -p ipv4-forwarding
persistent=enabled default=disabled current=enabled

Примечание.

Спасибо пользователю Sebor за то, что обратил внимание на неглобальные зоны, так как в них есть нюансы.

Для неглобальной зоны с ip-type=shared вся настройка маршрутизации (удаление, добавление) выполняется ТОЛЬКО из глобальной зоны. В неглобальной зоне можно только смотреть текущие маршруты, при этом только через команду netstat. Подытожим:

– добавить маршрут

(global)$route -p add 10.10.139.42 -netmask 255.255.255.255 192.168.0.209 -ifp net0

При этом этот маршрут будет добавлен автоматически во все неглобальные зоны с ip-type=shared.

– посмотреть маршрут

(non-global)$netstat -rn

Для зоны c ip-type=exclusive всё аналогично как и в global, то есть все операции делаются непосредственно в той зоне, для какой это нужно.

16 коментарів до “Роутинг в Solaris

    1. skeletor Автор запису

      Для ip-shared – добавление маршрута только через глобальную зону (добавляете маршрут в глобальной и он становится виден для всех не-глобальных зон). Для ip-exclusive – можно в не-глобальной.

      1. Sebor

        В том-то и дело, что при добавлении в глобальную зону, в не глобальной он не виден. Да и в глобальной зоне не видны маршруты из не глобальных зон. Я так понимаю, что придется делать эксклюзивный ip?

        1. skeletor Автор запису

          Страно, но у себя на 2-х машинах проверил и работает так как надо. Смотрите, что вы делаете не так.
          Solaris 11

          1. Sebor

            Делаю так:
            route -p add 10.10.139.42 -netmask 255.255.255.255 192.168.0.209 -iface
            Запись в таблице глобальной зоны появляется, а в не глобальной – нет. Ребут ничего не изменил.
            Тоже Solaris 11

            1. skeletor Автор запису

              Вы неправильно делаете. Вот как надо:
              – добавить маршрут
              $route -p add 10.10.139.42 -netmask 255.255.255.255 192.168.0.209 -ifp net0
              – посмотреть маршрут
              $netstat -rn

              В неглобальной зоне команда route -p show не покажет постоянных маршрутов, в отличии от глобальной. Все маршруты в неглобальной зоне смотреть только через netstat

            1. skeletor Автор запису

              укажите тот NIC, который у вас используется. У меня – это net0, у вас может быть igb0 или что-то другое.

          2. Sebor

            NIC я указывал свой. Позвольте описать всю задачу: имеется зона с nagios, нужно добавить в нее 2ой ip и трафик на определенные хосты должен ходить через этот ip.
            https://wiki-bsse.ethz.ch/display/ITDOC/Solaris+tips+and+tricks#Solaristipsandtricks-Routing здесь и еще где-то(не помню) я увидел инфу, что в зонах с ip-shared маршрутизация не работает. Не понимаю, почему у вас получилось. В итоге зона переделана в ip-exclusive с двумя физическими картами. Но теперь при создании 2го ip на 2ой карте, нагиосу становятся недоступны многие узлы. Да и маршрутизация опять не работает. Я в этих делах новичок, поэтому идей уже никаких нет

            1. skeletor Автор запису

              Статья не совсем удачная для вашего случая. Я бы вам советовал заново проверить всё, ли нормально, а именно такие шаги:
              1) zone ip-type shared
              2) зона имеет 2 IP-адреса и на оба откликается
              3) routing в зоне включён
              4) обратите внимание на механизм reply-to, я его описал здесь http://skeletor.org.ua/?p=2930
              5) удалить все предыдущие маршруты и добавить заново, используя текущую статью.

          3. Sebor

            “В итоге зона переделана в ip-exclusive с двумя физическими картами. Но теперь при создании 2го ip на 2ой карте, нагиосу становятся недоступны многие узлы. Да и маршрутизация опять не работает.”
            Оба ip адреса доступны, несмотря на то, что имеется проблема с мониторингом.
            Роутинг и reply-to включены. По прежнему трафик не хочет идти через 2ой ip…

            1. skeletor Автор запису

              Если вы пошли по пути ip-exclusive, то машруты добавляются прямо в самой зоне. Проверьте, не установлены ли какие-то другие/те же маршруты в глобалке? Сделайте трассировку в обеих направлениях и ну наконец смотрите трафик через snoop/tcpdump, куда он ходит и как именно. На лицо явная ошибка в маршрутизации, а не в Solaris.

          4. Sebor

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *