esxi를 활용한 내부망 구성 관련하여 고수님들께 질문을 구하고 싶습니다.

   조회 4668   추천 0    

 안녕하세요 


저희 회사가 이번에 구현하는 프로그램이 esxi 를통한 다수의 윈도우 vm 내에서 돌아가고 네트워크 가상화와 망분리 등을 구현해야 하는데

코딩만 하다보니 여러가지 밑천이 들어나는지라 여러 인프라 + 가상화 고수님들의 조언을 여쭙고자 합니다.


현재 대략적으로 이러한 시스템을 구상하고 있으며 개별 VM은 가상 nic가 두개씩 설치되 내부망 외부망(모든 vm이 모두 다른 공인 ip를 할당받음)

에 모두 연결됩니다.

 설치된 client프로그램은  내부용 서버에 접속을해서 평소에는 내부망으로 tcp통신을 하고

때에따라 외부망으로 통신을 하게 됩니다

아 그리고 내부용 서버는 그림에 나와있지 않으나 우측상단 공유기에 연결되어 있습니다.


1.내부망 latecy(RTT) 를 줄일수 있는 방법이 있는지? 

 현재 내부용 서버와 개별 VM은 대략 1ms~2ms 정도가 나옵니다. 생각같아선 마이크로 세컨드 단위로 

  더 줄이고 싶은데 tcp 통신의 한계로 가능할런지 모르겠네요

 UTP 선을 모두 최상급으로 교체(이건 대역폭과 관련있는 문제인것 같은데 latency 에도 영향을 주는지 궁금합니다.)

 현행 쓰고있는 iptime 장비를 최고급형으로 교체(이것 역시 latency를 줄이는 것과 관련이 있을지 궁금합니다.)


2. 개별 vm은 사실상 WAN에 바로 물려있게 됩니다. vm 내부에 설치되는 윈도우에서 inbound 포트 개방은 없지만(저번에 올린 질문에 이 문제에 대해서 많은 논의를 해 주셨는데 너무 감사 드립니다) 그래도 좀 불안 불안해서 

 최소한의 대비만 하려고 하는데요 제가 아는선에서 솔루션은 이렇습니다.


 ESXI_1 의 vm 하나에 pfSense 설치후(이하 pfsense_vm)  pfsense_vm에 가상이더넷 카드(pfsense-WAN연결용 )를 전체 VM 갯수(7개)만큼 추가 시키고 

 vSwitch를 통해 받은 공인 ip 하나당 각각의 NAT를 구성한뒤  pfsense-vm 연결용 가상이더넷카드4개(같은 esxi_1 내부 vm 3개, esxi_2 와 연결 시키기 위해 한개) 를 통해 나머지 vm 들과 연결 한다.(물론 이렇게 되면 그림과 달리 외부망에서 바로 esxi_2 와 연결은 안하게되고  esxi_1은 물리 랜카드 3개를 가져야 함)


 인데 뭔가 미개한것 같기도 하고 해서 뭔가 이것보다 우아한 해결책이 있으면 조언 부탁드립니다 


3.vm 내부 윈도우의 라우팅 문제. 만약 내부망이 192.168.0.0/24 대역을 가지고 있고 내부용 서버가 192.168.0.10/24  이라면 내부망 통신은 

  192.168.0.0/24  대역에서만 하기를 원하고, 그외에는 모두 외부망을 통해야 합니다. 

 제가 아는선 에서는 스크립트를 등록해서  PBR 세팅을 통하는것 밖에 없는데요 지금은 괜찮지만 머신 대수를 많이 늘릴수도 있어서 그런데

 PBR스크립트를 짜서 시작프로그램으로 등록하는  방법밖에는 없는건가요?

  내부용 서버는 그림에 나와있지 않으나 우측상단 공유기에 연결되어 인터넷 통신이 가능합니다.


제가 써놓고도 잘 못알아 먹겠네요 코딩쟁이의 한계를 너그러이 이해해 주시고 많은 지도 편달 부탁드립니다


 



?
짧은글 일수록 신중하게.
송주환 2021-08
1. 왜 Low latency 특성이 필요한지를 먼저 말씀해 주셔야 할 것 같습니다. RTT는 측정 방법에 따라 얼마든지 달라질 수 있기 때문에, 요구사항을 먼저 정의하고, 그 요구사항에 적합한 측정 방식을 고안하고, 충분한 샘플을 수집한 다음 평가를 진행하야 합니다. 단순히 'ping을 날렸더니 RTT가 몇이 찍히더라' 라는 말은 SLA 달성에 도움이 되지 않습니다.
일반적으로 패킷이 커널 내부를 통과하는 데 시간이 많이 걸린다고 생각하는 경향이 있으나, 실제론 그렇지 않습니다. 가상화 환경이기 때문에 튜닝이 보다 어려울 것 같구요.
소프트웨어와 커널 수정 없이 레이턴시를 개선하는 것에는 SR-IOV 사용과 저지연 스위치 사용이 도움이 될 수 있습니다.

