Администрирование Solaris и Oracle

Автор B@F, 30 Мая 2011, 12:32

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

B@F

30 Мая 2011, 12:32 Последнее редактирование: 31 Мая 2011, 11:18 от Zhek@Ch
[size="3"]Routing VS Forvarding: Помогите разобраться [/size]

Здравствуйте.

Имеется 2*Solaris 10 10/08 SPARC , на которых крутится несколько зон. У каждой на одном интерфейсе поднято много под интерфейсов для globala и zones. Эти алисы имеют IP адреса из одной сети 192.168.1.0/24. Нужно чтобы одна зона могла попасть на IP адресс с маской /30 подключенный на другом сервере в другой зоне.

Так вот, включение форвардинга скорее всего приведет к полному ступору сетевой части, т.к. судя по моим догадкам все интерфесы должны лежать в разных сетях 3 уровня. В принципе считаю это нормальным. Но точно не уверен, т.к. в данном случаи речь идет о зонах, а эту технологию я немного не до понимаю. Вот, но тут обнаружил вот что:

Advanced Actions Menu

1 Toggle IP Forwarding
2 Enable/Disable IPv4 Routing

Причем сейчас

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

 Routing services "svc:/network/routing/ripng:default svc:/network/routing/route:default"

Routing daemons:

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

Кто может обьяснить чем отличается Routing от Forwarding?
Поправьте, если я ошибаюсь, буду тока рад.

pazak

31 Мая 2011, 00:06 #1 Последнее редактирование: 31 Мая 2011, 18:08 от pazak
Цитата: B@F от 30 Мая 2011, 12:32Здравствуйте.

Имеется 2*Solaris 10 10/08 SPARC , на которых крутится несколько зон. У каждой на одном интерфейсе поднято много под интерфейсов для globala и zones. Эти алисы имеют IP адреса из одной сети 192.168.1.0/24. Нужно чтобы одна зона могла попасть на IP адресс с маской /30 подключенный на другом сервере в другой зоне.

Так вот, включение форвардинга скорее всего приведет к полному ступору сетевой части, т.к. судя по моим догадкам все интерфесы должны лежать в разных сетях 3 уровня. В принципе считаю это нормальным. Но точно не уверен, т.к. в данном случаи речь идет о зонах, а эту технологию я немного не до понимаю. Вот, но тут обнаружил вот что:

Advanced Actions Menu

1 Toggle IP Forwarding
2 Enable/Disable IPv4 Routing

Причем сейчас

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

 Routing services "svc:/network/routing/ripng:default svc:/network/routing/route:default"

Routing daemons:

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

Кто может обьяснить чем отличается Routing от Forwarding?



По заголовку: Белки против орехов http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/smile.gif\' class=\'bbc_emoticon\' alt=\':)\' /> или ещё точнее: Бензин против нефти.

routing и forwarding служат одной и той-же цели и по идее должны-бы быть одним и тем-же. Однако на самом деле всё зависит от реализации.
В Solaris параметр ip_forwarding определяет возможность хоста к routing.
то-есть если исполнить:
ndd -set /dev/ip ip_forwarding 0то маршрутиризация (routing) будет отключен для IPv4. Для всех интерфесов.

Как только у Вас появляется больше одного интерфейса (не важно физического или виртуального) Вам становится нужен forwarding. То-есть для Соляриса, forwarding, - это способность хоста к маршрутиризации вообще.

В Линуксе forwarding и routing это разные вещи. Для управления forwarding в Линуксе используется iptables - firewall; для роутинг - iproute2 (то что вы привыкли видеть как /sbin/ip). Механизмы реализации тоже разные.

Вернёмся к Солярису:

Рекомендую почитать ман к команде dladm, и соответственно подумать о том как Вам удобнее будет разрулить ситуацию.

Создайте например виртуальный линк на существующий ethernet интерфейс.
# dladm show-link
LINK CLASS MTU STATE BRIDGE OVER
e1000g0 phys 1500 up -- --
iwh0 phys 1500 down -- --
vnic0 vnic 1500 up -- e1000g0
vnic1 vnic 1500 up -- e1000g0
vnic2 vnic 1500 up -- e1000g0

# dladm show-vnic
LINK OVER SPEED MACADDRESS MACADDRTYPE VID
vnic0 e1000g0 100 2:8:20:22:2c:cc random 0
vnic1 e1000g0 100 2:8:20:57:78:d9 random 0
vnic2 e1000g0 100 2:8:20:fb:17:77 random 0


vnic0, vnic1, vnic2 имеют право быть как в одной сети так и в разных. Если они будут в разных сетях то нужно будет настраивать routing, - таблицу маршрутиризации прописывать.

Теперь... Нужно из одной зоны иметь возможность передавать пакеты в другую (или вообще на другой комп) находящуюся в другой сети.

Для этого этой зоне нужно знать, какой из маршрутиризаторов доставит пакет в другую сеть.

Если default router незнает как перенаправить в ту сеть, то нужно добавить в статитечскую таблицу маршрутиризации этой зоны шлюз к необходимой сети.

Для того чтоб было абсолютно пофигу какова битность маски целевой сети, необходимо в /etc/netmasks, для целевой сети указать маску сети.

Например:
11.22.33.0 255.255.255.0
192.168.56.0 255.255.255.0
192.168.178.0 255.255.255.0

Или для 30 бит (исправлено):
192.168.155.0 255.255.255.252
192.168.155.4 255.255.255.252
192.168.155.32 255.255.255.252

Для Соляриса /etc/netmasks очень важен.


-----------Исправление:--------
Ах да совсем забыл.
# routeadm
  Configuration Current Current
  Option Configuration System State
