У меня проблема с моей конфигурацией туннелей GRE, это очень странно, потому что передача пакетов работает без проблем ICMP, TCP, но когда я пытаюсь отправить UDP, туннель работает только в среднем 5 минут, и все пакеты падают.
Вот моя конфигурация туннеля:
Сервер А
ip tunnel add gre1 mode gre local IPA remote BACKENDIP ttl 255
ip addr add 192.168.1.1/30 dev gre1 ip link set gre1 up
iptables -t nat -A PREROUTING -p udp -j DNAT --to-destination 192.168.1.2
Сервер B
ip tunnel add gre2 mode gre local IPB remote BACKENDIP ttl 255
ip addr add 192.168.2.1/30 dev gre2 ip link set gre2 up
iptables -t nat -A PREROUTING -p udp -j DNAT --to-destination 192.168.2.2
Сервер BACKEND
ip tunnel add gre1 mode gre local BACKENDIP remote IPA ttl 255
ip addr add 192.168.1.2/30 dev gre1
ip link set gre1 up
ip route add 0/0 via 192.168.1.1 dev gre1 table 1
ip rule add fwmark 1 lookup 1 pref 1
ip tunnel add gre2 mode gre local BACKENDIP remote IPB ttl 255
ip addr add 192.168.2.2/30 dev gre2
ip link set gre2 up
ip route add 0/0 via 192.168.2.1 dev gre2 table 2
ip rule add fwmark 2 lookup 2 pref 2
iptables -t nat -A PREROUTING -i gre+ -p udp -j DNAT --to-destination BACKENDIP
iptables -t mangle -A PREROUTING -m conntrack --ctstate NEW -i gre1 -j CONNMARK --set-mark 0x1
iptables -t mangle -A PREROUTING -m conntrack --ctstate NEW -i gre2 -j CONNMARK --set-mark 0x2
iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark
iptables -t filter -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -p udp -j ACCEPT
Что я делаю не так? Я связался со своим провайдером, чтобы убедиться, что это не их проблемы, но они сказали мне, что разрешают трафик GRE, который представляет собой некоторую конфигурацию, которую я делаю неправильно.
Почему я получаю потерю пакетов?
Спасибо.