iCall for working as if LLCF (4EA Interface)
hello? My name is Muntae.
Using iCall, the following LLCF operation is required, so please review whether it is possible to operate according to the work method I wrote.
** When all interfaces are disabled, it is an environment where only one interface can be manually enabled. **
[Implementation Goal]
- When interface 1.1 is down, 1.2, 2.1, 2.2 down at the same time
- When interface 1.2 down, 1.1, 2.1, 2.2 down at the same time
- When interface 2.1 down, 1.1, 1.2, 2.2 down at the same time
- When interface 2.2 is down, 1.1, 1.2, 2.1 down at the same time
- When interface 1.1 up, 1.2, 2.1, 2.2 up at the same time
- When interface 1.2 up, 1.1, 2.1, 2.2 up at the same time
- When interface 2.1 up, 1.1, 1.2, 2.2 up at the same time
- When interface 2.2 up, 1.1, 1.2, 2.1 up at the same time
[Working procedure]
1. Create /config/llcf.conf file
[Attach the file for details]
sys icall script /Common/interface_1_1_down {
app-service none
definition {
exec tmsh modify net interface 1.2 disabled
exec tmsh modify sys icall handler triggered interface_1_2_down script null
exec tmsh modify net interface 2.1 disabled
exec tmsh modify sys icall handler triggered interface_2_1_down script null
exec tmsh modify net interface 2.2 disabled
exec tmsh modify sys icall handler triggered interface_2_2_down script null
}
description none
events none
}
sys icall script /Common/interface_1_1_up {
app-service none
definition {
exec tmsh modify net interface 1.2 enabled
exec sleep 5
exec tmsh modify sys icall handler triggered interface_1_2_down script interface_1_2_down
exec tmsh modify net interface 2.1 enabled
exec sleep 5
exec tmsh modify sys icall handler triggered interface_2_1_down script interface_2_1_down
exec tmsh modify net interface 2.2 enabled
exec sleep 5
exec tmsh modify sys icall handler triggered interface_2_2_down script interface_2_2_down
}
description none
events none
}
sys icall script /Common/interface_1_2_down {
app-service none
definition {
exec tmsh modify net interface 1.1 disabled
exec tmsh modify sys icall handler triggered interface_1_1_down script null
exec tmsh modify net interface 2.1 disabled
exec tmsh modify sys icall handler triggered interface_2_1_down script null
exec tmsh modify net interface 2.2 disabled
exec tmsh modify sys icall handler triggered interface_2_2_down script null
}
description none
events none
}
sys icall script /Common/interface_1_2_up {
app-service none
definition {
exec tmsh modify net interface 1.1 enabled
exec sleep 5
exec tmsh modify sys icall handler triggered interface_1_1_down script interface_1_1_down
exec tmsh modify net interface 2.1 enabled
exec sleep 5
exec tmsh modify sys icall handler triggered interface_2_1_down script interface_2_1_down
exec tmsh modify net interface 2.2 enabled
exec sleep 5
exec tmsh modify sys icall handler triggered interface_2_2_down script interface_2_2_down
}
description none
events none
}
sys icall script /Common/interface_2_1_down {
app-service none
definition {
exec tmsh modify net interface 2.2 disabled
exec tmsh modify sys icall handler triggered interface_2_2_down script null
exec tmsh modify net interface 1.1 disabled
exec tmsh modify sys icall handler triggered interface_1_1_down script null
exec tmsh modify net interface 1.2 disabled
exec tmsh modify sys icall handler triggered interface_1_2_down script null
}
description none
events none
}
sys icall script /Common/interface_2_1_up {
app-service none
definition {
exec tmsh modify net interface 2.2 enabled
exec sleep 5
exec tmsh modify sys icall handler triggered interface_2_2_down script interface_2_2_down
exec tmsh modify net interface 1.1 enabled
exec sleep 5
exec tmsh modify sys icall handler triggered interface_1_1_down script interface_1_1_down
exec tmsh modify net interface 1.2 enabled
exec sleep 5
exec tmsh modify sys icall handler triggered interface_1_2_down script interface_1_2_down
}
description none
events none
}
sys icall script /Common/interface_2_2_down {
app-service none
definition {
exec tmsh modify net interface 2.1 disabled
exec tmsh modify sys icall handler triggered interface_2_2_down script null
exec tmsh modify net interface 1.1 disabled
exec tmsh modify sys icall handler triggered interface_1_1_down script null
exec tmsh modify net interface 1.2 disabled
exec tmsh modify sys icall handler triggered interface_1_2_down script null
}
description none
events none
}
sys icall script /Common/interface_2_2_up {
app-service none
definition {
exec tmsh modify net interface 2.1 enabled
exec sleep 5
exec tmsh modify sys icall handler triggered interface_2_1_down script interface_2_1_down
exec tmsh modify net interface 1.1 enabled
exec sleep 5
exec tmsh modify sys icall handler triggered interface_1_1_down script interface_1_1_down
exec tmsh modify net interface 1.2 enabled
exec sleep 5
exec tmsh modify sys icall handler triggered interface_1_2_down script interface_1_2_down
}
description none
events none
}
sys icall script /common/null {
app-service none
definition {
}
description none
events none
}
2. Create the /config/user_alert.conf file
[Attach the file for details]
alert interface_1_1_down "Link: 1.1 is DOWN" {
exec command="tmsh generate sys icall event interface_1_2_down"
exec command="tmsh generate sys icall event interface_2_1_down"
exec command="tmsh generate sys icall event interface_2_2_down"
}
alert interface_1_2_down "Link: 1.2 is DOWN" {
exec command="tmsh generate sys icall event interface_1_1_down"
exec command="tmsh generate sys icall event interface_2_1_down"
exec command="tmsh generate sys icall event interface_2_2_down"
}
alert interface_2_1_down "Link: 2.1 is DOWN" {
exec command="tmsh generate sys icall event interface_1_1_down"
exec command="tmsh generate sys icall event interface_1_2_down"
exec command="tmsh generate sys icall event interface_2_2_down"
}
alert interface_2_2_down "Link: 2.2 is DOWN" {
exec command="tmsh generate sys icall event interface_1_1_down"
exec command="tmsh generate sys icall event interface_1_2_down"
exec command="tmsh generate sys icall event interface_2_1_down"
}
alert interface_1_1_up "Link: 1.1 is UP" {
exec command="tmsh generate sys icall event interface_1_2_up"
exec command="tmsh generate sys icall event interface_2_1_up"
exec command="tmsh generate sys icall event interface_2_2_up"
}
alert interface_1_2_up "Link: 1.2 is UP" {
exec command="tmsh generate sys icall event interface_1_1_up"
exec command="tmsh generate sys icall event interface_2_1_up"
exec command="tmsh generate sys icall event interface_2_2_up"
}
alert interface_2_1_up "Link: 2.1 is UP" {
exec command="tmsh generate sys icall event interface_1_1_up"
exec command="tmsh generate sys icall event interface_1_2_up"
exec command="tmsh generate sys icall event interface_2_2_up"
}
alert interface_2_2_up "Link: 2.2 is UP" {
exec command="tmsh generate sys icall event interface_1_1_up"
exec command="tmsh generate sys icall event interface_1_2_up"
exec command="tmsh generate sys icall event interface_2_1_up"
}
3. Merge script configuration:
#tmsh load sys config merge file /config/llcf.conf
4. Apply settings:
- #tmsh save sys config
5. Check to apply script settings:
#list sys icall handler triggered interface 1.1 down
#list sys icall handler triggered interface 1.2 down
#list sys icall handler triggered interface 2.1 down
#list sys icall handler triggered interface 2.2 down
#list sys icall handler triggered interface 1.1 up
#list sys icall handler triggered interface 1.2 up
#list sys icall handler triggered interface 2.1 up
#list sys icall handler triggered interface 2.2 up
Ok, just to make sure this worked, I modified for my local vmware fusion environment (updated above to add the correct enabled/disabled keywords) and it works just fine.
user_alert.conf as is on my system:
alert interface_1_1_down "Link: 1.1 is DOWN" { exec command="tmsh generate sys icall event interface_manager context { { name action value disabled } { name interface value 1.1 } }" } alert interface_1_3_down "Link: 1.3 is DOWN" { exec command="tmsh generate sys icall event interface_manager context { { name action value disabled } { name interface value 1.3 } }" } alert interface_1_1_up "Link: 1.1 is UP" { exec command="tmsh generate sys icall event interface_manager context { { name action value enabled } { name interface value 1.1 } }" } alert interface_1_3_up "Link: 1.3 is UP" { exec command="tmsh generate sys icall event interface_manager context { { name action value enabled } { name interface value 1.3 } }" }
bigip_script.conf appropriate objects as is on my system:
sys icall script interface_manager { app-service none definition { foreach var { action interface } { set $var $EVENT::context($var) } switch ${interface} { "1.1" { tmsh::modify /net interface 1.3 ${action} } "1.3" { tmsh::modify /net interface 1.1 ${action} } } } description none events none } sys icall handler triggered interface_manager { script interface_manager subscriptions { interface_manager { event-name interface_manager } } }