728x90

서브넷 마스크 계산기 및 계산 방법 2가지(CIDR, netmask)

2023-01-31 by 나루

네트워크를 설정하다보면 서브넷 마스크 또는 마스크라고 되어 있는 부분에 입력을 해야 하는 경우가 있을 것입니다. 서브넷 마스크 계산 방법을 알아보고, 또 서브넷 마스크 계산기도 함께 준비했습니다.

서브넷 마스크란? CIDR?

클래스 단위로 결정된 주소 비트를 이론적으로 어느 정도의 서브넷이라는 단위로 나눌 것인지 지정하는 것입니다. 크게 네트워크 영역과 호스트 영역으로 나뉘게 되는데, 이를 통해서 네트워크의 성능을 보장하고, 제한된 자원을 효율적으로 사용할 수 있게 됩니다. 그리고 CIDR은 Classless Inter-Domain Routing의 줄임말로 클래스 없는 도메인 간 라우팅 기법입니다.

서브넷 마스크 계산 방법: CIDR을 Netmask로 변환

그림 1의 Addresses에서의 192.168.0.31/24 와 같이 뒤에 /24 를 표기하는 것을 CIDR 값이라고 부릅니다.

그림 1. CIDR로 서브넷 표기하기

그리고 그림 2와 같이 많은 분들이 흔히 사용하는 개인 네트워크의 사설 IP 주소 192.168.0.132와 같은 값을 이용할 때 Netmask 값은 255.255.255.0으로 설정해서 이용합니다.

그림 2. Netmask로 서브넷 표기하기

위의 두 가지 값은 표현은 다르게 되나 동일하게 처리됩니다. 아래 계산기에서 24라고 입력해 보시면 2진수 Netmask에서 11111111 11111111 11111111 00000000 이라고 표현되는 것을 볼 수 있습니다. 왼쪽에서부터 몇 비트를 마스킹할 것인지 표현하는 게 CIDR 표기법입니다.

Netmask는 그걸 십진수로 8비트씩 끊어서 10진수로 표현한 것입니다. 흔히 넷마스크로 사용하는 255.255.255.0이 그 예입니다.

CIDR과 Netmask 계산기

아래 CIDR에 숫자를 입력해 주면 Netmask 값으로 변환이 됩니다. Netmask에 값을 채워넣으면 CIDR로 변환됩니다. 두가지 경우 모두 2진수 Netmask 값으로도 변환됩니다. 단, netmask 값은 페이지 하단의 표를 참고해서 사용하시기 바랍니다.

CIDR 
Netmask 
Netmask(2진수) 11111111 11111111 11111111 11111000
그림 3. 서브넷 마스크 계산 방식

192.168.121.110/24로 표기한다면, 앞의 24비트인 192.168.121 까지가 호스트 주소이고, 이후의 110 값에 해당하는 8비트가 호스트 주소가 된다고 이해하시면 됩니다. 즉, 좌측부터 24개 비트가 1로 채워져 넷마스크 값은 255.255.255.0이 됩니다.

특히 회사나 학교와 같은 곳에서는 넷마스크 값을 네트워크 관리자를 통해 명확히 확인 후 사용하시기 바랍니다. 물론 개인이 사용하는 192.168.0.xxx의 경우에는 편안하게 255.255.255.0 사용하면 되겠습니다.

CIDR & Netmask 테이블

바로 위에 계산기를 준비해 놓았지만, 아래 표를 통해서도 확인할 수 있습니다.

CIDR Mask Hosts
/32 255.255.255.255 1
/31 255.255.255.254 2
/30 255.255.255.252 4
/29 255.255.255.248 8
/28 255.255.255.240 16
/27 255.255.255.224 32
/26 255.255.255.192 64
/25 255.255.255.128 128
/24 255.255.255.000 256
/23 255.255.254.000 512
/22 255.255.252.000 1024
/21 255.255.248.000 2048
/20 255.255.240.000 4096
/19 255.255.224.000 8192
/18 255.255.192.000 16384
/17 255.255.128.000 32768
/16 255.255.000.000 65536
/15 255.254.000.000 131072
/14 255.252.000.000 262144
/13 255.248.000.000 524288
/12 255.240.000.000 1048576
/11 255.224.000.000 2097152
/10 255.192.000.000 4194304
/9 255.128.000.000 8388608
/8 255.000.000.000 16777216
/7 254.000.000.000 33554432
/6 252.000.000.000 67108864
/5 248.000.000.000 134217728
/4 240.000.000.000 268435456
/3 224.000.000.000 536870912
/2 192.000.000.000 1073741824
/1 128.000.000.000 2147483648
표. CIDR, Netmask 별 이용가능한 호스트 개수

관련자료

위의 계산기에는 stackoverflow의 netmask 관련 코드를 사용했습니다.
위키피디아의 CIDR 페이지를 참고했습니다.

함께 읽으면 좋은 글

728x90
728x90

서브넷 마스크와 서브넷팅 계산 방법

 

 

하나의 네트워크에 16,777,214개의 호스트 IP를 할당할 수 있는 A 클래스 는 엄청나게 큰 규모의 국제적인 기업 또는 단체가 아니라면 매우 비효율적이다.

 

만약 이 장치가 4개가 있는 가정집에 A 클래스를 그대로 부여한다면 Network Address와 Broadcast Address까지 포함하여 6개가 사용되고 남은 16,777,208개는 아무도 사용하지 않고 낭비된다.

 

이러한 문제를 해결하기 위해 IP를 사용하는 네트워크 장치들의 수에 따라 효율적으로 사용할 수 있는 서브넷(Subnet)이 등장하게 되었다.

 

 

서브넷 마스크는 IP주소 체계의 Network ID와 Host ID를 서브넷 마스크를 통해 변경하여서 '네트워크 영역을 분리 또는 합체' 시키는 개념이다.

 

네트워크를 분리한 것을 서브넷팅(Subnetting), 합치는 걸 슈퍼넷팅(Supernetting)이라고 한다.

 

서브넷팅은 서브넷 마스크를 이용하여 Host ID를 Network ID로 변환하게 되고, 슈퍼넷팅은 서브넷 마스크를 이용하여 Network ID를 Host ID로 변환하게 되어서 가능해진다.

 

서브넷 마스크

 

  • IP 주소에는 반드시 서브넷 마스크가 있다.
  • 서브넷 마스크는 기본적으로 255와 0으로 이루어져 있다.
  • 여기서 255는 네트워크 부분이며 0은 호스트 부분이 된다.
  • 255로 된 부분은 무시하시고 0으로 된 부분에서 IP를 나눠쓰는 혹은 IP를 쪼개는 개념이다.

 

IP를 쪼개는 이유는 IP주소가 모자라기 때문이며 네트워크를 구축시에 가장 중요한 부분이라고 할수있으며 서버관리시에 꼭 필요한 부분이다.

 

 

서브넷 마스크의 형태는 IP주소와 똑같이 32bit의 2진수로 되어있으며, 8bit(1byte)마다, .(dot)으로 구분하고 있다.

즉, IP와 똑같은 OOO, OOO, OOO, OOO의 모습을 가지고 있다.

 

형태가 똑같은 이유는 IP주소와 서브넷 마스크를 AND 연산하기 위해서이다.

 

 

 

서브넷 마스크를 사용하는 이유

브로드캐스트 영역(네트워크)를 나누기 위함 입니다.

한 네트워크에 수 많은 호스트가 있을 경우 원활한 통신이 불가능해지게 됩니다. 이를 해결하기 위해서 네트워크를 적절하게 나누어 주셔야 합니다. 또한 네트워크를 적절하게 구분지어주기 때문에 IP 주소를 아끼는 효과가 있습니다.

 

