Jump to content
Le ecureuil

Все о туннелях IPIP, GRE и EoIP

Recommended Posts

Для тех кто придёт из гугла. Проблема выставки mtu в eoip.

вообщем решил я свою проблему.  все настраиваем стандартно из первого поста, добавляем в бридж.

1. Включаем фрагментацию! Для случая 2б

2а. Mtu mss, тут два пути кому то помогает уменьшение до какого-то порогового значения, а потом подымаем число mtu(mss) пока снова не перестанут странички открываться.

2б. Если уменьшение не помогает, надо поднять mtu eoip тунеля, в моём случае я ручками написал 1500. И все заработало. 4 дня все работает, странички открываются, мультикаст ходит, броудкаст не проверял. Большой трафик не гонял. Всем спасибо за ликбезы и советы. Теперь буду openvpn мучать))

Edited by utya

Share this post


Link to post
Share on other sites

Если вы используете EoIP как трубу между L2-сегментами, то вы просто обязаны сделать его MTU не меньше, чем минимальный MTU у этих сегментов. То есть скорее всего это будет именно 1500 и скорее всего у вас только путь с фрагментацией - он же 2б.

Share this post


Link to post
Share on other sites

А как настроить firewall что бы разрешить только шифрованный GRE ?

В цепочке _NDM_IPSEC_INPUT_FILTER мы разрешаем шифрованные GRE от наших пиров, и потом дропаем нешифрованный от них же. Разумно и логично.

А потом в _NDM_TUNNELS_INPUT разрешаем от всех остальных... Как это запретить? 

Share this post


Link to post
Share on other sites
3 часа назад, gaaronk сказал:

А как настроить firewall что бы разрешить только шифрованный GRE ?

В цепочке _NDM_IPSEC_INPUT_FILTER мы разрешаем шифрованные GRE от наших пиров, и потом дропаем нешифрованный от них же. Разумно и логично.

А потом в _NDM_TUNNELS_INPUT разрешаем от всех остальных... Как это запретить? 

МСЭ имеет приоритет перед tunnels input. Потому просто запретите нужные протоколы в МСЭ.

Share this post


Link to post
Share on other sites

Попытался тут сделать EoIP-автотуннель (прямо как в шапке, только без IP) и засунуть его в Home (с фрагментацией), Ultra II @ 2.11.A.4.0-2 <-> Start II @ 2.10.B.0. Автоустановка mtu ставит принудительно 1416 и повлиять на это похоже никак нельзя, "ip mtu 1500" ничего не дает.

Кстати, после этого отключил ipsec на туннеле, mtu (в show interface) остается 1416, и без удаления туннеля или ребута вернуть его обратно в 1500 не получилось ни перевключением туннеля ни принудительным "ip mtu 1500"

Edited by KorDen

Share this post


Link to post
Share on other sites
40 минут назад, KorDen сказал:

Попытался тут сделать EoIP-автотуннель (прямо как в шапке, только без IP) и засунуть его в Home (с фрагментацией), Ultra II @ 2.11.A.4.0-2 <-> Start II @ 2.10.B.0. Автоустановка mtu ставит принудительно 1416 и повлиять на это похоже никак нельзя, "ip mtu 1500" ничего не дает.

Кстати, после этого отключил ipsec на туннеле, mtu (в show interface) остается 1416, и без удаления туннеля или ребута вернуть его обратно в 1500 не получилось ни перевключением туннеля ни принудительным "ip mtu 1500"

Если включена фрагментация, то MTU ни на что не влияет.

Share this post


Link to post
Share on other sites
3 минуты назад, Le ecureuil сказал:

Если включена фрагментация, то MTU ни на что не влияет.

Ну, не знаю - без ipsec у меня идут пинги по 1472, стоит включить ipsec - уже выше 1388 из присоединенного сегмента не проходят.

Конфиг приблизительно такой

system set net.core.eoip_allow_fragment 1
interface EoIP0
    security-level private
    ip mtu 1500
    ipsec preshared-key 12345678
    ipsec ikev2
    tunnel destination 1.2.3.4
    tunnel eoip id 123
    up
!
interface Home include EoIP0

ip mtu пробовал не ставить.

 

self-test с обоих сторон при необходимости скину вечером.

Share this post


Link to post
Share on other sites
7 минут назад, KorDen сказал:

Ну, не знаю - без ipsec у меня идут пинги по 1472, стоит включить ipsec - уже выше 1388 из присоединенного сегмента не проходят.

Конфиг приблизительно такой


system set net.core.eoip_allow_fragment 1
interface EoIP0
    security-level private
    ip mtu 1500
    ipsec preshared-key 12345678
    ipsec ikev2
    tunnel destination 1.2.3.4
    tunnel eoip id 123
    up
