Настройка Policy-based routing

Скачать в формате PDF

Назначение инструкции

Данная инструкция описывает настройку Policy-based routing. Предполагается, что перед началом настройки стенд собран и настроен в соответствии со сценарием «Построение VPN туннеля между двумя подсетями, защищаемыми шлюзами безопасности «С-Терра Шлюз» по топологии "звезда" с перешифрованием в центре».

Описание стенда

В данном стенде присутствуют четыре защищаемые подсети:

·         защищаемая подсеть центрального офиса 192.168.1.0/24;

·         защищаемая подсеть первого филиала 192.168.2.0/24;

·         защищаемые подсети второго филиала 192.168.3.0/24 и 192.168.4.0/24.

В центральном офисе между защищаемой подсетью 192.168.1.0/24 и шлюзом GW1 было добавлено устройство Traffic_Inspection для инспекции трафика защищаемых подсетей. При маршрутизации трафика между защищаемыми подсетями второго филиала или между первым и вторым филиалом пакеты будут проходить через устройство Traffic_Inspection.

Схема стенда (Рисунок 1):

 

Рисунок 1

Логика работы

Шлюзы GW2 и GW3 строят защищенные туннели со шлюзом GW1. В данном решении трафик из подсети 192.168.3.0/24 в подсеть 192.168.4.0/24 маршрутизируется через центральный шлюз GW1 и через Traffic_Inspection. Транзитный трафик от Host3, приходящий на интерфейс eth1.10 шлюза GW3 попадает под правило PBR и направляется в соответствующую таблицу маршрутизации. В данной таблице присутствует только маршрут по умолчанию через Router1. GW3 данный трафик шифрует и передает по защищенному туннелю шлюзу GW1. Трафик, приходящий на интерфейс eth0 шлюза GW1, попадает под правило PBR и направляется в соответствующую таблицу маршрутизации. В данной таблице присутствует только маршрут по умолчанию через устройство Traffic_Inspection. Аналогично для транзитного трафика от сети 192.168.4.0/24 к сети 192.168.3.0/24.

Использование Policy-based routing на С-Терра Шлюз

Использование Policy-based routing протестировано на классе СКЗИ КС1, КС2. Поддержка более высоких классов СКЗИ осуществляется по запросу (presale@s-terra.ru).

Настройка стенда

Настройка устройства Traffic_Inspection

На данном устройстве должны быть настроены IP-адреса и маршрутизация в соответствии с общей схемой стенда (см. рисунок 1). В приложении представлены сетевые настройки для ОС Debian (содержимое файла /etc/network/interfaces).

Настройка устройства Host3

На устройстве Host3 задайте IP-адрес на интерфейс, использующий VLAN ID 10, а в качестве шлюза по умолчанию укажите адрес внутреннего интерфейса шлюза безопасности GW3 – 192.168.3.1. В приложении представлены сетевые настройки для ОС Debian (содержимое файла /etc/network/interfaces).

Настройка устройства Host4

На устройстве Host4 задайте IP-адрес на интерфейс, использующий VLAN ID 11, а в качестве шлюза по умолчанию укажите адрес внутреннего интерфейса шлюза безопасности GW3 – 192.168.4.1. В приложении представлены сетевые настройки для ОС Debian (содержимое файла /etc/network/interfaces).

Настройка шлюза безопасности GW1

Краткий план настройки:

1.    Изменение политики безопасности для работы с четырьмя защищенным подсетями.

2.    Сетевые настройки.

3.    Настройка PBR

Изменение политики безопасности

1.    Войдите в CLI разграничения доступа (или Initial CLI). Для этого, после появления сообщения:

S-Terra administrative console

введите логин и пароль для CLI разграничения доступа:

Пользователь и пароль по умолчанию: administrator, s-terra. Обязательно смените пароль для пользователя administrator при помощи команды change user password.

login as: administrator

administrator's password:

administrator@sterragate]

2.    Изменение политики безопасности осуществляются из cisco-like консоли шлюза, чтобы попасть в нее выполните следующую команду в CLI разграничения доступа:

Пользователь и пароль по умолчанию: cscons, csp. Обязательно смените пароль для пользователя cscons и enable пароль. Под пользователем cscons можно осуществлять удаленное управление шлюзом по SSH.

administrator@sterragate] configure

sterragate login: cscons

Password:

S-Terra Gate 4.2.18201 (amd64)

