IPv6 over IPv6

Внимание!

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

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

Ниже описан пример создания point-to-point GRE IPv6 over IPv6 интерфейса. 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 inet6 static

address 2001:db8::10:10:10:1/112

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

pre-up ip tunnel add gre1 mode ip6gre key 1 ttl 64 tos inherit remote 2001:db8::172:16:100:2

pre-up ip link set gre1 mtu 1400

pre-up ip link set gre1 multicast on

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

post-down ip link del gre1

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

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

root@sterragate:~# ifup gre1

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

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

    link/gre6 :: brd 2001:db8::172:16:100:2 permaddr f289:e792:f673:: promiscuity 0  allmulti 0 minmtu 0 maxmtu 0

    ip6gre remote 2001:db8::172:16:100:2 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

 

root@sterragate:~# ip add show dev gre1

14: gre1@NONE: <MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc noqueue state UNKNOWN group default qlen 10000

    link/gre6 :: brd 2001:db8::172:16:100:2 permaddr f289:e792:f673::

    inet6 2001:db8::10:10:10:1/112 scope global

       valid_lft forever preferred_lft forever

    inet6 fe80::c0a8:6401/64 scope link

       valid_lft forever preferred_lft forever

    inet6 fe80::ac10:6402/64 scope link

       valid_lft forever preferred_lft forever

    inet6 fe80::7f00:1/64 scope host

       valid_lft forever preferred_lft forever

Внимание!

Наличие нескольких link-local адресов на GRE интерфейсе является известной особенностью и не является проблемой.

Вывод свидетельствует о том, что 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 сервис.