호스트 이름으로부터 IP 주소지에 대한 네트워크 이름을 규정으로 32비트 크기로 만들어진다.

 

 

혹시 IP주소 뒤에 /24 같은 것들이 붙어 있는 것을 볼 수 있을것이다.

이는 Prefix(접두어)로 (CIDR이라고도 한다.)서브넷 마스크의 bit 수를 의미한다.

 

옥탯의 8bit가 모두 1일 경우 10진수로 255가 되기에 /24는 왼쪽으로 나열된 1bit의 수가 24개라는 뜻이다.

 

예시) 192.168.0.3/24는 IP주소가 192.168.0.3 이며, 서브넷 마스크는 255.255.255.0이라는 의미다.

 

클래스 범위 표기법
A 11111111.00000000.00000000.00000000 /8 OR 255.0.0.0
B 11111111.11111111.00000000.00000000 /16 OR 255.255.0.0
C 11111111.11111111.11111111.00000000 /24 OR 255.255.255.0

 

 

Bitmask (서브넷 마스크로 사용된 1의 개수) Netmask(255.255.255.x) 네트워크 수 (서브넷 개수) 호스트 수
/25 128 2 128
/26 192 4 64
/27 224 8 32
/28 240 16 16
/29 248 32 8
/30 252 64 4
/31 254 128 2
/32(Host Rount) 255 256 1

 

 

네트워크 수는 2의 제곱의 수로 계산하면 된다.

호스트 수 256을 네트워크수로 나누면 된다.

 

서브넷 마스크의 마지막인 32bit는 (255.255.255.255)를 호스트루트(Broadcast)라고 하는데 이것은 특정 호스트로 가는 경로를 알릴때 사용한다.

 

 

 

 

서브넷팅의 이해

 

IP주소 낭비를 방지하기 위한 원본 네트워크를 여러 개의 네트워크로 분리하는 과정(자신의 네트워크 주소를 더 작은 서브 네트워크로 2의 배수로 나누는 과정)을 말한다.

 

서브넷팅을 과정중에 분리된 네트워크 단위를 서브넷이라고 하며, 서브넷팅을 하기 위해서는 서브넷 마스크의 이해가 필요하다.

 

서브넷팅(Subnetting) 하는 법

 

 

192.168.32.0/24라는 네트워크 주소 하나를 25개씩의 호스트가 있는 각각의 네트워크로 분할하려고한다.

 

Ip Address Subnet mask
192.168.32.0 255.255.255.0
11000000.10101000.00100000.00000000 11111111.11111111.11111111.00000000

 

위에 표에 서브넷마스크(Subnet mask)는 1로 표시된 부분은 Network-ID로 사용되는 부분이며,

0 으로 표시된 Host-ID 부분을 가지고 서브넷팅을 하게된다.

 

위 표와 같이 하나의 옥텟은 8bit(00000000)로 이루어져 있으며, 1개의 bit는 2개의 정보를 표현할 수 있다.

 

이번에는 Host-ID 부분을 필요한 개수인 5개의 Bit로 쪼개보겠다.

 

192.168.32.000/00000

<-(Network ID) (Host ID)->

 

0~31 192.168.32.0 ~ 192.168.32.31
32~63 192.168.32.32 ~ 192.168.32.63
64~95 192.168.32.64 ~ 192.168.32.95
96~127 192.168.32.96 ~ 192.168.32.127
128~159 192.168.32.128 ~ 192.168.32.159
160~191 192.168.32.160 ~ 192.168.32.191
192~223 192.168.32.192 ~ 192.168.32.223
224~255 192.168.32.224 ~ 192.168.32.255

 

각각의 범위가 서로 다른 네트워크를 의미한다.

범위에 있는 숫자는 각각의 네트워크 안에서 호스트로 할당해줄 수 있는 IP의 범위가 된다.

 

범위의 맨 앞에 있는 게 각 네트워크 대표주소(192.168.32.0)가 되며,

마지막의 (192.168.32.255)의 숫자가 브로드캐스트 숫자가 된다.

728x90
728x90

// 장비 전면 <MODE> 버튼을 누른 채, 뒷면 전원 케이블을 연결합니다.

C2950 Boot Loader (C2950-HBOOT-M) Version 12.1(11r)EA1, RELEASE SOFTWARE (fc1)
Compiled Mon 22-Jul-02 17:18 by antonino
WS-C2950C-24 starting...
Base ethernet MAC Address: 00:0f:90:81:98:00
Xmodem file system is available.

The system has been interrupted prior to initializing the
flash filesystem. The following commands will initialize
the flash filesystem, and finish loading the operating
system software:

flash_init
load_helper
boot

switch: flash_init

Initializing Flash...
flashfs[0]: 78 files, 3 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 7741440
flashfs[0]: Bytes used: 5982208
flashfs[0]: Bytes available: 1759232
flashfs[0]: flashfs fsck took 7 seconds.
...done initializing flash.
Boot Sector Filesystem (bs:) installed, fsid: 3
Parameter Block Filesystem (pb:) installed, fsid: 4

switch: load_helper

switch: boot

Loading "flash:/c2950-i6q4l2-mz.121-19.EA1c.bin"...#############################
################################################################################
################################################################################
################################################################################
#####################

File "flash:/c2950-i6q4l2-mz.121-19.EA1c.bin" uncompressed and installed, entry
point: 0x80010000
executing...

Restricted Rights Legend

Use, duplication, or disclosure by the Government is
subject to restrictions as set forth in subparagraph
(c) of the Commercial Computer Software - Restricted
Rights clause at FAR sec. 52.227-19 and subparagraph
(c) (1) (ii) of the Rights in Technical Data and Computer
Software clause at DFARS sec. 252.227-7013.

cisco Systems, Inc.
170 West Tasman Drive
San Jose, California 95134-1706

 

Cisco Internetwork Operating System Software
IOS (tm) C2950 Software (C2950-I6Q4L2-M), Version 12.1(19)EA1c, RELEASE SOFTWARE
(fc2)
Copyright (c) 1986-2004 by cisco Systems, Inc.
Compiled Mon 02-Feb-04 23:29 by yenanh
Image text-base: 0x80010000, data-base: 0x8058A000


Initializing flashfs...
flashfs[1]: 78 files, 3 directories
flashfs[1]: 0 orphaned files, 0 orphaned directories
flashfs[1]: Total bytes: 7741440
flashfs[1]: Bytes used: 5982208
flashfs[1]: Bytes available: 1759232
flashfs[1]: flashfs fsck took 7 seconds.
flashfs[1]: Initialization complete.
Done initializing flashfs.
POST: System Board Test : Passed
POST: Ethernet Controller Test : Passed
ASIC Initialization Passed

POST: FRONT-END LOOPBACK TEST : Passed
cisco WS-C2950C-24 (RC32300) processor (revision P0) with 20808K bytes of memory
.
Processor board ID FOC0814W0T4
Last reset from system-reset
Running Enhanced Image
26 FastEthernet/IEEE 802.3 interface(s)

32K bytes of flash-simulated non-volatile configuration memory.
Base ethernet MAC Address: 00:0F:90:81:98:00
Motherboard assembly number: 73-5750-13
Power supply part number: 34-0965-01
Motherboard serial number: FOC081409Z7
Power supply serial number: DAB08135KRN
Model revision number: P0
Motherboard revision number: A0
Model number: WS-C2950C-24
System serial number: FOC0814W0T4

--- System Configuration Dialog ---

Would you like to enter the initial configuration dialog? [yes/no]: n

 

Press RETURN to get started!


Switch>enable

Switch#erase startup-config
Erasing the nvram filesystem will remove all configuration files! Continue? [confirm]y[OK]
Erase of nvram: complete

Switch#delete vlan.dat
Delete filename [vlan.dat]? y
Delete flash:y? [confirm]y
%Error deleting flash:y (No such file or directory)