GW1#

3.     Перейдите в режим настройки:

GW1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

4.    Опишите трафик, который планируется защищать. Для этого измените расширенные списки доступа:

GW1(config)#ip access-list extended LIST

GW1(config-ext-nacl)#permit ip 192.168.4.0 0.0.0.255 192.168.2.0 0.0.0.255

GW1(config-ext-nacl)#exit

GW1(config)#ip access-list extended LIST2

GW1(config-ext-nacl)#permit ip 192.168.4.0 0.0.0.255 192.168.3.0 0.0.0.255

GW1(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 192.168.4.0 0.0.0.255

GW1(config-ext-nacl)#permit ip 192.168.2.0 0.0.0.255 192.168.4.0 0.0.0.255

GW1(config-ext-nacl)#permit ip 192.168.3.0 0.0.0.255 192.168.4.0 0.0.0.255

GW1(config-ext-nacl)#exit

Данные списки доступа определяют трафик, который должен быть защищен.

Сетевые настройки

1.    В настройке интерфейса GigabitEthernet 0/0 измените IP-адрес:

GW1(config)#interface GigabitEthernet 0/0

GW1(config-if)#ip address 172.16.0.1 255.255.255.0

GW1(config-if)#exit

2.    Добавьте маршрут до подсети 192.168.1.0/24 через устройство Traffic_Inspection:

GW1(config)#ip route 192.168.1.0 255.255.255.0 172.16.0.2

3.    Настройка устройства GW1 в cisco-like консоли завершена. При выходе из конфигурационного режима происходит загрузка конфигурации:

GW1(config)#end

GW1#exit

В приложении представлен текст cisco-like конфигурации для шлюза GW1.

Настройка PBR

1.    Настройки PBR осуществляется из linux bash, чтобы попасть в linux bash выполните следующую команду в CLI разграничения доступа:

administrator@GW1] system

Entering system shell...

root@GW1:~#

2.    Добавьте PBR политику, для этого создайте файл /etc/network/if-pre-up.d/pbr и добавьте в него следующее содержимое:

#!/bin/bash

 

INPUT_WAN_IFACE="eth1"

TABLE_ID="100"

PRIO="100"

RULE="from all iif $INPUT_WAN_IFACE lookup $TABLE_ID pref $PRIO"

 

if [[ $IFACE == $INPUT_WAN_IFACE ]]; then

    ip rule del $RULE 2>/dev/null || true

    ip rule add $RULE

fi

 

exit 0

Файл /etc/network/if-pre-up.d/pbr используется для того, чтобы политика маршрутизации присутствовала в системе до перехода интерфейса в состояние UP.

В данном файле присутствуют следующие параметры:

·         INPUT_WAN_IFACE – указывает внешний интерфейс,  на который приходит трафик;

·         TABLE_ID – указывает номер таблицы маршрутизации;

·         PRIO – указывает приоритет;

·         RULE –описывает команду, которая будет использована.

Данный файл будет выполнять следующую команду для добавления политики PBR:

ip rule add from all iif eth1 table 100 pref 100. 

3.    Добавьте маршрут для политики PBR, для этого создайте файл /etc/network/if-up.d/pbr и добавьте в него следующее содержимое:

#!/bin/bash

 

NEXTHOP_ADDRESS="172.16.0.2"

OUTPUT_LAN_IFACE="eth0"

TABLE_ID="100"

 

if [[ $IFACE == "$OUTPUT_LAN_IFACE" ]]; then

    ip route add default via "$NEXTHOP_ADDRESS" dev "$OUTPUT_LAN_IFACE" table $TABLE_ID

fi

exit 0

Файл /etc/network/if-up.d/pbr используется для того, чтобы маршрут по умолчанию добавлялся в политику PBR после перехода интерфейса eth1 в состояние UP.

В данном файле присутствуют следующие параметры:

·         NEXTHOP_ADDRESS – указывает адрес, на который политика PBR будет маршрутизировать трафик;

·         OUTPUT_LAN _IFACE – указывает внутренний интерфейс, c которого доступен адрес указанный в NEXTHOP_ADDRESS;

·         TABLE_ID – указывает номер таблицы маршрутизации.

4.    Требуется убирать политику PBR после перехода интерфейса eth0 в состояние DOWN, для этого создайте файл /etc/network/if-post-down.d/pbr и добавьте в него следующее содержимое:

#!/bin/bash

 

INPUT_WAN_IFACE="eth1"

TABLE_ID="100"

PRIO="100"

RULE="from all iif $PBR_INPUT_IFACE lookup $TABLE_ID pref $PRIO"

 

if [[ $IFACE == $PBR_INPUT_IFACE ]]; then

    ip rule del $RULE 2>/dev/null || true

fi

 

exit 0

В данном файле присутствуют следующие параметры:

·         INPUT_WAN_IFACE – указывает внешний интерфейс, на который приходит трафик;

·         TABLE_ID – указывает номер таблицы маршрутизации;

·         PRIO – указывает приоритет;

·         RULE – описывает команду, которая будет использована.

Данный файл будет выполнять следующую команду для удаления политики PBR:

ip rule del from all iif eth1 table 100 pref 100. 

5.    Дайте права на запуск созданных файлов:

root@GW1:~# chmod +x /etc/network/if-pre-up.d/pbr

root@GW1:~# chmod +x /etc/network/if-up.d/pbr

root@GW1:~# chmod +x /etc/network/if-post-down.d/pbr

6.    Перезапустите сервис networking и перезагрузите LSP конфигурацию:

Если после настройки сетевых интерфейсов согласно документу «Построение VPN туннеля между двумя подсетями, защищаемыми шлюзами безопасности «С-Терра Шлюз» по топологии "звезда" с перешифрованием в центре» шлюз не перезагружался, то перезагрузите. В таком случае перезапускать сервис networking и перезагружать LSP конфигурацию не требуется.

Из-за того, что маршрут по умолчанию до Router1 описан в cisco-like конфигурации, то после перезапуска сервиса networking данный маршрут по умолчанию будет отсутствовать в таблице маршрутизации. Чтобы его добавить достаточно перезагрузить LSP конфигурацию.

root@GW1:~# service networking restart

root@GW1:~# lsp_mgr reload

В приложении представлен текст настроек /etc/network/if-pre-up.d/pbr,/etc/network/if-up.d/pbr и /etc/network/if-post-down.d/pbr для шлюза GW1.

Настройка шлюза безопасности GW2

Настройка шлюза безопасности GW2 происходит в соответствии со сценарием «Построение VPN туннеля между двумя подсетями, защищаемыми шлюзами безопасности «С-Терра Шлюз» по топологии "звезда" с перешифрованием в центре». Требуется добавить в существующий список доступа фильтр, описывающий трафик из подсети 192.168.2.0/24 до подсети 192.168.4.0/24:

GW2(config)#ip access-list extended LIST

GW2(config-ext-nacl)#permit ip 192.168.2.0 0.0.0.255 192.168.4.0 0.0.0.255

GW2(config-ext-nacl)#end

GW2#exit

В приложении представлен текст cisco-like конфигурации для шлюза GW2.

Настройка шлюза безопасности GW3

Краткий план настройки:

1.    Изменение политики безопасности для работы с четырьмя защищенным подсетями.

2.    Настройка PBR.

Изменение политики безопасности

Изменение политики безопасности GW3 происходит аналогично настройке шлюза GW2. Требуется добавить в существующий список доступа фильтры, описывающие трафик из подсети 192.168.4.0/24, а также трафик из подсети 192.168.3.0 в подсеть 192.168.4.0/24:

GW3(config)#ip access-list extended LIST

GW3(config-ext-nacl)#permit ip 192.168.3.0 0.0.0.255 192.168.4.0 0.0.0.255

GW3(config-ext-nacl)#permit ip 192.168.4.0 0.0.0.255 192.168.1.0 0.0.0.255

GW3(config-ext-nacl)#permit ip 192.168.4.0 0.0.0.255 192.168.2.0 0.0.0.255

GW3(config-ext-nacl)#permit ip 192.168.4.0 0.0.0.255 192.168.3.0 0.0.0.255

GW3(config-ext-nacl)#exit

Сетевые настройки

1.    В настройке интерфейса GigabitEthernet 0/0 измените IP-адрес:

GW3(config)#interface GigabitEthernet 0/0

GW3(config-if)#no ip address

GW3(config-if)#end

GW2#exit

В приложении представлен текст cisco-like конфигурации для шлюза GW3.

2.    Добавьте в /etc/network/interfaces перед ###netifcfg-begin### следующее:

auto eth0.10

iface eth0.10 inet static

