Trafiłem ostatnio zlecenie na użycie dwóch łącz internetowych dla dwóch podsieci. Każda podsieć korzysta z innego łącza. Ten konkretny przykład zrobiłem na RB2011, 10 portów elektrycznych. Port ETH1 jest portem WAN1, port ETH6 jest portem WAN2, porty 2-5 to LAN1, porty 7-10 to LAN2.
Topologia sieci wygląda następująco:
Tworzymy na początek dwa bridge dla dwóch podsieci oraz dodajemy porty do odpowiednich sieci LAN:
/interface bridge add name=LAN1 add name=LAN2 /interface bridge port add bridge=LAN1 interface=ether2 add bridge=LAN1 interface=ether3 add bridge=LAN1 interface=ether4 add bridge=LAN1 interface=ether5 add bridge=LAN2 interface=ether7 add bridge=LAN2 interface=ether8 add bridge=LAN2 interface=ether9 add bridge=LAN2 interface=ether10
Nadajemy adresacje, gdzie IP ISP1 to 10.10.10.2 a brama to 10.10.10.1 maska 255.255.255.0, IP ISP2 to 10.10.20.2 a brama to 10.10.20.1 maska 255.255.255.0.
/ip address add address=10.0.0.1/24 comment=LAN1 interface=LAN1 network=10.0.0.0 add address=10.0.2.1/24 comment=LAN2 interface=LAN2 network=10.0.2.0 add address=10.10.10.2/24 comment=WAN1 interface=ether1 network=\ 10.10.10.0 add address=10.10.20.2/24 comment=WAN2 interface=ether6 network=\ 10.10.20.0
Zajmiemy się teraz sieciami LAN, tworzymy serwery DHCP dla dwóch podsieci z osobnymi klasami adresowymi.
/ip pool add name=LAN1 ranges=10.0.0.50-10.0.0.250 add name=LAN2 ranges=10.0.2.50-10.0.2.250 /ip dhcp-server add add-arp=yes address-pool=LAN1 disabled=no interface=LAN1 lease-time=1h name=DHCP_LAN1 add add-arp=yes address-pool=LAN2 disabled=no interface=LAN2 lease-time=1h name=DHCP_LAN2 /ip dhcp-server network add address=10.0.0.0/24 comment=LAN1 dns-server=208.67.220.220,208.67.222.222 gateway=10.0.0.1 ntp-server=193.219.28.2,194.29.130.252 add address=10.0.2.0/24 comment=LAN2 dns-server=208.67.220.220,208.67.222.222 gateway=10.0.2.1 ntp-server=193.219.28.2,194.29.130.252
Ustawiamy klienta czasu, serwer DNS oraz strefę czasową i nazwę urządzenia
/system ntp client set enabled=yes primary-ntp=150.254.183.15 secondary-ntp=193.219.28.2 /ip dns set servers=208.67.220.220,208.67.222.222 /system clock set time-zone-name=Europe/Warsaw /system identity set name=2WAN2LAN
Przechodzimy teraz już do konfiguracji samego działania dwóch łącz oraz przełączenia się podsieci pomiędzy łącza w przypadku awarii jednego z nich.
Najpierw markujemy pakiety z odpowiednich podsieci na odpowiednie łącza internetowe
ip firewall mangle add action=mark-routing chain=prerouting new-routing-mark=to_WAN1 passthrough=yes src-address=10.0.0.0/24 add action=mark-routing chain=prerouting new-routing-mark=to_WAN2 passthrough=yes src-address=10.0.2.0/24
Następnie dodajemy dodajemy maskradę, dając internet komputerom w podsieciach LAN1 i LAN2
/ip firewall nat add action=masquerade chain=srcnat comment=WAN1 out-interface=ether1 add action=masquerade chain=srcnat comment=WAN2 out-interface=ether6
Następnie dodajemy bramy domyślne dla podsieci oraz główną bramę domyślną dla routera, w przypadku gdy jedna z bram przestanie odpowiadać sieć LAN która z niej korzysta przełączy się automatycznie na drugą podsieć
/ip route add check-gateway=ping distance=1 gateway=10.10.10.1 routing-mark=to_WAN1 add check-gateway=ping distance=1 gateway=10.10.20.1 routing-mark=to_WAN2 add check-gateway=ping distance=2 gateway=10.10.10.1,10.10.20.1
Jeżeli dostajemy dwa łącza internetowe od jednego ISP zdarzyć się może, że będą one w jednej podsieci ze wspólną bramą. Np. IP1 10.10.10.2 oraz IP2 10.10.10.3 ze wspólną bramą 10.10.10.1 to należy oznaczyć taki ruch w sposób następujący
/ip route add check-gateway=ping distance=1 gateway=10.10.10.1%ether1 routing-mark=to_WAN1 add check-gateway=ping distance=1 gateway=10.10.10.1%ether6 routing-mark=to_WAN2 add check-gateway=ping distance=2 gateway=10.10.10.1%ether6,10.10.10.1%ether1
Na koniec standardowo zabezpieczam takiego mikrotika wyłączając zbędne usługi oraz dając dostęp do zarządzania tylko z wewnętrznych podsieci
/ip service set telnet disabled=yes set ftp disabled=yes set www disabled=yes set ssh disabled=yes set api disabled=yes set winbox address=10.0.0.0/24,10.0.2.0/24 set api-ssl disabled=yes
Comments
Świetnie opisane ? tylko chciałbym zapytać jak zrobić taki load balancing w przypadku 2xWan i 2xLan ale tak aby oba lany były balansowanie i wychodziły przez wan1 lub wan2? W powyższym przykładzie lan1 wychodzi jednym wan-em a lan2 drugim…
Dzięki za super artykuł.
Będziesz kontynuował ?
Extra artykuł, wszystko śmiga aż miło. Możesz opisać jak zrobić, żeby komputer z Lan1 miał dostęp do zasobów dwóch komputerów w Lan2?
Ma się rozumieć że połączenie trzech łączy robimy tak samo tylko x 3.