Switch#reload
Proceed with reload? [confirm]y
00:01:51: %SYS-5-RELOAD: Reload requested

C2950 Boot Loader (C2950-HBOOT-M) Version 12.1(11r)EA1, RELEASE SOFTWARE (fc1)
Compiled Mon 22-Jul-02 17:18 by antonino
WS-C2950C-24 starting...
Base ethernet MAC Address: 00:0f:90:81:98:00
Xmodem file system is available.
Initializing Flash...
flashfs[0]: 77 files, 3 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 7741440
flashfs[0]: Bytes used: 5981184
flashfs[0]: Bytes available: 1760256
flashfs[0]: flashfs fsck took 7 seconds.
...done initializing flash.
Boot Sector Filesystem (bs:) installed, fsid: 3
Parameter Block Filesystem (pb:) installed, fsid: 4
Loading "flash:/c2950-i6q4l2-mz.121-19.EA1c.bin"...#############################
################################################################################
################################################################################
################################################################################
#####################

File "flash:/c2950-i6q4l2-mz.121-19.EA1c.bin" uncompressed and installed, entry
point: 0x80010000
executing...

Restricted Rights Legend

Use, duplication, or disclosure by the Government is
subject to restrictions as set forth in subparagraph
(c) of the Commercial Computer Software - Restricted
Rights clause at FAR sec. 52.227-19 and subparagraph
(c) (1) (ii) of the Rights in Technical Data and Computer
Software clause at DFARS sec. 252.227-7013.

cisco Systems, Inc.
170 West Tasman Drive
San Jose, California 95134-1706

 

Cisco Internetwork Operating System Software
IOS (tm) C2950 Software (C2950-I6Q4L2-M), Version 12.1(19)EA1c, RELEASE SOFTWARE
(fc2)
Copyright (c) 1986-2004 by cisco Systems, Inc.
Compiled Mon 02-Feb-04 23:29 by yenanh
Image text-base: 0x80010000, data-base: 0x8058A000


Initializing flashfs...
flashfs[1]: 77 files, 3 directories
flashfs[1]: 0 orphaned files, 0 orphaned directories
flashfs[1]: Total bytes: 7741440
flashfs[1]: Bytes used: 5981184
flashfs[1]: Bytes available: 1760256
flashfs[1]: flashfs fsck took 7 seconds.
flashfs[1]: Initialization complete.
Done initializing flashfs.
POST: System Board Test : Passed
POST: Ethernet Controller Test : Passed
ASIC Initialization Passed

POST: FRONT-END LOOPBACK TEST : Passed
cisco WS-C2950C-24 (RC32300) processor (revision P0) with 20808K bytes of memory
.
Processor board ID FOC0814W0T4
Last reset from system-reset
Running Enhanced Image
26 FastEthernet/IEEE 802.3 interface(s)

32K bytes of flash-simulated non-volatile configuration memory.
Base ethernet MAC Address: 00:0F:90:81:98:00
Motherboard assembly number: 73-5750-13
Power supply part number: 34-0965-01
Motherboard serial number: FOC081409Z7
Power supply serial number: DAB08135KRN
Model revision number: P0
Motherboard revision number: A0
Model number: WS-C2950C-24
System serial number: FOC0814W0T4

--- System Configuration Dialog ---

Would you like to enter the initial configuration dialog? [yes/no]: n

 

Press RETURN to get started!


00:00:14: %SPANTREE-5-EXTENDED_SYSID: Extended SysId enabled for type vlan
00:00:18: %SYS-5-RESTART: System restarted --
Cisco Internetwork Operating System Software
IOS (tm) C2950 Software (C2950-I6Q4L2-M), Version 12.1(19)EA1c, RELEASE SOFTWARE
(fc2)
Copyright (c) 1986-2004 by cisco Systems, Inc.
Compiled Mon 02-Feb-04 23:29 by yenanh
00:00:21: %LINK-5-CHANGED: Interface Vlan1, changed state to administratively do
wn
00:00:22: %LINK-3-UPDOWN: Interface FastEthernet0/24, changed state to up
Switch>
00:00:22: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state t
o down
00:00:23: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/24, chan
ged state to down
00:00:24: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/24, chan
ged state to up

Switch>enable

Switch#config terminal

Enter configuration commands, one per line. End with CNTL/Z.

Switch(config)#enable password cisco
Switch(config)#end
Switch#write memory

728x90
728x90

Cisco Catalyst 2950 Switch 기본 정보 변경 명령어 입니다.

 

Switch> enable

Switch# configure terminal

Switch(config)# enable password cisco // enable 모드 암호 설정.

 

Switch(config)# interface vlan1

Switch(config-if)# ip address 000.000.000.000 255.255.255.0 // 장비 관리용 IP주소 설정.

Switch(config-if)# no shutdown

Switch(config-if)# exit

Switch(config)# ip default-gateway 000.000.000.1 // 장비 기본 게이트웨이 주소 설정.

 

Switch(config)# ip http server // 장비 관리용 웹콘솔 활성화.

 

Switch(config)# line vty 0 4 // Telnet 모드.

Switch(config-line)# password cisco // Telnet 접속 암호 설정.

Switch(config-line)# exit

Switch(config)# end

Switch# write memory // 설정값 저장.

Switch# exit

728x90
728x90
728x90
728x90

L4 로드밸런싱 설정 및 운용


사용자 삽입 이미지

한마디로 말하면,

L4의 핵심은 'IP, 포트, 세션' 을 기반으로한 
로드 밸런싱(Load Balancing)이다!

라고 말하고 싶네요. L4에서 가장 중요한건 역시 4계층답게 
포트(port)라는 생각이 드네요.

2계층의 MAC
3계층의 IP
그럼 4계층은 바로 포트 입니다.

그리고 이 포트와 맞물려 로드 밸런싱이라는 개념이 등장 합니다.

L4 스위치는 마치 포트와 로드밸런싱의 오묘한 조합이랄까요.

L4 스위치 = 포트 + 로드밸런싱(물론 IP,세션도 중요합니다)

L4스위치가 로드밸런싱을 수행하는 장비이기 때문에 L4스위치를 
다른말로 로드 밸랜서(Load Balancer) 라고도 합니다.

로드밸런싱은, 동일한 역할을 수행하는 서버 그룹을 VIP를 통해 관리하며, 
서버로 향하는 트래픽을 일단 VIP를 가진 L4스위치로 수신한 후 
분배정책에 따라 적절한 서버에 분배해 주는 것을 말합니다.

VIP는 Virtual IP의 약자로, 서버그룹의 대표 IP라 할 수 있습니다. 
이 VIP를 로드밸런싱을 수행하는 L4 스위치가 가지고 있습니다.
서버와 통신하고자 하는 클라이언트는 VIP를 향해 트래픽을 전송하고 
L4스위치가 이 트래픽을 받아 적절한 서버에 로드밸런싱 해주는 것이 
L4스위치의 역할입니다.

한마디로, L4 스위치는 부하분산 장비입니다.
요즘 웬만한 사이트는 서버 한 대로 사용자들의 트래픽을 감당하기 
어렵기 떄문에 동일한 역할을 수행하는 서버를 여러 대 두어서 사용자들의 
트래픽이 많아져도 유연하고 안정적으로 사이트를 운영하기 위해 
L4스위치를 통한 로드밸런싱
을 하는걸로 알고 있습니다.

L4스위치, 즉 로드밸란서가 없어도 네트워크를 하는데 지장은 없습니다. 
하지만 IT가 발전하고 트래픽이 과도해지면서 로드밸런서 없이는 안정적인
네트워크를 구성하는것이 불가피해지고 있다는 생각이 드네요.