---------------------------------------------------------------
  IPv4 routing enabled enabled
  IPv6 routing enabled enabled <---- только если нужно, если нет IPv6 то disable
  IPv4 forwarding enabled enabled
  IPv6 forwarding enabled enabled <---- только если нужно, если нет IPv6 то disable

  Routing services "route:default ripng:default"

Routing daemons:

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

Ы-ы-ы-ы, - топик изменился и моё сообщение украсили ... спасибо конечно. А вот неправильную запись в /etc/netmasks не исправили http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/smile.gif\' class=\'bbc_emoticon\' alt=\':)\' />

B@F

31 Мая 2011, 11:12 #2 Последнее редактирование: 31 Мая 2011, 11:36 от B@F
Цитата: pazak от 31 Мая 2011, 00:06

Да да, название не ахти   http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/rolleyes.gif\' class=\'bbc_emoticon\' alt=\':rolleyes:\' />, но оно выражает суть моей мысли: в чем разница между ними и есть ли она вообще, а так же зачем этот роутинг нужен, если он и так работает в том понимании, в котором я его понимаю. Поясню.

Маршрутизация (англ. Routing) -- процесс определения маршрута следования информации в сетях связи. Так вот в моем понимании, это (как сказать то что бы выразить мысль) таблица маншрутизации, согласно которой передаются пакеты. В моем случаи я четко понимаю что такое маршруты, маршрутизация, таблица маршрутов, сети и хосты. (мне кажется, что я это понимаю)

netstat -rn

Routing Table: IPv4
  Destination   Gateway   Flags  Ref Use Interface
-------------------- -------------------- ----- ----- ---------- ---------
default              10.190.4.1   UG        1      15801  
10.190.4.0   10.190.4.11          U 1      14266 ce1  
192.9.80.0   192.9.120.60 UG        1    2674323  
192.9.80.70          192.168.151.105      UGH   1   1204  
192.9.100.0          192.9.100.65 U 1 150161 ce0  
192.9.110.0          192.9.110.65 U 1        844 ce0:2
192.9.120.0          192.9.120.65 U 1 176950 ce0:7
224.0.0.0            192.9.100.65 U 1          0 ce0  
127.0.0.1            127.0.0.1            UH        7   3170 lo0  

Routing Table: IPv6
  Destination/Mask            Gateway           Flags Ref   Use    If  
--------------------------- --------------------------- ----- --- ------- -----
fe80::/10           fe80::214:4fff:fe37:fe8d    U   1   0 ce0  
ff00::/8                    fe80::214:4fff:fe37:fe8d    U   1   0 ce0  
::1                 ::1                 UH      6    2530 lo0


ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
lo0:1: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        zone z2-Elis
        inet 127.0.0.1 netmask ff000000
lo0:2: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        zone z1-Elis
        inet 127.0.0.1 netmask ff000000
ce0: flags=1001000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,FIXEDMTU> mtu 1500 index 2
        inet 192.9.100.65 netmask ffffff00 broadcast 192.9.100.255
        ether 0:14:4f:37:fe:8d
ce0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        zone z2-Elis
        inet 192.9.100.66 netmask ffffff00 broadcast 192.9.100.255
ce0:2: flags=1001000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,FIXEDMTU> mtu 1500 index 2
        inet 192.9.110.65 netmask ffffff00 broadcast 192.9.110.255
ce0:3: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        zone z2-Elis
        inet 192.9.110.66 netmask ffffff00 broadcast 192.9.110.255
ce0:4: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        zone z2-Elis
        inet 192.9.120.66 netmask ffffff00 broadcast 192.9.120.255
ce0:5: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        zone z1-Elis
        inet 192.9.100.64 netmask ffffff00 broadcast 192.9.100.255
ce0:6: flags=1001000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,FIXEDMTU> mtu 1500 index 2
        zone z2-Elis
        inet 192.168.151.106 netmask fffffffc broadcast 192.168.151.107
ce0:7: flags=1001000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,FIXEDMTU> mtu 1500 index 2
        inet 192.9.120.65 netmask ffffff00 broadcast 192.9.120.255
ce1: flags=1001000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,FIXEDMTU> mtu 1500 index 5
        inet 10.190.4.11 netmask ffffff00 broadcast 10.190.4.255
        ether 0:14:4f:37:fe:8e
ce1:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 5
        zone z2-Elis
        inet 10.190.4.3 netmask ffffff00 broadcast 10.190.4.255
lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
        inet6 ::1/128
lo0:1: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
        zone z2-Elis
        inet6 ::1/128
lo0:2: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
        zone z1-Elis
        inet6 ::1/128
ce0: flags=2004841<UP,RUNNING,MULTICAST,DHCP,IPv6> mtu 1500 index 2
        inet6 fe80::214:4fff:fe37:fe8d/10
        ether 0:14:4f:37:fe:8d
ce0:1: flags=2000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
        zone z2-Elis
        inet6 fe80::2:214:4fff:fe37:fe8d/10
ce0:2: flags=2000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
        zone z1-Elis
        inet6 fe80::1:214:4fff:fe37:fe8d/10

Таблица маршрутизации и интерфесы выше.

Перейдем к форвардинг.