!
interface Home include EoIP0

ip mtu пробовал не ставить.

 

self-test с обоих сторон при необходимости скину вечером.

Странно, это означает, что фрагментация не работает.

Share this post


Link to post
Share on other sites
3 hours ago, Le ecureuil said:

МСЭ имеет приоритет перед tunnels input. Потому просто запретите нужные протоколы в МСЭ.

 

Да, но нет. 

МСЭ имеет приоритет перед tunnels input И перед _NDM_IPSEC_INPUT_FILTER. Если я взаимодействую с пиром "B" по GRE с ипеском, то использование МСЭ разрешит любой GRE от "B", и запретит от остальных. 

Что никак не решает задачу - разрешить GRE ТОЛЬКО от "B" и ТОЛЬКО шифрованный.

Share this post


Link to post
Share on other sites
3 часа назад, KorDen сказал:

ip mtu пробовал не ставить

т.к. от К вроде все уходит с DF, то можно попробовать в нужный размер:

tools traceroute ‹host› packet-size 1500

- возможно, упирается где-то на выходе и нужный интерфейс ответит icmp с pmtu а-ля "Fragment to ‹число›B" (попробуем узнать кто именно bottleneck) и там уже прописать ему нужную пилюлю по доступности.

команда норм, с разных сторон подойти можно.

p.s. есть и специальные утилитки под это дело.

***
так-то фрагментация EoIP вроде режет L2 в полезной части (на безрыбье и рак щука):
http://docwiki.cisco.com/wiki/Ethernet_Technologies#Figure:_The_Basic_IEEE_802.3_MAC_Data_Frame_Format

Edited by arbayten

Share this post


Link to post
Share on other sites
2 часа назад, arbayten сказал:

т.к. от К вроде все уходит с DF, то можно попробовать в нужный размер:

...

Вы не поняли проблему. В сети проблем нет, голый EoIP с фрагментацией работает. Вроде бы если завернуть это в ручной транспорт - тоже проблем нет, но я такое проверял несколько месяцев назад. А сегодня я попытался сделать автотуннель, и тут уже фрагментация похоже не работает. Собрать стенд проверить напрямую еще не было времени.

Share this post


Link to post
Share on other sites
6 часов назад, gaaronk сказал:

 

Да, но нет. 

МСЭ имеет приоритет перед tunnels input И перед _NDM_IPSEC_INPUT_FILTER. Если я взаимодействую с пиром "B" по GRE с ипеском, то использование МСЭ разрешит любой GRE от "B", и запретит от остальных. 

Что никак не решает задачу - разрешить GRE ТОЛЬКО от "B" и ТОЛЬКО шифрованный.

Немного странная хотелка, однако у вас все равно не должно быть проблем.

Если настроен интерфейс GreX c IPsec, то автоматически расставлены политики и их проверки, потому нешифрованное не пройдет.

Если не настроен Gre совсем, то он тоже никуда не пройдет.

Share this post


Link to post
Share on other sites
27 минут назад, KorDen сказал:

Вы не поняли проблему. В сети проблем нет, голый EoIP с фрагментацией работает. Вроде бы если завернуть это в ручной транспорт - тоже проблем нет, но я такое проверял несколько месяцев назад. А сегодня я попытался сделать автотуннель, и тут уже фрагментация похоже не работает. Собрать стенд проверить напрямую еще не было времени.

Надо проверить, что там происходит когда снизу IPsec. Так руки и не доходили.

Share this post


Link to post
Share on other sites

Пожалуйста подскажите! Имеется два кинетика, один домашний, на другом висят несколько ip-камер и архивный винт. Оба кинетика выходят в интернет через 4г модемы, на обоих поднят OpenVPN до серверов с белыми внешними ip. На серверах есть возможность настроить проброс портов до локальных ресурсов, то есть к камерам и роутеру я имею прямой доступ без проблем.

Могу ли я пр помощи какого то из туннелей объединить два роутера в одну локалку? Я вообще в этом новичок, по моим представлениям эти туннели работают на каких то определенных портах? Где можно узнать по каким портам они работают, чтобы настроить проброс?

Share this post


Link to post
Share on other sites
10 часов назад, alexxx0677 сказал:

Могу ли я пр помощи какого то из туннелей объединить два роутера в одну локалку?

Если вам не нужно, чтобы ходил broadcast-трафик и был единый сегмент (обычно это нужно для какого-нибудь старого софта, не умеющего обращаться на указанный IP), то вам нужен OpenVPN tap или EoIP. В большинстве случаев же будет достаточно либо OpenVPN tun, либо IPIP/GRE-туннеля.

На OpenVPN, при условии что оба клиента подключены к одному серверу, навскидку:

- раскомментируйте в конфиге опцию client-to-client, назначьте клиентам статические адреса (например, 192.168.255.2 и 192.168.255.3, сервер скажем 192.168.255.1 255.255.255.240)

- настройте на роутерах разные подсети.Например, на одном 192.168.0.1/24, на другом 192.168.1.1/24

- добавьте на каждом роутере маршруты до другого клиента через его IP в туннеле, отключите isolate-private (можно настроить фаервол, но это надо заморачиваться)

 

Для уменьшения служебного трафика можно использовать IPIP поверх IPsec, но это потребует более заморочной настройки сервера. Кроме того, встречались причуды у операторов с глюками IPsec, это уже надо будет проверять самому.

Edited by KorDen
  • Thanks 1

Share this post


Link to post
Share on other sites
1 час назад, KorDen сказал:

На OpenVPN, при условии что оба клиента подключены к одному серверу

Сервера разные. Пользуюсь платным впн, могу с одного аккаунта 3 устройства подключать к 3м разным впн-серверам. Два устройства с одного аккаунта к одному серверу не подключаются.

На впн-серверах из настроек доступен только проброс портов.

Share this post


Link to post
Share on other sites
28 минут назад, alexxx0677 сказал:

Сервера разные

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

  • Thanks 1

Share this post


Link to post
Share on other sites

Вопрос к тем, кто использует IPIP. Вроде @r13, и возможно еще кто-то.. У вас ходит трассировка через туннель? Раньше как-то специально не разбирался, а теперь понимаю, что хотя все работает и пинги ходят (в том числе пинг IP туннельного интерфейса удаленной стороны), трассировка обрывается на ближайшем роутере и до удаленной стороны пакеты не добираются вообще. Один линк роутер-роутер, другой линк роутер-Linux (Strongswan + ip tunnel), в обоих случаях одинаково - по tcpdump на приходящем интерфейсе в этот момент ничего нет.

Т.е.: имеем линк IPIP (192.168.0.1/24) [192.168.255.1/30]---[192.168.255.2/30](192.168.1.1/24). Со 192.168.0.2 пингуется 192.168.255.2 и все удаленные узлы и проблем нет, но если сделать трассировку до чего либо, на интерфейсе 192.168.255.1 уходящий icmp видно, на 192.168.255.2 тишина, трассировка соответственно не идет дальше 192.168.0.1

 

ICMP пробовал специально на всех интерфейсах разрешать, толку нет. private/protected/public - значения не имеет.

Edited by KorDen

Share this post


Link to post
Share on other sites
C:\Users\Admin>tracert 192.168.31.254

Трассировка маршрута к border.bikovo-17.home [192.168.31.254]
с максимальным числом прыжков 30:

  1    <1 мс    <1 мс    <1 мс  border.home [192.168.100.254]
  2     *        *        *     Превышен интервал ожидания для запроса.
  3     2 ms     3 ms     3 ms  border.bikovo-17.home [192.168.31.254]

Трассировка завершена.

Подтверждаю. При этом всё отлично пингуется.

Трассировка до удаленного хоста прошла через туннель. Где звездочки должны быть IP туннельной стороны.

  • Thanks 1

Share this post


Link to post
Share on other sites

Добрый день. Поднят на giga 3 (локальная сеть 192.168.234.0) сервер openvpn и два тунеля eoip (dsl и omni 2) c cбридж на локальную сеть. За клиентом openvpn ctnm 192.168.233.0. Так вот трафик с 233 подсети в  234 как-то ходит избирательно.

с 233 в 234 которая за giga 3 всё норм.

с 233 в 234 которая по eoip у dsl и  omni 2 не работает.

и в начале думал дело в маршрутах, но потом понял что врядли поскольку eoip туннель с одним dhcp. Остаётся mtu? или ешё что-то может быть? Если нужен self-test приложу позже.

UPD, продолжил свои эксперименты забриджевал eoip и openvpn.

конфиг сервера openvpn

 

port 1194
proto udp
dev tap

tun-mtu 1500
mssfix
fast-io

sndbuf 0
rcvbuf 0
key-direction 0
topology subnet
server-bridge nogw

keepalive 10 120
comp-lzo adaptive
persist-key
persist-tun
verb 5

 

и в cli добавил include в Home.
скорость правда 10 мбит всего 

Edited by utya

Share this post


Link to post
Share on other sites

@KorDen Я сейчас на L2TP/IPSec переполз. Попробую воссоздать при случае.

Share this post


Link to post
Share on other sites

@KorDen я поавильно понимаю что у вас трассировка обрывается на первом же хопе (локальный роутер) и более ничего нет?

Share this post


Link to post
Share on other sites
1 час назад, r13 сказал:

 я поавильно понимаю что у вас трассировка обрывается на первом же хопе (локальный роутер) и более ничего нет?

Да, первый хоп (локальный роутер) проходит, со второго обрывается, но в паре случаев (если маршрут уходит в WAN с кучей хопов) видел что с этак пятого узла начинается нормальная трассировка (за вычетом пропущенных хопов).

Edited by KorDen

Share this post


Link to post
Share on other sites
23 минуты назад, KorDen сказал:

Да, первый хоп (локальный роутер) проходит, со второго обрывается, но в паре случаев (если маршрут уходит в WAN с кучей хопов) видел что с этак пятого узла начинается нормальная трассировка (за вычетом пропущенных хопов).

У меня в тестовом туннеле между 2мя напрямую соединенными по лан роутерами вроде все ок с трассировкой. А откуда у вас хопы в wan ? Вроде как независимо от того через сколько хопов идет туннель для трассировки весь туннель должен быть одним хопом?! 

Share this post


Link to post
Share on other sites
Только что, r13 сказал:

А откуда у вас хопы в wan

Речь не про хопы в туннеле. Например, я заворачиваю трафик до 8.8.8.8 в туннель (или даже банально ip global, т.е. как интернет-подключение).

С локальной сети, скажем, трассировка выглядит условно так:

192.168.0.1
1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4
5.5.5.5
6.6.6.6
7.7.7.7
8.8.8.8

С удаленной сети это выглядит условно так:

192.168.1.1
* * * (должно быть 192.168.0.1 или туннельный интерфейс 192.168.255.2)
* * *
* * *
* * *
4.4.4.4
5.5.5.5
6.6.6.6
7.7.7.7
8.8.8.8

Т.е. вроде количество хопов +1, но почему-то первые 4 после локального роутера - пропуски. А может вообще вся трассировка обрывается после локального роутера.

Share this post


Link to post
Share on other sites

Ладно завтра попробую сценарий с ip global

Share this post


Link to post
Share on other sites

Вопрос к начальство @Le ecureuil

Был openvpn сервер на giga3, добавил его в bridge с локалкой (include Home). настройка openvpn пропала из WEB и получается теперь всё править через CLI. Можно ли как-то предусомтреть в прошивке возможность правки конфига openvpn через web даже если тот в bridge. Спасибо.

Edited by utya

Share this post


Link to post
Share on other sites

@KorDen

Собрал стендик, к ультре цепляется старт по IPIP c настройкой ip global через IPIP

Запускаю трассировщик из cli старта(на клиентах за стартом нет возможности проверить, их нет)

В такой схеме все ок.

Во всяком случае трасса до того же ip(74.125.205.102) c ультры такая же и хопы c 8-17 также не отвечают.

Если трасса до другого ip гугла (172.217.20.174) то там не отвечает только 1 хоп, но так же паритет что с IPIP, что без.

1й хоп - конец туннеля на ультре далее идут ответы уже от интернет узлов:

Скрытый текст

starting traceroute to google.com...
traceroute to google.com (74.125.205.102), 30 hops maximum, 60 byte packets. 
1  172.32.5.1 (172.32.5.1)  1.200 ms  1.021 ms  0.915 ms 
2  broadband-77-37-136-1.moscow.rt.ru (77.37.136.1)  8.159 ms  5.513 ms  4.053 ms 
3  7950-111-lag100-89.msk.ip.ncnet.ru (77.37.254.94)  3.324 ms  3.421 ms  3.147 ms 
4  m9-cr01-be4-89.msk.ip.ncnet.ru (77.37.254.93)  3.906 ms  3.931 ms  3.791 ms 
5  72.14.209.81 (72.14.209.81)  5.577 ms  6.086 ms  4.490 ms 
6  108.170.250.134 (108.170.250.134)  4.546 ms 108.170.250.99 (108.170.250.99) 4.308 ms 108.170.250.34 (108.170.250.34)  4.117 ms 
7  64.233.174.85 (64.233.174.85)  18.912 ms 209.85.240.116 (209.85.240.116)  50 .275 ms  26.579 ms 8  216.239.56.216 (216.239.56.216)  18.658 ms  18.623 ms 216.239.40.174 (216.23 9.40.174)  18.821 ms 
9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  le-in-f102.1e100.net (74.125.205.102)  18.545 ms  18.552 ms  18.405 ms

 

  • Thanks 1

Share this post


Link to post
Share on other sites
2 часа назад, r13 сказал:

Собрал стендик, к ультре цепляется старт по IPIP c настройкой ip global через IPIP

а интерфейсы private/public где как?

за тесты спасибо, попробую тогда все же у себя вместе с тестированием фрагментирования EoIP заодно и это проверить.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...