Вы здесь

Организация GRE-туннеля в 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" следующего содержания:

DEVICE=tun0
BOOTPROTO=none
ONBOOT=no
TYPE=GRE

# Адрес сервера
MY_OUTER_IPADDR=1.1.1.1
# Адрес сервера внутри GRE-туннеля
MY_INNER_IPADDR=172.17.254.1

# Адрес пира (удалённой точки)
PEER_OUTER_IPADDR=1.1.2.2
# Адрес пира (удалённой точки) внутри туннеля
PEER_INNER_IPADDR=172.17.254.2

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

DEVICE=tun0
BOOTPROTO=none
ONBOOT=no
TYPE=GRE

# Адрес сервера
MY_OUTER_IPADDR=1.1.2.2
# Адрес сервера внутри GRE-туннеля
MY_INNER_IPADDR=172.17.254.2

# Адрес пира (удалённой точки)
PEER_OUTER_IPADDR=1.1.1.1
# Адрес пира (удалённой точки) внутри туннеля
PEER_INNER_IPADDR=172.17.254.1

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

192.168.102.1/24 via 172.17.254.2 dev tun0

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

192.168.101.1/24 via 172.17.254.1 dev tun0

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

ifup tun0

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

ifconfig tun0

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

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-6E-6F-82-E2-00-00-00-00-00-00-00-00  
          inet addr:172.17.254.1  P-t-P:172.17.254.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP  MTU:1476  Metric:1
          RX packets:26842 errors:0 dropped:0 overruns:0 frame:0
          TX packets:41855 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2229279 (2.1 MiB)  TX bytes:52864575 (50.4 MiB)
          

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

На этом всё. Приятной работы!