... маршрутизацию же чужих пакетов (форвардинг) выполняют только маршрутизаторы (также известные как роутеры или шлюзы). Задачи маршрутизатора при форвардинге пакета:
принять пакет
найти машину на которую следует этот пакет или следующий маршрутизатор по маршруту к ней (в таблице маршрутов)
передать пакет или вернуть ICMP-сообщение о невозможности его доставки по причинам:
Назначение недостижимо (Destination unreachable) -- у пакета кончилось «время жизни» прежде чем он достиг места назначения
Хост недостижим (Host unreachable) -- компьютер или следующий маршрутизатор выключен или не существует
Сеть недостижима (Network unreachable) -- маршрутизатор не имеет маршрута в сеть назначения
если пакет не может быть доставлен по причине перегрузки маршрутизатора (или сети) -- отбросить пакет без уведомлений


Т.е. включение форвардинга приводит к включению функции роутера, который в свою очередь работает на 3 уровне, что весьма полезно.

Из вышесказанного понимается так: форвардинг пересылка пакетов от чужих хостов к месту назначения и обратно. Роутинг - таблица маршрутизации и все такое. У меня бы не было такого вопроса если роутинг был бы включен, но он выключен. при этом сервер прекрасно работает с разными сетями и четко знает где какая.

Вот я и запутался что же такое роутинг и форвардинг в данном случаи, что понимает под этим Солярка?




Добалю, чет сразу не добавил.

По поводу логических линков, получается они станут вроде как в бридже, на сколько я понял. Но у меня и так все работает через физический бридж(свич) и не вижу смысла допиливать логический.

А вот фалй  /etc/netmasks интересная вещь. Полный смысл этого файла я так и не понял, хотя и давно на него гляжу. В моей конфигурации он пуст, как с нуля. Видимо этот файл нужен, что бы при прописании статики небыло необходимости указывать маску. Так? если да, то это клево, но не суть, можно и указать netmask МАСКА.

Я могу указать другому серваку, что нужный мне хост лежит за этим серваком, но этот при получении пакета не станет его пересылать, он же не роутер, так ведь(возможно покамись). Форвард я включить могу, но мой коллега подсказывает, что начнуться петли, т.к. разные интерфейсы лежат в одной сети 3 уровня. Он попросту запутается в таблице маршрутизации. Мне бы выяснить что же это такое и в чем разница. Ведь это утверждение человека, а людям свойственно ошибаться.
Поправьте, если я ошибаюсь, буду тока рад.

pazak

31 Мая 2011, 18:23 #3 Последнее редактирование: 31 Мая 2011, 18:27 от Zhek@Ch
Цитата: B@F от 31 Мая 2011, 11:12в чем разница между ними и есть ли она вообще

Я вообще-то на работе, времени мало. Поэтому конфу проверять буду вечером и детально читать тоже вечером.

По поводу цитаты и ответ на неё.


Форвардинг, в общем случае, это внутренний механизм ОС или маршрутиризатора, для передачи пакетов от интерфейса к интерфейсу в рамках одной системы. Форвардинг не оговаривается никакими RFC.
Для рутинга существует куча спецификаций и RFC. Например 1812, 1347, 1383, 1786 и.т.д.

У Соляриса отключение форвардинга, приведёт к запрету на передачу пакетов от интерфейса к интерфейсу. В этой ситуации машина с Солярисом не сможет быть рутером. Сама возможность маршрутиризации этой системой будет отключена.

B@F

Цитата: pazak от 31 Мая 2011, 18:23У Соляриса отключение форвардинга, приведёт к запрету на передачу пакетов от интерфейса к интерфейсу. В этой ситуации машина с Солярисом не сможет быть рутером. Сама возможность маршрутиризации этой системой будет отключена.
Так я и думал до и сейчас, когда прочитал Ваш ответ. Спасибо. Остается следующие понять для чего существует Routing IPV4/6 Enabled/Disabled. А если вы точно скажете можно ли при данной конфигурации вкл роутинг, то будет вообще супер. Включить то можно, но что бы потом все работать осталось.
Поправьте, если я ошибаюсь, буду тока рад.

pazak

Цитата: B@F от 31 Мая 2011, 20:33Так я и думал до и сейчас, когда прочитал Ваш ответ. Спасибо. Остается следующие понять для чего существует Routing IPV4/6 Enabled/Disabled. А если вы точно скажете можно ли при данной конфигурации вкл роутинг, то будет вообще супер. Включить то можно, но что бы потом все работать осталось.

Ну давайте по порядку разбираться:
1. У Bас не указано эксклюзивные ли зоны или разделяемые.
2. Если зоны разделяемые, уточните используют ли они собственный default gateway.

Теперь попробуем разобраться с тем что есть: (IPv6 исключён из рассмотрения , Вы им всё-равно не пользуетесь):

netstat -rn

Routing Table: IPv4
 Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ---------- ---------
default 10.190.4.1 UG 1 15801
10.190.4.0 10.190.4.11 U 1 14266 ce1
192.9.80.0 192.9.120.60 UG 1 2674323
192.9.80.70 192.168.151.105 UGH 1 1204
192.9.100.0 192.9.100.65 U 1 150161 ce0
192.9.110.0 192.9.110.65 U 1 844 ce0:2
192.9.120.0 192.9.120.65 U 1 176950 ce0:7
224.0.0.0 192.9.100.65 U 1 0 ce0
127.0.0.1 127.0.0.1 UH 7 3170 lo0

Без форвардинга данная система (хост 10.190.4.11) сможет самостоятельно, без помощи 10.190.4.1 (который является шлюзом по умолчанию) отправить пакеты к следующим сетям:
1. 192.9.80.0 через шлюз 192.9.120.60
2. 192.9.80.70 через шлюз 192.168.151.105
3. 192.9.100.0 через ce0
4. 192.9.110.0 через ce0:2
5. 192.9.120.0 через ce0:7
6. 224.0.0.0 через ce0
7. 127.0.0.1 через lo0