address 192.168.3.1

netmask 255.255.255.0

 

auto eth0.11

iface eth0.11 inet static

address 192.168.4.1

netmask 255.255.255.0

Настройка PBR

1.    Добавьте PBR политику, для этого создайте файл /etc/network/if-pre-up.d/pbr и добавьте в него следующее содержимое:

#!/bin/bash

 

INPUT_VLAN_10_IFACE="eth0.10"

INPUT_VLAN_11_IFACE="eth0.11"

TABLE_ID="100"

PRIO="100"

RULE_VLAN_10="from all iif $INPUT_VLAN_10_IFACE lookup $TABLE_ID pref $PRIO"

RULE_VLAN_11="from all iif $INPUT_VLAN_11_IFACE lookup $TABLE_ID pref $PRIO"

 

if [[ $IFACE == $INPUT_VLAN_10_IFACE ]]; then

    ip rule del $RULE_VLAN_10 2>/dev/null || true

    ip rule add $RULE_VLAN_10

fi

 

if [[ $IFACE == $INPUT_VLAN_11_IFACE ]]; then

    ip rule del $RULE_VLAN_11 2>/dev/null || true

    ip rule add $RULE_VLAN_11

fi

 

exit 0

Файл /etc/network/if-pre-up.d/pbr используется для того, чтобы политики маршрутизации для интерфейсов eth1.10 и eth1.11 присутствовали в системе до перехода интерфейсов в состояние UP.

В данном файле присутствуют следующие параметры:

·         INPUT_VLAN_10_IFACE и INPUT_VLAN_11_IFACE – указывают внутренние интерфейсы, на которые приходит трафик;

·         TABLE_ID – указывает номер таблицы маршрутизации;

·         PRIO – указывает приоритет;

·         RULE_VLAN_10 и RULE_VLAN_11 – описывают команды, которые будет использованы.

Данный файл будет выполнять следующие команды для добавления политики PBR:

ip rule add from all iif eth0.10 table 100 pref 100;

ip rule add from all iif eth0.11 table 100 pref 100. 

2.    Добавьте маршрут для политики PBR, для этого создайте файл /etc/network/if-up.d/pbr и добавьте в него следующее содержимое:

#!/bin/bash

 

NEXTHOP_ADDRESS="10.1.3.1"

OUTPUT_LAN_IFACE="eth1"

TABLE_ID="100"

 

if [[ $IFACE == "$OUTPUT_LAN_IFACE" ]]; then

    ip route add default via "$NEXTHOP_ADDRESS" dev "$OUTPUT_LAN_IFACE" table $TABLE_ID

fi

exit 0

Файл /etc/network/if-up.d/pbr используется для того, чтобы маршрут по умолчанию добавлялся в политику PBR после перехода интерфейса eth1 в состояние UP.

В данном файле присутствуют следующие параметры:

·         NEXTHOP_ADDRESS – указывает адрес, на который политика PBR будет маршрутизировать трафик;

·         OUTPUT _ LAN _IFACE – указывает внутренний интерфейс, c которого доступен адрес указанный в NEXTHOP_ADDRESS;

·         TABLE_ID – указывает номер таблицы маршрутизации.

3.    Требуется убирать политику PBR после перехода интерфейсов eth1.10 и eth1.11 в состояние DOWN, для этого создайте файл /etc/network/if-post-down.d/pbr и добавьте в него следующее содержимое:

#!/bin/bash

 

INPUT_VLAN_10_IFACE="eth0.10"

INPUT_VLAN_11_IFACE="eth0.11"

TABLE_ID="100"

PRIO="100"

RULE_VLAN_10="from all iif $INPUT_VLAN_10_IFACE lookup $TABLE_ID pref $PRIO"

RULE_VLAN_11="from all iif $INPUT_VLAN_11_IFACE lookup $TABLE_ID pref $PRIO"

 

if [[ $IFACE == $INPUT_VLAN_10_IFACE ]]; then

    ip rule del $RULE_VLAN_10 2>/dev/null || true

fi

 

if [[ $IFACE == $INPUT_VLAN_11_IFACE ]]; then

    ip rule del $RULE_VLAN_11 2>/dev/null || true

fi

 

exit 0

В данном файле присутствуют следующие параметры:

·         INPUT_VLAN_10_IFACE и INPUT_VLAN_11_IFACE – указывают внутренние интерфейсы, на которые приходит трафик;

