3.237.254.197

MikroTik, Iekārtu uzstādīšana un uzstādīšana, Prakse un programmēšana

MikroTik, Iekārtu uzstādīšana un uzstādīšana, Prakse un programmēšana

Situācija, kad ir pieejami vairāki pakalpojumu sniedzēji, nav jauna, MikroTik Router OS ļauj jums konfigurēt piekļuvi, izmantojot vairākas tīkla saskarnes, kā arī konfigurēt slodzes līdzsvarošanu atkarībā no pakalpojumu sniedzēja noteiktajiem ierobežojumiem.

Pirmais solis ir konfigurēt papildu saskarni. Mēs inicializējam pašu interfeisu.

[mkt@MikroTik] /interface> print 
Flags: D - dynamic, X - disabled, R - running, S - slave 
# NAME TYPE MTU 
0 R ether1 ether 1500 
1 R ether2 ether 1500 
2 X ether3 ether 1500
[mkt@MikroTik] /interface> enable 2
[mkt@MikroTik] /interface> print 
Flags: D - dynamic, X - disabled, R - running, S - slave 
# NAME TYPE MTU 
0 R ether1 ether 1500 
1 R ether2 ether 1500 
2 R ether3 ether 1500

Ērtības labad mēs saskarnēm iestatījām saprotamākus nosaukumus.

[mkt@MikroTik] /interface> set ether1 name=ISP1
[mkt@MikroTik] /interface> set ether2 name=LOCAL
[mkt@MikroTik] /interface> set ether3 name=ISP2
[mkt@MikroTik] /interface> print 
Flags: D - dynamic, X - disabled, R - running, S - slave 
# NAME TYPE MTU 
0 R ISP1 ether 1500 
1 R LOCAL ether 1500 
2 R ISP2 ether 1500

Tagad jaunajam interfeisam piešķiriet IP adresi.

[mkt@MikroTik] > ip address add address=192.168.222.100/24 interface=ISP2
[mkt@MikroTik] > ip address print 
Flags: X - disabled, I - invalid, D - dynamic 
# ADDRESS NETWORK BROADCAST INTERFACE 
0 192.168.1.116/24 192.168.1.0 192.168.1.255 ISP1 
1 192.168.0.1/24 192.168.0.0 192.168.0.255 LOCAL 
2 192.168.222.100/24 192.168.222.0 192.168.222.255 ISP2

Ir pienācis laiks mainīt noklusējuma maršrutēšanu. Sākumā pieņemsim, ka abi pakalpojumu sniedzēji nodrošina vienādu piekļuves ātrumu internetam, tāpēc mēs koriģēsim balansēšanu (tas ir, kad kanāli mainās izejošajiem savienojumiem), lai pieprasījumi tiktu sadalīti vienmērīgi, t.i. 50/50. Pirmkārt, izdzēsiet veco noklusējuma vārteju.

[mkt@MikroTik] > ip route print 
Flags: X - disabled, A - active, D - dynamic, 
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, 
B - blackhole, U - unreachable, P - prohibit 
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE 
0 A S 0.0.0.0/0 192.168.1.249 r... 1 
1 ADC 192.168.0.0/24 192.168.0.1 LOCAL 0 
2 ADC 192.168.1.0/24 192.168.1.116 ISP1 0 
3 ADC 192.168.222.0/24 192.168.222.100 ISP2 0
[mkt@MikroTik] > ip route remove 0
[mkt@MikroTik] > ip route print 
Flags: X - disabled, A - active, D - dynamic, 
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, 
B - blackhole, U - unreachable, P - prohibit 
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE 
0 ADC 192.168.0.0/24 192.168.0.1 LOCAL 0 
1 ADC 192.168.1.0/24 192.168.1.116 ISP1 0 
2 ADC 192.168.222.0/24 192.168.222.100 ISP2 0

Un pievienojiet jaunus.

[mkt@MikroTik] > ip route add dst-address=0.0.0.0/0 
gateway=192.168.1.249,192.168.222.1
[mkt@MikroTik] > ip route print 
Flags: X - disabled, A - active, D - dynamic, 
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, 
B - blackhole, U - unreachable, P - prohibit 
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE 
0 A S 0.0.0.0/0 192.168.1.249 r... 1 
192.168.222.1 r... 
1 ADC 192.168.0.0/24 192.168.0.1 LOCAL 0 
2 ADC 192.168.1.0/24 192.168.1.116 ISP1 0 
3 ADC 192.168.222.0/24 192.168.222.100 ISP2 0

