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

Потеря пакетов в туннеле IpSec / GRE

Это моя установка:

  +--------------------+     +-------------------+  +--------------------+
  | Router B         a +-----+ Router+Firewall C |  | b         Router D |
  |       10.10.10.1 ----------------------------------10.10.10.2        |
  |                    +-----+                   |  |                    +--- more nets
  |       192.168.10.1 |     |192.168.2.11       +--+192.168.2.57        |
  +----|---------------+     +-------------------+  +--------------------+
       |                                                 |                
  +----|---------------+                            +----|---------------+
  |192.168.10.11       |                            |192.168.2.38        |
  |Server A            |                            |Client E            |
  |                    |                            |                    |
  |                    |                            |                    |
  +--------------------+                            +--------------------+

Теперь я застрял. Любой совет, что проверить? Какой конфиг помог бы диагностировать? Большое спасибо!

Таблица по умолчанию фильтр, поэтому, когда вы предоставляете правило вроде iptables -A FORWARD ... ты просто вставляешь правило фильтр стол. Также есть несколько других таблиц и таблица калечить один из них. По словам man iptables: «Эта таблица используется для специализированного изменения пакетов».

Итак, для редактирования пакетов (что выполняется -j TCPMSS --set-mss) следует использовать калечить table, поэтому правило должно быть таким:

iptables -t mangle -A FORWARD -i tun+ -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1400

Вы забыли о MSS

1) Вы должны установить mtu на gre tunnel 1400

2) Для пакетов SYN установите для mss тот же размер mtu 1400

в Linux:

iptables -I FORWARD -i tun + -p tcp -m tcp --tcp-flags SYN, RST SYN -j TCPMSS --set-mss 1400