Gre tunnel linux centos

Содержание
  1. Gre tunnel linux centos
  2. How to setup GRE tunnel in CentOS 7 linux
  3. 1- Prerequisites
  4. 2- Setup tunnel
  5. 3- Configure firewall
  6. 4- Test connectivity
  7. 5- Remove tunnel
  8. 2 thoughts on “ How to setup GRE tunnel in CentOS 7 linux ”
  9. Настройка VPN сервера (GRE/IPSec StrongSwan, OSPF Quagga)
  10. Настройка файрвола и роутинга
  11. Настройка StrongSwan
  12. Старый способ, использующий демон strongswan, уже достаточно хорошо описан:
  13. Новый способ, использующий демон charon, появившийся в версии 5.2.0:
  14. Одинаковые настройки аутентификации и шифрования для всех. Сделаем разными только PSK:
  15. Индивидуальные настройки аутентификации и шифрования:
  16. Поднятие туннелей с маршрутизаторами Cisco
  17. Настраиваем GRE-туннели в CentOS
  18. Создаем туннель на Cisco 2951
  19. Создаем туннель на Cisco CSR1000V
  20. Настройка динамической маршрутизации на Quagga
  21. Настройка OSPF на CentOS
  22. Настройка OSPF на Cisco 2951
  23. Настройка OSPF на Cisco CSR1000V
  24. Что осталось нерассмотренным
  25. Gre tunnel linux centos
  26. Что такое GRE туннель?
  27. Как происходит инкапсуляции заголовка GRE в IP-пакет?
  28. Настройка GRE туннелей в Debian GNU/Linux
  29. How to Establish a GRE Tunnel Between Two CentOS 7 Servers
  30. Introduction
  31. What is GRE? What are some advantages?
  32. How does it work?
  33. Prerequisites and Configuring Both Endpoints
  34. What you’ll need to set a GRE tunnel up
  35. Configuring Endpoint A
  36. Configuring Endpoint B
  37. Testing the tunnels
  38. Conclusion
  39. Организация GRE-туннеля в RHEL/CentOS

Gre tunnel linux centos

Linux » Networking » How to setup GRE tunnel in CentOS 7 linux

How to setup GRE tunnel in CentOS 7 linux

In today article, we want to show how to setup GRE tunnel in CentOS 7 linux.

as you may know, GRE stands for generic routing protocol, created by Cisco and is a tunneling protocol that can encapsulate a wide variety of network layer protocols inside virtual point-to-point links or point-to-multipoint links over an Internet Protocol network.

Here is our environment:

OS: Centos 7 linux on VMWare
Firewall: CSF
SElinux: enforcing

Endpoint A:
local/internal IP: 10.10.10.1
public IP: 192.168.2.128

Endpoint B:
local/internal IP: 10.10.10.2
public IP: 192.168.2.129

1- Prerequisites

to set up gre tunnel and allow handle it by linux, related module needs to be loaded. so load it by running:

then check if it’s loaded correctly:

to automatically load this module on startup, create a file named tun.conf under /etc/modules-load.d and put the following line in it:

2- Setup tunnel

for setting up tunnel, we must create an interface on each endpoint. so run this commands on endpoint A:

and put these lines in it:

then create an interface on endpoint B:

and also put these lines in it:

now bring up two tunnel interfaces by running this command on both endpoint A and B:

3- Configure firewall

here we use csf as our firewall. so to allow gre traffic pass through these endpoints, we just need to whitelist both endpoints IPs.
so add public IP of endpoint B to endpoint A and vice versa. on endpoint A:

also we should allow gre traffic. run this commnad:

then put these lines in it:

then reload csf:

and on endpoint B:

again we should allow gre traffic. run this commnad:

then put these lines in it:

then reload csf:

if you use firewalld as your centos 7 firewall, run these command to allow gre traffic:
on endpoint A:

and on endpoint B:

4- Test connectivity

now it’s time to test connectivity. on endpoint A:

and on endpoint B:

if ping responses successfully, this means that our gre tunnel is working properly. if not, first disable firewall and test again and if problem persists, you should investigate your routing table to see where packets destined for our tunnel goes.

Читайте также:  Как найти разделы linux

5- Remove tunnel

at any time, if you decided to remove tunnel, just bring down tunnel interface and remove related file on both endpoints:

2 thoughts on “ How to setup GRE tunnel in CentOS 7 linux ”

Dear Hector,
How can I share endpoint A internet to endpoint B on this tunnel?

Thank you in advance

dear abdali, what’s your goal totally and does your both servers have internet access?

Источник

Настройка VPN сервера (GRE/IPSec StrongSwan, OSPF Quagga)

Кто бы мог подумать, что развернуть часть серверов компании в Amazon было плохой идеей.

В итоге поставленная задача — сделать дополнительный VPN-туннель между Amazon и инфраструктурой в РФ.

Кроме простого how-to опишу несколько особенностей в настройке, с которыми можно столкнуться.

Настройка файрвола и роутинга

Покупаем у пока еще не заблокированного хостера VPS за сумму, эквивалентную 10 000 монгольских тугриков в месяц, ставим CentOS 7, включаем пересылку пакетов

Добавляем в файрволе правила для приема пакетов IPsec

Настройка StrongSwan

Устанавливаем демон IPsec StrongSwan:

Делаем предварительные настройки в /etc/strongswan.d/charon.conf:

Настройка Strongswan может быть проведена двумя способами.

Старый способ, использующий демон strongswan, уже достаточно хорошо описан:

Файл с паролями и сертификатами:

Новый способ, использующий демон charon, появившийся в версии 5.2.0:

Вся конфигурация хранится в /etc/strongswan/swanctl/swanctl.conf

Рассмотрим два варианта настройки демона charon:

Одинаковые настройки аутентификации и шифрования для всех. Сделаем разными только PSK:

Индивидуальные настройки аутентификации и шифрования:

Поднятие туннелей с маршрутизаторами Cisco

Настраиваем GRE-туннели в CentOS

В настройке GRE-интерфейсов есть пара особенностей.

Первая — необходимо уменьшить MTU для корректного прохождения пакетов.

Второе — указать TTL, это понадобится в будущем, когда будем настраивать OSPF. Если этого не сделать, пакеты OSPF будут приходить на удаленный хост с TTL, равным единице (из-за GRE over IPsec), оставаясь без ответа. Соответственно устройства будут висеть в состоянии INIT/DROTHER, связности мы не дождемся. При этом корректные ответы ICMP могут сбить с толку.

Создаем туннель на Cisco 2951

Создаем туннель на Cisco CSR1000V

Проверяем, что туннели поднялись, шифрование работает.

Настройка динамической маршрутизации на Quagga

Если вы используете динамическую маршрутизацию на основе OSPF, то следующим шагом логично было бы поднять демон OSPF на CentOS, настроив новые туннели в качестве резервного маршрута.

Настройка OSPF на CentOS

В качестве демона установим Quagga:

Создаем конфигурационный файл демона /etc/quagga/zebra.conf

Вес пути можно регулировать параметрами cost либо bandwidth, устанавливая их на нужных интерфейсах.

Устанавливаем права и включаем службу

Создаем конфигурационный файл демона /etc/quagga/ospfd.conf

Устанавливаем права и включаем службу

Далее можем запустить терминал vtysh и работать с Quagga в циско-подобном интерфейсе, например:

Настройка OSPF на Cisco 2951

Настройка OSPF на Cisco CSR1000V

Проверяем видимость соседей и пришедшие маршруты на CentOS:

Что осталось нерассмотренным

Я описал самый простой вариант. Конечно же, вы настроите обмен ключами, используя IKE v2, авторизацию по сертификату, добавите в файрвол дополнительную фильтрацию по адресам, сделаете OSPF с авторизацией и, при большом количестве маршрутизаторов, с разделением на area, измените значения hello-interval и dead-interval на интерфейсах.

