Интерфейсы GRE являются виртуальными сетевыми интерфейсами. Данные интерфейсы работают в соответствии со стандартом RFC 1701.
Примечание. В сценарии GRE over IPsec при использовании динамических протоколов маршрутизации, например OSPF, в случае сбоя создаются условия для утечки конфиденциальной информации. Чтобы избежать утечки, необходимо на сетевых интерфейсах из недоверенного сегмента заблокировать при помощи МЭ тот трафик, который должен быть инкапсулирован в GRE (трафик защищаемых подсетей). При невыполнении данной рекомендации утечка произойдет в том случае, если нарушится работа динамического протокола маршрутизации и маршрут через GRE интерфейс будет удален. В этом случае трафик не будет инкапсулирован в GRE и, следовательно, не попадет под фильтр шифрования, который в данном сценарии, как правило, настраивается только на GRE.
Точка-точка (point-to-point) GRE интерфейсы описываются в файлах /etc/network/interfaces.d/greN, а точка-многоточка (point-to-multipoint) в файлах /etc/network/interfaces.d/mgreN.
Примечание. Cisco-like консоль не поддерживает изменение сетевых параметров (MTU/IP адрес/состояние) для GRE интерфейсов.
Примечание. Если настройка интерфейсов выполняется в файлах в директории /etc/network/interfaces.d/, то в файле /etc/network/interfaces должна быть ссылка на указанную директорию вида:
source-directory /etc/network/interfaces.d
Создание point-to-point GRE интерфейса
Примечание. Использовать в качестве имени GRE интерфейса gre0 запрещено, так как gre0 используется для внутренних нужд драйвера GRE.
1. Отредактируйте файл /etc/network/interfaces.d/gre1, добавив в него описание для point-to-point GRE интерфейса, например:
root@sterragate:~# vim.tiny /etc/network/interfaces.d/gre1
auto gre1
iface gre1 inet static
address 10.10.10.1
netmask 255.255.255.0
pre-up ip tunnel add gre1 mode gre local 1.1.1.1 remote 2.2.2.2 ttl 64 tos inherit
pre-up ip link set gre1 mtu 1400
pre-up ip link set gre1 multicast on
post-down ip link del gre1
Если нужно изменить MSS для TCP, то добавьте команду (требуется для случаев, когда защищаемые устройства не поддерживают PMTUD или у них заблокирован протокол ICMP):
pre-up iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1360
2. Чтобы GRE интерфейс gre1 появился в системе, выполните команду ifup gre1, после чего убедитесь, что данный интерфейс действительно доступен в системе:
root@sterragate:~# ifup gre1
root@sterragate:~# ip address show gre1
135: gre1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc noqueue state UNKNOWN
link/gre 1.1.1.1 peer 2.2.2.2
inet 10.10.10.1/24 brd 10.10.10.255 scope global gre1
Видно, что GRE интерфейс gre1 присутствует в системе и сконфигурирован.
3. Добавьте GRE интерфейс gre1 в файл /etc/ifaliases.cf:
root@sterragate:~# cat /etc/ifaliases.cf
interface (name="GigabitEthernet0/0" pattern="eth0")
interface (name="GigabitEthernet0/1" pattern="eth1")
interface (name="GigabitEthernet0/2" pattern="eth2")
interface (name="Tunnel1" pattern="gre1")
interface (name="default" pattern="*")
· значение параметра name должно быть задано в виде TunnelN.
· значение параметра pattern должно соответствовать имени GRE интерфейса в нотации Linux.
4. Пересчитайте контрольную сумму файлa /etc/ifaliases.cf:
root@sterragate:~# integr_mgr calc -f /etc/ifaliases.cf
SUCCESS: Operation was successful.
5. Перезапустите VPN сервис:
root@sterragate:~# service vpngate restart
Теперь интерфейс Tunnel1 должен быть доступен к заданию политики СКЗИ и правил МЭ посредством сisco-like консоли и LSP, а также к конфигурированию средствами ОС.
Для сценария IPsec over GRE политика прикрепляется непосредственно на GRE интерфейс, для сценария GRE over IPsec политика СКЗИ должна быть привязана к тому интерфейсу, через который маршрутизируются пакеты с данного GRE интерфейса.
Создание point-to-multipoint GRE интерфейса описано в сценарии «Настройка DMVPN (phase 2) dual cloud с протоколом динамической маршрутизации iBGP» (doc.s-terra.ru, Примеры дополнительных возможностей).