Т.к. форвардинг и рутинг отключены то хост 10.190.4.11 не сможет маршрутиризировать пакеты между интерфейсами и так-же для внешних запросов.

Из (1) и (2). делаем вывод, что зона z2-Elis эксклюзивная и имеет собственную таблицу маршрутиризации и в состоянии разруливать траффик к куче сетей.

Так-же траффик к сети 192.168.151.104/30 будет доставляться через 10.190.4.1, это означает что траффик к (2) пройдёт через 10.190.4.1 -> 192.168.151.105.

Если я вас правильно понял, вы хотите с другогй системы из сети 192.168.1.0/24 обеспечить доставку пакетов к z2-Elis на интерфейс ce0:6 с адресом 192.168.151.106/30.

Так вот с такой дикой топологией Вам нужно, чтобы отправитель в сети 192.168.1.0/24 знал кто является шлюзом к сети 192.168.151.104/30. Допустим это будет шлюз 10.190.4.1 ... надеюсь это либо свич с VLAN или оба из доступных адресов 192.168.151.105 и 192.168.151.106 напрямую к нему подключены. Тогда я проблем не вижу. Для сервера/зоны в сети 192.168.1.0/24 указываете рут к 192.168.151.104/30 через 10.190.4.1.

Однако если честно я-бы полностью всю топологию переработал. Такое называют "истерически сложившееся" положение вещей.
Если включите форвардинг и рутинг ( svc:/network/routing/route:default ) на 10.190.4.11 то значительно вырастет производительность и сократится траффик в сети. Избыточный , мусорный траффик. Однако без работы над ошибками этого делать не стоит. Картина сети выглядит драмматически... Вам вообще о динамической маршрутиризации думать пора. Либо топологию прорабатывать детально с запасом на будущее.

B@F

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

Вот схема:


Сети 110 и 120 - для выхода в сеть 80, один шлюз в резерве(работает специальный скрипт для этого дела)

Сеть 100 - для взаимодействия зон между собой и управления ими, клиенты то же в этой сети.


Сеть 10.190.4.0/24 для отправки отчетов и нафиг не нужна, это временно.

Зоны общаются между собой и миром(другими хостами) через свитч. А что есть другой способ? А если еще один сервак с зоной и потом еще, по любому свичу быть.

Сеть не сложная, весьма простая понятная и безопасная, что бы лишние вирусы не лазили в сеть 80. Такую сеть строил не я, но мне с ней работать.

Существует задача: чтобы зона на сервере 2 ходила в сеть 10 через зону 2 сервера 1. Замуторно звучит но не так сложно и да же легко.

Сервер2 Зона1 #route add сеть10,190,4,0 доступна через хост192,9,100,66 остальные связанные с 10 сетью предварительно удаляем на этой зоне.

Все легко просто красиво, но работать не будет, т.к форвардинг и роутинг не включены. Так?

Включение форвардинга на сервере 1 зоны 2 приведет включению пересылки пакетов с одного интерфейса на другой. Работать опятьже не будет, т.к. хосты в сети 10 не знают что существует сеть 100 да еще и за хостом 192,9,100,66. Нужно будет подправить в 10 сетки таблицу на каждом нужном хосте. Это ладно как пример просто.

Так вот и не понятно совсем что такое роутинг в понимании солярки? Т.е. хотелось бы понять что будет при фключении форвардинг и что будет при включении роутинг отдельно друг от друга? или вместе? Как будут передоваться пакеты? Будет ли подмена адреса источника? На коком уровне будет происходить обмен информации? и будет ли? в каких случаях?

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

П.С. Я только начал изучать Соляру и представления не имею о эксклюзивные ли зоны или разделяемые. Как это посмотреть и что это значит?

Так же хотелось бы уточнить, включение роутинга/форвардинга, если конечно нужно, где нужно включать в зоне или в Глобал? По мне лучше в зоне, т.к. если что сервер останется работать.

Я стока всего понаписал + конец рабочего дня, башка не варит, если что не обессудте.

Нужно - рекомендуется опытным человеком в данном контексте.
Поправьте, если я ошибаюсь, буду тока рад.

pazak

01 Июня 2011, 20:24 #7 Последнее редактирование: 01 Июня 2011, 20:42 от pazak
Цитата: B@F от 01 Июня 2011, 17:36Так вот и не понятно совсем что такое роутинг в понимании солярки?

Рутинг он-же маршрутиризация, везде во всех ОС понимается одинаково и специфицирован для всех IP стэков одинаково одними и теми-же RFC.
Смотрим там-же на википедии, где вы это уже читали:

http://ru.wikipedia.....86.D0.B8.D1.8F

Цитатки:
1. Маршрутизацию своих пакетов к месту назначения выполняет любая система в сети.
   Пояснение: Маршрутиризуется пакет до целевой системы либо напрямую если обе (целевая и исходная) системы в одной сети; Либо пакет отдаётся на растерзание маршрутиризатору.
2. маршрутизацию же чужих пакетов (форвардинг) выполняют только маршрутизаторы (также известные как роутеры или шлюзы).
   Пояснение: Произошло искажение при переводе. Форвардинг в данном случае нужно было просто тупо перевести как перенаправление. Форвардинг это передача пакетов внутри одной системы от интерфейса к интерфейсу. Спецификации нет, это внутреннее дело каждой ОС. Форвардить между СВОИМИ интерфейсами могут только рутеры они-же маршрутиризаторы. Форвардить на чужие интерфейсы могут только firewall/NAT системы. Ещё раз: форвардинг никак не специфицирован RFC он никак не регистрируется и не отражается в самом пакете. Форвардинг это прямая труба от интерфейса к интерфейсу. Рутинг это передача пакета по маршруту от узла к узлу до тех пор пока не дойдёт до конечной точки.
