Настройка 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 ACCEPTiptables -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
May 15, 2012