Pieņemsim, ka pirmajam pakalpojumu sniedzējam ir divas reizes ātrāks piekļuves ātrums nekā otrajam, tad 2/3 izejošo pieprasījumu jānovirza uz pirmo, bet atlikušie 1/3 uz otro.

[mkt@MikroTik] > ip route add dst-address=0.0.0.0/0 
gateway=192.168.1.249,192.168.1.249,192.168.222.1
[mkt@MikroTik] > ip route print 
Flags: X - disabled, A - active, D - dynamic, 
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, 
B - blackhole, U - unreachable, P - prohibit 
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE 
0 A S 0.0.0.0/0 192.168.222.1 r... 1 
192.168.1.249 r... 
192.168.1.249 r... 
1 ADC 192.168.0.0/24 192.168.0.1 LOCAL 0 
2 ADC 192.168.1.0/24 192.168.1.116 ISP1 0 
3 ADC 192.168.222.0/24 192.168.222.100 ISP2 0

Šī ir vienkāršākā konfigurācijas opcija, kurā mēs iegūstam piekļuvi internetam ar slodzes līdzsvarošanu, taču šai pieejai ir vairāki trūkumi, piemēram, nedarbosies piekļuve caur NAT vietējam serverim (Web, smtp, pop pakalpojumi, kas tika konfigurēti iepriekš), bet gan nav tik liela problēma, bet vairāk par to nākamreiz. Pēc otra pakalpojumu sniedzēja pievienošanas mūsu pārbaudes konfigurācijai radās problēma ar noteiktu pakalpojumu reakciju vajadzīgajā kanālā, ja tiem piekļūstat no ārpuses, izmantojot NAT. Piemēram, tīmekļa serveris, kas izvadīts caur NAT uz pirmā nodrošinātāja IP adresi, saņem pieprasījumu, taču varbūtība, ka atbilde izies caur vēlamo kanālu, vairs nav 100%. Kāda veida tīmekļa serveris tas ir pēc tam? Iepakojumu marķēšanas mehānisms palīdzēs mums atrisināt šo problēmu. MANGLE tabula ir paredzēta pakotņu un savienojumu klasificēšanai un marķēšanai, kā arī pakešu galvenes modificēšanai. Jo īpaši mūs interesē PREROUTING ķēde, kas ļauj pirms maršrutēšanas marķēt paketi. Mēģināsim tikt galā ar tīmekļa serveri.

Teiksim, ka mēs esam konfigurējuši NAT portu 80 no ārējā IP 192.168.1.116 (ISP1, pirmais nodrošinātājs) līdz vietējā tīkla tīmekļa servera 80. portam, un mums ir jāpārliecinās, ka visas atbildes, kas notiks no tīmekļa servera, nonāk pirmā piegādātāja vārtejā. Šeit ir NAT tabulas noteikums.

[mkt@MikroTik] > ip firewall nat add chain=dstnat dst-address=192.168.1.116 
protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.0.2 to-ports=80 
comment=NAT 80 port from ISP1 to local web server
[mkt@MikroTik] > ip firewall nat print 
Flags: X - disabled, I - invalid, D - dynamic 
0 chain=srcnat action=masquerade out-interface=!LOCAL
1 ;;; NAT 80 port from ISP1 to local web server 
chain=dstnat action=dst-nat to-addresses=192.168.0.2 to-ports=80 
protocol=tcp dst-address=192.168.1.116 dst-port=80

Vispirms tabulā MANGLE izveidojiet kārtulu.

[mkt@MikroTik] > ip firewall mangle add chain=prerouting src-address=192.168.0.2 
protocol=tcp src-port=80 action=mark-routing new-routing-mark=to-isp1
[mkt@MikroTik] > ip firewall mangle print 
Flags: X - disabled, I - invalid, D - dynamic 
0 chain=prerouting action=add-src-to-address-list protocol=tcp 
address-list=test_list address-list-timeout=0s dst-port=23
1 chain=prerouting action=mark-routing new-routing-mark=to-isp1 
passthrough=yes protocol=tcp src-address=192.168.0.2 src-port=80

Paketes no vietējās adreses 192.168.0.2 no 80. porta tiks marķētas kā uz isp1. Tad mēs pievienojam noteikumu maršrutēšanas tabulai.

