Форум программистов, компьютерный форум, киберфорум
Cisco
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Эксперт по компьютерным сетям
 Аватар для sys.tim
490 / 89 / 18
Регистрация: 01.12.2009
Сообщений: 370
Записей в блоге: 1

Объединение офисов через туннель провайдера

26.10.2016, 12:04. Показов 1371. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Опишу конфигурацию: есть два офиса, в качестве шлюзов стоят Cisco ASA (на схеме ASA1 и ASA2).
ASA1 - Cisco Adaptive Security Appliance Software Version 9.6(1)
Интерфейсы ASA1:
внутренний - 10.4.10.254
"внешний" (для туннеля провайдера) - 10.4.254.2, шлюз 10.4.254.1

ASA2 - Cisco Adaptive Security Appliance Software Version 8.2(5)
Интерфейсы ASA2:
внутренний - 10.4.50.254
"внешний" (для туннеля провайдера) - 10.4.254.18, шлюз 10.4.254.17

Схема подключения:
Кликните здесь для просмотра всего текста


"Внешние" интерфейсы между собой пингуются, т.е. 10.4.254.2 доступен для 10.4.254.18 и наоборот, также пингуются их шлюзы.
Но связи между локальными сетями нет.

Статические маршруты на ASA1:
Code
1
2
route outside_rt_vpn 10.4.50.0 255.255.255.0 10.4.254.1 5
route outside_rt_vpn 10.4.254.0 255.255.255.0 10.4.254.1 1
NAT на ASA1:
Code
1
nat (inside_office,outside_rt_vpn) source static rus10-spb rus10-spb destination static rus50-tlt rus50-tlt
Вывод packet-tracer input inside_office tcp 10.4.10.105 http 10.4.50.1 http detailed с ASA1:
Кликните здесь для просмотра всего текста

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
Phase: 1
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
nat (inside_office,outside_rt_vpn) source static rus10-spb rus10-spb destination static rus50-tlt rus50-tlt
Additional Information:
NAT divert to egress interface outside_rt_vpn
Untranslate 10.4.50.1/80 to 10.4.50.1/80
 
Phase: 2
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group inside_office_access_in in interface inside_office control-plane
access-list inside_office_access_in extended permit ip object rus10-spb object-group pn-networks 
object-group network pn-networks
 group-object finland
 group-object russia
Additional Information:
 Forward Flow based lookup yields rule:
 in  id=0x7f3c00a61950, priority=13, domain=permit, deny=false
    hits=685, user_data=0x7f3bf938be40, cs_id=0x0, use_real_addr, flags=0x0, protocol=0
    src ip/id=10.4.10.0, mask=255.255.255.0, port=0, tag=any
    dst ip/id=10.4.50.0, mask=255.255.255.0, port=0, tag=any, dscp=0x0
    input_ifc=inside_office, output_ifc=any
 
Phase: 3
Type: NAT
Subtype: 
Result: ALLOW
Config:
nat (inside_office,outside_rt_vpn) source static rus10-spb rus10-spb destination static rus50-tlt rus50-tlt
Additional Information:
Static translate 10.4.10.105/80 to 10.4.10.105/80
 Forward Flow based lookup yields rule:
 in  id=0x7f3c0053ed60, priority=6, domain=nat, deny=false
    hits=200, user_data=0x7f3bff4ae0b0, cs_id=0x0, flags=0x0, protocol=0
    src ip/id=10.4.10.0, mask=255.255.255.0, port=0, tag=any
    dst ip/id=10.4.50.0, mask=255.255.255.0, port=0, tag=any, dscp=0x0
    input_ifc=inside_office, output_ifc=outside_rt_vpn
 
Phase: 4
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
 Forward Flow based lookup yields rule:
 in  id=0x7f3bfe718a00, priority=0, domain=nat-per-session, deny=false
    hits=280138, user_data=0x0, cs_id=0x0, reverse, use_real_addr, flags=0x0, protocol=6
    src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any
    dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0
    input_ifc=any, output_ifc=any
 