2. 상단에 방화벽을 추가하는 것이 가장 좋습니다. 만, 현실적으로 어렵다면 방화벽을 VM으로 올려야 하는데, 현재의 구성에서 N개의 VM이 있다고 PFSense가 N개의 포트를 가져야 할 필요는 없습니다. 동일 vSwitch에 위치하기만 하면 OK

3. NAT를 통해 외부망과 연결된다는 전제 하에, VM에 2개의 vNIC을 연결하고, 외부망 NAT의 IP 대역을 분리(192.168.10.0/24 등)하고 이쪽을 Default Route로 지정, 내부망에 대한 라우팅 경로를 추가해주는 것이 가장 깔끔해 보입니다.
     
후리부야 2021-08
답변 감사합니다.

1.윈도우 응용프로그램에서 측정하는 기준입니다 1-way latency 를 어떻게 정확히 측정하나 고민하였고,  tcp 소켓프로그래밍 작성후 client가 일단 접속을 한뒤에
 server로 패킷을 보내기 직전 chrono로 micosecond 정확도 start timestamp 체크 하였고 server는 받자마자 바로 돌려 보낸뒤 client가 다시 받아서 다시 end timestamp를 측정한 결과 end -start  2~4ms가 나온걸 확인후 이를 1/2 한 결과로 예측 하였습니다. 일단은 어플리케이션 영역에서 하나의 노드에서 보낸 패킷을 최대한  빨리  다른 노드에서 받기를 원합니다.

2. 방화벽을 VM으로 올려야 하는데, 현재의 구성에서 N개의 VM이 있다고 PFSense가 N개의 포트를 가져야 할 필요는 없습니다. 동일 vSwitch에 위치하기만 하면 OK
-> 이의미가  WAN-pfsense 연결용은 vNIC N개를 갖추어야 한다 + WAN-다른vm 은 동일 vSwitch 이기만 하면 OK  이 의미 인가요?
  아니면  WAN-pfsense 연결용도 vNIC 하나 + WAN-다른vm 은 동일 vSwitch 이기만 하면 OK  이 의미 인가요 
  두번째라면 vSwitch 를 통해서  각 아이피를 할당 받아야 하는데 pfSense가 vnic 하나로  공인아이피 여러개를 받을수가 있나요?
          
송주환 2021-08
1. Windows에서 low latency를 달성하는 것은 어렵습니다. 무슨 수를 써서든 레이턴시를 낮춰야만 한다면 RDMA를 사용하는 것을 고려할 수 있습니다.

2. Public IP와 VM이 1:1로 연결되어야 한다면 macvlan+PBR이 최선입니다. 리눅스 환경이어야 하므로 pfsense 대신 Vyatta를 사용해야 합니다. 어느 쪽이든 확장성 문제가 있습니다. 만약 타겟 애플리케이션이 Stateless Application이라면 N:N NAT를 고려해 볼 수도 있으나, 현실적으로는 어렵지 않을까 생각합니다. 관리 편의성을 고려하면 ISP로부터 IP Block을 할당받은 뒤 상단에 방화벽을 붙이는 것이 좋습니다.
               
후리부야 2021-08
감사합니다 관리의 용이성 측면에서도 그냥 물리방화벽을 두는게 좋을것 같네요

혹시 방화벽 추천 하시고 싶은 상품이 있으신지요 vm 의 숫자의 약 20~40개 정도 생각하고 있으며 트래픽의 양은 크지 않습니다
                    
송주환 2021-08
소규모 환경에서는 Fortigate 제품의 가성비가 좋습니다.
dateno1 2021-08
1. 경험상 저렇게 가상 스위치 거치면 1ms 이하는 좀 힘들꺼에요

2. 인바운드 포워딩할일 없다면 공유기쪽에 물리세요

아니면 적으신대로 라우터계열 돌려도 됩니다

다만 굳이 일일히 1:1 매칭해줄 필요없이 가상 NIC 2개만 달고, LAN용 NIC를 가상 스위치에 물리고, 그걸 VM이랑 같이 써도 됩니다

3. Route 추가시 서브넷 단위도 가능할껀데요?
     
후리부야 2021-08
감사합니다.

저지연 장비를 검토해야 할것 같습니다 ㅠ
감자 2021-08
내부망 40G나 10G로 연결하시고
ssd 여러개 raid 0 하심이 ?


QnA
제목Page 1932/5709
2014-05   5150465   정은준1
2015-12   1684994   백메가
2021-01   4312   3DJUN
2016-12   4312   무아
2020-01   4312   아기견저커
2016-12   4312   방o효o문
2017-12   4312   김건우
2015-10   4312   inquisitive
2018-03   4312   inoree
2015-06   4312   김건우
2014-11   4312   리나
2020-10   4312   GPGPU
2016-04   4312   블랙
2014-08   4312   래넌
2021-04   4312   PCMaster
2016-10   4312   트니아빠
2021-07   4312   정상억
2014-09   4313   김제연
2018-05   4313   Sikieiki
2016-07   4313   수필처럼
2015-08   4313   박현문
2015-08   4313   니꾸뿡