В 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”
Как добавить маршрут в не глобальную зону? тип ip-shared. такое возможно?
Для ip-shared – добавление маршрута только через глобальную зону (добавляете маршрут в глобальной и он становится виден для всех не-глобальных зон). Для ip-exclusive – можно в не-глобальной.
В том-то и дело, что при добавлении в глобальную зону, в не глобальной он не виден. Да и в глобальной зоне не видны маршруты из не глобальных зон. Я так понимаю, что придется делать эксклюзивный ip?
Страно, но у себя на 2-х машинах проверил и работает так как надо. Смотрите, что вы делаете не так.
Solaris 11
Делаю так:
route -p add 10.10.139.42 -netmask 255.255.255.255 192.168.0.209 -iface
Запись в таблице глобальной зоны появляется, а в не глобальной – нет. Ребут ничего не изменил.
Тоже Solaris 11
Вы неправильно делаете. Вот как надо:
– добавить маршрут
$route -p add 10.10.139.42 -netmask 255.255.255.255 192.168.0.209 -ifp net0
– посмотреть маршрут
$netstat -rn
В неглобальной зоне команда route -p show не покажет постоянных маршрутов, в отличии от глобальной. Все маршруты в неглобальной зоне смотреть только через netstat
Что значит -ifp? А для net0 пишет Bad argument
значит, что привязываем маршрут к определённому NIC’y
Точнее net0: bad value
укажите тот NIC, который у вас используется. У меня – это net0, у вас может быть igb0 или что-то другое.
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) zone ip-type shared
2) зона имеет 2 IP-адреса и на оба откликается
3) routing в зоне включён
4) обратите внимание на механизм reply-to, я его описал здесь http://skeletor.org.ua/?p=2930
5) удалить все предыдущие маршруты и добавить заново, используя текущую статью.
“В итоге зона переделана в ip-exclusive с двумя физическими картами. Но теперь при создании 2го ip на 2ой карте, нагиосу становятся недоступны многие узлы. Да и маршрутизация опять не работает.”
Оба ip адреса доступны, несмотря на то, что имеется проблема с мониторингом.
Роутинг и reply-to включены. По прежнему трафик не хочет идти через 2ой ip…
Если вы пошли по пути ip-exclusive, то машруты добавляются прямо в самой зоне. Проверьте, не установлены ли какие-то другие/те же маршруты в глобалке? Сделайте трассировку в обеих направлениях и ну наконец смотрите трафик через snoop/tcpdump, куда он ходит и как именно. На лицо явная ошибка в маршрутизации, а не в Solaris.
Видимо ошибка не только в маршрутизации. Вы случаем не писали статьи про multihomed-хосты? В интернете обнаружил довольно много проблем с подобной конфигурацией, но так и не нашел решений
Нет, не писал.