3. Задачи маршрутизатора при форвардинге пакета
   Пояснение тa-же самaя ошибка перевода вводящая в заблуждение. Нужно вместо "при форвардинге" писать "при передаче". Всё.

B@F

Цитата: pazak от 01 Июня 2011, 20:24Рутинг он-же маршрутиризация, везде во всех ОС понимается одинаково и специфицирован для всех IP стэков одинаково одними и теми-же RFC.
Смотрим там-же на википедии, где вы это уже читали:

http://ru.wikipedia.....86.D0.B8.D1.8F

Цитатки:
1. Маршрутизацию своих пакетов к месту назначения выполняет любая система в сети.
   Пояснение: Маршрутиризуется пакет до целевой системы либо напрямую если обе (целевая и исходная) системы в одной сети; Либо пакет отдаётся на растерзание маршрутиризатору.
3. Задачи маршрутизатора при форвардинге пакета
   Пояснение то-же самое ошибка перевода вводящая в заблуждение. Нужно вместо "при форвардинге" писать "при передаче". Всё.

Ну все это уже видимо я не понимаю. В любой системе есть маршрутизация (routing) иначе пакеты могли бы ходить только по той сети, которая непосредственно подключена к хосту. В моем же случаи роутинг выключен, но пакеты свободно отдаются на растерзание маршрутизатору и спокойно ходят в другие сети (с сети 120 в сеть 80 к примеру). Так что я так и не понял, что такое Routing в понимании соляры? как это так он выключен?


Кстати, я знаю комады как включить форвардинг и роутинг, но не знаю в каких конфигах это смотреть. Не подскажите?
Поправьте, если я ошибаюсь, буду тока рад.

pazak

02 Июня 2011, 04:40 #9 Последнее редактирование: 03 Июня 2011, 14:01 от pazak
Цитата: B@F от 01 Июня 2011, 20:37Ну все это уже видимо я не понимаю. В любой системе есть маршрутизация (routing) иначе пакеты могли бы ходить только по той сети, которая непосредственно подключена к хосту. В моем же случаи роутинг выключен, но пакеты свободно отдаются на растерзание маршрутизатору и спокойно ходят в другие сети (с сети 120 в сеть 80 к примеру). Так что я так и не понял, что такое Routing в понимании соляры? как это так он выключен?


Ну у тебя-же прописан шлюз по умолчанию - default gateway.
У тебя прописаны шлюзы к другим сетям.
Я уже выше писал, что у тебя и куда без включения форвардинга и роутинга в global zone будет отправляться.
Прочитай внимательно и не торопясь то, что я писал. Проверь с помощью zonecfg умолчательные шлюзы на зонах. Если зоны эксклюзивные собери с них информацию о конфигурации сети. Распечатай на бумажечках. покури над бумажками.

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

Цитата: B@F от 01 Июня 2011, 20:37В любой системе есть маршрутизация (routing) иначе пакеты могли бы ходить только по той сети, которая непосредственно подключена к хосту



>> "В любой системе есть маршрутизация (routing)" - Неверно
Верно: Маршрутиризация , - это услуга по передаче пакетов. Не маршрутиризатор эту услугу не оказывает. Надеюсь так упрощённо понятно ? ... до абсурда договориться можно.

>> могли бы ходить только по той сети, которая непосредственно подключена к хосту - Верно. << исправлено

Любая система поддерживающая стэк TCP/IP и не умеющая предоставлять или просто не предоставляющая услугу маршрутиризации, [size="3"]умеет[/size] самостоятельно отправлять пакеты на шлюзы указаные в таблице маршрутов, если маршрутиризаторы находятся в тех-же сетях, где и эта система. << добавление помечено курсивом



Цитата: B@F от 01 Июня 2011, 20:37Кстати, я знаю комады как включить форвардинг и роутинг, но не знаю в каких конфигах это смотреть. Не подскажите?


Разрешение/запрет на форвардинг и вообще все kernel tunables в /etc/system. Старт/Стоп рутинговых демонов в SMF.

B@F

03 Июня 2011, 21:20 #10 Последнее редактирование: 03 Июня 2011, 22:27 от B@F
Цитата: pazak от 02 Июня 2011, 04:40... до абсурда договориться можно.
Это уж точно. Но сути ROUTIND Disabled/Enabled я так не понял   http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/wacko.gif\' class=\'bbc_emoticon\' alt=\':wacko:\' /> не дано видать. Охото думать, что это временно. Так получилось, что удалось найти временно сервер и поставить на него новую солярку. Включал выключал форвардин и роутинг, но не чего не менялось абсолютно. Толи я чет не то делал, то ли что. Но думается это просто потому, что я так и не понял в каких случаях этот Routing нужен. Ладно, буду как и раньше поднимать под интерфейсы и разруливать через коммутатор.

Теперь о реальном. Я поигрался с новой соляркой и при установке задействовал ZFS. Почитав про эту тему в лекции intuit.ru и получив небольшой опыт на практике я просто влюбился в эту файловую систему. Такие возможности!!!!! Я так пожалел что на линуксе нет zfs, что даже теперь хочу поставить солярку на декстоп. Но конечно как реалист понимаю, что это уж слишком.

Теперь к делу. Имеется сервер Solaris 10 работающий на UFS, на нем несколько зон. Задача: Переустановить сорярку полностью 10 P9 на ZFS . В новой соляре создать фс для каждой зоны внутри пула, ограничить и зарезервировать пространстов для каждой фс.

