PDF Печать E-mail

Настройка GRE-туннеля с МТС


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

В основном используется для организации виртуальных приватных сетей (VPN) поверх глобальных сетей (WAN).

Конкретно в моем случае необходимо было объединить локальную сеть предприятия с сетью МТС для привязки к своему серверу APN (т.е. точки доступа, выданной МТС вида *.spb), для того чтобы агенты с коммуникаторами имели доступ только к серверу предприятия, без возможности выхода в интернет.


93.153.xxx.218 - внешний ip-адрес сервера предприятия 

217.66.xxx.221 - внешний ip-адрес железки МТС


10.254.xxx.226 - внутренний ip-адрес сервера предприятия

10.254.xxx.225 - внутренний ip-адрес железки МТС

т.е. МТС выделили для туннеля подсеть 10.254.xxx.224/30


После настройки с их стороны туннеля и прибития к ip сервера предприятия APN, с моей стороны туннель настраивался следующим образом:


Открываем /etc/network/interfaces:


nano /etc/network/interfaces


И добавляем:


iface tun_mts inet static

        address 10.254.xxx.226

        netmask 255.255.255.252

broadcast 10.254.xxx.227

        up ifconfig tun_mts multicast

        pre-up modprobe ip_gre

        pre-up iptunnel add tun_mts mode gre local 93.153.xxx.218 remote 217.66.xxx.221 ttl 255

        pointopoint 10.254.xxx.225

        post-down iptunnel del tun_mts


т.е. указываем внутренний ip сервера, маску, широковещательный адрес, поднимаем интерфейс tun_mts, подгружаем в ядро модуль ip_gre, необходимый для создания туннеля, создаем туннель, указываем внутренний адрес железки МТС, даем команду удалять туннель после выключения сетевого интерфейса.


После внесения изменений перезапускаем сеть:


/etc/init.d/networking restart


Если используете iptables то добавляем правила:


iptables -A OUTPUT -p gre -j ACCEPT

iptables -A INPUT -p gre -j ACCEPT 


Так как коммуникаторы агентов получают адреса от МТС из подсети 10.0.xxx.0/24, добавил на сервере предприятия маршрут: 

route add -net 10.0.xxx.0 netmask 255.255.255.0 tun_mts 


P.S.

Если бы с другой стороны тоже был сервер под линуксом, а не настроенная уже железка МТС, то отличия там в настройке были бы минимальны - меняются местами ip-адреса, т.е. в /etc/network/interfaces для создания gre-туннеля нужно было бы добавить:


 iface tun_mts inet static

        address 10.254.xxx.225

        netmask 255.255.255.252

broadcast 10.254.xxx.227

        up ifconfig tun_mts multicast

        pre-up modprobe ip_gre

        pre-up iptunnel add tun_mts mode gre local 217.66.xxx.221 remote 93.153.xxx.218 ttl 255

        pointopoint 10.254.xxx.226

        post-down iptunnel del tun_mts