이 그림에서 보는바와 같이,
클라이언트와 서버 사이에 로드밸란서가 위치하여 서버 2대에 대해 
로드밸런싱을 수행합니다.
즉, 로드밸런서가 트래픽을 왼쪽 서버로 보낼 수도 있고, 오른쪽 서버에 보낼 
수도 있습니다.


###################################################

그러면 L4를 왜 쓰느냐??

2가지 이유가 있습니다.

첫 번째 로드를 분산하기 위해서 입니다.(로드 발란싱)

예를 들어 한 서버에 웹 서비스(80)를 하는 서버가 있습니다.

그런데 서버에 부하 때문에 서버를 증설 해야 합니다.

하지만 서버를 분리 시키면 IP가 하나 더 필요하게 되고 IP가 늘어나면 기존 서비스와 IP가 달라지는 문제가 생깁니다.

이 때 사용하는 것이 L4장비의 VIP입니다.

예를 들어 기존에 사용하는 서버의 IP가 128.x.x.1이라고 합시다.

이 IP를 L4장비에 VIP로 할당합니다. 128.x.x.1 for 80 128.x.x.1 regarding 80

(VIP는 가상의 아이피를 말합니다.)

기존 서버에는 128.x.x.2 와 새로운 서버에는 128.x.x.3을 할당합니다.

(물론 기존 서버와 새로운 서버는 데이타가 동기되어 있어야 합니다.)

그리고 L4장비에 로드발란싱이 가능하게 세팅합니다.


그러면 이제 128.x.x.1로 요청하는 응답에 대해서 L4가 처리 하게됩니다. (대표IP로 서버여러대를 가지치기 할수 있다.)

L4는 로드발란싱 규칙에 따라서 기존 서버에서 응답하게 할 수도 있고 신규 서버에서 응답하게 할 수도 있습니다.


간단하게 L4에서 홀수 번째 요청은 기존 서버에서 짝수 번째 요청은 신규 서버에서 응답하게 설정 할 경우 요청에 대한 응답을 정확하게 반으로 나눌수 있습니다.


이렇게 한 서버의 요청건수를 줄여주어 실제로 한대의 서버가 처리해야 할 요청을 두대(여러 대)의 서버가 처리하게 되는 것을 로드 발란싱이라고 합니다.

알테온으로 설명 드리면, 웹서버 두대를 로드밸런싱 하려면 먼저

웹서버를 각각 real server 로 각각 ip를 등록합니다.
그리고 웹서버 즉 real server ip 두개 를 group1 에 소속시킵니다.
그리고 virtual ip (vip=대표ip)를 하나 등록해서 그 ip로 오는
패킷중에 http(80) 패킷에 대해서는 group1으로 보내면 
설정된 
matric(hash, 라운드로빈, least connection, weighted )값에 의해
로드밸런싱 되는것입니다. 대부분 hash 방식을 사용하죠...


이렇게 하면 128.x.x.1 for 80 은 오직 80 포트만을 받고, 다른 포트는 filtering 된다.. 쓸데없는 포트로 들어오는 공격을 막을수 있다.


그리고 L4의 두번째 기능으로 무결성을 위한 fail over기능입니다.


흔히 가장 안정적으로 서비스되는 서버는 일년에 다운타임(동작 불능시간)이 50분 미만인 서버라고 합니다.

(1년동안 50분 정도 다운되면 최고로 안정적인 서버가 되는 것입니다.)


서버역시 기계인 것이라 영원히 죽지 않는 서버는 존재하지 않습니다.

그러나 사람들은 좀더 서버가 안정적으로 동작하길 윈하게 되죠

아주 중요한 서버(예를 들면 정치 관련 홈페이지나 은행과 같은 금융 그리고 그 외 쇼핑몰등)의 경우 일년에 50분의 다운이라도 서비스에 큰 타격을 입을 수 있습니다.


예를 들어 128.x.x.1이라는 서버가 있습니다.

그러나 이 서버는 중요한 서버라 절대 서버에 장애가 있으면 안됩니다.

이럴경우 사용하는 장비가 L4입니다.


L4에 VIP를 이용해서 128.x.x.1이라는 IP를 할당합니다.

기존 서버의 IP를 128.x.x.2로 변경합니다.

새로운 서버에 128.x.x.3으로 할당합니다.(물론 기존 서버와 자료가 같도록 동기화 되어 있어야 합니다.)


L4에 fail over기능을 이용 할 경우

128.x.x.1로 오는 모든 요청에 대해서 L4는 128.x.x.2가 응답하게 합니다.

그리고 128.x.x.2에 장애가 있을 경우(서버가 다운될 경우)에는 128.x.x.3서버가 자동으로 응답하게 처리하게 됩니다.


이렇게 미리 동일한 서버를 준비해 놓고 L4를 이용해서 fail over로 연결하면 첫번째 서버(마스터)에 장애가 있을 경우라도 미리 준비해 놓은 서버(슬래이브)가 동작하게 되므로

실제로 서비스에는 문제가 없게되는 것입니다.


Alteon L4 스위치 기본 설정방법


- Real 서버가 2대이고 1개의 그룹으로 설정, vitural 서버는 1개 사용
- metric(분산알고리즘) 미설정 시 default는 leastconnection
- health 체크 미설정 시 default는 tcp, inter=2(매 2초마다 체크), retry=4(4번 실패 체크 시 down으로 정의)
- DAM(Direct Access Mode)가 default로 disable (Real IP를 통한 직접 서비스 안됨)
※ 즉, 여기서는 Real IP를 이용한 http(80번 포트) 접속 안됨
(하지만 Load Balance와 무관한 서비스는 각각 가능: ssh, 터미널 접속,... 등)