Все чего я не знаю, это как перенести зону с данными на считай новую соряру.

zonecfg -z z1-zone export
create -b
set zonepath=/sdh_home/containers/z1-zone
set autoboot=true
set ip-type=shared
add inherit-pkg-dir
set dir=/lib
end
add inherit-pkg-dir
set dir=/platform
end
add inherit-pkg-dir
set dir=/sbin
end
add inherit-pkg-dir
set dir=/usr
end
add fs
set dir=/cdrom
set special=/cdrom
set type=lofs
add options ro
add options nodevices
end
add fs
set dir=/rmdisk
set special=/rmdisk
set type=lofs
add options rw
add options nodevices
end
add fs
set dir=/var/containers/share
set special=/var/containers/share
set type=lofs
add options rw
end
add net
set address=fe80::1:221:28ff:fe3f:d15e/10
set physical=e1000g0
end
add net
set address=192.9.100.68/24
set physical=e1000g0
end
add net
set address=192.9.120.68/24
set physical=e1000g0
end
add net
set address=192.9.110.68/24
set physical=e1000g0
end
add net
set address=192.100.27.61/24
set physical=e1000g1
end
add net
set address=10.190.4.100/24
set physical=e1000g3
end


Вот такой конфиг у зоны.

Как можно перенести зону на другой сервер. Если бы был zfs я бы не волновался по этому поводу, а тут не вижу решения, хотя знаю что оно есть.

Добавлю: Ура я понял кажется, почитал  тут еще раз пунк 2 и понял. Спасибо.
Поправьте, если я ошибаюсь, буду тока рад.

pazak

Цитата: B@F от 03 Июня 2011, 21:20Теперь о реальном. Я поигрался с новой соляркой и при установке задействовал ZFS. Почитав про эту тему в лекции intuit.ru и получив небольшой опыт на практике я просто влюбился в эту файловую систему. Такие возможности!!!!! Я так пожалел что на линуксе нет zfs, что даже теперь хочу поставить солярку на декстоп. Но конечно как реалист понимаю, что это уж слишком.

<...> Вот такой конфиг у зоны.

Как можно перенести зону на другой сервер. Если бы был zfs я бы не волновался по этому поводу, а тут не вижу решения, хотя знаю что оно есть.

Добавлю: Ура я понял кажется, почитал тут еще раз пунк 2 и понял. Спасибо.


1. Сохраняешь конфигурацию зоны в файл: zonecfg -z z1-zone export -f zone1.config2. Переносишь файл конфигурации на новую систему. Созадаёшь зону из этого конфига, если нужно конфиг заранее редактируешь: zonecfg -z z2-zone -f zone1.config3. zoneadm -z z2-zone install [more options seee in man]
3. zoneadm -z z2-zone boot
4. Делаешь бэкап пользовательских данных s z1-zobe
5. переносишь пользовательские данные на новую зону z2-zone.

с zfs просто удобнее там снэпшот сразу можно использовать, а в этом случае (UFS->ZFS) зону создать придётся и проинсталлить.


ZFS под линукс есть: ZFS on Linux

# uname -a
Linux cenzored 2.6.38-gentoo-r4 #1 SMP PREEMPT Sun May 8 02:03:41 CEST 2011 x86_64 AMD Phenom(tm) 9950 Quad-Core Processor AuthenticAMD GNU/Linux

# sudo zfs list
NAME USED AVAIL REFER MOUNTPOINT
ztank 20,8G 562G 32K /ztank
ztank/backup 20,8G 562G 84,6M /ztank/backup
ztank/backup/opt 7,33G 562G 7,29G /ztank/backup/opt
ztank/backup/usr 12,7G 562G 12,3G /ztank/backup/usr
ztank/backup/var 664M 562G 613M /ztank/backup/var

Правда ACL у Solaris и Linux не совместим, для ZFS используется NFSv4 ACL.

Онa пока не продакшн, я пока тестирую, правда без всякого плана и кроме ACL проблем не нашёл. Из багов: regression test не работает вообще ... То-есть я не в состоянии верифицировать функциональность ZFS её-же средствами.

B@F

Сейчас не на работе поэтому теория.

Конфиг зоны перенес, правда не знан что есть опция -f. Спасибо за подсказку. А вот с переносом пользовательских данных непонятки. В зоне, по сути, крутится мускуль и парачка софтин, ктр работают с ним в связке. Софтины лежат как и положено в /opt. Так же им нужен пользователь для работы и его домашний каталог. Дело в том, что дистров нету,а если их и найти то переустановка и бекап врятли помогут. Возможно ли копи паста всего opt и домашних дерикторий + пару файлов в /etc (hosts, passdw, group, ну shadow пароли по нормальному забью) Такое может получиться?А а потом как сделать автостарт их в системе? чую это не вариант. Да и пакетный менеджер их потеряет напрочь.

Еще хотел бы проконсультироваться с zoneadm attach/detach зоны. Читая ман понял что это вроде как как раз для переноса зон. Но сути не пойму. Ну сделаю я detach зоны. А куда она отсоединится? или потом тупо ее каталог перенести можно и на другой машине сделать attach уже сконфигурированной зоны, файлы ктр уже помещены в нужный каталог. Там еще есть интересные опции -n & -u. Первая вроде указывает файл куда зону отсоединить и потом каталог от куда присоединить. Так? А вторая проверяет соответствие присоединяемой зоны на наличие совместимости и если необходимо до установит зону согласно новой версии оси. Так? Если это так то этот вариант как раз по мне.
Поправьте, если я ошибаюсь, буду тока рад.

pazak