Phase: 5
Type: IP-OPTIONS
Subtype: 
Result: ALLOW
Config:
Additional Information:
 Forward Flow based lookup yields rule:
 in  id=0x7f3bff26e590, priority=0, domain=inspect-ip-options, deny=true
    hits=116440, user_data=0x0, cs_id=0x0, reverse, flags=0x0, protocol=0
    src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any
    dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0
    input_ifc=inside_office, output_ifc=any
 
Phase: 6
Type: NAT
Subtype: rpf-check
Result: ALLOW
Config:
nat (inside_office,outside_rt_vpn) source static rus10-spb rus10-spb destination static rus50-tlt rus50-tlt
Additional Information:
 Forward Flow based lookup yields rule:
 out id=0x7f3c011bcf70, priority=6, domain=nat-reverse, deny=false
    hits=201, user_data=0x7f3bff4ac4e0, cs_id=0x0, use_real_addr, flags=0x0, protocol=0
    src ip/id=10.4.10.0, mask=255.255.255.0, port=0, tag=any
    dst ip/id=10.4.50.0, mask=255.255.255.0, port=0, tag=any, dscp=0x0
    input_ifc=inside_office, output_ifc=outside_rt_vpn
 
Phase: 7
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
 Reverse Flow based lookup yields rule:
 in  id=0x7f3bfe718a00, priority=0, domain=nat-per-session, deny=false
    hits=280140, user_data=0x0, cs_id=0x0, reverse, use_real_addr, flags=0x0, protocol=6
    src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any
    dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0
    input_ifc=any, output_ifc=any
 
Phase: 8
Type: IP-OPTIONS
Subtype: 
Result: ALLOW
Config:
Additional Information:
 Reverse Flow based lookup yields rule:
 in  id=0x7f3bff3e1400, priority=0, domain=inspect-ip-options, deny=true
    hits=2789, user_data=0x0, cs_id=0x0, reverse, flags=0x0, protocol=0
    src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any
    dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0
    input_ifc=outside_rt_vpn, output_ifc=any
 
Phase: 9
Type: FLOW-CREATION
Subtype: 
Result: ALLOW
Config:
Additional Information:
New flow created with id 194106, packet dispatched to next module
Module information for forward flow ...
snp_fp_tracer_drop
snp_fp_inspect_ip_options
snp_fp_tcp_normalizer
snp_fp_translate
snp_fp_adjacency
snp_fp_fragment
snp_ifc_stat
 
Module information for reverse flow ...
snp_fp_tracer_drop
snp_fp_inspect_ip_options
snp_fp_translate
snp_fp_tcp_normalizer
snp_fp_adjacency
snp_fp_fragment
snp_ifc_stat
 
Result:
output-interface: outside_rt_vpn
output-status: up
output-line-status: up
Action: allow


Статические маршруты на ASA2:
Code
1
2
route rt_vpn_tlt 10.4.10.0 255.255.255.0 10.4.254.17 5
route rt_vpn_tlt 10.4.254.0 255.255.255.0 10.4.254.17 1
NAT на ASA2:
Code
1
2
3
4
nat (inside_office) 0 access-list inside_nat0_outbound
access-list inside_nat0_outbound extended permit ip rus50-tlt 255.255.255.0 rus10-spb 255.255.255.0
nat (rt_vpn_tlt) 0 access-list rt_vpn_tlt_nat0_outbound
access-list rt_vpn_tlt_nat0_outbound extended permit ip rus10-spb 255.255.255.0 rus50-tlt 255.255.255.0
Вывод packet-tracer input inside_office tcp 10.4.50.1 http 10.4.10.105 http detailed с ASA2:
Кликните здесь для просмотра всего текста

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
Phase: 1
Type: ACCESS-LIST
Subtype: 
Result: ALLOW
Config:
Implicit Rule
Additional Information:
 Forward Flow based lookup yields rule:
 in  id=0xc96a9aa8, priority=1, domain=permit, deny=false
    hits=120819036, user_data=0x0, cs_id=0x0, l3_type=0x8
    src mac=0000.0000.0000, mask=0000.0000.0000
    dst mac=0000.0000.0000, mask=0100.0000.0000
 