Буду рад советам в комментариях, а информации об опечатках — в личку. Спасибо за внимание.

Источник

Gre tunnel linux centos

GRE (Generic Routing Encapsulation — общая инкапсуляция маршрутов) — протокол туннелирования сетевых пакетов, разработанный компанией CISCO Systems. Его основное назначение — инкапсуляция пакетов сетевого уровня сетевой модели OSI в IP пакеты. Номер протокола в IP — 47.

Читайте также:  Qiwi приложение для windows

Что такое GRE туннель?

GRE туннель представляет собой соединение точка — точка, его можно считать одной из разновидностей VPN туннеля, без шифрования. Основное достоинство GRE это возможность передавать широковещательный трафик, что позволяет пропускать через такой туннель протоколы маршрутизации использующие его, IPSec — протокол защиты сетевого трафика на IP-уровне туннели в чистом виде этого не могут. Причин для организации GRE туннеля может быть множество от банальной необходимости пробросить свою сеть через чужое IP пространство до использования протоколов OSPF, RIPv2, EGRP совместно с IPSec. Так же GRE, в отличии от IPIP, может помочь пробросить немаршрутизируюмые протоколы, такие как NetBios, IPX, AppleTalk.

Различия между туннель GRE или IPIP:

Туннелирование увеличивает нагрузку на систему и сеть, потому что добавляются дополнительные IP-заголовки. Таким образом, если обычный размер пакета (MTU) в сети равен 1500 байтам, то при пересылке по туннелю, пакет будет меньше, 1476 байт для GRE и 1480 байт для IPIP. Задать MTU можно вручную или с помощью PMTUD (path MTU discovery). Основная проблема в ручной настройке MTU и/или MSS состоит в том, что по пути между вашими площадками может оказаться линк с MTU, скажем, 1300. Тут на помощь может прийти PMTUD. Протокол целиком и полностью полагается на ICMP протокол диагностики перегрузки сети unreachable messages, которые должны быть разрешены на всем пути между соседями. Cisco рекомендует устанавливать MTU в 1400 байт вне зависимости от того работает GRE поверх IPSec в туннельном или в транспортном режиме.

Туннелирование подразумевает три протокола:

Как происходит инкапсуляции заголовка GRE в IP-пакет?

GRE-заголовок накладывается «поверх» стандартного IP-пакета. При этом в самом GRE-заголовке содержится так называемый Tunnel IP Header. Именно в нем содержится информация о tunnel source и tunnel destination.

Данные адреса вкладываются в основной пакет, когда он отправляется в публичную сеть. В поле Control Information оригинального IP-пакета содержатся исходные IP-адреса источника и назначения. Таким образом, локальные серые IP-адреса скрыты в пакете, а в маршрутизации участвуют только те адреса которые мы указали в tunnel source и tunnel destination. При передаче пакета в локальную сеть GRE-заголовок отбрасывается и остается «чистый» IP-пакет.

Настройка GRE туннелей в Debian GNU/Linux

Настройка GRE туннелей в FAQ Debian и Хостинг VPS/VDS на Ubuntu одинаковы. Имеется 2 удаленных сервера Debian 7.8 Wheezy с реальными статическими IP адресами.

То же самое только через файл /etc/network/interfaces

В файл /etc/network/interfaces это будет выгладить так

Ниже рабочий пример для ping из локальной сети

Источник

How to Establish a GRE Tunnel Between Two CentOS 7 Servers

Introduction

What is GRE? What are some advantages?

GRE stands for Generic Routing Encapsulation, which allows two servers to communicate privately. GRE tunnels are useful as they allow all types of traffic to go through. It is relatively easy to set up and is secure (imagine having a direct pipe between server A and server B).

Simply put: creating a GRE tunnel allows for packets to be forwarded with minimal resource usage.

NOTE: GRE tunnels must be set up on two endpoints.

How does it work?