04 Июня 2011, 14:16 #13 Последнее редактирование: 04 Июня 2011, 14:24 от pazak
Цитата: B@F от 04 Июня 2011, 09:53Сейчас не на работе поэтому теория.

Конфиг зоны перенес, правда не знан что есть опция -f. Спасибо за подсказку. А вот с переносом пользовательских данных непонятки. В зоне, по сути, крутится мускуль и парачка софтин, ктр работают с ним в связке. Софтины лежат как и положено в /opt. Так же им нужен пользователь для работы и его домашний каталог. Дело в том, что дистров нету,а если их и найти то переустановка и бекап врятли помогут. Возможно ли копи паста всего opt и домашних дерикторий + пару файлов в /etc (hosts, passdw, group, ну shadow пароли по нормальному забью) Такое может получиться?А а потом как сделать автостарт их в системе? чую это не вариант. Да и пакетный менеджер их потеряет напрочь.


Всё что лежит в /opt это обычно проинсталлированые пакеты. Просто скопировать /opt это прямой путь к хаосу. С помощью pkginfo и grep находишь все проинсталленые в /opt пакеты. А вообще т.к. ты проинсталлил совершенно новую зону, то можешь diff на вывод pkginfo с обоих систем сделать. И проверить что было установлено после инсталляции зоны. Выбрать нужное, найти соответствующие версии пакетов (их вряд-ли кто-то потерял). Проинсталлить на новой зоне.


Цитата: B@F от 04 Июня 2011, 09:53А а потом как сделать автостарт их в системе?

автостарт служб в Solaris делается через SMF. Грубо говоря однажды сделав svcadm enable для какого либо сервиса, ты не только его стартанул но и заставил его автостартовать.



Цитата: B@F от 04 Июня 2011, 09:53Еще хотел бы проконсультироваться с zoneadm attach/detach зоны. Читая ман понял что это вроде как как раз для переноса зон. Но сути не пойму. Ну сделаю я detach зоны. А куда она отсоединится? или потом тупо ее каталог перенести можно и на другой машине сделать attach уже сконфигурированной зоны, файлы ктр уже помещены в нужный каталог. Там еще есть интересные опции -n & -u. Первая вроде указывает файл куда зону отсоединить и потом каталог от куда присоединить. Так? А вторая проверяет соответствие присоединяемой зоны на наличие совместимости и если необходимо до установит зону согласно новой версии оси. Так? Если это так то этот вариант как раз по мне.

zoneadm detach/attach лучший вариант, если:
1. Aрхитектура одинаковая (мне показалось что у тебя таргет система x86, в этом случае attach/detach не пройдёт)
2. Если при миграции можно держать исходную зону остановленой.


Проверь есть ли возможность беспроблемно перенести зону (зона HE должна быть остановлена):

global-for-z1# zoneadm -z z1-zone detach -n | (ssh target.global.zone zoneadm -z z1-zone attach n -)

При опции -n зона не обязана существовать на таргет системе. Это dry-run. Если проблем не возникает то переноси спокойно:

# zonecfg -z z1-zone export -f zone1.config
# zoneadm -z z1-zone halt
# zoneadm -z z1-zone detach

Переносишь zone1.config, и zonepath на новую систему.

всё ещё на исходной системе:
# zoneadm -z z1-zone attach
#zoneadm -z z1-zone boot

На новой системе:

Правишь zone1.config меняя настройки сети.

# zonecfg -z z1-zone -f zone1.config
# zoneadm -z z1-zone attach

После этого можно сменить имя зоны (если необходимо):

# zonecfg -z z1-zone
zonecfg:z1-zone> set zonename=z2-zone
zonecfg:z1-zone> commit
zonecfg:z1-zone> exit

#zoneadm -z z2-zone boot


PS: Опция -u для zoneadm attach попытается провести апдейт присоединяемой зоны.

B@F

Огромное спасибо, буду делать прям по этой инструкции. Примерно так и думал.

На счет pkginfo - смысла нету, пакеты лицензионные и дистрибутива их нет. Если бы был дистрибутив, то просто создал бы новую зону и доустонавливал бы пакеты, затем восстановил из бекапа. Но так не судьба.

Архитектура SPARC на обоих, т.к. буду ставить на один и тот же сервер, только обновленную соляру и сам (тот кто ставил до меня, такое чувство что он плохо понимал что делал). Сейчас P6 будет P9. Остановка на 1 день (день не ночь как не странно) не помешает ничему, т.к. запущю страрую версию софта на другом серваке и клиенты ничего не заметят, просто попрошу их ничего не конфигурить, тупо смотреть и все.

Единственно что буду менять это:

# zoneadm -z z1-zone detach -n /путь
Про путь верно думаю? И после отсоединения зона пропадет из list?

# zoneadm -z z1-zone attach -u -n /путь
После этой операции я так понимаю зона перейдет в статус installed?
Поправьте, если я ошибаюсь, буду тока рад.

pazak

Цитата: B@F от 04 Июня 2011, 15:52Огромное спасибо, буду делать прям по этой инструкции. Примерно так и думал.

На счет pkginfo - смысла нету, пакеты лицензионные и дистрибутива их нет. Если бы был дистрибутив, то просто создал бы новую зону и доустонавливал бы пакеты, затем восстановил из бекапа. Но так не судьба.

Архитектура SPARC на обоих, т.к. буду ставить на один и тот же сервер, только обновленную соляру и сам (тот кто ставил до меня, такое чувство что он плохо понимал что делал). Сейчас P6 будет P9. Остановка на 1 день (день не ночь как не странно) не помешает ничему, т.к. запущю страрую версию софта на другом серваке и клиенты ничего не заметят, просто попрошу их ничего не конфигурить, тупо смотреть и все.

