В данном разделе описываются основные понятия и настройка георезерва (географического резервирования).
Георезерв:
Резервирование может быть как однонаправленным, так и двунаправленным.
Пример:
![]()
пример 1
![]()
пример 2
В примере №1 домен geo.domain сайта site1 резервируется на site2.
В примере №2 site1 и site2 в свою очередь резервирует друг друга (разные домены geo.domain1 /geo.domain2).
Ниже описывается пошаговая настройка резервирования между двумя гео сайтами.
Исходим из того, что у нас есть два сайта: site1 с нодами DS <NODE_11>, <NODE_12> (например, сайт ecss10 с нодами ds1@ecss1, ds1@ecss2); site2 с нодами DS <NODE_21>, <NODE_22>.
Далее во всех примерах используем site1 и site2 для первой и второй локаций |
Настройка dnsmasq
На каждом из хостов site1 и site2 добавляем в /etc/dnsmasq.d/ecss-broker следующие правила соответствия:
primary.site2.broker.ecss - IP адрес хоста 1 на второй локации; secondary.site2.broker.ecss - IP адрес хоста 2 на второй локации; |
primary.site1.broker.ecss - IP адрес хоста 1 на первой локации; secondary.site1.broker.ecss - IP адрес хоста 2 на первой локации; |
address=/primary.site1.broker.ecss/192.168.23.110 address=/secondary.site1.broker.ecss/192.168.23.111 |
sudo systemctl restart dnsmasq.service |
В секции mycelium_client добавляем realm до соседнего сайта:
{mycelium_client, [
{realms, [
{local, "/ssw", "ssw", "ssw", 2, []},
{remote_geo_site, "/ssw", "ssw", "ssw", 10, [
{site2_l, 9, {host, "primary.site2.broker.ecss"}, 5672, 10},
{site2_r, 8, {host, "secondary.site2.broker.ecss"}, 5672, 10}
]}
]}
]}, |
{mycelium_client, [
{realms, [
{local, "/ssw", "ssw", "ssw", 2, []},
{remote_geo_site, "/ssw", "ssw", "ssw", 10, [
{site1_l, 9, {host, "primary.site1.broker.ecss"}, 5672, 10},
{site1_r, 8, {host, "secondary.site1.broker.ecss"}, 5672, 10}
]}
]}
]}, |
|
Прописать на оба хоста локации site1:
|
Настройка секции mycelium_federation
{values, #{
<<"<SITE_LOCAL>">> => <<"<SITE_LOCAL>">>,
<<"<SITE_REMOTE>">> => <<"<SITE_REMOTE>">>,
<<"<NODE_DS1>">> => <<"ds1@ecss1">>,
<<"<NODE_DS2>">> => <<"ds1@ecss2">>,
<<"<CLUSTER_CORE>">> => <<"core1">>,
<<"<CLUSTER_SIP>">> => <<"sip1">>
}}, |
<SITE_LOCAL> — название локального сайта (например <<"<SITE_LOCAL>">> => <<"site1">>);
<SITE_REMOTE> — название удаленного сайта (например <<"<SITE_REMOTE>">> => <<"site2">>);
<NODE_DS1> — название первой ноды DS — по умолчанию <<"ds1@ecss1">>;
<NODE_DS2> — название второй ноды DS — по умолчанию <<"ds1@ecss2">>;
<CLUSTER_CORE> — название кластера ядра — по умолчанию <<"core1">>;
<CLUSTER_SIP> — название кластера SIP адаптера — по умолчанию <<"sip1">>.
В секцию mycelium_federation добавляем следующие правила (если секция отсутствует, добавьте её), секция values заполняется в соответствии с описанием, приведенным выше:
Секцию mycelium_federation вставить между секциями mycelium_client и arpc_mycelium_server, |
Прописать на оба хоста локации site1:
{mycelium_federation, [
{values, #{
<<"<SITE_LOCAL>">> => <<"site1">>,
<<"<SITE_REMOTE>">> => <<"site2">>,
<<"<NODE_DS1>">> => <<"ds1@ecss1">>,
<<"<NODE_DS2>">> => <<"ds1@ecss2">>,
<<"<CLUSTER_CORE>">> => <<"core1">>,
<<"<CLUSTER_SIP>">> => <<"sip1">>
}},
{defaults, #{
uplink => #{
realm => remote_geo_site % имя рилма, который будет использован для подключения к удаленному брокеру
},
exchange => #{
type => <<"direct">>,
args => []},
queue => #{
passive => false,
durable => false,
exclusive => false,
auto_delete => true,
args => [
{<<"lifetime_interval">>, 16#22, 1000},%uint32
{<<"max_message_num">>, 16#32, 10000},%uint64
{<<"overflow_warning">>, 16#08, true},%boolean
{<<"shuffle_subscriptions">>, 16#08, false}]},%boolean
subscribe => #{
acquire_mode => 0,
accept_mode => 0,
exclusive => false,
flow_unit_byte => infinity,
flow_unit_message => infinity,
args => [{<<"random_location">>, 16#08, true}]}}},
{uplinks, [
%% ===========================================================%%
%% Настройки федерации для ECSS-PA-SIP (<SITE_LOCAL>) %%
%% Настройка репликации с сайта <SITE_LOCAL> -> <SITE_REMOTE> %%
%% ===========================================================%%
#{%Очередь для обмена регистрациями
name => <<"ecss.<SITE_LOCAL>.<CLUSTER_SIP>.sync">>,
destination => {exchange, <<"sync.sip.ex">>, <<"sync.<SITE_LOCAL>.<CLUSTER_SIP>.rk">>},
exchange => [#{name => <<"sync.sip.ex">>}],
queue => [#{name => <<"sync.sip.q">>, auto_delete => true, args => []}],
bind => [#{exchange => <<"sync.sip.ex">>, binding_key => <<"sync.sip.rk">>, queue => <<"sync.sip.q">>}],
subscribe => [#{queue => <<"sync.sip.q">>}]},
%% ===========================================================%%
%% Настройки федерации для ECSS-DS (<SITE_LOCAL>) %%
%% Настройка репликации с сайта <SITE_LOCAL> -> <SITE_REMOTE> %%
%% ===========================================================%%
#{%Альтернативная очередь для сайта <SITE_LOCAL>
name => <<"ecss.<SITE_LOCAL>.sync.db.alt">>,
destination => {exchange, <<"ecss.sync.db.alt.ex">>, <<"ecss.<SITE_LOCAL>.sync.db.rk">>},
exchange => [#{name => <<"ecss.sync.db.alt.ex">>, type => <<"x-random-uniform">>}],
queue => [#{name => <<"ecss.<SITE_LOCAL>.sync.db.alt.q">>, auto_delete => true, args => []}],
bind => [#{exchange => <<"ecss.sync.db.alt.ex">>, binding_key => <<"ecss.<SITE_LOCAL>.sync.db.rk">>, queue => <<"ecss.<SITE_LOCAL>.sync.db.alt.q">>}],
subscribe => [#{queue => <<"ecss.<SITE_LOCAL>.sync.db.alt.q">>}]},
#{%Private exchange <NODE_DS1>
name => <<"ecss.sync.db.<NODE_DS1>">>,
destination => {exchange, <<"ecss.sync.db.ex">>, <<"ecss.<SITE_LOCAL>.<NODE_DS1>.sync.db.reply.rk">>},
exchange => [#{name => <<"ecss.sync.db.ex">>, alternate_exchange => <<"ecss.sync.db.alt.ex">>, type => <<"x-random-uniform">>}],
queue => [#{name => <<"ecss.<SITE_LOCAL>.<NODE_DS1>.sync.db.reply.q">>, auto_delete => true, args => []}],
bind => [#{queue => <<"ecss.<SITE_LOCAL>.<NODE_DS1>.sync.db.reply.q">>, exchange => <<"ecss.sync.db.ex">>, binding_key => <<"ecss.<SITE_LOCAL>.<NODE_DS1>.sync.db.reply.rk">>}],
subscribe => [#{queue => <<"ecss.<SITE_LOCAL>.<NODE_DS1>.sync.db.reply.q">>}]},
#{%Private exchange <NODE_DS2>
name => <<"ecss.sync.db.<NODE_DS2>">>,
destination => {exchange, <<"ecss.sync.db.ex">>, <<"ecss.<SITE_LOCAL>.<NODE_DS2>.sync.db.reply.rk">>},
exchange => [#{name => <<"ecss.sync.db.ex">>, alternate_exchange => <<"ecss.sync.db.alt.ex">>, type => <<"x-random-uniform">>}],
queue => [#{name => <<"ecss.<SITE_LOCAL>.<NODE_DS2>.sync.db.reply.q">>, auto_delete => true, args => []}],
bind => [#{queue => <<"ecss.<SITE_LOCAL>.<NODE_DS2>.sync.db.reply.q">>, exchange => <<"ecss.sync.db.ex">>, binding_key => <<"ecss.<SITE_LOCAL>.<NODE_DS2>.sync.db.reply.rk">>}],
subscribe => [#{queue => <<"ecss.<SITE_LOCAL>.<NODE_DS2>.sync.db.reply.q">>}]},
%% ===========================================================%%
%% Настройки федерации для ECSS-DS (<SITE_LOCAL>) %%
%% Настройка репликации с сайта <SITE_LOCAL> -> <SITE_REMOTE> %%
%% ===========================================================%%
#{%Альтернативная очередь для сайта <SITE_LOCAL>
name => <<"ecss.<SITE_REMOTE>.sync.db.alt">>,
max_hops => 2,
destination => {exchange, <<"ecss.sync.db.ex">>, <<"ecss.<SITE_REMOTE>.sync.db.rk">>},
exchange => [#{name => <<"ecss.sync.db.ex">>, alternate_exchange => <<"ecss.sync.db.alt.ex">>, type => <<"x-random-uniform">>}],
queue => [#{name => <<"ecss.<SITE_REMOTE>.sync.db.q">>, auto_delete => true, args => []}],
bind => [#{exchange => <<"ecss.sync.db.ex">>, binding_key => <<"ecss.<SITE_REMOTE>.sync.db.rk">>, queue => <<"ecss.<SITE_REMOTE>.sync.db.q">>}],
subscribe => [#{queue => <<"ecss.<SITE_REMOTE>.sync.db.q">>}]}
]}]
}, |
Прописать на оба хоста локации site2:
{mycelium_federation, [
{values, #{
<<"<SITE_LOCAL>">> => <<"site2">>,
<<"<SITE_REMOTE>">> => <<"site1">>,
<<"<NODE_DS1>">> => <<"ds1@ecss1">>,
<<"<NODE_DS2>">> => <<"ds1@ecss2">>,
<<"<CLUSTER_CORE>">> => <<"core1">>,
<<"<CLUSTER_SIP>">> => <<"sip1">>
}},
{defaults, #{
uplink => #{
realm => remote_geo_site % имя рилма, который будет использован для подключения к удаленному брокеру
},
exchange => #{
type => <<"direct">>,
args => []},
queue => #{
passive => false,
durable => false,
exclusive => false,
auto_delete => true,
args => [
{<<"lifetime_interval">>, 16#22, 1000},%uint32
{<<"max_message_num">>, 16#32, 10000},%uint64
{<<"overflow_warning">>, 16#08, true},%boolean
{<<"shuffle_subscriptions">>, 16#08, false}]},%boolean
subscribe => #{
acquire_mode => 0,
accept_mode => 0,
exclusive => false,
flow_unit_byte => infinity,
flow_unit_message => infinity,
args => [{<<"random_location">>, 16#08, true}]}}},
{uplinks, [
%% ===========================================================%%
%% Настройки федерации для ECSS-PA-SIP (<SITE_LOCAL>) %%
%% Настройка репликации с сайта <SITE_LOCAL> -> <SITE_REMOTE> %%
%% ===========================================================%%
#{%Очередь для обмена регистрациями
name => <<"ecss.<SITE_LOCAL>.<CLUSTER_SIP>.sync">>,
destination => {exchange, <<"sync.sip.ex">>, <<"sync.<SITE_LOCAL>.<CLUSTER_SIP>.rk">>},
exchange => [#{name => <<"sync.sip.ex">>}],
queue => [#{name => <<"sync.sip.q">>, auto_delete => true, args => []}],
bind => [#{exchange => <<"sync.sip.ex">>, binding_key => <<"sync.sip.rk">>, queue => <<"sync.sip.q">>}],
subscribe => [#{queue => <<"sync.sip.q">>}]},
%% ===========================================================%%
%% Настройки федерации для ECSS-DS (<SITE_LOCAL>) %%
%% Настройка репликации с сайта <SITE_LOCAL> -> <SITE_REMOTE> %%
%% ===========================================================%%
#{%Альтернативная очередь для сайта <SITE_LOCAL>
name => <<"ecss.<SITE_LOCAL>.sync.db.alt">>,
destination => {exchange, <<"ecss.sync.db.alt.ex">>, <<"ecss.<SITE_LOCAL>.sync.db.rk">>},
exchange => [#{name => <<"ecss.sync.db.alt.ex">>, type => <<"x-random-uniform">>}],
queue => [#{name => <<"ecss.<SITE_LOCAL>.sync.db.alt.q">>, auto_delete => true, args => []}],
bind => [#{exchange => <<"ecss.sync.db.alt.ex">>, binding_key => <<"ecss.<SITE_LOCAL>.sync.db.rk">>, queue => <<"ecss.<SITE_LOCAL>.sync.db.alt.q">>}],
subscribe => [#{queue => <<"ecss.<SITE_LOCAL>.sync.db.alt.q">>}]},
#{%Private exchange <NODE_DS1>
name => <<"ecss.sync.db.<NODE_DS1>">>,
destination => {exchange, <<"ecss.sync.db.ex">>, <<"ecss.<SITE_LOCAL>.<NODE_DS1>.sync.db.reply.rk">>},
exchange => [#{name => <<"ecss.sync.db.ex">>, alternate_exchange => <<"ecss.sync.db.alt.ex">>, type => <<"x-random-uniform">>}],
queue => [#{name => <<"ecss.<SITE_LOCAL>.<NODE_DS1>.sync.db.reply.q">>, auto_delete => true, args => []}],
bind => [#{queue => <<"ecss.<SITE_LOCAL>.<NODE_DS1>.sync.db.reply.q">>, exchange => <<"ecss.sync.db.ex">>, binding_key => <<"ecss.<SITE_LOCAL>.<NODE_DS1>.sync.db.reply.rk">>}],
subscribe => [#{queue => <<"ecss.<SITE_LOCAL>.<NODE_DS1>.sync.db.reply.q">>}]},
#{%Private exchange <NODE_DS2>
name => <<"ecss.sync.db.<NODE_DS2>">>,
destination => {exchange, <<"ecss.sync.db.ex">>, <<"ecss.<SITE_LOCAL>.<NODE_DS2>.sync.db.reply.rk">>},
exchange => [#{name => <<"ecss.sync.db.ex">>, alternate_exchange => <<"ecss.sync.db.alt.ex">>, type => <<"x-random-uniform">>}],
queue => [#{name => <<"ecss.<SITE_LOCAL>.<NODE_DS2>.sync.db.reply.q">>, auto_delete => true, args => []}],
bind => [#{queue => <<"ecss.<SITE_LOCAL>.<NODE_DS2>.sync.db.reply.q">>, exchange => <<"ecss.sync.db.ex">>, binding_key => <<"ecss.<SITE_LOCAL>.<NODE_DS2>.sync.db.reply.rk">>}],
subscribe => [#{queue => <<"ecss.<SITE_LOCAL>.<NODE_DS2>.sync.db.reply.q">>}]},
%% ===========================================================%%
%% Настройки федерации для ECSS-DS (<SITE_LOCAL>) %%
%% Настройка репликации с сайта <SITE_LOCAL> -> <SITE_REMOTE> %%
%% ===========================================================%%
#{%Альтернативная очередь для сайта <SITE_LOCAL>
name => <<"ecss.<SITE_REMOTE>.sync.db.alt">>,
max_hops => 2,
destination => {exchange, <<"ecss.sync.db.ex">>, <<"ecss.<SITE_REMOTE>.sync.db.rk">>},
exchange => [#{name => <<"ecss.sync.db.ex">>, alternate_exchange => <<"ecss.sync.db.alt.ex">>, type => <<"x-random-uniform">>}],
queue => [#{name => <<"ecss.<SITE_REMOTE>.sync.db.q">>, auto_delete => true, args => []}],
bind => [#{exchange => <<"ecss.sync.db.ex">>, binding_key => <<"ecss.<SITE_REMOTE>.sync.db.rk">>, queue => <<"ecss.<SITE_REMOTE>.sync.db.q">>}],
subscribe => [#{queue => <<"ecss.<SITE_REMOTE>.sync.db.q">>}]}
]}]
}, |
/system/geo-backup/properties/set site site1 Property "site" successfully changed from: ecss10 to site1. |
/system/geo-backup/properties/set slave_sites site2 Property "slave_sites" successfully changed from: to site2. |
/domain/properties/set * site site1 Property "site" successfully changed from: ecss10 to site1. |
| Если в качестве домена указана звездочка, то значения изменяются только в тех доменах, в которых они установлены по умолчанию. Иначе останется то же значение, что явно было выставлено на домене. |
/domain/geo.domain/properties/set replica_type master Property "replica_type" successfully changed from: none to master. |
/cluster/adapter/sip1/sip/network/set ip_set geo.domain listen-ports list = [5060] Property "ip_set" successfully changed from: to geo.domain 5060 geo.domain no addresses set. /cluster/adapter/sip1/sip/network/set ip_set geo.domain node-ip node = sip1@ecss1 ip = 192.168.23.110 Property "ip_set" successfully changed from: geo.domain 5060 geo.domain no addresses set to geo.domain 5060 geo.domain sip1@ecss1 192.168.23.110. /cluster/adapter/sip1/sip/network/set ip_set geo.domain node-ip node = sip1@ecss2 ip = 192.168.23.111 Property "ip_set" successfully changed from: geo.domain 5060 geo.domain sip1@ecss1 192.168.23.110 to geo.domain 5060 geo.domain sip1@ecss1 192.168.23.110 geo.domain sip1@ecss2 192.168.23.111. |
/cluster/adapter/sip1/sip/properties/set alternative_server 192.168.23.183 Property "alternative_server" successfully changed from: undefined to "192.168.23.183". |
В случае проблем с внутренним транспортом вызовы будут перенаправляться адаптером на альтернативный сервер.
/system/geo-backup/properties/set site site2 Property "site" successfully changed from: ecss10 to site2. |
/system/geo-backup/properties/set slave_sites site1 Property "slave_sites" successfully changed from: to site1. |
/domain/properties/set * site site2 Property "site" successfully changed from: ecss10 to site2. |
| Если в качестве домена указана звездочка, то значения изменяются только в тех доменах, в которых они установлены по умолчанию. Иначе останется то же значение, что явно было выставлено на домене. |
/domain/geo.domain/properties/set replica_type backup Property "replica_type" successfully changed from: none to backup. |
/cluster/adapter/sip1/sip/network/set ip_set geo.domain listen-ports list = [5060] Property "ip_set" successfully changed from: to geo.domain 5060 geo.domain no addresses set. /cluster/adapter/sip1/sip/network/set ip_set geo.domain node-ip node = sip1@ecss1 ip = 192.168.23.183 Property "ip_set" successfully changed from: geo.domain 5060 geo.domain no addresses set to geo.domain 5060 geo.domain sip1@ecss1 192.168.23.183. /cluster/adapter/sip1/sip/network/set ip_set geo.domain node-ip node = sip1@ecss2 ip = 192.168.23.184 Property "ip_set" successfully changed from: geo.domain 5060 geo.domain sip1@ecss1 192.168.23.183 to geo.domain 5060 geo.domain sip1@ecss1 192.168.23.183 geo.domain sip1@ecss2 192.168.23.184. |
/cluster/adapter/sip1/sip/properties/set alternative_server 192.168.23.110 Property "alternative_server" successfully changed from: undefined to "192.168.23.110". |
В случае проблем с внутренним транспортом вызовы будут перенаправляться адаптером на альтернативный сервер.
/system/geo-backup/properties/set enabled true Property "enabled" successfully changed from: false to true. |
/domain/geo.domain/sip/network/set ip_set [geo.domain] Property "ip_set" successfully changed from: [] to ["geo.domain"]. |
/system/geo-backup/properties/set sync_timeout 1800 |
Настройка медиаресурсов
Для корректной работы георезерва на удаленном гео-сайте необходимо настроить медиаресурсы, используемые георезервируемым доменом (имена медиаресурсов site и zone должны совпадать). Настройка медиаресурсов подробно описана в разделе Конфигурирование распределенного медиасервера.
/system/geo-backup/sync <DOMAIN_NAME> ┌─────────────┬───────────┐ │ Domain │Sync result│ ├─────────────┼───────────┤ │<DOMAIN_NAME>│ok │ └─────────────┴───────────┘ Total syncronized domains: 1 |
/system/geo-backup/status ┌───────────┬──────┬───────┬──────────────┬───────────────────┬───────────────────┐ │ Domain │ Site │Replica│Replica status│ Last update time │ Last success │ │ │ │ │ │ │ update time │ ├───────────┼──────┼───────┼──────────────┼───────────────────┼───────────────────┤ │p.city │ecss10│master │syncronized │08.09.2017 14:19:01│08.09.2017 14:19:01│ │geo.domain │nsk │master │syncronized │08.09.2017 14:19:03│08.09.2017 14:19:03│ └───────────┴──────┴───────┴──────────────┴───────────────────┴───────────────────┘ Total syncronized domains: 2 |
/domain/p.city/properties/info replica_type ┌────────────┬──────┬──────┐ │ Property │Domain│Value │ ├────────────┼──────┼──────┤ │replica_type│p.city│master│ └────────────┴──────┴──────┘ |
Это означает, что на данном гео-кластере этот домен сейчас активный, и вызовы обслуживаются данным гео-кластером. Когда будет выполнена репликация этого домена на соседний сайт, его replica_type станет равен backup. Это будет означать, что настройки домена были прореплицированы, но сейчас данный домен обслуживается соседним гео-кластером.
На этом настройка георезерва закончена.
Не рекомендуется использовать транки в георезервируемом домене. Связь с внешними направлениями (в примере Москва/Новосибирск/Локальный) рекомендуется осуществлять через транзитный домен по следующей схеме:
![]()
/bridge/declare <BRIDGE_NAME> <DUPLEX> <STRICT> <CAPACITY> <GEO_DOMAIN> <GEO_NP> <GEO_INTERFACE> <GEO_TRUNKGROUP> <GEO_ROUTING_CONTEXT> <TRANSIT_DOMAIN_1> <NP_1> <INTERFACE_1> <TRUNKGROUP_1> <ROUTING_CONTEXT_1> Bridge with name <BRIDGE_NAME> declared successfully. |
/bridge/declare geo.transit true true unbounded geo.domain default bridge:transit tg:transit default_routing transit.domain1 default bridge:to.geo.1 tg:to.geo.1 default_routing Bridge with name "geo.transit" declared successfully. |
/bridge/declare <BRIDGE_NAME> <DUPLEX> <STRICT> <CAPACITY> <GEO_DOMAIN> <GEO_NP> <GEO_INTERFACE> <GEO_TRUNKGROUP> <GEO_ROUTING_CONTEXT> <TRANSIT_DOMAIN_2> <NP_2> <INTERFACE_2> <TRUNKGROUP_2> <ROUTING_CONTEXT_2> Bridge with name <BRIDGE_NAME> declared successfully. |
/bridge/declare geo.transit true true unbounded geo.domain default bridge:transit tg:transit default_routing transit.domain2 default bridge:to.geo.2 tg:to.geo.2 default_routing Bridge with name "geo.transit" declared successfully. |
Параметры:
<BRIDGE_NAME> — уникальное в рамках ECSS-10 имя bridge-интерфейса (строка, без пробелов);<DUPLEX> — режим работы bridge:
<STRICT> — режим проверки номеров, проходящих через бридж;
<CAPACITY> — количество одновременно активных вызовов на заданном bridge-интерфейсе, принимает значения:
<GEO_DOMAIN> — имя георезервируемого домена должно быть одинаковым на site1 и site2;
<GEO_NP> — план нумерации георезервируемого домена должен быть одинаковым на site1и site2;
<GEO_INTERFACE> — имя интерфейса георезервируемого домена, через который будет осуществляться взаимодействие с bridge-интерфейсом, должно быть одинаковым на site1 и site2;
<GEO_TRUNKGROUP> — идентификатор транк-группы для интерфейса георезервируемого домена должен быть одинаковым на site1 и site2;
<GEO_ROUTING_CONTEXT> — контекст маршрутизации георезервируемого домена должен быть одинаковым на site1 и site2;
<TRANSIT_DOMAIN_1> / <TRANSIT_DOMAIN_2> — имя транзитной виртуальной АТС на site1 / site2 , с которой устанавливает соединение bridge;
<NP_1> / <NP_2> — план нумерации транзитного домена, на site1 / site2 с которым устанавливает соединение bridge;
<INTERFACE_1> / <INTERFACE_2> — имя интерфейса транзитного домена site1 / site2, через который будет осуществляться взаимодействие с bridge-интерфейсом;
<TRUNKGROUP_1> / <TRUNKGROUP_2> — идентификатор транк-группы для интерфейса транзитного домена на site1 / site2;
<ROUTING_CONTEXT_1> / <ROUTING_CONTEXT_2> — контекст маршрутизации по умолчанию для интерфейса транзитного домена на site1 / site2.