Phase: 2
Type: ROUTE-LOOKUP
Subtype: input
Result: ALLOW
Config:
Additional Information:
in   rus10-spb       255.255.255.0   rt_vpn_tlt
 
Phase: 3
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group inside_access_in in interface inside_office
access-list inside_access_in extended permit ip rus50-tlt 255.255.255.0 rus10-spb 255.255.255.0 
Additional Information:
 Forward Flow based lookup yields rule:
 in  id=0xc6b93500, priority=12, domain=permit, deny=false
    hits=9, user_data=0xc7958460, cs_id=0x0, flags=0x0, protocol=0
    src ip=rus50-tlt, mask=255.255.255.0, port=0
    dst ip=rus10-spb, mask=255.255.255.0, port=0, dscp=0x0
 
Phase: 4
Type: IP-OPTIONS
Subtype: 
Result: ALLOW
Config:
Additional Information:
 Forward Flow based lookup yields rule:
 in  id=0xc96ac1e0, priority=0, domain=inspect-ip-options, deny=true
    hits=3417081, user_data=0x0, cs_id=0x0, reverse, flags=0x0, protocol=0
    src ip=0.0.0.0, mask=0.0.0.0, port=0
    dst ip=0.0.0.0, mask=0.0.0.0, port=0, dscp=0x0
 
Phase: 5
Type: NAT-EXEMPT
Subtype: 
Result: ALLOW
Config:
  match ip inside_office rus50-tlt 255.255.255.0 rt_vpn_tlt rus10-spb 255.255.255.0
    NAT exempt
    translate_hits = 2, untranslate_hits = 1
Additional Information:
 Forward Flow based lookup yields rule:
 in  id=0xc6aa6b20, priority=6, domain=nat-exempt, deny=false
    hits=2, user_data=0xca533438, cs_id=0x0, use_real_addr, flags=0x0, protocol=0
    src ip=rus50-tlt, mask=255.255.255.0, port=0
    dst ip=rus10-spb, mask=255.255.255.0, port=0, dscp=0x0
 
Phase: 6
Type: NAT-EXEMPT
Subtype: rpf-check
Result: ALLOW
Config:
Additional Information:
 Forward Flow based lookup yields rule:
 in  id=0xca37b448, priority=6, domain=nat-exempt-reverse, deny=false
    hits=2, user_data=0xc97b4fe0, cs_id=0x0, use_real_addr, flags=0x0, protocol=0
    src ip=rus50-tlt, mask=255.255.255.0, port=0
    dst ip=rus10-spb, mask=255.255.255.0, port=0, dscp=0x0
 
Phase: 7
Type: NAT
Subtype: 
Result: ALLOW
Config:
nat (inside_office) 1 0.0.0.0 0.0.0.0
  match ip inside_office any rt_vpn_tlt any
    dynamic translation to pool 1 (No matching global)
    translate_hits = 376, untranslate_hits = 0
Additional Information:
 Forward Flow based lookup yields rule:
 in  id=0xc9769eb0, priority=1, domain=nat, deny=false
    hits=5081, user_data=0xc9769df0, cs_id=0x0, flags=0x0, protocol=0
    src ip=0.0.0.0, mask=0.0.0.0, port=0
    dst ip=0.0.0.0, mask=0.0.0.0, port=0, dscp=0x0
 
Phase: 8
Type: NAT
Subtype: host-limits
Result: ALLOW
Config:
nat (inside_office) 1 0.0.0.0 0.0.0.0
  match ip inside_office any inside_office any
    dynamic translation to pool 1 (No matching global)
    translate_hits = 0, untranslate_hits = 0
