Both sides previous revisionPrevious revisionNext revision | Previous revision |
tssltd:соединение_второго_типа._инкапсуляция_l4 [2025/01/24 13:56] – i.sharapov | tssltd:соединение_второго_типа._инкапсуляция_l4 [2025/01/24 15:26] (current) – i.sharapov |
---|
[[tssltd:мксз_diamond_next|Вернуться к оглавлению]] | [[tssltd:мксз_diamond_next|Вернуться к оглавлению]] |
| |
==== Описание параметров ==== | ==== Описание параметров (Соединение второго типа) ==== |
| |
<WRAP indent> | <WRAP indent> |
Для настройки защищенного соединения необходимо подключиться к устройству через web интерфейс. В главном меню выбрать пункт "**VPN - VPN-сервис**". В таблице "**VPN-сервис**" необходимо нажать на кнопку "**Добавить сервис**". В новом окне в таблице "**Настроить VPN сервис**" необходимо задать параметры для сервиса. | Для настройки защищенного соединения необходимо подключиться к устройству через web интерфейс. В главном меню выбрать пункт "**VPN - VPN-сервис**". В таблице "**VPN-сервис**" необходимо нажать на кнопку "**Добавить сервис**". В новом окне в таблице "**Настроить VPN сервис**" необходимо задать параметры для сервиса. |
| |
<wrap important>Обратите внимание, что часть параметров имеет значения по умолчанию. Эти значения подобраны оптимальным образом. Не рекомендуется без необходимости изменять их.</WRAP> | Обратите внимание, что часть параметров имеет значения по умолчанию. Эти значения подобраны оптимальным образом. Не рекомендуется без необходимости изменять их. |
<wrap clear /> | |
| |
Параметры для защищенного соединения для первого устройства представлены в таблице: | Параметры для защищенного соединения для первого устройства представлены в таблице: |
| Название VPN интерфейса | tap_с | Имя VPN интерфейса, который был создан на предыдущих шагах. Этот интерфейс будет являться точкой входа в защищенное соединение для нашего сервиса.| | | Название VPN интерфейса | tap_с | Имя VPN интерфейса, который был создан на предыдущих шагах. Этот интерфейс будет являться точкой входа в защищенное соединение для нашего сервиса.| |
| Режим хэндшейка | Server | Режим Server означает, что устройство будет ожидать запросов на подключение от других участников. | | | Режим хэндшейка | Server | Режим Server означает, что устройство будет ожидать запросов на подключение от других участников. | |
| Точки подключения (адрес:порт) | 192.168.250.2:1050 | Устройство в режиме клиента пытается установить защищенное соединение с другим устройством, отправляя запросы на заданный адрес и заданный сетевой порт по протоколу UDP. | | | Точки подключения (адрес:порт) | 192.168.17.2:1050 | Устройство в режиме клиента пытается установить защищенное соединение с другим устройством, отправляя запросы на заданный адрес и заданный сетевой порт по протоколу UDP. | |
| Интервал между попытками хэндшейка | 2 | Сколько раз устройство будет пытаться установить защищенное соединение с сервером. | | | Интервал между попытками хэндшейка | 2 | Сколько раз устройство будет пытаться установить защищенное соединение с сервером. | |
| Уровень инкапсуляции | L4 | Данных параметр определяет заголовки, которые будут добавляться к сетевому пакету после шифрования. Для режима L4, будет добавляться заголовок L2, L3 и L4. | | | Уровень инкапсуляции | L4 | Данных параметр определяет заголовки, которые будут добавляться к сетевому пакету после шифрования. Для режима L4, будет добавляться заголовок L2, L3 и L4. | |
После задания параметров для защищенного соединения на первом и втором устройствах, необходимо сохранить настройки и запустить сервис. Для запуска сервиса необходимо в главном меню выбрать пункт "**VPN - VPN-сервис**", в таблице "**VPN-сервис**" необходимо выбрать сервис, который необходимо запустить и нажать на кнопку "**Запустить**". В таблице в графе "**Состояние**" должен появиться статус "**Сервис работает**". | После задания параметров для защищенного соединения на первом и втором устройствах, необходимо сохранить настройки и запустить сервис. Для запуска сервиса необходимо в главном меню выбрать пункт "**VPN - VPN-сервис**", в таблице "**VPN-сервис**" необходимо выбрать сервис, который необходимо запустить и нажать на кнопку "**Запустить**". В таблице в графе "**Состояние**" должен появиться статус "**Сервис работает**". |
| |
{{ :tssltd:vpn_service_start.jpg |}} | {{ :tssltd:second_vpn_service_start.jpg |}} |
| |
Работа сервиса означает, что устройства пробуют установить защищенное соединение согласно настройкам, которые были заданы. Фактически соединение может быть не установлено. Для проверки, что защищенное соединение установлено, можно посмотреть либо журналы событий. Для этого необходимо в главном меню выбрать пункт "**Журналы событий - Журнал VPN**". Для заданного сервиса должна быть запись вида "**Handshake finished**". Также проверить, что защищенное соединение установлено, можно через консольное подключение. Для этого необходимо подключиться к устройству по протоколу ssh, перейти в режим просмотра информации на уровне “data plane” с помощью команды “vppctl” и выполнить команду “show dmvpn tunnels”. | Работа сервиса означает, что устройства пробуют установить защищенное соединение согласно настройкам, которые были заданы. Фактически соединение может быть не установлено. Для проверки, что защищенное соединение установлено, можно посмотреть либо журналы событий. Для этого необходимо в главном меню выбрать пункт "**Журналы событий - Журнал VPN**". Для заданного сервиса должна быть запись вида "**Handshake finished**". Также проверить, что защищенное соединение установлено, можно через консольное подключение. Для этого необходимо подключиться к устройству по протоколу ssh, перейти в режим просмотра информации на уровне “data plane” с помощью команды “vppctl” и выполнить команду “show dmvpn tunnels”. |
Tunnels by index 1/1024 | Tunnels by index 1/1024 |
[0] sw_if_index 14, tunnel_id 1, peers count 1/100, P2P | [0] sw_if_index 14, tunnel_id 1, peers count 1/100, P2P |
[0] tunnel_id 1, remote_peer_id 2, local_peer_id 0, remote_ep 192.168.250.1:1024, local_ep 192.168.250.2:1024, epoch 0, pipes_count 1, merge_enabled 0, merge_max_length 8000, tos_copy 0, tos_set 0 | [0] tunnel_id 1, remote_peer_id 9, local_peer_id 0, remote_ep 192.168.250.1:1024, local_ep 192.168.250.2:1024, epoch 0, pipes_count 1, merge_enabled 0, merge_max_length 8000, tos_copy 0, tos_set 0 |
Peers by id | Peers by id |
remote peer id 2 -> index 0 | remote peer id 9 -> index 0 |
Peers by mac | Peers by mac |
Tunnels by id | Tunnels by id |
Tunnels by index 1/1024 | Tunnels by index 1/1024 |
[0] sw_if_index 17, tunnel_id 1, peers count 1/100, P2P | [0] sw_if_index 17, tunnel_id 1, peers count 1/100, P2P |
[0] tunnel_id 1, remote_peer_id 0, local_peer_id 3, remote_ep 192.168.250.2:1024, local_ep 192.168.250.1:1024, epoch 0, pipes_count 1, merge_enabled 0, merge_max_length 8000, tos_copy 0, tos_set 0 | [0] tunnel_id 1, remote_peer_id 0, local_peer_id 11, remote_ep 192.168.250.2:1024, local_ep 192.168.250.1:1024, epoch 0, pipes_count 1, merge_enabled 0, merge_max_length 8000, tos_copy 0, tos_set 0 |
Peers by id | Peers by id |
remote peer id 0 -> index 0 | remote peer id 0 -> index 0 |
| |
На данном этапе можно утвердительно сказать, что защищенное соединение установлено и готово для обработки полезной нагрузки. | На данном этапе можно утвердительно сказать, что защищенное соединение установлено и готово для обработки полезной нагрузки. |
| Служебный трафик (каналообразующий передается через одно сетевое подключение), полезная нагрузка через другое защищенное сетевое подключение. |
| |
| ^ Канал связи ^ Тип трафика ^ Сетевой адрес ^ Комментарий ^ |
| | lcp_vpn(GigabitEthernetb/0/2) - lcp_vpn(GigabitEthernete/0/2) | Служебный | 192.168.17.2 - 192.168.17.1 | По каналу передается каналообразующий сетевой трафик. | |
| | GigabitEthernet5/0/0 - GigabitEthernet8/0/0 | Полезная нагрузка | 192.168.250.2 - 192.168.250.1 | По каналу передается полезная нагрузка. | |
</WRAP> | </WRAP> |
| |
Для задания ip адреса на сетевом интерфейсе VPN необходимо в главном меню выбрать пункт "**Сетевые настройки - IP адрес**". В таблице "**IP адрес**" нажать на кнопку "**Добавить IP адрес**". В новом окне, в таблице "**Настроить IP адрес**" в поле Название интерфейса" необходимо выбрать VPN интерфейс "**tap_s**", в поле IP адрес/маска подсети задать сетевой адрес "**172.16.16.2/30**". После задания параметров необходимо нажать на кнопку "**ОК**" и "**Сохранить**". | Для задания ip адреса на сетевом интерфейсе VPN необходимо в главном меню выбрать пункт "**Сетевые настройки - IP адрес**". В таблице "**IP адрес**" нажать на кнопку "**Добавить IP адрес**". В новом окне, в таблице "**Настроить IP адрес**" в поле Название интерфейса" необходимо выбрать VPN интерфейс "**tap_s**", в поле IP адрес/маска подсети задать сетевой адрес "**172.16.16.2/30**". После задания параметров необходимо нажать на кнопку "**ОК**" и "**Сохранить**". |
| |
{{ :tssltd:ip_vpn_config.jpg |}} | {{ :tssltd:second_ip_vpn_config_1.jpg |}} |
| |
| {{ :tssltd:second_ip_vpn_config_2.jpg |}} |
| |
{{ :tssltd:ip_vpn_config_2.jpg |}} | |
| |
Для проверки связности запустим запустим трафик с использованием протокола ICMP. Для этого необходимо подключиться на "**Устройство 1**" по протоколу ssh, далее перейти перейти в режим просмотра информации на уровне “**data plane**” с помощью команды “**vppctl**” и выполнить команду "**ping 172.16.16.1**". | Для проверки связности запустим запустим трафик с использованием протокола ICMP. Для этого необходимо подключиться на "**Устройство 1**" по протоколу ssh, далее перейти перейти в режим просмотра информации на уровне “**data plane**” с помощью команды “**vppctl**” и выполнить команду "**ping 172.16.16.1**". |
<WRAP indent> | <WRAP indent> |
Чтобы разобраться как передаются данные через служебный канала и канал с полезной нагрузкой, представим себе, что в разрез канала мы подключили дополнительное устройство, на котором осуществляем захват сетевого трафика с помощью утилиты "**tcpdump**". | Чтобы разобраться как передаются данные через служебный канала и канал с полезной нагрузкой, представим себе, что в разрез канала мы подключили дополнительное устройство, на котором осуществляем захват сетевого трафика с помощью утилиты "**tcpdump**". |
| В текущей конфигурации служебный (каналообразующий) трафик передается через одно физическое соединение, полезная нагрузка передается через другое физическое соединение. |
| Осуществим захват сетевого трафика в канале, где передается служебный трафик с помощью команды "tcpdump -ni enp0s20f1 host 192.168.17.1". В примере ниже видно, что через данное физическое соединение передается только служебный трафик по порт 1025 для протокола UDP и трафик для протокола ARP. Трафика с полезной нагрузкой в данном канале нет. |
| <code> |
| # tcpdump -ni enp0s20f1 host 192.168.17.1 |
| tcpdump: verbose output suppressed, use -v[v]... for full protocol decode |
| listening on enp0s20f1, link-type EN10MB (Ethernet), snapshot length 262144 bytes |
| 15:07:46.894532 IP 192.168.17.1.49746 > 192.168.17.2.1025: UDP, length 22 |
| 15:07:46.894660 IP 192.168.17.2.1025 > 192.168.17.1.49746: UDP, length 22 |
| 15:07:52.197135 ARP, Request who-has 192.168.17.1 tell 192.168.17.2, length 46 |
| 15:07:52.197231 ARP, Reply 192.168.17.1 is-at 00:90:0b:94:63:25, length 46 |
| 15:07:59.394304 IP 192.168.17.1.49746 > 192.168.17.2.1025: UDP, length 22 |
| 15:07:59.396067 IP 192.168.17.2.1025 > 192.168.17.1.49746: UDP, length 22 |
| </code> |
| |
Для захвата сетевого трафика можно использовать такую команду "tcpdump -ni enp0s20f3 host 192.168.250.1". Если через канала не передается полезная нагрузка, то мы сможем увидеть только каналообразующий трафик, которые идет на сетевой порт 1025 по протоколу UDP и трафик протокола arp. | Теперь с помощью команды "**ping 172.16.16.1 repeat 500**" запустим пинг между устройствами через защищенное соединение и осуществить захват сетевого трафика с помощью команды "**tcpdump -ni enp0s20f1 host 192.168.17.1**". Каналообразующий трафик передается по порту 1025, полезная нагрузка передается по порту 1024. В представленном ниже пример мы видим только служебный трафик для данного канала. |
<code> | <code> |
# tcpdump -ni enp0s20f3 host 192.168.250.1 | # tcpdump -ni enp0s20f1 host 192.168.17.1 |
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode | tcpdump: verbose output suppressed, use -v[v]... for full protocol decode |
listening on enp0s20f3, link-type EN10MB (Ethernet), snapshot length 262144 bytes | listening on enp0s20f1, link-type EN10MB (Ethernet), snapshot length 262144 bytes |
16:30:05.134706 IP 192.168.250.1.34309 > 192.168.250.2.1025: UDP, length 22 <----- каналообразующий трафик | 15:07:46.894532 IP 192.168.17.1.49746 > 192.168.17.2.1025: UDP, length 22 |
16:30:05.145547 IP 192.168.250.2.1025 > 192.168.250.1.34309: UDP, length 22 <----- каналообразующий трафик | 15:07:46.894660 IP 192.168.17.2.1025 > 192.168.17.1.49746: UDP, length 22 |
16:30:10.267396 ARP, Request who-has 192.168.250.1 tell 192.168.250.2, length 46 <----- arp протокол | 15:07:52.197135 ARP, Request who-has 192.168.17.1 tell 192.168.17.2, length 46 |
16:30:10.267499 ARP, Reply 192.168.250.1 is-at 00:90:0b:8d:70:e1, length 46 | 15:07:52.197231 ARP, Reply 192.168.17.1 is-at 00:90:0b:94:63:25, length 46 |
16:30:17.634496 IP 192.168.250.1.34309 > 192.168.250.2.1025: UDP, length 22 | 15:07:59.394304 IP 192.168.17.1.49746 > 192.168.17.2.1025: UDP, length 22 |
16:30:17.634622 IP 192.168.250.2.1025 > 192.168.250.1.34309: UDP, length 22 | 15:07:59.396067 IP 192.168.17.2.1025 > 192.168.17.1.49746: UDP, length 22 |
16:30:23.145028 ARP, Request who-has 192.168.250.2 tell 192.168.250.1, length 46 | |
16:30:23.145105 ARP, Reply 192.168.250.2 is-at 00:90:0b:95:ce:b5, length 46 | |
16:30:30.134277 IP 192.168.250.1.34309 > 192.168.250.2.1025: UDP, length 22 | |
16:30:30.134399 IP 192.168.250.2.1025 > 192.168.250.1.34309: UDP, length 22 | |
16:30:35.356950 ARP, Request who-has 192.168.250.1 tell 192.168.250.2, length 46 | |
16:30:35.357058 ARP, Reply 192.168.250.1 is-at 00:90:0b:8d:70:e1, length 46 | |
16:30:42.634072 IP 192.168.250.1.34309 > 192.168.250.2.1025: UDP, length 22 | |
</code> | </code> |
| |
Теперь с помощью команды "**ping 172.16.16.1 repeat 500**" запустим пинг между устройствами через защищенное соединение и осуществить захват сетевого трафика с помощью команды "**tcpdump -ni enp0s20f3 host 192.168.250.1**". Каналообразующий трафик передается по порту 1025, полезная нагрузка передается по порту 1024. Обратите внимание, что канал построен с использование ip адресов на интерфейсах устройства, именно их мы и видим при захвате трафика. Исходные адреса из подсети "**172.16.16.0/30**", между которыми происходит обмен данными скрыты. | С помощью команды "**tcpdump -ni enp0s20f3 host 192.168.250.1**" осуществим захват сетевого трафик на втором физическом соединении, по которому передается полезная нагрузка. В примере ниже видно, что в канале отсутствует служебный трафик и передается только полезная нагрузка по порту 1024 по протоколу UDP. |
| |
<code> | <code> |
# tcpdump -ni enp0s20f3 host 192.168.250.1 | # tcpdump -ni enp0s20f3 host 192.168.250.1 |
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode | tcpdump: verbose output suppressed, use -v[v]... for full protocol decode |
listening on enp0s20f3, link-type EN10MB (Ethernet), snapshot length 262144 bytes | listening on enp0s20f3, link-type EN10MB (Ethernet), snapshot length 262144 bytes |
16:34:49.175445 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | 15:13:09.339624 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 68 |
16:34:49.175553 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | 15:13:09.340015 ARP, Request who-has 192.168.250.2 tell 192.168.250.1, length 46 |
16:34:50.172089 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | 15:13:09.340090 ARP, Reply 192.168.250.2 is-at 00:90:0b:95:ce:b5, length 46 |
16:34:50.172194 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | 15:13:27.410755 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 68 |
16:34:51.177408 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | 15:13:27.410888 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 68 |
16:34:51.177515 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | 15:13:28.420276 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 |
16:34:52.172056 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | 15:13:28.420386 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 |
16:34:52.172171 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | 15:13:29.410725 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 |
16:34:52.629847 IP 192.168.250.1.34309 > 192.168.250.2.1025: UDP, length 22 <----- каналообразующий трафик | 15:13:29.410829 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 |
16:34:52.629962 IP 192.168.250.2.1025 > 192.168.250.1.34309: UDP, length 22 <----- каналообразующий трафик | 15:13:30.421238 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 |
16:34:53.178376 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | 15:13:30.421339 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 |
16:34:53.178489 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | 15:13:31.410699 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 |
16:34:54.172034 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | |
16:34:54.172157 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | |
16:34:55.180342 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | |
16:34:55.180456 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | |
16:34:56.171996 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | |
16:34:56.172115 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | |
16:34:57.180308 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | |
16:34:57.180424 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | |
16:34:58.084387 ARP, Request who-has 192.168.250.2 tell 192.168.250.1, length 46 <----- arp протокол | |
16:34:58.084462 ARP, Reply 192.168.250.2 is-at 00:90:0b:95:ce:b5, length 46 <----- arp протокол | |
16:34:58.171958 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | |
16:34:58.172075 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | |
16:34:59.182265 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | |
16:34:59.182372 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | |
16:35:00.171922 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | |
16:35:00.172027 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | |
16:35:01.184237 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | |
16:35:01.184350 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | |
16:35:02.171890 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | |
16:35:02.171999 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | |
16:35:03.171870 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | |
16:35:03.171978 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | |
16:35:04.171861 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | |
16:35:04.171970 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | |
16:35:05.129626 IP 192.168.250.1.34309 > 192.168.250.2.1025: UDP, length 22 | |
16:35:05.129741 IP 192.168.250.2.1025 > 192.168.250.1.34309: UDP, length 22 | |
16:35:05.171839 IP 192.168.250.2.1024 > 192.168.250.1.1024: UDP, length 136 | |
16:35:05.171928 IP 192.168.250.1.1024 > 192.168.250.2.1024: UDP, length 136 | |
</code> | </code> |
| |