Od dłuższego czasu (2 lata?) Korzystam z maszyny wirtualnej (serwer Ubuntu 12.04) z bardzo podstawową funkcją równoważenia obciążenia wychodzącego, wysyłając różne połączenia wychodzące z różnych routerów ADSL.
Skonfigurowany po prostu za pomocą iproute bez maskowania NAT, NAT jest zarządzany przez same wychodzące routery ADSL, pozwalając połączeniom kierować bezpośrednio z powrotem do nadawcy, omijając maszynę VM do równoważenia obciążenia. Nie ma także reguł zapory (iptables) na maszynie wirtualnej routera.
echo 1 > /proc/sys/net/ipv4/ip_forward
# flush initially
ip route flush cache
# remove whatever is there for the default to begin with
ip route delete default
# default load balancing rule
ip route add default scope global \
nexthop via ${ROUTER2} dev ${INTERFACE} weight 6 \
nexthop via ${ROUTER1} dev ${INTERFACE} weight 4
To działało dobrze od dłuższego czasu.
Niedawno zaktualizowałem (do-release-upgrade -d) moduł równoważenia obciążenia (maszyna wirtualna serwera Ubuntu 12.04) do Ubuntu 14.04.
Ponieważ uaktualnienia połączeń internetowych za pomocą powyższej komendy „ip route add default” powodują sporadyczne problemy z połączeniem i powodują niemożność korzystania. Prawie tak, jakby pojedyncze pakiety były wysyłane przez oba routery, a nie pełne połączenia.
Próbowano to zrobić z drugą maszyną wirtualną 14.04 z tym samym efektem.
Chciałbym mieć tę samą funkcjonalność na Ubuntu 14.04 (bieżące jądro: 3.13.0-24). Nie rozumiem, co się zmieniło.
Jakieś sugestie?
źródło
Odpowiedzi:
Zdaję sobie sprawę, że oryginalny plakat nie potrzebuje już rozwiązania, ale oto moje zdanie na temat najlepszego rozwiązania tego problemu. Zdaję sobie również sprawę, że plakat wolałby korzystać z Ubuntu, ale ręczne konfigurowanie reguł routingu nie jest świetne do przenoszenia własności na inne osoby, a nawet do odniesienia się do ciebie później.
Osobiście sugerowałbym bardziej niezawodną konfigurację przy użyciu maszyny wirtualnej PFSense w celu zrównoważenia obciążenia połączeń. Prawdopodobnie sugerowałbym również wykonanie NAT na samym urządzeniu PFSense zamiast na modemach. Mam coś podobnego do tego skonfigurowanego na maszynie wirtualnej i działa dobrze.
Do połączeń między modemami a maszyną wirtualną PFSense używam przełącznika obsługującego sieć vlan, aby połączyć 3 oddzielne sieci VLans z maszyną wirtualną i rozdzielić je na 3 osobne porty przełącznika. To w efekcie zapewnia bezpośredni (wirtualny) kabel z każdego modemu do pfsense box i drugi kabel do LAN. Następnie można skonfigurować modemy do przekazywania, które różnią się w zależności od dostawcy.
To prawda, że omija to problem, a nie rozwiązuje go bezpośrednio, ale umieszczenie NAT na samych modemach wydaje mi się po prostu pytaniem o kłopoty. Ponadto PFSense został specjalnie zaprojektowany jako paczkowane rozwiązanie routera, więc obsługuje i będzie testowany w konfiguracjach takich jak ta, zapewniając lepszą niezawodność dzięki aktualizacjom.
źródło