·         TABLE_ID – указывает номер таблицы маршрутизации;

·         PRIO – указывает приоритет;

·         RULE_VLAN_10 и RULE_VLAN_11 – описывают команды, которая будет использована.

Данный файл будет выполнять следующие команды для удаления политики PBR:

ip rule del from all iif eth0.10 table 100 pref 100;

ip rule del from all iif eth0.11 table 100 pref 100. 

4.    Дайте права на запуск созданных файлов:

root@GW3:~# chmod +x /etc/network/if-pre-up.d/pbr

root@GW3:~# chmod +x /etc/network/if-up.d/pbr

root@GW3:~# chmod +x /etc/network/if-post-down.d/pbr

5.    Перезапустите сервис networking и перезагрузите LSP конфигурацию:

Если после настройки сетевых интерфейсов в «Построение VPN туннеля между двумя подсетями, защищаемыми шлюзами безопасности «С-Терра Шлюз» по топологии "звезда" с перешифрованием в центре» шлюз не перезагружался, то перезагрузите. В таком случае перезапускать сервис networking и перезагружать LSP конфигурацию не требуется.

Из-за того, что маршрут по умолчанию до Router1 описан в cisco-like конфигурации, то после перезапуска сервиса networking данный маршрут по умолчанию будет отсутствовать в таблице маршрутизации. Чтобы его добавить достаточно перезагрузить LSP конфигурацию.

root@GW1:~# service networking restart

root@GW1:~# lsp_mgr reload

В приложении представлен текст настроек /etc/network/interfaces, /etc/network/if-pre-up.d/pbr,/etc/network/if-up.d/pbr и /etc/network/if-post-down.d/pbr для шлюза GW3.

 


 

Проверка работоспособности стенда

После того, как настройка всех устройств завершена, инициируйте создание защищенного соединения.

На устройстве Host3 выполните команду ping:

root@Host3:~#  ping -c 5 192.168.2.100

PING 192.168.3.100 (192.168.3.100) 56(84) bytes of data.

64 bytes from 192.168.2.100: icmp_req=1 ttl=61 time=1519 ms

64 bytes from 192.168.2.100: icmp_req=2 ttl=61 time=513 ms

64 bytes from 192.168.2.100: icmp_req=3 ttl=61 time=0.891 ms

64 bytes from 192.168.2.100: icmp_req=4 ttl=61 time=0.812 ms

64 bytes from 192.168.2.100: icmp_req=5 ttl=61 time=0.795 ms

 

--- 192.168.3.100 ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 4008ms

rtt min/avg/max/mdev = 0.795/407.025/1519.419/590.538 ms, pipe 2

В результате выполнения этой команды между устройствами GW1 и GW2, а также GW1 и GW3 будут установлены VPN туннели.

Убедиться в этом можно, выполнив на устройстве GW1 команду:

root@GW1:~# sa_mgr show

ISAKMP sessions: 0 initiated, 0 responded

 

ISAKMP connections:

Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd

1 1 (10.1.1.2,500)-(10.1.3.2,500) active 1668 1760

2 2 (10.1.1.2,500)-(10.1.2.2,500) active 1760 1668

 

IPsec connections:

Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd

1 1 (192.168.2.0-192.168.2.255,*)-(192.168.3.0-192.168.3.255,*) * ESP tunn 440 440

2 2 (192.168.3.0-192.168.3.255,*)-(192.168.2.0-192.168.2.255,*) * ESP tunn 440 440

Также на устройстве GW1 можно выполнить команду tcpdump на интерфейсе eth0 и отправить ping на устройстве Host3 устройству Host4:

root@GW1:~# tcpdump -i eth0 -n host 192.168.3.100 and host 192.168.4.100

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

11:51:16.172952 IP 192.168.3.100 > 192.168.4.100: ICMP echo request, id 819, seq 1, length 64

11:51:16.173142 IP 192.168.3.100 > 192.168.4.100: ICMP echo request, id 819, seq 1, length 64

11:51:16.174463 IP 192.168.4.100 > 192.168.3.100: ICMP echo reply, id 819, seq 1, length 64

11:51:16.174585 IP 192.168.4.100 > 192.168.3.100: ICMP echo reply, id 819, seq 1, length 64

11:51:17.174981 IP 192.168.3.100 > 192.168.4.100: ICMP echo request, id 819, seq 2, length 64