Additional Information:
 Forward Flow based lookup yields rule:
 in  id=0xc97ab380, priority=1, domain=host, deny=false
    hits=3675972, user_data=0xc97a9ec8, cs_id=0x0, reverse, flags=0x0, protocol=0
    src ip=0.0.0.0, mask=0.0.0.0, port=0
    dst ip=0.0.0.0, mask=0.0.0.0, port=0, dscp=0x0
 
Phase: 9
Type: IP-OPTIONS
Subtype: 
Result: ALLOW
Config:
Additional Information:
 Reverse Flow based lookup yields rule:
 in  id=0xc977f690, priority=0, domain=inspect-ip-options, deny=true
    hits=4703, user_data=0x0, cs_id=0x0, reverse, flags=0x0, protocol=0
    src ip=0.0.0.0, mask=0.0.0.0, port=0
    dst ip=0.0.0.0, mask=0.0.0.0, port=0, dscp=0x0
 
Phase: 10
Type: FLOW-CREATION
Subtype: 
Result: ALLOW
Config:
Additional Information:
New flow created with id 5030639, packet dispatched to next module
Module information for forward flow ...
snp_fp_tracer_drop
snp_fp_inspect_ip_options
snp_fp_tcp_normalizer
snp_fp_translate
snp_fp_adjacency
snp_fp_fragment
snp_ifc_stat
 
Module information for reverse flow ...
snp_fp_tracer_drop
snp_fp_inspect_ip_options
snp_fp_translate
snp_fp_tcp_normalizer
snp_fp_adjacency
snp_fp_fragment
snp_ifc_stat
 
Result:
input-interface: inside_office
input-status: up
input-line-status: up
output-interface: rt_vpn_tlt
output-status: up
output-line-status: up
Action: allow


Сломал голову, почему локальные подсети недоступны друг для друга.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.10.2016, 12:04
Ответы с готовыми решениями:

VPN - объединение 2х офисов
Всем привет. Нужна консультация, мне нужно объединить 2 офиса с помощью ВПН. Первый офис это центральный, там находится DC\DHCP\DNS, у...

Объединение офисов по сети
Всем Здрасти) У меня вопрос жизни и смерти) Говорю сразу в этом деле не профи) Короче говоря, имеется 9 офисов и 1 ГЛАВНЫЙ! Нужно...

Отказоустойчивое объединение офисов по VPN
Имеется 3 дислокации: Офис1: сервер с IP-АТС, терминальным сервером и файлохранилищем, пара пользовательских компов. Основной проводной...

6
 Аватар для corlovito
461 / 442 / 75
Регистрация: 26.12.2012
Сообщений: 2,888
26.10.2016, 12:22
Цитата Сообщение от sys.tim Посмотреть сообщение
почему локальные подсети недоступны друг для друга
как связь проверяете пингом ?
покажите вывод команд на обоих устройствах
Code
1
sh run  | b class inspection_default
0
Эксперт по компьютерным сетям
 Аватар для sys.tim
490 / 89 / 18
Регистрация: 01.12.2009
Сообщений: 370
Записей в блоге: 1
26.10.2016, 12:49  [ТС]
corlovito,
да, пингами проверяю.

Вывод с ASA1:
Кликните здесь для просмотра всего текста

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Result of the command: "sh run | b class inspection_default"
 
 class inspection_default
  inspect dns preset_dns_map 
  inspect ftp 
  inspect h323 h225 
  inspect h323 ras 
  inspect rsh 
  inspect rtsp 
  inspect esmtp 
  inspect sqlnet 
  inspect skinny  
  inspect sunrpc 
  inspect xdmcp 
  inspect sip  
  inspect netbios 
  inspect tftp 
  inspect ip-options 
  inspect icmp 
  inspect pptp 
