Profile Picture

윤찬의 개발노트

2024. 10. 19.

Vyos로 네트워크 구성하고 통신

Network
"연습은 잘하는 사람이 하는것이 아니라, 잘하기 위해 하는 것이다"

가상환경을 사용해 라우터로 연결이된 소규모의 네트워크를 구성한 뒤 각각의 서버를 구축한 이후 여러가지 테스트를 해본다. 환경은 다음과 같다.


네트워크 구성

1개의 라우터를 배치한 이후 3개의 서브넷을 구성한다. 라우터는 웹 서버를 담당하는 서브넷, 네임서버를 담당하는 서브넷, 메일서버를 담당하는 서브넷이 존재한다. 또한 이들의 게이트웨이는 각각 '10.0.0.1', '20.0.0.1', '30.0.0.1'이다.


visual box, ubuntu, vyos 설치

visual box 사이트에서 다운로드한다. 모든 설치를 완료하면, 이후 visual box에 vyos와 ubuntu의 이미지 파일을 넣어 라우터와 서브넷을 구성할 것이다. vyos 다운로드 사이트에서 윈도우 64bit버전 이미지 파일을 다운로드 한다. 위 과정이 모두 끝나면 ubuntu, vyos 총 2개의 iso파일이 폴더에 담아진다.


vyos 환경설정

  • vyos ios파일을 명시한다.
  • 기존 메모리는 512MB로 설정하며 cpu는 2개로 설정한다.
  • 디스크 사이즈는 4~5GB사이로 설정한다.
  • 이후 메모리, 디스크 크기를 완료하면 마무리가 된다.

vyos는 네트워크 운영 체제이므로, 설치를 위해 ISO 파일이 필요로 한다. ISO 파일은 운영 체제를 부팅하고 설치하는 데 필요한 모든 파일과 구성 정보를 포함한다. 그래서 설치를 하는 것이다.

512MB로 설정하며 CPU는 2개로 하면, vyos같은 라이터 및 네트워크 장비를 운영하기에 충분한 최소 사양이다. 지금 할 테스트는 기본적인 라우팅 작업이니, 이정도면 무난하다. 디스크 사이즈 또한 기본적인 설정과 로그를 저장하는데 충분하다.

이후 위와같이 httpServer, NameServer, MailServer를 생성한다.


구성한 네트워크 ping test

HttpServer를 기준으로 접속하여 터미널창에 각각 ping 네임서버, 메일서버의 주소를 입력하면 test가 정상적으로 작동하는 것을 알 수 있다. 네임서버와 메일서버 터미널에서 접속하여 한 번 더 확인하지 않은 이유는 서로가 연결 되어 있을경우에만 test가 정상적으로 수행되기 때문에 하나의 서브넷에서 테스트를 하여도 무관하기 때문이다.


NameServer 설치 이후 ping test

  • 명령어 'sudo apt-get install bind9'을 입력해서 bind9을 우분투에 설치한다.
  • /etc/hosts에 들어가서 hosts를 수정해준다. NameServer는 20.0.0.2의 ip주소이다.
  • 내 이름 마지막을 따서 chan(찬).com으로 네임을 설정할 계획이다.
  • /etc/bind/named.conf.local에 접속하여 zone파일을 수정해준다.
  • /etc/bind/db/chan.com으로 vi 편집기를 실행시킨다.
  • Zone file에서 DNS Record를 작성해준다.

아파치가 설치되어 있는 HttpServer에서 NameServer를 사용하여 chan.com을 주소란에 입력하여 접속이 되는 것을 확인할 수 있다. 또한 ping test도 정상적으로 작동하는 것을 확인할 수 있다.


HttpServer 설치 이후 browser로 test

HttpServer에서 명령어 sudo apt-get install apache2를 통해 아파치를 설치한다.

wireshark를 통해서 필터에 Ip.addr = 10.0.0.1을 입력하니 걸러지는 것을 확인할 수 있고 좌측의 http/1.1을 통해 HTTP 프로토콜을 사용한다는 것을 볼 수 있다. NameServer와 연결이 잘 되어있다는 것을 다시한번 확인할 수 있으며, browser를 통해 정상적으로 test가 된다는 것을 알 수 있다.


MailServer 설치 이후 메일이 전달되는지 test

명령어 sudo apt-get install mailutils, sudo apt-get install postfix를 통해 메일서버를 설치한다.

mailserver -v 로 메일서버가 잘 설치되었는지 확인을 한 이후 네이버로 메일을 보냈다. 명령어 echo "텍스트" | mail -s "텍스트" 메일주소를 통하여 메일을 전송하면 입력한 메일주소 스펨란으로 내가 작성한 테스트가 전달이 된 것을 확인할 수 있다. 스팸메일로 처리되는 이유는 postfix를 통하여 메일서버를 구축할 때 고정IP를 사용하는지가 중요하기 때문이다. 즉, 화이트 도메인으로 등록이 되어있지 않은 도메인이나 IP는 모두 스팸메일로 처리가 되기 때문이다.

  • 스팸메일로 오는 것을 해결하려면 해당 이메일 사이트에서 스팸메일 차단을 클릭
  • 내 DNS에 SPF를 적용하여 스팸처리 막기
  • 화이트 도메인으로 등록

스팸메일을 막으려면 위와같은 방법을 사용하면 된다.


NAT 설정

HttpServer, NameServer, MailServer를 우분투를 통하여 생성하고 터미널창을 열어서 ifconfig를 확인하려고 했지만 apt-get 오류가 발생하였다. 처음에는 apt-get이 설치가 되어있지 않다고 생각해서 apt-get update 명령어로 install하려고 했지만 이상하게 또 설치가 되지 않고 ign메시지가 떴다. 우분투 서버를 다시 만들고 했지만 오류는 여전했고 인터넷 을 검색해도 해당 오류에 대한 구체적인 자료는 찾기 힘들었다. 이유는 다음과 같다.

APT는 패키지 정보를 인터넷의 소스 리포지토리에서 가져와야 하므로, 인터넷에 연결되어 있어야 정상적으로 작동한다. 현재는 내부 네트워크를 사용하고 있고, 이것은 실제 내 컴퓨터와만 통신할 수 있으며, 외부 인터넷과는 연결되지 않는다. 따라서 APT가 외부 리포지토리에 접근할 수 없어 패키지를 설치하거나 업데이트할 수 없다.

현재는 모든 서버를 '내부 네트워크'로 구성을 하였고 직접 할당한 ip를 사용하고있 었기 때문에 벌어진 일이었다. 즉, 기존 운영체제에서 가상머신을 사용하여 그 위에서 리눅스 명령어를 install하기 위해서는 내부내트워크가 아닌 평소에 쓰는 운영체제에서 사용 해야한다는 것이다.

이후 내부네트워크NAT로 바꾼이후 'apt-get update'등의 명령어를 입력하니 외부 우분투 사이트에서 설치를 완료하여 다시 가상머신 내부에 적용이 된 것을 확인할 수 있 었다. 이후 다시 '내부네트워크'로 수정한 뒤 설치된 명령어를 입력하니 잘 사용이 되었고 이를 응용해서 메일서버에서 외부 메일에 메시지를 보낼때도 NAT으로 잠시 바꾼뒤 외부와 연결을 시도하여 스팸메일함에 잘 도착하도록 해결하였다.

Profile Picture

CHAN

과정은 복잡하되, 결과는 단순하게

Thank You for Visiting My Blog, Have a Good Day 😆
ⓒYoonchan Cho