안녕하세요~
옥돌 소녀 입니다 ㅎㅎ
오늘의 주제는 DHCP 서버입니다.
DHCP 서버가 왜 필요할까요 ?
HOST(IP, subnetmask, GW, dns 등)을 동적으로 할당하기 위해서 사용합니다.
수동으로 일일이 할당하면 관리자가 오버헤드가 발생하기 때문입니다.
프로토콜 port 번호는 UDP Client 는 68, Server Client 는 67 입니다.
우선
DHCP 서버 구조를 2가지 관점에서 바라보도록 할텐데요~
먼저 첫번째, 기본 구조는 LAN일 경우= (같은 망에 DHCP서버가 있는 경우에 ) 입니다.
1)
옥돌 PC DHCP Server
옥돌 PC ------------1) DHCP Discover------------------->>--- DHCP Server (1.1.1.254)
Dst Mac : FF:FF:FF:FF Dst Ip : 255:255:255:255
Src Mac : 0 Src Ip: 0:0:0:0
-----------------<<------2) DHCP Offer ------------------- DHCP Server (1.1.1.254)
Dst Mac : FF:FF:FF:FF Dsp Ip:0:0:0:0
Src Mac: DHCP's mac Src Mac: DHCP's Mac
+payload (client Mac : okdol + subnet + DNS + GW , Your ip is 1.1.1.0.0)
-------------------3) DHCP Request --------->>-------------DHCP Server (1.1.1.254)
Src Mac: Okdol Src Ip :0.0.0.0
Dst Mac : FF:FF:FF:FF DstIp : 255.255.255.255
+payload (client Mac : okdol + subnet + DNS + GW , Requested ,Your ip is 1.1.1.0.0)
-------------<<<------4) DHCP ACK = Response ----------------------DHCP Server (1.1.1.254)
여기서 FF:FF:FF:FF 는 브로드 캐스트 MAC을 말하는 것이구요
255.255.255.255는 브로드 캐스트의 IP주소가 됩니다.
----> 참고로 2계층에서 브로드캐스트 통신을 하는것입니다.
0.0.0.0 은 모르는 자신의 IP주소를 그대로 말하는 것이 됩니다.
그리고 Payload란 마치 추가자료 (증빙서류)와 같은 느낌입니다.
허가를 받기 위해 주민등록초본이나 가족 관계 증명서 필요하듯이 말입니다 ,
그런 증빙서류가 되는 것이지요
그리고 DHCP Offer라고 되어있는데
여기서 offer는 provide와 조금 다른 의미를 가지고 있는데요~
미묘한 느낌적인 느낌이 있답니다.
친구가 pen을 저에게 provide 한것은 pen을 준것이 되는것이구요
pen를 offer 한 것은 pen을 줄까 ? 라고 하는것입니다.
뭔가 제안 suggest 의 느낌이 더 강하다고 보시면
될거 같습니다.
그리고 DHCPSMS 주소 POOL (Address pool)을 가지고 있습니다.
그래서 request가 오면 pool 에서 확인인해서 ack/ response 를 보내는 것이지요~
이와 같이 4단계를 거치게 되면 complete !!
IP, SubnetMask, GW, DNS정보가 지정 완료 됩니다. : )
---> 즉 인터넷통신이 가능하게 되는것이지요
그다음은 두번째, 기본 구조는 LAN TO LAN 일 경우= (다른 망에 DHCP서버가 있는 경우에 ) 입니다.
2)
옥돌 PC -----------DHCP Discover --------------- 라우터 -------------------DHCP Discover----------------DHCP Server
(Broadcast) Agent Relay (Unicast)
여기서 라우터는 IP Helper 가 됩니다.
라우터는 1.1.1.1 ip 를 가지고 있고
DHCP Server 는 2.2.2.2 ip를 가지고 있습니다.
이를 확장하면
공유기안에도 DHCP 서버가 있어서
IP주소를 자동으로 할당해준다고 볼 수 있습니다.
여기서 헛갈리지 말아야 할 것은
서버란 아주큰 컴퓨터라는게 아니라
단지 서비스를 제공해주는 OFFER 해주면
다 서버가 되는것이지요 ~
패킷 구조를 보여드리면 이렇습니다~