[mkt@MikroTik] > ip route add gateway=192.168.1.249 routing-mark=to-isp1
[mkt@MikroTik] > ip route print 
Flags: X - disabled, A - active, D - dynamic, 
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, 
B - blackhole, U - unreachable, P - prohibit 
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE 
0 A S 0.0.0.0/0 192.168.1.249 r... 1 
1 A S 0.0.0.0/0 192.168.1.249 r... 1 
192.168.1.249 r... 
192.168.222.1 r... 
2 ADC 192.168.0.0/24 192.168.0.1 LOCAL 0 
3 ADC 192.168.1.0/24 192.168.1.116 ISP1 0 
4 ADC 192.168.222.0/24 192.168.222.100 ISP2 0

Viss, kas nāk ar to-isp1 pilnvaru, tiek nosūtīts uz pirmā nodrošinātāja vārtiem. Tagad sarežģīsim situāciju, pieņemsim, ka otrais pakalpojumu sniedzējs ar izdevīgiem noteikumiem nodrošinās lielu vietējo tīklu visā pilsētā, un caur šo tīklu tiek apvienotas visas 10 jūsu uzņēmuma filiāles. Visas filiāles un biroji izmanto vienu un to pašu vietni, bet kāda jēga to apmeklēt, izmantojot pirmo pakalpojumu sniedzēju, kad jūs varat konfigurēt piekļuvi tai gandrīz lokāli. Pirmkārt, mēs pievienojam noteikumu NAT tabulai, saskaņā ar kuru visi pieprasījumi, kas tika saņemti uz otrā nodrošinātāja nodrošināto ārējo IP adresi, tiks pārsūtīti uz portu 80 uz tīmekļa servera vietējo portu.

[mkt@MikroTik] > ip firewall nat add chain=dstnat dst-address=192.168.222.100 
protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.0.2 to-ports=80 
comment=NAT 80 port from ISP2 to local web server
[mkt@MikroTik] > ip firewall nat print 
Flags: X - disabled, I - invalid, D - dynamic 
0 chain=srcnat action=masquerade out-interface=!LOCAL
1 ;;; NAT 80 port from ISP1 to local web server 
chain=dstnat action=dst-nat to-addresses=192.168.0.2 to-ports=80 
protocol=tcp dst-address=192.168.1.116 dst-port=80
2 ;;; NAT 80 port from ISP2 to local web server 
chain=dstnat action=dst-nat to-addresses=192.168.0.2 to-ports=80 
protocol=tcp dst-address=192.168.222.100 dst-port=80

Nākamais solis ir pievienot tabulai MANGLE vēl vienu kārtulu:

[mkt@MikroTik] > ip firewall mangle add chain=prerouting src-address=192.168.0.2 
protocol=tcp src-port=80 dst-address=192.168.222.0/24 action=mark-routing 
new-routing-mark=to-isp2
[mkt@MikroTik] > ip firewall mangle print 
Flags: X - disabled, I - invalid, D - dynamic 
0 chain=prerouting action=add-src-to-address-list protocol=tcp 
address-list=test_list address-list-timeout=0s dst-port=23
1 chain=prerouting action=mark-routing new-routing-mark=to-isp2 
passthrough=yes protocol=tcp src-address=192.168.0.2 
dst-address=192.168.222.0/24 src-port=80
2 chain=prerouting action=mark-routing new-routing-mark=to-isp1 
passthrough=yes protocol=tcp src-address=192.168.0.2 src-port=80

Paketes no vietējās adreses 192.168.0.2 no 80. porta tiks marķētas kā 2. isp2, ja tās ir paredzētas otrā nodrošinātāja apakštīklā. Noslēgumā - maršrutēšanas tabulas noteikums:

[mkt@MikroTik] > ip route add gateway=192.168.222.1 routing-mark=to-isp2 

[mkt@MikroTik] > ip route print 
Flags: X - disabled, A - active, D - dynamic, 
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, 
B - blackhole, U - unreachable, P - prohibit 
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE 
0 A S 0.0.0.0/0 192.168.1.249 r... 1 
1 A S 0.0.0.0/0 192.168.222.1 r... 1 
2 A S 0.0.0.0/0 192.168.1.249 r... 1 
192.168.1.249 r... 
192.168.222.1 r... 
3 ADC 192.168.0.0/24 192.168.0.1 LOCAL 0 
4 ADC 192.168.1.0/24 192.168.1.116 ISP1 0 
5 ADC 192.168.222.0/24 192.168.222.100 ISP2 0

Tagad uz pieprasījumiem, kas saņemti no pirmā pakalpojuma sniedzēja, atbildēs pirmā piegādātāja vārteja, bet uz pieprasījumiem no otrā pakalpojumu sniedzēja un no otrā nodrošinātāja apakštīkla tiks atbildēti ar otrā pakalpojumu sniedzēja vārtejas palīdzību.