Hello, There is a minimum member option in LAG links which will allow you to shutdown the whole bundle if 1 member fails.
If you just want to increase metrics when 1 interface fails, you can do that with an event-script. Here's an example for OSPF. Adjust as required. Serge version 1.0; ns junos = "http://xml.juniper.net/junos/*/junos"; ns xnm = "http://xml.juniper.net/xnm/1.1/xnm"; ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0"; import "../import/junos.xsl"; /* * Increase OSPF cost when interface goes Down. * Note: This script only works when OSPF interfaces use unit 0 and with area 0. * Version 2: Updated to allow 2 instances to be called simultaneously */ var $arguments = { <argument> { <name> "interface"; <description> "Interface to lower cost"; } <argument> { <name> "metric"; <description> "New OSPF metric"; } } var $area = "0.0.0.0"; /* Decides where the output will go, 0 -> stdout, 1 -> syslog, 2 -> none */ var $silent = "1"; var $maxattempts = "5"; /* Number of times to try before giving up */ match / { /* * xml config to set interface metric */ var $xml = { <configuration> { <protocols> { <ospf> { <area> { <name>$area; <interface> { <name>$interface; <metric>$metric; } } } } } } var $attempt = "1"; call doConfigChange($xml, $attempt); } template doConfigChange($xml, $attempt) { /* * Open connection with mgd */ var $con = jcs:open(); if (not($con)) { call emit-error($message = "Not able to connect to local mgd"); } var $config-private = <open-configuration> { <private>; } var $private-results = jcs:execute($con, $config-private); var $load-configuration = <load-configuration> { copy-of $xml; } var $load-results = jcs:execute($con, $load-configuration); /* * Use load-configuration template defined in junos.xsl to load and * commit the configuration */ var $commit-configuration = <commit-configuration>; var $commit-results = jcs:execute($con, $commit-configuration); /* Keep trying if we get an error while committing. This could be because another * instance of the script is committing. */ if( $attempt > $maxattempts ) { /* Give up */ for-each ($commit-results//xnm:error) { call emit-error($message = message); } var $giveupmessage = "ChangeOSPFMetric.slax configuration changes could not be made after " _ $attempt _ " attempts. - Script is exiting."; expr jcs:syslog("user.error", "ChangeOSPFMetric.slax[Error]: ", $giveupmessage); } else { /* if we have an error, wait 10sec, increment attempts and perform recursive call to try again */ if ($commit-results//xnm:error) { var $error-msg = "configuration change failed, a user may be editing the config or the script attempted to load a bad config. Configuration change error info follows - " _ $commit-results _ " - trying again in 10 seconds . . . "; expr jcs:syslog(5, $error-msg); expr jcs:sleep(10); call doConfigChange($xml, $attempt = $attempt + 1 ); } else { call emit-success($message = "Changed Metric"); for-each ($commit-results//xnm:warning) { call emit-warn($message = message); } } /* end if commit-results */ } /* end if attempt statement */ var $close-private = <close-configuration>; var $close-configuration-results = jcs:execute($con, $close-private); var $close-results = jcs:close($con); } template emit-success($message) { if ($silent == 0) { expr jcs:output($message); } else if ($silent == 1) { expr jcs:syslog("user.info","ChangeOSPFMetric.slax[Success]: ", $message); } } template emit-error($message) { if ($silent == 0) { expr jcs:output($message); } else if ($silent == 1) { expr jcs:syslog("user.error", "ChangeOSPFMetric.slax[Error]: ", $message); } } template emit-warn($message) { if ($silent == 0) { expr jcs:output($message); } else if ($silent == 1) { expr jcs:syslog("user.warning", "ChangeOSPFMetric.slax[Warning]: ", $message); } } Config to activate the script: event-options { policy TrackCoreInt { events snmp_trap_link_down; attributes-match { snmp_trap_link_down.interface-name matches "(xe-0/0/0)|(xe-0/1/0)"; } then { execute-commands { commands { "show interfaces {$$.interface-name}"; "show conf interfaces {$$.interface-name}"; "show conf protocols ospf"; } output-filename TrackCore_show_commands.txt; destination local; output-format text; } event-script ChangeOSPFMetric.slax { output-filename ChangeOSPFMetric.txt; destination local; output-format text; arguments { interface "{$$.interface-name}"; metric "25"; } } } } event-script { inactive: traceoptions { file event-trace.log; flag all; } file ChangeOSPFMetric.slax; } destinations { local { archive-sites { /var/home/; } } } } ________________________________ From: Alex D. <[email protected]> To: Juniper-Nsp <[email protected]> Sent: Friday, January 13, 2012 3:25:43 PM Subject: [j-nsp] aggregated-ethernet and metric adjustment, if one link fails Hi list, is it possible to automatically raise IS-IS metric, if one or more link(s) of an aggregated-ethernet fails ? Exp.: We have an aggregated-ethernet interface with 2x 1Gbps. Our IS-IS metric for this interface is 50. Metric for a single Gigabit interface is 100. It would be nice, if the metric could be automatically raised to 100 when one member link fails. Does anyone know a way to accomplish this goal ? Regards, Alex _______________________________________________ juniper-nsp mailing list [email protected] https://puck.nether.net/mailman/listinfo/juniper-nsp _______________________________________________ juniper-nsp mailing list [email protected] https://puck.nether.net/mailman/listinfo/juniper-nsp