When you create a GRE tunnel on your server, your server will act as a virtual router. Keep in mind that both ends will need a public IP address as packets are sent over multiple networks.

Prerequisites and Configuring Both Endpoints

What you’ll need to set a GRE tunnel up

Fortunately, all you’ll need is:

  • 2 servers running CentOS 7
  • The ip_gre module loaded
  • nano or any text editor

If you don’t already have the GRE module loaded into either server, perform the following command:

Читайте также:  Windows logout from cmd

In order to make things easier to understand, the first and second endpoint will be labelled as A and B respectively.

The IP addresses that we’ll be using are below:

Endpoint A:

  • local/internal IP: 192.0.2.1
  • public IP: 203.0.113.1

Endpoint B:

  • local/internal IP: 192.0.2.2
  • public IP: 203.0.113.2

Keep in mind that you’ll need to modify the example IP addresses (change 203.0.113.1 and 203.0.113.2 with the IP addresses of the two servers that you will be using).

Configuring Endpoint A

To begin, we need to head over to the network-scripts folder:

Now, use nano or your favourite text editor to create a file called ifcfg-tun0 :

In the newly created file, paste the following:

Save and exit (with nano , do CTRL + X , followed by ENTER ).

Bring the interface up:

Once you perform the command above, you can begin configuring the second endpoint.

Configuring Endpoint B

The process of configuring this endpoint is similar to that of the first one. To begin, head over to your network-scripts folder:

Now, create a new file called ifcfg-tun0 :

Paste the following:

You can now bring the interface up:

Testing the tunnels

On Endpoint A, enter the following:

You will see a similar output:

On Endpoint B:

You will see a similar output:

If both ends can ping each other successfully, you can skip to the final section of this article. If it times out, you may need to disable your firewall or allow the appropriate addresses.

Refer to this article if you don’t understand how to create these rules.

If you only wish to test if the tunnels work, you can (at your own risk) disable the firewall on both servers:

Some CentOS 7 systems have IPTables, so perform the following if the command above does not work:

Conclusion

You’ve successfully established a GRE tunnel between two servers. Should you wish to remove the tunnels in the future, perform the following on both servers:

Источник

Организация GRE-туннеля в RHEL/CentOS

Протокол GRE создавался компанией Cisco Systems для организации сетевых тунелей. И хотя в настоящее время GRE теряет актуальность, так как не поддерживает шифрование и не работает через NAT, в случае необходимости быстрой организации туннеля между двумя локальными сетями именно GRE будет в числе самых простых вариантов.

Ранее уже описывалась организация GRE-туннеля на машинах под управлением Debian/Ubuntu. Сейчас будет рассмотрено решение той же самой задачи, но уже на серверах под управлением RHEL/CentOS.

Допустим что в обоих офисах стоит шлюз под управлением CentOS. На кажом сервере по две сетевые карты:

  • eth0: Смотрит в интернет. В центральном офисе адрес 1.1.1.1, в филиале — 1.1.2.2;
  • eth1: Смотрит в локальную сеть офиса. В центральном офисе: 192.168.101.1/24, в филиале — 192.168.102.1/24.

На обоих серверах будет создан интерфейс tun0. В центральном офисе он будет иметь адрес 172.17.254.1 а в филиале — 172.17.254.2. Для этого на сервере головного офиса создадим файл «/etc/sysconfig/network-scripts/ifcfg-tun0» следующего содержания:

На сервере филиала нужно создать такой же файл, но его содержание будет немного отличаться:

Так же на обоих серверах создадим файл «/etc/sysconfig/network-scripts/route-tun0». На сервере центрального офиса он будет иметь вид:

А на сервере филиала:

И наконец на обеих машинах поднимаем интерфейс командой:

Проверить что интерфейс поднялся можно командой:

Вывод будет примерно таким:

Ну а проверить работоспособность соединения можно банальной командой ping. Остаётся лишь дополнить набор правил iptables чтобы разрешить обмен трафиком и работа завершена.

Источник

Оцените статью