IPv4 over IPv4
Пример создания GRE-интерфейса:
Ниже описан пример создания point-to-point GRE IPv4 over IPv4 интерфейса. Point-to-point GRE интерфейсы описываются в файлах /etc/network/interfaces.d/greN.
Внимание! |
Cisco-like консоль не поддерживает изменение параметров GRE интерфейса, созданного через консоль Linux. |
1. Отредактируйте файл /etc/network/interfaces.d/gre1, добавив в него описание для point-to-point GRE интерфейса, например:
Внимание! |
Использовать в качестве имени GRE интерфейса gre0 запрещено, так как gre0 используется для внутренних нужд драйвера GRE. В имени 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 link del gre1 2> /dev/null || true
pre-up ip tunnel add gre1 mode gre local 172.16.100.2 remote 172.16.1.2 ttl 64 tos inherit key 1
pre-up ip link set gre1 mtu 1400
pre-up ip link set gre1 multicast on
pre-up ip link set gre1 type gre nopmtudisc
pre-up ip link set gre1 type gre ignore-df
post-down ip link del gre1
• Если в строке «pre-up ip tunnel add gre1 mode gre …» не указан параметр local <IP>, то source адрес будет выбран в соответствии с таблицей маршрутизации (на основании адреса в src маршрута до адреса в remote, можно воспользоваться командой ip route get <адрес в remote> для выяснения source адреса).
• Перечисленные ниже параметры отключают работу PMTUd и копирование DF бита на GRE интерфейсах (это нужно для увеличения вероятности прохождения трафика, в случае его последующего шифрования):
pre-up ip link set gre1 type gre nopmtudisc
pre-up ip link set gre1 type gre ignore-df
2. Для того, чтобы GRE интерфейс gre1 появился в системе, выполните команду ifup gre1, после чего убедитесь, что данный интерфейс действительно доступен в системе:
root@sterragate:~# ifup gre1
Внимание! |
Если команда ifup завершилась с ошибкой, то ее можно запустить повторно с флагом –v для локализации проблемы, например: ifup –v <iface>. |
root@sterragate:~# ip -d link show dev gre1
20: gre1@NONE: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 10000
link/gre 172.16.100.2 peer 172.16.1.2 promiscuity 0 allmulti 0 minmtu 68 maxmtu 65507
gre remote 172.16.1.2 local 172.16.100.2 ttl 64 tos inherit nopmtudisc ignore-df ikey 0.0.0.1 okey 0.0.0.1 addrgenmode random numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 tso_max_size 65536 tso_max_segs 65535 gro_max_size 65536
Вывод свидетельствует о том, что GRE интерфейс gre1 присутствует в системе и сконфигурирован.
3. Добавьте GRE интерфейс gre1 в файл /etc/ifaliases.cf (выделено жирным):
root@sterragate:~# vim.tiny /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:~# systemctl restart vpngate.service
Теперь интерфейс Tunnel1 должен быть доступен к заданию политики СКЗИ и правил МЭ при помощи консоли сisco-like и LSP, а также к конфигурированию средствами ОС.
Для сценария IPsec over GRE (IPsec внутри GRE) политика прикрепляется непосредственно на GRE интерфейс, для сценария GRE over IPsec (GRE внутри IPsec) политика СКЗИ должна быть прикреплена к тому WAN интерфейсу, через который будут маршрутизироваться GRE пакеты c GRE интерфейса.
Изменение параметров GRE-интерфейса:
Выключите интерфейс ifdown greN, отредактируйте файл конфигурации /etc/network/interfaces.d/greN и включите интерфейс ifup greN.
Удаление GRE-интерфейса:
Для удаления интерфейса нужно выключить интерфейс ifdown greN, удалить файл конфигурации /etc/network/interfaces.d/greN, и удалить соответствующую строчку из /etc/ifaliases.cf (пересчитав контрольную сумму), после чего перезапустить VPN сервис.