다음 사용 사례는 데이터 링크 등록 정보와 플로우 등록 정보를 모두 설정하여 시스템의 효율성을 높이는 시나리오를 기반으로 합니다. 이 사용 사례는 다음 그림에 표시된 구성을 기반으로 합니다.
그림 7-3 데이터 링크와 플로우의 리소스를 관리하기 위한 시스템 구성
이 그림에서는 서로 연결된 다음과 같은 두 개의 물리적 호스트를 보여줍니다.
Host1의 구성은 다음과 같습니다.
서버 및 라우터 역할을 하는 단일의 비전역 영역입니다. 두 개의 인터페이스가 영역에 지정됩니다. 즉, net0 인터페이스는 인터넷에 연결되고 net1 인터페이스는 Host2를 포함하는 내부 네트워크에 연결됩니다.
net1을 통해 플로우를 구성하여 트래픽을 격리하고 플로우에 속하는 패킷에서 리소스를 사용하는 방법을 제어합니다. 플로우 구성에 대한 자세한 내용은 플로우를 사용하여 네트워크 리소스 관리를 참조하십시오.
Host2의 구성은 다음과 같습니다.
비전역 영역 세 개와 해당 VNIC입니다. VNIC는 NIC 카드가 링 할당을 지원하는 net0을 통해 구성됩니다. 링 할당에 대한 자세한 내용은 NIC 링 관리를 참조하십시오.
각 영역의 네트워크 처리 부하는 서로 다릅니다. 이 예에서 zone1은 HTTP 클라이언트 역할을 합니다. 나머지 영역 zone2 및 zone3은 SSH(보안 셸) 프로토콜을 통해 Host1에 액세스하는 SSH 클라이언트로 사용됩니다. zone1에 대한 네트워크 트래픽은 zone2 및 zone3보다 더 높고 시간에 민감하지 않습니다. 하지만 zone2 및 zone3에 대한 트래픽은 낮고 시간에 민감합니다. 따라서 zone2 및 zone3에 대한 네트워크 트래픽을 더 빠르게 처리하려면 zone1에 대한 네트워크 트래픽에 할당되는 대역폭을 제한해야 합니다. zone1에 할당되는 대역폭을 제한하지 않을 경우 이 영역에서 사용 가능한 대역폭을 모두 사용합니다. 그러면 나머지 zone2 및 zone3 영역에 대한 대역폭이 거부됩니다.
별도의 VNIC가 소프트웨어 기반 클라이언트로 구성됩니다. MAC 클라이언트에 대한 개요는 MAC 클라이언트에서 링 할당을 참조하십시오.
이 사용 사례의 작업은 다음 작업을 포함합니다.
플로우 만들기 및 플로우 제어 구성 – net1을 통해 플로우가 생성되어 Host1의 net1에 수신되는 플로우에 속하는 패킷에 대해 별도의 리소스 제어를 만듭니다.
Host2에서 VNIC에 대한 네트워크 리소스 등록 정보 구성 – 처리 부하를 기준으로 각 영역의 VNIC가 전용 링 세트로 구성됩니다. 또한 소프트웨어 기반 클라이언트의 예로 전용 링 없이 별도의 VNIC가 구성됩니다.
Host1에서 링크 및 IP 인터페이스에 대한 정보를 봅니다.
# 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 net1 ip ok -- -- net1/v4 static ok -- 192.168.200.103/24 net0 ip ok -- -- net0/v4 static ok -- 10.134.76.129/24
Host1에서 net1을 통해 다음 플로우를 만듭니다.
httpflow – zone1과 net1 사이의 모든 HTTP 트래픽을 포함합니다.
# flowadm add-flow -l net1 -a transport=tcp,local_ip=192.168.200.103,\ local_port=80,remote_ip=192.168.200.110 httpflow
sshflow – net1에서 주고 받는 모든 SSH 트래픽을 포함합니다.
# flowadm add-flow -l net1 -a transport=tcp,local_ip=192.168.200.103,\ local_port=22 sshflow
플로우에 대한 리소스 제어를 구현합니다.
# flowadm FLOW LINK PROTO LADDR LPORT RADDR RPORT DSFLD httpflow net1 tcp 192.168.200.103 80 192.168.200.110 -- -- sshflow net1 tcp 192.168.200.103 22 -- -- -- # flowadm show-flowprop FLOW PROPERTY PERM VALUE DEFAULT POSSIBLE httpflow maxbw rw 500 -- -- httpflow priority rw medium medium low,medium,high httpflow hwflow r- off -- on,off sshflow maxbw rw -- -- -- sshflow priority rw high medium low,medium,high sshflow hwflow r- off -- on,off
출력에 대한 자세한 내용은 flowadm(1M) 매뉴얼 페이지를 참조하십시오.
Host2에서 net0에 각 영역에 대한 VNIC를 구성합니다.
# dladm create-vnic -l net0 vnic0 # dladm create-vnic -l net0 vnic1 # dladm create-vnic -l net0 vnic2
각 VNIC에 대한 리소스 제어를 구현합니다.
# dladm set-linkprop -p rxrings=4,txrings=4 vnic0 # dladm set-linkprop -p rxrings=2,txrings=2 vnic1 # dladm set-linkprop -p rxrings=1,txrings=1 vnic2
# zonecfg -z zone1 # zonecfg:zone1> add net # zonecfg:zone1:net> set physical=vnic0 # zonecfg:zone1:net> end # zonecfg:zone1> commit # zonecfg:zone1> exit # zoneadm -z zone1 reboot # zonecfg -z zone2 # zonecfg:zone2> add net # zonecfg:zone2:net> set physical=vnic1 # zonecfg:zone2:net> end # zonecfg:zone2> commit # zonecfg:zone2> exit # zoneadm -z zone2 reboot # zonecfg -z zone3 # zonecfg:zone3> add net # zonecfg:zone3:net> set physical=vnic2 # zonecfg:zone3:net> end # zonecfg:zone3> commit # zonecfg:zone3> exit # zoneadm -z zone3 reboot
주 인터페이스인 net0과 링을 공유하는 소프트웨어 기반 클라이언트를 만듭니다.
# dladm create-vnic -p rxrings=sw,txrings=sw -l net0 vnic3
Host2의 CPU 세트인 pool1이 zone1에 지정된다고 가정합니다. 또한 CPU의 동일한 pool1을 지정하여 zone1에 대한 네트워크 프로세스를 관리합니다.
# dladm set-linkprop -p pool=pool1 vnic0