11:51:17.175101 IP 192.168.3.100 > 192.168.4.100: ICMP echo request, id 819, seq 2, length 64

11:51:17.176241 IP 192.168.4.100 > 192.168.3.100: ICMP echo reply, id 819, seq 2, length 64

11:51:17.176309 IP 192.168.4.100 > 192.168.3.100: ICMP echo reply, id 819, seq 2, length 64

11:51:18.176919 IP 192.168.3.100 > 192.168.4.100: ICMP echo request, id 819, seq 3, length 64

11:51:18.177097 IP 192.168.3.100 > 192.168.4.100: ICMP echo request, id 819, seq 3, length 64

11:51:18.178212 IP 192.168.4.100 > 192.168.3.100: ICMP echo reply, id 819, seq 3, length 64

11:51:18.178352 IP 192.168.4.100 > 192.168.3.100: ICMP echo reply, id 819, seq 3, length 64

11:51:19.178948 IP 192.168.3.100 > 192.168.4.100: ICMP echo request, id 819, seq 4, length 64

11:51:19.179124 IP 192.168.3.100 > 192.168.4.100: ICMP echo request, id 819, seq 4, length 64

11:51:19.180902 IP 192.168.4.100 > 192.168.3.100: ICMP echo reply, id 819, seq 4, length 64

11:51:19.181036 IP 192.168.4.100 > 192.168.3.100: ICMP echo reply, id 819, seq 4, length 64

11:51:20.180487 IP 192.168.3.100 > 192.168.4.100: ICMP echo request, id 819, seq 5, length 64

11:51:20.180652 IP 192.168.3.100 > 192.168.4.100: ICMP echo request, id 819, seq 5, length 64

11:51:20.181766 IP 192.168.4.100 > 192.168.3.100: ICMP echo reply, id 819, seq 5, length 64

11:51:20.181892 IP 192.168.4.100 > 192.168.3.100: ICMP echo reply, id 819, seq 5, length 64

На каждый ping мы видим по два echo request и echo reply. Это объясняется тем, что пакет сначала передается устройству Traffic_Inspection, а потом Traffic_Inspection отправляет его обратно шлюзу GW1.

Выявление ошибок

Чтобы разобраться на каком этапе возникла ошибка можно воспользоваться руководством, которое представлено на портале документации: http://doc.s-terra.ru/rh_output/4.2/Scenarios/output/mergedProjects/1main/ver_4_2_troubleshooting_guide.pdf.


 

Приложение

Устройство Traffic_Inspection

Сетевые настройки

Содержимое файла /etc/network/interfaces:

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

 