Единственно что буду менять это:

# zoneadm -z z1-zone detach -n /путь
Про путь верно думаю? И после отсоединения зона пропадет из list?

# zoneadm -z z1-zone attach -u -n /путь
После этой операции я так понимаю зона перейдет в статус installed?




Wrong>>>zoneadm -z z1-zone detach -n /путь<<<Wrong


опция -n у zoneadm detach выдаёт манифест на stdout.
Путь к данным зоны смотри v переменной zonepath в конфиге зоны через zonecfg

zoneadm attach -n <path_to_file | - >
читает манифест из файла path_to_file или из stdin если вместо пути '-'

Цитата: B@F от 04 Июня 2011, 15:52тот кто ставил до меня, такое чувство что он плохо понимал что делал

ыыыыыыыы. у меня нет адекватной реакции на это http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/smile.gif\' class=\'bbc_emoticon\' alt=\':)\' />

B@F

Спасибо pazak, все получилось. Перенес зону на другой сервак, с минимальным простоем, почтиhttp://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/wink.gif\' class=\'bbc_emoticon\' alt=\';)\' />. Т.к. зона, точнее софт в зоне не заработал. Копец. Дело в том, что там лицуха, она работает по Host Id. Когда сервер запустился в логах сразу повалило, что типа у зоны такой-то не совподает id и это все дело вошло в конкретный ступор из-за этого. Может кто подсказать, что за Host ID и как его найти, а быть может и поменять?

Да если не как все равно пофиг главное я теперь спокойно могу зону переносить. Ничего сильно сложного. Главное потом права на Zone Path каталог сделать 700 и дело в шляпе как говориться.

Следующий этап у меня настроки ipf. Так то он у меня работает, настройки там не хитрые. Но тока стоит запертить все входящие на интерфейсе, как на этом интерфесе перестает работать ftp client, т.е. не коннектица к фтп серверу. Буду на работе покажу конфиг. Да чет там, block in all есть блок олл, pass out all есть разрешить.  Может там нужно как-то по особому разрешить 20 и 21 порты, но тока так, что бы входящие подключения точно отсутствовали?
Поправьте, если я ошибаюсь, буду тока рад.

B@F

Срочно нужна помощь.

SUN Enterprice T5120 пытаюсь поставить на него солярку 10. Нажимаю STOP+A и ни чего не получается, т.е. перестает реагировать на команды и меню OpenBoot не появляется, затем нажимаю стоп еще раз и все клавиши ктр нажимал вываливаются в консоль.

Делал reboot -- cdrom, он вырубается, затем что-то делает с cdrom-мом и ничего дальше, висит как труп. Спасает перегрузка по питанию.

Еще у него интересная особенность: индикатор ОК моргает равномерно, а по моему должен гореть.

Так что кто подскажет, как загрузиться с cdrom-ма?
Поправьте, если я ошибаюсь, буду тока рад.

pazak

Цитата: B@F от 16 Июня 2011, 20:54Спасибо pazak, все получилось. Перенес зону на другой сервак, с минимальным простоем, почтиhttp://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/wink.gif\' class=\'bbc_emoticon\' alt=\';)\' />. Т.к. зона, точнее софт в зоне не заработал. Копец. Дело в том, что там лицуха, она работает по Host Id. Когда сервер запустился в логах сразу повалило, что типа у зоны такой-то не совподает id и это все дело вошло в конкретный ступор из-за этого. Может кто подсказать, что за Host ID и как его найти, а быть может и поменять?

Да если не как все равно пофиг главное я теперь спокойно могу зону переносить. Ничего сильно сложного. Главное потом права на Zone Path каталог сделать 700 и дело в шляпе как говориться.

Следующий этап у меня настроки ipf. Так то он у меня работает, настройки там не хитрые. Но тока стоит запертить все входящие на интерфейсе, как на этом интерфесе перестает работать ftp client, т.е. не коннектица к фтп серверу. Буду на работе покажу конфиг. Да чет там, block in all есть блок олл, pass out all есть разрешить. Может там нужно как-то по особому разрешить 20 и 21 порты, но тока так, что бы входящие подключения точно отсутствовали?



http://blogs.oracle.com/lunchware/entry/zone_hostid_emulation_for_everyone
http://download.oracle.com/docs/cd/E19963-01/html/821-1460/gjluz.html


http://www.sunhelp.ru/archives/48-Vvedenie_v_IPF_Firewall.html
http://www.homepage.montana.edu/~unixuser/031705/create_solaris_ipf.html
http://www.phildev.net/ipf/IPFsolaris.html

pazak

Цитата: B@F от 17 Июня 2011, 21:06Срочно нужна помощь.

SUN Enterprice T5120 пытаюсь поставить на него солярку 10. Нажимаю STOP+A и ни чего не получается, т.е. перестает реагировать на команды и меню OpenBoot не появляется, затем нажимаю стоп еще раз и все клавиши ктр нажимал вываливаются в консоль.

Делал reboot -- cdrom, он вырубается, затем что-то делает с cdrom-мом и ничего дальше, висит как труп. Спасает перегрузка по питанию.

Еще у него интересная особенность: индикатор ОК моргает равномерно, а по моему должен гореть.

Так что кто подскажет, как загрузиться с cdrom-ма?





вывалится в obp с работающей машины:

T5120 global zone# init 0

Stop-A в процессе старта машины начинает работать только во время загрузки ядра. То-есть, жди сначала пока ядро не начнёт грузится, после этого только жми Стоп-А.

Для диагностики и дефектации железа, лучше обратиться к живому специалисту.