So you no need to capture the unnecessary traffic of global and other local zones.
The below articles will help you to setup similar environment.
How to clone the local zone on Solaris 11 ?Goal:1 Setting the network bandwidth for each local zone’s VNIC,
(Ex: Net0 – 300Mb/s – net0/uaz1 500Mb/s – net0/uaz2)
Goal:2 Setting speed control to specific IP.
(Ex:net0/uaz1 to remote IP speed – 100Mb/s)
root@UAAIS:~# zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / solaris shared 4 uaz2 running /export/zones/uaz2 solaris excl 5 uaz1 running /export/zones/uaz1 solaris excl root@UAAIS:~# root@UAAIS:~# zonecfg -z uaz2 info zonename: uaz2 zonepath: /export/zones/uaz2 brand: solaris autoboot: false bootargs: file-mac-profile: pool: limitpriv: scheduling-class: ip-type: exclusive hostid: fs-allowed: anet: linkname: net0 ----Some of the output surpassed---- root@UAAIS:~# zonecfg -z uaz1 info zonename: uaz1 zonepath: /export/zones/uaz1 brand: solaris autoboot: false bootargs: file-mac-profile: pool: limitpriv: scheduling-class: ip-type: exclusive hostid: fs-allowed: anet: linkname: net0 ----Some of the output surpassed---- root@UAAIS:~# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE net0 Ethernet up 1000 full e1000g0 net1 Ethernet unknown 0 unknown e1000g1 net2 Ethernet unknown 1000 full e1000g2 root@UAAIS:~#
root@UAAIS:~# zlogin uaz2 ipadm NAME CLASS/TYPE STATE UNDER ADDR lo0 loopback ok -- -- lo0/v4 static ok -- 127.0.0.1/8 lo0/v6 static ok -- ::1/128 net0 ip ok -- -- net0/v4 static ok -- 192.168.2.52/24 net0/v6 addrconf ok -- fe80::8:20ff:fe87:d288/10 root@UAAIS:~# zlogin uaz1 ipadm NAME CLASS/TYPE STATE UNDER ADDR lo0 loopback ok -- -- lo0/v4 static ok -- 127.0.0.1/8 lo0/v6 static ok -- ::1/128 net0 ip ok -- -- net0/v4 static ok -- 192.168.2.51/24 net0/v6 addrconf ok -- fe80::8:20ff:fe38:8d7c/10 root@UAAIS:~#
GOAL:1
1.Checking the existing link speed for local zone uaz1.
root@UAAIS:~# zlogin uaz1 dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID net0 ? 1000 2:8:20:38:8d:7c random 0 root@UAAIS:~#
2.Limit the network bandwidth to 300Mb/s for uaz1 local zone by modifying the zone’s configuration. (maxbw=300M) maxbw- Maximum Bandwidth.
root@UAAIS:~# zonecfg -z uaz1 zonecfg:uaz1> select anet linkname=net0 zonecfg:uaz1:anet> info anet: linkname: net0 lower-link: auto allowed-address not specified configure-allowed-address: true defrouter not specified allowed-dhcp-cids not specified link-protection: mac-nospoof mac-address: random auto-mac-address: 2:8:20:38:8d:7c mac-prefix not specified mac-slot not specified vlan-id not specified priority not specified rxrings not specified txrings not specified mtu not specified maxbw not specified rxfanout not specified vsi-typeid not specified vsi-vers not specified vsi-mgrid not specified etsbw-lcl not specified cos not specified pkey not specified linkmode not specified zonecfg:uaz1:anet> set maxbw=300M zonecfg:uaz1:anet> info anet: linkname: net0 lower-link: auto allowed-address not specified configure-allowed-address: true defrouter not specified allowed-dhcp-cids not specified link-protection: mac-nospoof mac-address: random auto-mac-address: 2:8:20:38:8d:7c mac-prefix not specified mac-slot not specified vlan-id not specified priority not specified rxrings not specified txrings not specified mtu not specified maxbw: 300M rxfanout not specified vsi-typeid not specified vsi-vers not specified vsi-mgrid not specified etsbw-lcl not specified cos not specified pkey not specified linkmode not specified zonecfg:uaz1:anet> end zonecfg:uaz1> verify zonecfg:uaz1> commit zonecfg:uaz1> exit
3.Reboot the local zone and see the new setting take effect. Now the local zone uaz1 speed will be reduced to 300Mb/s.
root@UAAIS:~# zlogin uaz1 dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID net0 ? 1000 2:8:20:38:8d:7c random 0 root@UAAIS:~# zoneadm -z uaz1 reboot root@UAAIS:~# root@UAAIS:~# zlogin uaz1 dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID net0 ? 300 2:8:20:38:8d:7c random 0 root@UAAIS:~#
Note:You can also change the link speed on the fly by running dladm command.See my comments.
4.Now you can perform the same steps for second local zone as well.
root@UAAIS:~# zonecfg -z uaz2 zonecfg:uaz2> select anet linkname=net0 zonecfg:uaz2:anet> set maxbw=500M zonecfg:uaz2:anet> end zonecfg:uaz2> verify zonecfg:uaz2> commit zonecfg:uaz2> exit root@UAAIS:~# zlogin uaz2 dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID net0 ? 1000 2:8:20:87:d2:88 random 0 root@UAAIS:~# zoneadm -z uaz2 reboot root@UAAIS:~# zlogin uaz2 dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID net0 ? 500 2:8:20:87:d2:88 random 0 root@UAAIS:~#
To see currently implemented settings from global zone,
root@UAAIS:~# dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID uaz1/net0 net0 300 2:8:20:38:8d:7c random 0 uaz2/net0 net0 500 2:8:20:87:d2:88 random 0 root@UAAIS:~#
We have completed the Goal:1 successfully.
Goal:2
In Solaris 11, we can also restrict the speed to the remote IP. You may wonder, why you need to restrict the link speed to specific IP but it requires in some cases. For an example, backup jobs may utilize the complete link speed and system may not able to communicate with public network or application server.
Here we are going to set the speed limit between backup server and uaz2.
Here assume uaz1 as backup server and uaz2 as database server.
1. Login to backup server uaz1 and list the exiting flow-control
root@UAAIS:~# zlogin uaz1 [Connected to zone 'uaz1' pts/3] Oracle Corporation SunOS 5.11 11.1 September 2012 root@uaz1:~# flowadm show-flow root@uaz1:~#
2.Add the flow control to remote IP address.
root@uaz1:~# flowadm add-flow -l net0 -a remote_ip=192.168.2.52 uaz2-flow-control root@uaz1:~# flowadm show-flow FLOW LINK IPADDR PROTO LPORT RPORT DSFLD uaz2-flow-control net0 RMT:192.168.2.52/32 -- -- -- -- root@uaz1:~#
3.List the flow property of uaz2-flow-control.
root@uaz1:~# flowadm show-flowprop FLOW PROPERTY VALUE DEFAULT POSSIBLE uaz2-flow-control maxbw -- -- -- root@uaz1:~#
4.Set the maximum bandwidth to 100M for uaz2-flow-control.
root@uaz1:~# flowadm set-flowprop -p maxbw=100M uaz2-flow-control root@uaz1:~# flowadm show-flowprop FLOW PROPERTY VALUE DEFAULT POSSIBLE uaz2-flow-control maxbw 100 -- -- root@uaz1:~#
We have completed the Goal :2 as well successfully. So the backup server can communicate with uaz2 on 100Mb/s speed only. So that uaz2 can prevent from the network bottleneck.
Hope this article explained about setting the bandwidth for the interface and making the limits in the data link layer by adding flow controls.
You can perform the real test by following this article.
Thank you for visiting UnixArena.
Lingeswaran R says
I am not able to set the link speed on fly for local zone.
root@uaz1:~# dladm show-vnic
LINK OVER SPEED MACADDRESS MACADDRTYPE VID
net0 ? 300 2:8:20:38:8d:7c random 0
root@uaz1:~# dladm set-linkprop -p maxbw=400 net0
dladm: warning: cannot set link property ‘maxbw’ on ‘net0’: change cannot be persistent
root@uaz1:~#
I have tried the same from global zone as well.
root@UAAIS:~# dladm show-vnic
LINK OVER SPEED MACADDRESS MACADDRTYPE VID
uaz1/net1 net0 1000 2:8:20:17:df:cc random 0
uaz1/net0 net0 300 2:8:20:38:8d:7c random 0
uaz2/net0 net0 500 2:8:20:87:d2:88 random 0
root@UAAIS:~# dladm set-linkprop -p maxbw=400 uaz1/net0
dladm: warning: cannot set link property ‘maxbw’ on ‘uaz1/net0’: change cannot be persistent
root@UAAIS:~#