[ Kolins Balaban @ 27.03.2010. 15:37 ] @
situacija je ovakva. imam dvije pppoe konekcije. kod jednog providera je dinamicki gateway, a kod jednog staticki. imam 2 routing marka. sa jednim markiram free zonu ka jednom provideru, a sa drugim internet ka drugom provideru. kod prvog gdje je staticki gateway, kreirana je default routa sa odgovarajucim markom, i to radi. imam problem kod ovog sa dinamickim gateway-om. nasao sam skriptu koja pronalazi dinamicki gateway na pppoe client konekciji i koja mi kreira defoult routu sa odgovarajucim routing markom, ali to kod mene na v4.6 nece da radi :( evo skripte:

Code:

# name of interface that should be monitored 
# (edit to match your interface name)
:set mInterface pppoe-adsl ;

# routing mark name used for default route that should be updated
# (edit to match your routing mark name)
:set mRoutingMark adsl-user ;

/ip address ; 
:set mAddress [find interface=$mInterface] ;
:set mGateway [get $mAddress network]  ;

/ip route ;
:set mGatewayFound 0
:foreach i in  [find routing-mark=$mRoutingMark] do={ \
  :set mDstAddress [get $i dst-address]; \
  :set qResult [:find $mDstAddress "0.0.0.0/0"]; \
  :if ($qResult = 0) do={ \
    set $i gateway=$mGateway ; \
    :put "gateway rule adjusted"; \
    :set mGatewayFound 1; \
   }; \
}; 
:if ($mGatewayFound = 0) do={ ; \
  add dst-address=0.0.0.0/0 gateway=$mGateway routing-mark=$mRoutingMark; \
  :put "gateway rule added"; \
}; 


znaci, dvije pppoe konekcije, i dva routing marka. jedan je free_zona(jednog providera) a drugi je ostalo (negacija od free_zona). default routa sa free_zona je kreirana, ali mi treba i ova sa ostalo routing markom. sta nedostaje u ovoj skripti? uredno sam ubacio naziv pppoe konekcije, i naziv routing marka, ali skripta nece da kreira defoult routu :(

da li bi se ovo moglo kako izmjenom metrike uraditi?
[ Kolins Balaban @ 28.03.2010. 17:51 ] @
evo, posto meni niko nije pomogao oko ovog problema, pomoci cu ja nekome ko ga bude imao :) napisao sam skriptu koja rjesava moj problem:


Code:

:local TrenutniGateway [ /ip address get [/ip address find interface=naziv_interfejsa_ciji_gateway_zelimo ] network] 

:local PostojeciGateway [/ip route get [/ip route find comment="Komentar na default routi u koju zelimo ubaciti gateway"] gateway] 

:if ($TrenutniGateway != $PostojeciGateway) do={ - 

  :log info ("Postavljanje default gateway-a " )
  :local a [ /ip route find comment="Komentar na default routi u koju zelimo ubaciti gateway"]

:if ([ :typeof $a ] = nil ) do={
    :log info "Dodavanje route..."
    /ip route add dst-address=0.0.0.0/0 gateway=$TrenutniGateway routing-mark=ostalo comment="Komentar na default routi u koju zelimo ubaciti gateway"
   } else={
    :log info "Promjena route..."
    /ip route set $a gateway=$TrenutniGateway
   }
} else={
  :log info "Nije potrebna izmjena route."
}


skripta radi ovako:

linija1: sprema network adresu interfejsa u varijablu TrenutniGateway. to ce nam biti gateway u default routi
linija2: sprema gateway sa route koja ima zadati komentar u varijablu PostojeciGateway
linija3: ako su TrenutniGateway i postojeci Gateway razliciti
linija5: u varijablu a sprema informaciju o tome da li postoji default routa sa datim komentarom
linija6: ako ne postoji routa sa datim komentarom (varijabla a=0)
linija7: kreira routu u routing tabeli da datim komentarom, TrenutniGateway-om, i odgovarajucim routing markom
linija8: inace ako postoji routa sa datim komentarom (varijabla a<>0)
linija9: samo joj updatuje gateway na TrenutniGateway

eto to bi bilo to :) nadam se da ce nekome biti od koristi.
[ BigFoot @ 28.03.2010. 21:07 ] @
Skriptu i razumem, ali za svrhu nisam baš siguran. Da li je suština da sve pakete markirane jednim markom usmeriš prema jednom provajderu, a drugim markom drugom provajderu? Kako se koristi ova skripta, tj. kada se poziva?
[ Kolins Balaban @ 29.03.2010. 06:12 ] @
to sto si ti skontao jeste sustina mog pitanja. svrha skripte je da kreira default routu sa gateway-om koji pokupi sa odredjenog interfejsa, i sa navedenim routing mark-om. skripta se ubacuje u scheduler, i pokrece u odredjenim intervalima (ja sam stavio 30sec).
[ ivica82 @ 12.07.2010. 13:36 ] @
Ljudi, meni treba skripta koja ce sa DHCP clienta da procita dinamicki gateway i da na osnovu toga kreira rutu ka 0.0.0.0/0 sa uslovom da se ping ka gateway-u proverava i sa distancom 0 posto mi je to primarni gateway. Jedina mogucnos je da se podesi DHCP client da ne pravi default rutu nego da skripta kreira staticku rutu, koju ce da proverava gateway u DHCP klijentu npr. svakih 30 skundi iz scheduler-a.

Alternativni link mi ide preko PPPoE-client-a i tu dobijam staticki gateway koji se ne menja, znaci ta ruta nije problem.

Na netu sam nasao skripte koje citaju sa pppoe-client interfacea gateway, a ni jedni koja cita iz DHCP-klijenta. Da napomenem da nisam pocetnik u Mikrotiku, ali sam pocetnik sto se tice pravljenja skripti.

Ako neko zeli i moze da mi pomogne, bio bi mu zahvalan neizmerno, jer kazem, pravljenje skripti mi je strani pojam, jos uvek.