У меня есть сервер с Linux, который я также использую в качестве сетевого шлюза / "маршрутизатора". Он имеет три активных сетевых интерфейса - два сетевых интерфейса, подключенных к Интернету через разных интернет-провайдеров, и третий, обеспечивающий доступ в Интернет к моим локальным компьютерам через NAT. У меня есть балансировка нагрузки между каналами WAN.
С сервера сеть доступна просто отлично - все работает, балансировка нагрузки работает и вообще без потерь пакетов. Соединения между сервером и локальными машинами также работают совершенно нормально. Но если я получаю доступ к Интернету / WAN с локального компьютера через сервер, я всегда вижу постоянную потерю пакетов ~ 40%. Это делает соединения очень нестабильными. После небольшого исследования я мог видеть, что я получаю (и теряю) пакеты, проходящие через оба интерфейса более или менее одинаково, поэтому не похоже, что один из интерфейсов будет перетаскивать все остальное, теряя все свои пакеты.
Если я отключу любой из двух каналов WAN, потеря пакетов немедленно исчезнет. Он мгновенно появляется снова, если я снова включаю обе WAN-ссылки.
Что может вызвать это? Любые советы, как устранить эту проблему, не отказываясь от одного из каналов глобальной сети?
моя таблица фильтров iptables
:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
моя таблица iptables
nat:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.42.0.0/24 !10.42.0.0/24
моя таблица iptables
mangle:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 mark match ! 0x0
MARK all -- 0.0.0.0/0 0.0.0.0/0 state NEW MARK set 0x2
MARK all -- 0.0.0.0/0 0.0.0.0/0 state NEW statistic mode random probability 0.50000000000 MARK set 0x1
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
ip route show
output:
default
nexthop via 10.7.0.254 dev eth0 weight 1
nexthop via 78.62.255.254 dev eth2 weight 1
10.7.0.0/16 dev eth0 proto kernel scope link src 10.7.5.102
10.42.0.0/24 dev eth1 proto kernel scope link src 10.42.0.254
78.62.192.0/18 dev eth2 proto kernel scope link src 78.62.239.10
169.254.0.0/16 dev eth1 scope link metric 1000
все неотредактировано, как есть - в данном случае нас не волнует "конфиденциальность"