Main#
Main# /cfg/l3 ; 스위치 IP 설정...
(또는 Main# /cfg/ip)
Layer 3# if 1 ; 스위치 자체 IP 설정...
IP Interface 1# addr 1.2.3.4 ; IP address 할당
IP Interface 1# mask 255.255.255.0 ; subnet mask 할당 (필요시)
IP Interface 1# ena ; IP address 활성화

IP Interface 1# /cfg/l3/gw ; default gateway 설정...
Enter default gateway number: (1-255) 1 [Enter] ; gateway 번호 입력 (필요시)
Default gateway 1# addr 1.2.3.1 ; default gateway 할당
Default gateway 1# ena ; gateway 활성화

Default gateway 1# /cfg/slb/real 1 ; 첫번째 real 서버 설정...
Real server 1# rip 1.2.3.5 ; real 서버 IP address 할당
Real server 1# ena ; 첫번째 real 서버 활성화

Real server 1# /cfg/slb/real 2 ; 두번째 real 서버 설정...
Real server 2# rip 1.2.3.6 ; real 서버 IP address 할당
Real server 2# ena ; 두번째 real 서버 활성화

Real server 2# /cfg/slb/group 1 ; real 서버 그룹 설정...
Real server group1# add 1 ; 등록된 real 서버 1번을 그룹에 추가
Real server group1# add 2 ; 등록된 real 서버 2번을 그룹에 추가

Real server group1# /cfg/slb/virt 1 ; virtual 서버 설정...
Virtual server 1# vip 1.2.3.2 ; virtual 서버 IP address 할당
Virtual server 1# ena ; virtual 서버 활성화
Virtual server 1# service http ; http 서비스 설정...
Virtual server 1 http Service# group 1 ; http 서비스를 real 서버 그룹에 할당
(필요시 Virtual server 1 http Service# rport 8080 ; http 서비스를 real 서버의 8080 포트에 매핑)

Virtual server 1# /cfg/slb/port 1 ; L4의 물리적인 포트 1번 설정...
SLB port 1# server ena ; 포트 1번을 서버 포트로 할당
SLB port 1# /cfg/slb/port 2 ; L4의 물리적인 포트 2번 설정...
SLB port 2# server ena ; 포트 2번을 서버 포트로 할당

SLB port 8# /cfg/slb/port 8 ; L4의 물리적인 포트 8번 설정...
SLB port 8# client ena ; 포트 8번을 클라이언트 포트로 할당

SLB port 8# /cfg/slb ; SLB 설정...
Layer 4# on ; Server Load Balancing 모드 On
Layer 4# apply ; 변경된 설정값 적용
Layer 4# cur ; 현재 설정값 확인
Layer 4# save ; FLASH 메모리에 현재 설정내용 저장
Layer 4# /info/slb/dump ; SLB 정보 확인


------------------------------------------------------
| ㅁ1 ㅁ2 ㅁ3 ㅁ4 ㅁ3 ㅁ4 ㅁ5 ㅁ6 ㅁ5 ㅁ6 ㅁ7 ㅁ8 | --> Alteon L4 스위치
--+---+--------------------------------------+--------
| | |
| | |--> 클라이언트 포트 (외부 연결)
| |
| |--> 서버 포트 (서버 연결)
|
|
|--> 서버 포트 (서버 연결)

사용자 삽입 이미지

※ 설정 시 port 9번은 미사용


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



L4/L7 스위치 개요 (로드밸런서)

from 이유있는 코드 2010/02/01 14:05

스위치의 분류 :

L2 : OSI 레이어 2에 속하는 MAC 어드레스를 참조하여 스위칭하는 장비


L3 : OSI 레이어 3에 속하는 IP주소를 참조하여 스위칭하는 장비


L4 : OSI 레이어 3~4에 속하는 IP 주소 및 TCP/UDP 포트 정보를 참조하여 스위칭하는 장비


L7 : OSI 레이어 3~7에 속하는 IP 주소, TCP/UDP 포트 정보 및 패킷 내용까지 참조하여 스위칭함





L4/L7 스위치의 용도 :


일반적으로 서버들의 로드밸런싱을 위해 사용됨


복수개의 웹서버가 있을 때, 임의의 웹서버에 접속을 시도하면, 스위치가 각 서버의 부하를 고려하여


적당한 서버와 연결시켜준다.


설정에 따라 순차적 연결 또는 접속이 가장 적은 서버에 연결하는 방식 등이 있다.



L4 스위치 :


Layer 4에서 패킷을 확인하고 세션을 관리하며, 로드밸런싱을 제공하는 스위치

TCP/UDP 패킷 정보를 분석해서 해당 패킷이 사용하는 서비스 종류 별로 처리(HTTP, FTP, SMTP...)

세션관리, 서버/방화벽 로드밸런싱, 네트워크 서비스 품질 보장


L7 스위치 :

L4 스위치의 서비스 단위 로드밸런싱을 극복하기 위해 포트 + 데이터 페이로드 패턴을 이용한 패킷 스위치

(e-mail 내용/제목, URL ...)

connection pooling(시스템 부하 감소), Traffic Compression (컨텐츠 압축 전송), 보안 기능


L4 vs L7 :
공통점 : 스위치로 들어온 패킷을 적절한 목적지로 전송해줌 (불필요한 패킷은 drop시킴)

차이점 : 
기능과 역할은 동일하나 패킷을 분석하는 인텔리전스가 다름

L7은 보안 기능 강화

(DOS/SYN 공격 방어, CodeRed/Nimda 등 감염 패킷 필터링, 네트워크 자원 독점 방지 등)

L7 스위치에 대한 오해 :
L7 스위치는 레이어 7 계층을 위한 스위치이다.

: 기본적으로 L2, L3 및 부분적으로 L4 스위치를 지원한다. 레이어5 세션 계층 위주이다.

L7 스위치는 URL 기반 스위치다.

: L7 스위치 기능에 대한 일부분을 말한 것이다.

L7 스위치는 모든 TCP/UDP 포트(0-65535)에 대한 인지가 가능하다.

: 알려진 일반 포트에 대한 세션처리는 가능하지만, 순간적으로 사용하는 임시 포트는 제한적이다.

sticky session :
L4 스위치를 통해 분배된 서비스 세션은 하나의 연결 요청에 1~n 중에 한 대의 서버에 분배된다.
여러 번 시도해도 그 때마다 1~n 중에 한 대에 분배되므로, 같은 서버에 접속될 확률은 1/n이 된다.
그러나 처음에 접속했던 서버와 같은 서버에 계속 연결시킬 수 있다.
바로 sticky 옵션이다.
(일반적인 상태)
사용자A -> L4 -> 1번서버
사용자A -> L4 -> 3번서버

(sticky 상태)
사용자A -> L4 -> 1번서버
사용자A -> L4 -> 1번서버

기존 사용자의 세션 상태를 timeout 시간 내에는 계속 유지시켜주는 것이 sticky session이다.

timeout 시간은 60분 이내로 조절 가능하다.
sticky session의 문제점 :

L4 스위치의 가장 큰 목적(?)인 로드밸런싱이 제대로 동작하지 않을 수 있다.
개별 사용자가 사용할 경우에는 세션 timeout이 있으므로 어느 정도 로드밸런싱을 충족시킨다.
하지만 프록시서버를 사용하는 경우 문제가 된다.
예를 들어 회사에서 외부로 나가는 경우 각 PC의 IP가 아니라 프록시서버의 IP를 달고 나간다.
여러 사람이 timeout 시간 내에 접속하는 경우, 계속해서 한 서버에만 로드가 집중된다.
(외부에서 보기에는 동일한 사람으로 보이므로)


대안 :

SSL이나 기타 다른 보안모듈을 이용해서 인증된 특정 사용자에 대해서 Cookie/DB에 기록 후
해당 사용자에 대해서만 세션을 유지하도록 한다. (단점 : performance 저하 및 기타 cost)
그래서 L7 스위치를 사용한다.

< L7 스위칭 방식 >

URL 스위칭 :

URL 주소에서 특정 String을 검사하고, 검색된 문자열을 기준으로 부하를 분산시키는 방식이다.
http://www.test.com/test.html 이라는 주소로 사용자들이 웹페이지를 요청한다.
해당 페이지는 이미지가 빈번히 변경되고, 이미지 크기도 크다. (전체적으로 로딩이 느리다)
이런 경우, client의 http request 내용에 html이 들어가면, 메인 웹서버로 전송하고..
해당 request에 jpg 등의 이미지를 요청하는 경우 이미지 웹서버로 분산할 수 있다.

Cookie 스위칭 :
Http header의 cookie 값에 따른 특정 String을 기준으로 부하를 분산하는 방식이다.
Cookie 값 필드를 보고 설정된 분류 기준에 따라 어느 서버로 보낼지 결정한다.


Content 스위칭 :
legacy한 L7 스위칭은 URL/Cookie 스위칭을 사용했으나,
최근 L7 스위칭은 Content 스위칭 방식을 이용한다.
기존에는 제한적인 기능, 즉 호스트네임, URL, Cookie 를 기준으로 로드밸런싱을 하였으나,
L7 content 스위칭은 추가적인 기능을 지원한다.
Http header 의 모든 필드를 기반으로 한다.
XML content를 기반으로 한다.
XML tags 나 multiple Http header를 기준으로 복잡한 로드밸런싱을 구현한다.
Cookie 와 http header의 insertion과 deletion을 포함한 contents-rewrite 기능을 지원한다.
alternate한 url이나 도메인의 redirecting request를 지원한다.


728x90
728x90

1. Round Robin 

- Real Server로 session을 순차적으로 맺어주는 방식. 
- 현재의 서버가 가지고 있는 session수는 관여하지 않음. 
- weighting 옵션이 지원됨. 

모든 클라이언트는 동일하게 취급되며 실서버 혹은 경로는 같은 처리량을 보유해야 함. 
SLB에 많이 사용되며 만약 각기 다른 처리 능력을 가진 서버가 있을 경우 weigted round-robin 알고리즘이 더 효율적. 

roundrobin은 리얼서버의 마지막 번호를 가진 서버로부터 출발하여 
순차적으로 세션을 맺도록 해주는 로드밸런싱 기법. 

예를 들어 5대의 서버가 있다면.. 
5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 4, 3, 2, 1........ 
위와같은 순서로 로드밸런싱 하게 됨. 

특별한 서비스가 있지 않은 일반적인 웹사이트를 운영하는 곳에서 사용. 
leastconn 과 roundrobin은 관리자들의 요구에 따라 선택하며 
가장 단순한 로드밸런싱이므로 알테온에 거의 부하를 주지 않음. 
무조건 한쪽식 세션을 연결해줌. 
장점 : 거의 5:5로 분산이 가능함. 
단점 : 경로보장이 안됨. 


2. Least Connection 
- Real Server의 Open 세션 수를 고려한 다음, 가장 적은수의 open session을 가진 Real Server로 session을 맺어주는 방식. 
- Weighting옵션 : 설정된 Weight값에 따라 각 Server당 연결되는 수가 정규화된다. 
- Maximum Connections 옵션 : 각 Real Server의 현재 session수가 설정된 Max Connection수에 도달한 경우 
더이상 새로운 session이 할당되지 않음. 
만일 백업 서버가 설정된 경우 해당 서버가 대치되어 서비스함. 

- 현재 세션이 가장 적은쪽으로 세션을 보내줌. 
- 현재 세션수를 고려하기 때문에 약간의 메모리자원을 소비한다. 
- default metric 이기때문에 제일 많이 사용되는 메트릭이고 일반적인 서버 로드밸런싱의 경우에는 대부분 이 옵션을 많이 사용. 
- 세션을 적게 받은쪽에 세션을 연결해줌. 
장점 : 거의 5:5로 분산이 가능하다. 
단점 : 경로보장이 안된다. 


3. Response Time
- 각 Real Server들이 서로 상이한 resource와 connectino에 부수되는 시간과 데이터 양이 서로 다른 환경에서 사용할 수 있다. 
알테온이 서버와 통신을 하면서 그 응답시간에 대한 
학습을 통하여 응답시간이 빠른 쪽으로 많은 세션을 보내주고 응답이 느린쪽으로 세션을 적게 보내는 방식. 

국내 유명 부동산 사이트에서 사용하고 있는 방식. 
이 사이트의 경우는 처음 leastconnection 방식을 사용하였음. 
그런데 어느 순간 서버들이 hang이 걸리는 경우가 발생하였다고 하는데 이유를 보니까 어떤 현상에 의해서
서버의 부하가 조금 올라갔고 
그러면서 사용자 쿼리에 대한 응답을 조금 느리게 해주게 되었고 
그러다 보니까 세션이 줄어들게 되고 세션이 줄어들면 알테온은 
또 세션을 보내게 되고 그러면 또 서버의 부하가 늘어나고 이렇게 악순환이 되다보니 서버에 행이 걸린 경우였음. 
그래서 응답시간으로 로드 발란싱 해 보니 응답이 바로 오지 않는곳으로는 트래픽을 보내지 않아서 서버가 안정화되었음. 


4. Hash 
- 알테온 자체에서 제공하는 hashing algorithm을 사용하여 로드발란싱 하는 기법. 
- Source IP가 Real Server Group내의 Server에 대한 Index를 생성하는 요소로 사용된다. 
- 동일한 User에 Service 요청은 동일한 Server로 연결된다. 
- 만일 해당 Server에 Service 오류가 발생하거나, 어떤 Real Server가 Server Group에서 제외되거나
추가된 경우 재할당된다. 
- Weight 옵션 사용불가 
- Max Connection 지원 
- 접속 User수가 많을 경우 Load Balancing이 공평하게 이루어 진다. 

Hashing (hash) 알고리즘에서는 새로은 연결(TCP/UDP) 시 
각 클라이언트에 대해 hashing key를 가지고 경로를 지정한다. 
Hashing key는 클라이언트의 IP + port 혹은 IP 주소만으로 결정된다. 

Clients와 Server 간에 한번 성립된 session을 계속해서 유지해 주는 
방식으로 특정 client는 특정 server로만 접속하게 된다. 
이 방식은 clients source IP address (32 bit) 값을 real server의 대수로 나눈 나머지 값으로 connection할 server 결정 
source ip와 destination ip를 조합을 한다. 
예를 들어 192.168.1.1 이라는 source ip와 10.10.10.254 라는 destination ip가 있다고 할 경우.. 
그리고 source 가 사용자 이고 destination 이 vip 라고 하자. 

그러면 이 두 아이피를 조합하여 어떤 수를 만들어 냄. 

그래서 만약 끝자리 아이피.. 1 과 254를 조합하여 255라는 수를 만들어 냅니다. 

이 수를 설정된 리얼 서버의 수로 나눔을 합니다. 

만약 서버가 3대라면 나머지는 0 이 됨(255/3=85 나머지0). 
그러면 리얼서버 1번으로 접속하게 된다. 

만약 조합이 124이다.. 그러면 3으로 나눈 나머지는 1이 됨.. 
(124/3=41 나머지1) 그러면 2번 리얼서버로 가라.. 라는 식. 

그러면 다음에 접속을 하더라도 vip와 client ip가 동일 하므로 나머지 값은 항상 동일 하게 됨..
그 결과 항상 같은 서버로 접속하게 되는 것임. 

이런 경우는 보통 세션을 유지해야할 필요가 있는 사이트(인증, 보안 등등)에서 주로 사용함. 

ip를 hash 테이블을 생성해서 나온값으로 서버를 선정함. 
따라서 client쪽에서 한번 선택된 리얼 서버는 계속 한쪽 서버로 서비스 하게 됨. 
장점 : 경로가 보장된다, 메모리를 적게 사용하고 요구 절차가 간단. 
단점 : 세션이 5:5로 분산이 어렵다. 


5. Minimum Missies (Min Miss) 
- Hash와 유사한 방식을 사용 
- Hash와 달리 어떤 Server가 Server Group에서 제외된 경우 해당 서버에 할당된 사용자에 대해서만 재할당 작업을 한다. 
- Weighting 옵션 사용 불가 
- Max Connection 지원 
- 역시 clients source IP address (32 bit) 값을 real server의 대수로 나눈 나머지 값으로 connection할 server 결정 
- 그러나, 이 Algorithm은 Cache Redirection에 주로 사용하도록 권장 
hash와 minmiss는 알테온 자체에서 정해진 hashing algorithm을 
적용시킨다. 여기서 두가지 기법의 차이는 로드밸런싱이 이루어지다가 특정서버가 down됐을경우 이 서버와 세션을
맺고 있던사용자들을 어떻게 처리할것인가 하는 부분에 약간 차이가 있음. 

* Minimum Missies방식보다는 Hash 방식이 더 선호되는 방식. 
* Proxy를 사용하는 User Group은 Source IP가 동일하므로 Hashing이나 Minimum Missies를 사용하면 안됨. 


6.bandwidth based loadbalancing 
- bandwidth 로드밸런싱은 말 그대로 알테온과 연결된 서버들과의 
- 대역폭을 고려하여 로드밸런싱 세션을 어떻게 보낼것인가를 결정하게 되는 방식. 
예를 들어 서버가 3대정도 있고 한대는 기가로, 다른 두대는 10/100으로 물려있다고 할경우 기가 쪽으로 더욱 많은


728x90
728x90

개요

네트워크 포트가 열려있는지 막혀있는지 확인할 때 쉽고 편하게 사용할 수 있는 GUI 툴이 포트쿼리(PortqryUI.exe) 입니다. 이 가이드에서는 PortqryUI.exe를 사용하여 RPC 포트 (TCP 3389)가 열려있는지 확인하는 방법을 소개합니다.

 

PortqryUI 준비

1. 아래의 경로에서 PortqryUI를 다운로드합니다.
     http://www.microsoft.com/en-us/download/details.aspx?id=24009

 

2. 다운로드 받은 파일을 실행하면 압축이 풀립니다. 적당한 위치에 압축을 해제합니다.
   

 

PortqryUI로 포트 체크 방법

  1. PortqryUI 폴더에서 portqueryui.exe 를 더블 클릭하여 실행합니다.
     

     

  2. Enter destination IP or FQDN to query 입력란에 대상 컴퓨터의 IP 혹은 FQDN 입력
    Manually input query ports 선택하고 체크할 포트 번호(ex. 3389) 입력
    Protocol 선택 창에서 원하는 프로토콜 선택 (ex. TCP)
    Query 버튼 클릭

 

 

결과 확인

Query Result 창에서 결과를 확인합니다.

  1. 포트가 열린 경우
    Query Result 창에 LISTENING으로 표시된다면 포트가 열려있다는 의미입니다.
     

     

  2. 포트가 막힌 경우
    Query Result 창에 FILTERED로 표시된다면 포트가 방화벽 등에 의해 막혀있다는 의미입니다.

 

728x90
728x90

1. Server Load Balancing 의 필요성
2. Server Load Balancing 의 이해
3. Server Load Balancing 기본구성
4. Terminology
5. Load Balancing Algorithm
6. Server Load Balancing Processing
7. Server Load Balancing Configuration
8. Information / Statistics View
9. 점검사항
10. Redundancy SLB 구현사례

1. Server load Balancing의 필요성
Internet Server Traffic 의 급증
- Internet 응답속도 지연
- Server 효율성 저하
- Service 신뢰성 상실

Internet Traffic 극복
- Server Load Balancing 필요성 제기

2. Server load Balancing의 이해
기존 Server Load Balancing 방법
- DNS Round-Robin을 이용한 Server Load Balancing

L4를 통한 Server Load Balancing
- TCP session관리가 Layer 4 장비를 통하여 가능하게 됨에 따라 다양하고
확실한 Load Balancing 구현
- Client가 웹 브라우저 상에서 URL을 입력하여 DNS로 하여금 얻어지는
Ip address값 (L4에서는 Virtual IP :VIP 이라고 말한다.) 을 통하여 L4의
Virtual Server로 접속.
- Virtual Serve의r로 접속하게된 http request는 Vip로 mapping되어있는 실제
서버(real server) Group matching.
- Server group으로 Matching 시키는 기법은 L4가 가지고 있는 여러 가지
분산 알고리즘에 의해 작동하게 되는데 사이트의 성격에 따라 알맞게
선택.

3. Server Load Balancing의 기본구성

4. Terminology

Client ports
- Client processing을 적용할 수 있는 switch port
- 각각의 session을 server로 할당 / VIP를 RIP로 변환

Server ports
- Server processing을 적용할 수 있는 switch port / RIP를 VIP로 변환

Health Check
- Server의 이상유무를 수시로 점검하는 기능 ( http, tcp, ftp, icmp ...)

5. Load Balancing Algorithm

Round Robin
- Real server로 session을 순차적을 맺어주는 방식

Least Connection
- real server의 open 세션 수를 고려한 다음, 가장 적은 수의 open session을 가진 real server로 session을 맺어 주는 방식.

- 각 real server들이 서로 상이한 resource와 connection에 부수되는 시간과 데이터 양이 서로 다른 환경에서 활용할 수 있다.



Hash
- Clients와 Server 간에 한번 성립된 session을 계속해서 유지해 주는 방식으로 특정 client는 특정 server로만 접속하게 된다.
- 이 방식은 clients source IP address (32 bit) 값을 real server의 대수로 나눈 나머지 값으로 connection할 server 결정

Minimum Missies
- Hash Algorithm과 거의 유사

- 역시 clients source IP address (32 bit) 값을 real server의 대수로 나눈 나머지 값으로 connection할 server 결정

- 그러나, 이 Algorithm은 Cache Redirection에 주로 사용하도록 권장

6. Server Load Balancing processing
Client Processing

- VIP (Virtual IP address)를 RIP (Real IP address)로 변환하는 작업

Server Processing

- RIP (Real IP address)를 VIP (Virtual IP address)로 변환하는 작업

7. Server Load Balancing Configuration

Alteon L4 command
[Main Menu] ; L4 booting시 최초 menu
info - Information Menu
stats - Statistics Menu
cfg - Configuration Menu
oper - Operations Command Menu
boot - Boot Options Menu
maint - Maintenance Menu
diff - Show pending config changes [global command]
apply - Apply pending config changes [global command]
save - Save updated config to FLASH [global command]
revert - Revert pending or applied changes [global command]
exit - Exit [global command, always available]
>> Main#

interface IP address / mask / broad

>> Main# /cfg/ip/if 1
------------------------------------------------------------
[IP Interface 1 Menu]
addr - Set IP address
mask - Set subnet mask
broad - Set broadcast address
ena - Enable IP interface
cur - Display current interface configuration

>> IP Interface 1# ma 255.255.255.128/addr 210.219.67.120/broad 210.219.67.127/ena

>> IP Interface 1# cur
Current interface 1:
210.219.67.120, 255.255.255.128, 210.219.67.127, vlan 1, enabled

default gateway

>> IP Interface 1# /cfg/ip/gw 1
------------------------------------------------------------
[Default gateway 1 Menu]
addr - Set IP address
ena - Enable default gateway
cur - Display current default gateway configuration

>> Default gateway 1# addr 210.219.67.128/ena

>> Default gateway 1# cur
Current default gateway 1:
addr 210.219.67.126, intr 2, retry 8, arp disabled, enabled


? Real Ip address

>> Default gateway 1# /cfg/slb/re 1
[Real server 1 Menu]
rip - Set IP addr of real server
ena - Enable real server
cur - Display current real server configuration

>> Real server 1 # rip 210.219.67.121/ena
>> Real server 1 # ../re 2
>> Real server 2 # rip 210.219.67.122/ena
>> Real server 2 # ../re 3
>> Real server 3 # rip 210.219.67.123/ena


Group / Metric / Health Check

>> Real server 3 # /cfg/slb/gr 1
------------------------------------------------------------
[Real server group 1 Menu]
metric - Set metric used to select next server in group
health - Set health check type
add - Add real server
cur - Display current group configuration

>> Real server group 1# add 1/add 2/add 3/metric leastconn/health tcp

>> Real server group 1# cur
Current real server group 1:
name , metric leastconns, backup none, realthr 0
health tcp, content
real servers:

1: 210.219.67.121, enabled, name , weight 1, timeout 10, maxcon 200000
backup none, inter 2, retry 4, restr 8

2: 210.219.67.122, enabled, name , weight 1, timeout 10, maxcon 200000
backup none, inter 2, retry 4, restr 8

3: 210.219.67.123, enabled, name , weight 1, timeout 10, maxcon 200000
backup none, Inter 2, retry 4, restr 8
remote disabled, proxy enabled, submac disabled


Vitual Ip address / Virtual port / group

>> Default gateway 1# /cfg/slb/vi 1
------------------------------------------------------------
[Virtual Server 1 Menu]
service - Virtual Service Menu
vip - Set IP addr of virtual server
ena - Enable virtual server
cur - Display current virtual configuration

>> Virtual Server 1# vip 210.219.67.124/ena
>> Virtual Server 1# service
Enter virtual port: 80
------------------------------------------------------------
[Virtual Server 1 http Service Menu]
group - Set real server group number
cur - Display current virtual service configuration
>> Virtual Server 1 http Service# gr 1
Current real server group: 1
New pending real server group: 1

>> Virtual Server 1# ../cur
Current virtual server 1:
0.0.0.0, disabled, ftpp disabled
virtual ports:
http: rport http, group 1, frags
real servers:
1: 210.219.67.121, weight 1, enabled, backup none
2: 210.219.67.122, weight 1, enabled, backup none
3: 210.219.67.123, weight 1, enabled, backup none

Client processing, server processing

>> Layer 4# po 1
------------------------------------------------------------
[SLB port 1 Menu]
client - Enable/disable client processing
server - Enable/disable server processing
cur - Display current port configuration

>> SLB port 1# client enable
>> SLB port 1# ../po 2
>> SLB port 2# server enable
>> SLB port 2# ../po 3
>> SLB port 3# server enable
>> SLB port 3# ../po 4
>> SLB port 4# server enable


SLB on/off

>> SLB port 4# /cfg/slb/
>> Layer 4# .
------------------------------------------------------------
[Layer 4 Menu]
real - Real Server Menu
group - Real Server Group Menu
virt - Virtual Server Menu
filt - Filtering Menu
port - Layer 4 Port Menu
gslb - Global SLB Menu
url - URL Resource Definition Menu
sync - Config Synch Menu
adv - Layer 4 Advanced Menu
on - Globally turn Layer 4 processing ON
off - Globally turn Layer 4 processing OFF
cur - Display current Layer 4 configuration

>> Layer 4# on

Information / statistics View - Telnet or Console

; Server Load Balancing을 위한 Setting이 끝난 후에 Telnet / Console / Web Browser를 통하여 다양한 정보를 확인할 수 있다.

Link Information
; 각 port의 link상태를 확인할 수 있다.
>> Information# li
------------------------------------------------------------------
Port Speed Duplex Flow Ctrl Link
---- ----- -------- --TX-----RX-- ------
1 100* full* yes yes up
2 100 full yes yes up
3 100 full yes yes up
4 100 full yes yes up
5 100 full yes yes up
6 10/100 any yes yes down
7 10/100 any yes yes down
8 10/100 any yes yes down
* = value set by configuration; not autonegotiated.

ARP Information
; port에 물려있는 장비들의 Mac address값을 확인 할 수 있다.

>> Information / Address Resolution Protocol# d
IP address Flags MAC address VLAN Port Referenced ports
--------------- ----- ----------------- ---- ---- ----------------
210.219. 67.121 P 00:50:8b:69:82:57 1 2 1-8
210.219. 67.122 00:50:8b:69:82:56 1 4 empty
210.219. 67.123 00:50:8b:69:82:d9 1 3 empty
210.219. 67.124 P 4 00:60:cf:42:70:ee 1-8
210.219. 67.126 00:e0:2b:df:99:00 1 1 empty

IP Information
; L4의 Interface상태 / gateway 상태를 확인할 수 있다.

>> Information# ip
Interface information:
1: 210.219.67.120, 255.255.255.128, 211.196.157.127, vlan 1, up

Default gateway information: metric strict
1: 210.219.67.126, up

Server Load Balancing Information

; Virtual server, real server의 구성 및 상태를 확인 할 수 있다.

>> main# /information/slb/dump

Real server state:
2: 210.219. 67.121, 00:50:8b:69:82:d9, vlan 1, port 2, health 4, up
2: 210.219. 67.122, 00:50:8b:69:82:d8, vlan 1, port 3, health 4, up
2: 210.219. 67.123, 00:50:8b:69:82:d7, vlan 1, port 4, health 4, up

Virtual server state:
2: 210.219. 67.124, 00:60:cf:44:1a:ae
virtual ports:
http: rport http, group 1, backup none
real servers:
1: 210.219. 67.121, backup none, up
2: 210.219. 67.122, backup none, up
3: 210.219. 67.123, backup none, up

Port Statistics
; port에서의 frame error 또는 collision등을 확인할 수 있다.

>> Port Statistics# bridg
------------------------------------------------------------------
Bridging statistics for port 1:
dot1PortInFrames: 0
dot1PortOutFrames: 0
dot1PortInDiscards: 0
dot1TpLearnedEntryDiscards: 0
dot1BasePortDelayExceededDiscards: 0
dot1BasePortMtuExceededDiscards: 0
dot1StpPortForwardTransitions: 0

>> Port Statistics# ethernet
------------------------------------------------------------------
Ethernet statistics for port 1:
dot3StatsAlignmentErrors: 0
dot3StatsFCSErrors: 0
dot3StatsSingleCollisionFrames: 0
dot3StatsMultipleCollisionFrames: 0
dot3StatsSQETestErrors: 0
dot3StatsDeferredTransmissions: 0
dot3StatsLateCollisions: 0
dot3StatsExcessiveCollisions: 0
dot3StatsInternalMacTransmitErrors: 0

Group Session Statistics
; Group으로 load balancing 되어지는 session수를 확인할 수 있다.

>> Statistics # slb

>> Server Load Balancing Statistics# gr 1
------------------------------------------------------------------
Real server group 1 stats:
Current Total Highest
Real IP address Sessions Sessions Sessions Octets
---- --------------- -------- ---------- -------- ---------------
1 210.219. 67.121 1456 3455624 55675 62316
2 210.219. 67.122 2345 12344476 67896 165356559
3 210.219. 67.123 2565 24564476 67896 165356559
---- --------------- -------- ---------- -------- ---------------
5891 35676700 123411 165418875

728x90
728x90

 

1. Class별 Public IP Address의 범위
ClassPublic IP의 범위 (Dec)Public IP의 범위 (Bin)
A1.xxx.xxx.xxx ~ 126.xxx.xxx.xxx00000001.xxxxxxxx.xxxxxxxx.xxxxxxxx
~
01111110.xxxxxxxx.xxxxxxxx.xxxxxxxx
B128.1.xxx.xxx ~ 191.254.xxx.xxx10000000.00000001.xxxxxxxx.xxxxxxxx
~
10111111.11111110.xxxxxxxx.xxxxxxxx
C192.0.1.xxx ~ 223.255.254.xxx11000000.00000000.00000001.xxxxxxxx
~
11011111.11111111.11111110.xxxxxxxx
2. Class별 Private IP Address의 범위
ClassPrivate IP의 범위
A10.0.0.0 ~ 10.255.255.25510.0.0.0/810.0.0.0                      255.0.0.0
B172.16.0.0 ~ 172.31.255.255172.16.0.0/12172.16.0.0                 255.240.0.0 
C192.168.0.0 ~ 192.168.255.255192.168.0.0/16192.168.0.0               255.255.0.0 
3. Subnet Mask 표
SubnetSubnet Mask (Dec)Host 수비고
/8255.0.0.016,777,216A Class Default Subnet Mask
/9255.128.0.08,388,608A Class Subnet Mask
/10255.192.0.04,194,304
/11255.224.0.02,097,152
/12255.240.0.01,048,576
/13255.248.0.0524,288
/14255.252.0.0262,144
/15255.254.0.0131,072
/16255.255.0.065,536B Class Default Subnet Mask
/17255.255.128.032,768B Class Subnet Mask
/18255.255.192.016,384
/19255.255.224.08,192
/20255.255.240.04,096
/21255.255.248.02,048
/22255.255.252.01,024
/23255.255.254.0512
/24255.255.255.0256C Class Default Subnet Mask
/25255.255.255.128128C Class Subnet Mask
/26255.255.255.19264
/27255.255.255.22432
/28255.255.255.24016
/29255.255.255.2488
/30255.255.255.2524
/31255.255.255.2542
/32255.255.255.2551


728x90

+ Recent posts