Туннель GRE умирает в одном направлении

Я построил туннель GRE через интерфейс tap0 между двумя хостами Centos-7. Я сделал это с помощью следующего:

  • Хост-A: 10.0.10.5
  • Хост-B: 10.0.20.5

На хосте A:

ip tunnel add tap0 mode gre remote 10.0.20.5 local 10.0.10.5 ttl 255
ip link set tap0 up
ip addr add 10.10.10.1/24 dev tap0

на хосте B:

ip tunnel add tap0 mode gre remote 10.0.10.5 local 10.0.20.5 ttl 255
ip link set tap0 up
ip addr add 10.10.10.2/24 dev tap0

после этого, все работает отлично. Я могу пинговать в обоих направлениях. Проблема в том, что через несколько минут туннель от Host-A до Host-B умирает. Однако интерфейс все еще работает.

Я запустил tcpdump с обеих сторон. tcpdump на Host-A показывает пакеты, идущие через tap0, но tcpdump на Host-B не показывает ничего полученного.

Если я вхожу в Host-B и проверяю Host-A, туннель снова активен, и Host-A может затем ping Host -B. Я выполнил псевдо-keepalive, создав задание cron на Host-B и ping Host-A раз в минуту, и это поддерживает работу туннеля, но я не думаю, что это необходимо.

Я не нашел все, что я читал в документации, гласит, что туннели GRE имеют тайм-аут. Кто-нибудь еще испытывал это?

0
задан 26 June 2019 в 21:52
1 ответ
  1. Вы используете туннель GRE без сохранения состояния. Это просто инкапсуляция без каких-либо этапов установления и согласования.
  2. Запустите tcpdump и проверьте, какие пакеты GRE уходят с одной стороны и прибывают на другую сторону.
  3. Проверьте правила iptables с помощью iptables-save -c команда. Вы должны разрешить входящие пакеты протокола GRE. Проверьте это с обеих сторон.
iptables -A INPUT -p 47 -j ACCEPT
  1. Кроме того, проблема может быть вызвана межсетевым экраном с сохранением состояния между хостами.
0
ответ дан 23 November 2019 в 23:15

Теги

Похожие вопросы