그런데 한가지 고려해야할점은
LAN TO LAN 통신을 할 때, 망이 넓어지는 경우는
HOST 수가 증가하는 경우이지요?
이런 경우에는 SNOOPING 할 수 잇는 확률이 증가하는 것입니다.
그래서 보안에 취약하다는 문제가있는것이지요~ !!
취약점과 공격 기법이 궁금해지네용 ㅎㅎ : )
그건 다음 기회에 포스팅 하도록 하겠습니다아
-----------------------------------------------------------------------------------------------------------------------------------
그 다음 주제는 로드 밸런스 입니다
(Load Balance) 란 부하분산의 의미를 가지고 잇는데요
많은 user 가 잇는데 서버가 하나만 잇다면 어떨까요?
서버를 공격하면 혹은 서버에 과도한 요청을 하면
서버가 뻑이 가죠 ??
그래서 서버에게도 부하분산을 한 것이
로드 밸런스 (Load Balance) 입니다.
대표적인 로드 밸런 스 방식으로 는
roundrobin : 순번에 따라서 간다
- leastconnection : 세션 수가 제일 적은 곳으로 간다
- hash : Client IP를 hashing하여 특정 서버로만 forwarding
이렇게 있는데요
왜 대부분 라운드 로빈을 사용하고
Least connection은 사용하지 않을까요 ?
Server (LB)
PC PC
500 1000
예를 들어 위와 같은 구조에 buffer에 1000개의 요청이 들어왔다고 해봅시다
그러면 least connection 방식이라면 어디로 갈까요 ?
아마 500개의 request가 있는 pc 쪽으로 갈꺼에요 ( 세션 수가 제일 적은 곳이니까요)
그런데 만약 가게 되면 어떻게 되죠 ??
PC PC
1500 1000
위와 같이 되죠 ??
조금더 과장해서 불균형을 보여드리도록 하겠습니다.
다시 처음으로 가서
Server (LB)
PC PC
500 1000
예를 들어 위와 같은 구조에 buffer에 5000개의 요청이 들어왔다고 해봅시다
그러면 least connection 방식이라면 어디로 갈까요 ?
아마 500개의 request가 있는 pc 쪽으로 갈꺼에요 ( 세션 수가 제일 적은 곳이니까요)
그런데 만약 가게 되면 어떻게 되죠 ??
PC PC
5500 1000
위와 같이 될꺼에요 : )
즉 불균형이 많이 심해진게 보이시죠 ??
위험해요 ㅠㅠㅠ
그런데 만약 라운드 로빈 방식이라면 어떨까요 ??
Server (LB)
PC PC
500 1000
위 구조에서 순차적으로 한개씩 처리할꺼에요
그러니까 처리하는 개수가 많으면 1~2개 정도
차이가 날꺼에요 : )
딱 봐도
작은 곳에 한번 쫙 ! 밀어넣는 Least connection 구조 보다는
더 안정적으로 보이지 않나요 ??
그리고 least connection 같은 경우는
가장 작은 값을 먼저 찾아야하는것이니까
뭔가 while 문안에 if 문으로
걸러주는 듯한 느낌이 들지 않으세여??
round robin 은 한번의 while문안에 다 넣을 수 잇는데
least connection 같은 경우는 if 가 낑겨 있기 때문에
조금더 시간이 걸린답니다.
'네트워크' 카테고리의 다른 글
| STP Intro / 스위치의 기본 통신방식 , loop 구조 / (0) | 2020.01.09 |
|---|---|
| 기술 면접 (0) | 2020.01.08 |
| 네트워크 이중화와 클라우드 개념 (0) | 2020.01.07 |
| 채팅 프로그램 서버 구조 (0) | 2020.01.06 |
| DNS 서버 (0) | 2020.01.06 |