!
service-policy global_policy global
prompt hostname context 
no call-home reporting anonymous
Cryptochecksum:7905f149238a1dad9138dda0a3c9a12b
: end


Вывод с ASA2:
Кликните здесь для просмотра всего текста

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Result of the command: "sh run | b class inspection_default"
 
 class inspection_default
  inspect dns preset_dns_map 
  inspect ftp 
  inspect h323 h225 
  inspect h323 ras 
  inspect rsh 
  inspect rtsp 
  inspect esmtp 
  inspect sqlnet 
  inspect skinny  
  inspect sunrpc 
  inspect xdmcp 
  inspect sip  
  inspect netbios 
  inspect tftp 
  inspect ip-options 
!
service-policy global_policy global
prompt hostname context 
no call-home reporting anonymous
Cryptochecksum:4f3e6ed87ecb8f0dc3e59f72205083fd
: end
0
 Аватар для corlovito
461 / 442 / 75
Регистрация: 26.12.2012
Сообщений: 2,888
26.10.2016, 12:55
на второй асе включите инспектирование ICMP
0
Эксперт по компьютерным сетям
 Аватар для sys.tim
490 / 89 / 18
Регистрация: 01.12.2009
Сообщений: 370
Записей в блоге: 1
26.10.2016, 13:13  [ТС]
Цитата Сообщение от corlovito Посмотреть сообщение
на второй асе включите инспектирование ICMP
включил, изменений нет
0
 Аватар для corlovito
461 / 442 / 75
Регистрация: 26.12.2012
Сообщений: 2,888
26.10.2016, 13:35
ну теперь нужно убедиться что трафик доходит с одной асы на другую в случае когда локалки между собой общаются packet-capture используйте для этого на АСЕ, уверены что правило ната норм отрабатывают ? просто конфиг не полный выложили понять нет возможности

p/s еще на всякий случай conn и xlate почистите
0
Эксперт по компьютерным сетям
 Аватар для sys.tim
490 / 89 / 18
Регистрация: 01.12.2009
Сообщений: 370
Записей в блоге: 1
27.10.2016, 13:23  [ТС]
Цитата Сообщение от corlovito Посмотреть сообщение
уверены что правило ната норм отрабатывают
если честно, то не уверен )) хотя packet-tracer показывает, что адреса не натятся, т.е. вроде как все нормально с натом.
спасибо, будем искать (с)

Добавлено через 15 минут
Судя по packet-capture пинги на ASA1 приходят на "офисный" интерфейс и уходят с "туннельного", нат работает как надо, т.е. адреса не меняются. А вот на ASA2 при этом на "туннельный" интерфейс ничего не приходит.

Будем пинать провайдера
corlovito, еще раз спасибо!

Добавлено через 22 часа 55 минут
Так и оказалось - провайдер не доделал настройки своего оборудования...думаю, что тему можно считать закрытой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2016, 13:23
Помогаю со студенческими работами здесь

Объединение удаленных офисов с центральным
Сразу скажу, я не большой спец. по сетям, я 1с-программист, но как везде у нас, передо мной поставили задачу. :) Есть центральный...

Объединение офисов посредством VPN туннеля
Доброго времени суток! Перелопатил на форуме множество подобных тем, но многие из них совсем не то, а другие дают не все ответы на...

Настройка и объединение двух офисов в частную сеть
Добрый день, На работу купили сервер, купили windows server 2016 Standart. В одном городе находимся мы, в другом городе еще один...

Объединение двух удаленных офисов в одну сеть
Здравствуйте уважаемые форумчане. Нужна помощь в решении вопроса (ну или хотя бы натолкните на мысль или где почитать). Есть сервер на...

Подскажите! объединение двух офисов в 1 сеть и подключение их к контроллеру домена
Добрый день. Столкнулся с таким задание : есть два разных офиса 1 компании их нужно подключить к 1 контроллеру домена находящемуся в первом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru