Назад | Перейти на главную страницу

Проблема с несколькими туннелями NAT GRE в Linux

У меня проблема с моей конфигурацией туннелей 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, который представляет собой некоторую конфигурацию, которую я делаю неправильно.

Почему я получаю потерю пакетов?

Спасибо.