IPv4 over IPv6

Внимание!

Для «С-Терра Шлюз» в виртуализированном исполнении тип сетевого адаптера виртуальной машины должен быть vmxnet3. При использовании другого типа адаптера\драйвера будут портиться IPv6 пакеты.

Пример создания GRE-интерфейса:

Ниже описан пример создания point-to-multipoint GRE IPv4 over IPv6 интерфейса. Point-to-multipoint GRE интерфейсы описываются в файлах /etc/network/interfaces.d/mgreN.

Внимание!

Cisco-like консоль не поддерживает изменение параметров GRE интерфейса, созданного через консоль Linux.

1.    Отредактируйте файл /etc/network/interfaces.d/mgre0, добавив в него описание для point-to-multipoint GRE интерфейса, например:

root@sterragate:~# vim.tiny /etc/network/interfaces.d/mgre0

auto mgre0

iface mgre0 inet static

address 10.10.10.1/24

pre-up ip link del mgre0 2> /dev/null || true

pre-up ip tunnel add mgre0 mode ip6gre key 1 ttl 64 tos inherit

pre-up ip link set mgre0 mtu 1400

pre-up ip link set mgre0 multicast on

post-up ethtool -K mgre0 tx-checksumming off > /dev/null

post-down ip link del mgre0

•      В point-to-multipoint GRE в строке «pre-up ip tunnel add mgre0 mode ip6gre …» параметр remote не задается, remote адрес будет получен по протоколу NHRP.

•      Если в строке «pre-up ip tunnel add mgre0 mode ip6gre …» не указан параметр local <IP>, то source адрес будет выбран на основании маршрутной информации до remote адреса, который будет получен по протоколу NHRP (зная этот адрес можно воспользоваться командой run ip route get <адрес> для выяснения source адреса).

2.    Для того, чтобы GRE интерфейс mgre0 появился в системе, выполните команду ifup mgre0, после чего убедитесь, что данный интерфейс действительно доступен в системе:

root@sterragate:~# ifup mgre0

root@sterragate:~# ip -d link show dev mgre0

11: mgre0@NONE: <MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 10000

    link/gre6 :: brd :: permaddr 2a47:d421:b463:: promiscuity 0  allmulti 0 minmtu 0 maxmtu 0

    ip6gre remote any local any hoplimit 64 encaplimit 4 tclass inherit flowlabel 0x00000 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 интерфейс mgre0 присутствует в системе и сконфигурирован.

3.    Добавьте GRE интерфейс mgre0 в файл /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="Tunnel0" pattern="mgre0")

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

Теперь интерфейс Tunnel0 должен быть доступен к заданию политики СКЗИ и правил МЭ при помощи консоли сisco-like и LSP, а также к конфигурированию средствами ОС.

Для сценария IPsec over GRE (IPsec внутри GRE) политика прикрепляется непосредственно на GRE интерфейс, для сценария GRE over IPsec (GRE внутри IPsec) политика СКЗИ должна быть прикреплена к тому WAN интерфейсу, через который будут маршрутизироваться GRE пакеты c GRE интерфейса.

 

Изменение параметров GRE-интерфейса:

Выключите интерфейс ifdown mgreN, отредактируйте файл конфигурации /etc/network/interfaces.d/mgreN и включите интерфейс ifup mgreN.

 

Удаление GRE-интерфейса:

Для удаления интерфейса нужно выключить интерфейс ifdown mgreN, удалить файл конфигурации /etc/network/interfaces.d/mgreN, и удалить соответствующую строчку из /etc/ifaliases.cf (пересчитав контрольную сумму), после чего перезапустить VPN сервис.