I hit a "fun" issue today. Already reported it to the TAC, but thought I'd share. I added an alias to an interface to help capture some traffic. When I tried to delete the alias, it instead deleted the main IP from the interface. I saw it on R81.20 jumbo 41 in production and reproduced it here on an R81.10 jumbo 150 lab firewall:
[Expert@TestFW]# ip addr show | grep eth2
3: eth2: <NO-CARRIER,BROADCAST,MULTICAST,ALLMULTI,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
[Expert@TestFW]# clish
TestFW> set interface eth2 ipv4-address 10.20.30.40 mask-length 24
TestFW> add interface eth2 alias 172.16.32.64/32
TestFW> save config
TestFW> exit
[Expert@TestFW]# clish -c "show configuration" | grep eth2
set interface eth2 state on
set interface eth2 auto-negotiation on
set interface eth2 ipv4-address 10.20.30.40 mask-length 24
add interface eth2 alias 172.16.32.64/32
[Expert@TestFW]# ip addr show | grep eth2
3: eth2: <NO-CARRIER,BROADCAST,MULTICAST,ALLMULTI,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
inet 10.20.30.40/24 brd 10.20.30.255 scope global eth2
inet 172.16.32.64/32 brd 172.16.32.64 scope global eth2:1
[Expert@TestFW]# clish
TestFW> delete interface eth2 alias 172.16.32.64/32
TestFW> save config
TestFW> exit
[Expert@TestFW]# ip addr show | grep eth2
3: eth2: <NO-CARRIER,BROADCAST,MULTICAST,ALLMULTI,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
inet 172.16.32.64/32 brd 172.16.32.64 scope global eth2:1
[Expert@TestFW]# clish -c "show configuration" | grep eth2
set interface eth2 state on
set interface eth2 auto-negotiation on
add interface eth2 alias 172.16.32.64/32
I've tried it with numbers which don't correspond to an address on any interface, and letters which don't correspond to an interface name. Always the same result. It looks like "delete interface <name> alias <almost anything>" just gets translated to "delete interface <name> ipv4-address". This makes dealing with aliases wildly dangerous.