source /etc/network/interfaces.d/*

 

# The loopback network interface

auto lo

iface lo inet loopback

 

# The primary network interface

auto ens32

iface ens32 inet static

address 192.168.1.1

netmask 255.255.255.0

 

# The primary network interface

auto ens34

iface ens34 inet static

address 172.16.0.2

netmask 255.255.255.0

gateway 172.16.0.1

Устройство Host3

Сетевые настройки

Содержимое файла /etc/network/interfaces:

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

 

source /etc/network/interfaces.d/*

 

# The loopback network interface

auto lo

iface lo inet loopback

 

# The primary network interface

auto ens32.10

iface ens32.10 inet static

address 192.168.3.100

netmask 255.255.255.0

gateway 192.168.3.1

Устройство Host4

Сетевые настройки

Содержимое файла /etc/network/interfaces:

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

 

source /etc/network/interfaces.d/*

 

# The loopback network interface

auto lo

iface lo inet loopback

 

# The primary network interface

auto ens32.11

iface ens32.11 inet static

address 192.168.4.100

netmask 255.255.255.0

gateway 192.168.4.1

Устройство GW1

Текст cisco-like конфигурации

!

version 12.4

no service password-encryption

!

crypto ipsec df-bit copy

crypto isakmp identity dn

crypto isakmp keepalive 10

crypto isakmp keepalive retry-count 5

username cscons privilege 15 password 0 csp

aaa new-model

!

!

hostname GW1

enable password csp

!

!

!

!

!

crypto isakmp policy 1

 encr gost

 hash gost341112-256-tc26

 authentication gost-sig

 group vko2

!

crypto ipsec transform-set TSET esp-gost28147-4m-imit

!

ip access-list extended LIST

 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

 permit ip 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255

 permit ip 192.168.4.0 0.0.0.255 192.168.2.0 0.0.0.255

!

ip access-list extended LIST2

 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255

 permit ip 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255

 permit ip 192.168.4.0 0.0.0.255 192.168.3.0 0.0.0.255

 permit ip 192.168.1.0 0.0.0.255 192.168.4.0 0.0.0.255

 permit ip 192.168.2.0 0.0.0.255 192.168.4.0 0.0.0.255

 permit ip 192.168.3.0 0.0.0.255 192.168.4.0 0.0.0.255

!

!

crypto map CMAP 1 ipsec-isakmp

 match address LIST

 set transform-set TSET

 set peer 10.1.2.2

crypto map CMAP 2 ipsec-isakmp

 match address LIST2

 set transform-set TSET

 set peer 10.1.3.2

!

interface GigabitEthernet0/0

 ip address 172.16.0.1 255.255.255.0

!

interface GigabitEthernet0/1

 ip address 10.1.1.2 255.255.255.0

 crypto map CMAP

!

!

ip route 0.0.0.0 0.0.0.0 10.1.1.1

ip route 192.168.1.0 255.255.255.0 172.16.0.2

!

crypto pki trustpoint s-terra_technological_trustpoint

 revocation-check none

...

quit

!

end

 

Сетевые настройки

Содержимое файла /etc/network/if-pre-up.d/pbr:

#!/bin/bash

 

INPUT_WAN_IFACE="eth1"

TABLE_ID="100"

PRIO="100"

RULE="from all iif $INPUT_WAN_IFACE lookup $TABLE_ID pref $PRIO"

 

if [[ $IFACE == $INPUT_WAN_IFACE ]]; then

    ip rule del $RULE 2>/dev/null || true

    ip rule add $RULE

fi

 

exit 0

Содержимое файла /etc/network/if-up.d/pbr:

#!/bin/bash

 

NEXTHOP_ADDRESS="172.16.0.2"

OUTPUT_LAN_IFACE="eth0"

TABLE_ID="100"

 

if [[ $IFACE == "$OUTPUT_LAN_IFACE" ]]; then

    ip route add default via "$NEXTHOP_ADDRESS" dev "$OUTPUT_LAN_IFACE" table $TABLE_ID

fi

exit 0

Содержимое файла /etc/network/if-post-down.d/pbr:

#!/bin/bash

 

INPUT_WAN_IFACE="eth1"

TABLE_ID="100"

PRIO="100"

RULE="from all iif $PBR_INPUT_IFACE lookup $TABLE_ID pref $PRIO"

 

if [[ $IFACE == $PBR_INPUT_IFACE ]]; then

    ip rule del $RULE 2>/dev/null || true

fi

 

exit 0

Устройство GW2

Текст cisco-like конфигурации

!

version 12.4

no service password-encryption

!

crypto ipsec df-bit copy

crypto isakmp identity dn

crypto isakmp keepalive 10

crypto isakmp keepalive retry-count 5

username cscons privilege 15 password 0 csp

aaa new-model

!

!

hostname GW2

enable password csp

!

!

!

!

!

crypto isakmp policy 1

 encr gost

 hash gost341112-256-tc26

 authentication gost-sig

 group vko2

!

crypto ipsec transform-set TSET esp-gost28147-4m-imit

!

ip access-list extended LIST

 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255

 permit ip 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255

 permit ip 192.168.2.0 0.0.0.255 192.168.4.0 0.0.0.255

!

!

crypto map CMAP 1 ipsec-isakmp

 match address LIST

 set transform-set TSET

 set peer 10.1.1.2

!

interface GigabitEthernet0/0

 ip address 192.168.2.1 255.255.255.0

!

interface GigabitEthernet0/1

 ip address 10.1.2.2 255.255.255.0

 crypto map CMAP

!

interface GigabitEthernet0/2

 no ip address

 shutdown

!

interface GigabitEthernet0/3

 no ip address

 shutdown

!

!

ip route 0.0.0.0 0.0.0.0 10.1.2.1

!

crypto pki trustpoint s-terra_technological_trustpoint

 revocation-check none

...

quit

!

end

Устройство GW3

Текст cisco-like конфигурации

!

version 12.4

no service password-encryption

!

crypto ipsec df-bit copy

crypto isakmp identity dn

crypto isakmp keepalive 10

crypto isakmp keepalive retry-count 5

username cscons privilege 15 password 0 csp

aaa new-model

!

!

hostname GW3

enable password csp

!

!

!

!

!

crypto isakmp policy 1

 encr gost

 hash gost341112-256-tc26

 authentication gost-sig

 group vko2

!

crypto ipsec transform-set TSET esp-gost28147-4m-imit

!

ip access-list extended LIST

 permit ip 192.168.3.0 0.0.0.255 192.168.1.0 0.0.0.255

 permit ip 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255

 permit ip 192.168.3.0 0.0.0.255 192.168.4.0 0.0.0.255

 permit ip 192.168.4.0 0.0.0.255 192.168.1.0 0.0.0.255

 permit ip 192.168.4.0 0.0.0.255 192.168.2.0 0.0.0.255

 permit ip 192.168.4.0 0.0.0.255 192.168.3.0 0.0.0.255

!

!

crypto map CMAP 1 ipsec-isakmp

 match address LIST

 set transform-set TSET

 set peer 10.1.1.2

!

interface GigabitEthernet0/0

 no ip address

!

interface GigabitEthernet0/1

 ip address 10.1.3.2 255.255.255.0

 crypto map CMAP

!

!

ip route 0.0.0.0 0.0.0.0 10.1.3.1

!

crypto pki trustpoint s-terra_technological_trustpoint

 revocation-check none

...

 

quit

!

end

 

Сетевые настройки

Содержимое файла /etc/network/interfaces:

############################################################

# CAUTION: lines under special marker: ###netifcfg-*###

# contains autogenerated information. You can add/modify

# lines outside of those markers

############################################################

 

# loopback configuration

auto lo

iface lo inet loopback

 

auto eth0.10

iface eth1.10 inet static

address 192.168.3.1

netmask 255.255.255.0

 

auto eth0.11

iface eth1.11 inet static

address 192.168.4.1

netmask 255.255.255.0

 

###netifcfg-begin###

iface eth0 inet static

mtu 1500

iface eth1 inet static

mtu 1500

address 10.1.3.2

netmask 255.255.255.0

broadcast 10.1.3.255

###netifcfg-end###

Содержимое файла /etc/network/if-pre-up.d/pbr:

#!/bin/bash

 

INPUT_VLAN_10_IFACE="eth0.10"

INPUT_VLAN_11_IFACE="eth0.11"

TABLE_ID="100"

PRIO="100"

RULE_VLAN_10="from all iif $INPUT_VLAN_10_IFACE lookup $TABLE_ID pref $PRIO"

RULE_VLAN_11="from all iif $INPUT_VLAN_11_IFACE lookup $TABLE_ID pref $PRIO"

 

if [[ $IFACE == $INPUT_VLAN_10_IFACE ]]; then

    ip rule del $RULE_VLAN_10 2>/dev/null || true

    ip rule add $RULE_VLAN_10

fi

 

if [[ $IFACE == $INPUT_VLAN_11_IFACE ]]; then

    ip rule del $RULE_VLAN_11 2>/dev/null || true

    ip rule add $RULE_VLAN_11

fi

 

exit 0

Содержимое файла /etc/network/if-up.d/pbr:

#!/bin/bash

 

NEXTHOP_ADDRESS="10.1.3.1"

OUTPUT_LAN_IFACE="eth1"

TABLE_ID="100"

 

if [[ $IFACE == "eth0" ]]; then

    ip route add default via "$NEXTHOP_ADDRESS" dev "$OUTPUT_LAN_IFACE" table $TABLE_ID

fi

exit 0

Содержимое файла /etc/network/if-post-down.d/pbr:

#!/bin/bash

 

INPUT_VLAN_10_IFACE="eth0.10"

INPUT_VLAN_11_IFACE="eth0.11"

TABLE_ID="100"

PRIO"=100"

RULE_VLAN_10="from all iif $INPUT_VLAN_10_IFACE lookup $TABLE_ID pref $PRIO"

RULE_VLAN_11="from all iif $INPUT_VLAN_11_IFACE lookup $TABLE_ID pref $PRIO"

 

if [[ $IFACE == $INPUT_VLAN_10_IFACE ]]; then

    ip rule del $RULE_VLAN_10 2>/dev/null || true

fi

 

if [[ $IFACE == $INPUT_VLAN_11_IFACE ]]; then

    ip rule del $RULE_VLAN_11 2>/dev/null || true

fi

 

exit 0