
VyOS를 사용해서 한 컨테이너를 라우터로 사용할 수 있다.
(주의)
중간에 IP 설정이 꼬여서 IP가 변경된다.
이번 글은 관리안된 현장에서 일처리 하는 느낌이 들 수 있다.
최종 결정된 IP Interfaces는 아래와 같다. 게이트웨이 주소이다.
eth0 : 10.17.0.250
eth1 : 192.168.17.1
eth2 : 192.168.117.1
Debian 10.x 64-bit로 OS를 설치했고, 이름/리소스들을 설정한다. 그리고 Bride로 연결해서 설치를 완료한다.






vyos 아이디/비번을 입력하고 설치를 이어간다. 화면에 보면 ID는 vyos 이다.

로컬 하드 디스크를 사용할 것이냐는 질문에 yes 설정한다.

configure 모드로 들어간다. 달러 $ 표시에서 # 효시로 바뀐 것을 볼 수 있다.
configure

호스트 이름을 설정한다.
set system host-name vyos-200

VyOS는 변경사항에 대해서 commit/saver 과정을 거쳐야한다. 그리고 재시작 한번해준다.
commit
save
reboot

이제 본격적으로 Interface 설정을 한다. 이 부분은 외부에 비사설망에 대한 부분이다. eth0은 사설망 주소를 입력한다. eth1와 eth2는 192번대의 주소이다. 아래에 명령어는 최종 적으로 적용된 명령어이다. (그림은 참고로만 사용해야 한다.)
set interfaces ethernet eth0 address 10.17.0.251/8
set interfaces ethernet eth1 address 192.168.17.1/24
set interfaces ethernet eth2 address 192.168.117.1/24

interfaces 연결상태를 확인한다. 마치 라우팅 하는 것과 동일하게 인터페이스 연결된 것을 볼 수 있다.
sh interfaces

변경 사항에 대해서 commit해주어야 반영된다.
commit
save

192번대 PC에서 10.17.0.250인 사설망으로 응답이 간다.(당시)
하지만 최종적으로는 10.17.0.251로 변경되었다.

이 부분에서 보면 Asia/Seoul로 시간을 조정한다. 통신시간이 올바르게 맞춰져야지 통신 안되는 문제들을 방지할 수 있다.
set system name-server 8.8.8.8
set system time-zone Asia/Seoul

server를 kr.pool로 연결한다.
set system ntp server kr.pool.ntp.org
# 변경 내용을 적용
commit
save

설정한 내용을 확인한다. Asia/Seoul로 설정되었다.


변경 사항들을 commit으로 적용한다.

쾌적한 작업을 위해서 10.17.0.250을 모바에서 접속한다.
(이 부분도 나중에는 10.17.0.251로 바뀐다.)

여기까지 하면 인터페이스 설정은 완료되었다.
이 부분에서 많이 헷갈릴 수 있다. (IP 192.168.100.1, 192.168.200.1은 잘못 설정된 것이다)
route 명령어를 사용하면 라우팅된 현재 상태를 볼 수 있다.
route

인터페이스가 어떻게 설정되어있는지 확인할 수 있다.
아래의 설정된 것이 route 최종이다. Destination은 아래와 같이 설정된 것이 route 최종이다.
Destination
10.0.0.0/8
192.168.17.0/24
192.168.117.0/24

인터페이스 상태를 확인해보고 어떤 상태로 연결되어 있는지를 확인한다.
192.168.100.1/24와 192.168.200.1/24로 잘못 연결되어 있는것을 고칠 것이다.
192.168.100.1/24 > 192.168.17.1/24
192.168.100.1/24 > 192.168.117.1/24
sh int

최종적으로 설정한 것은 이 부분에 나온 것이다.
최종 결정된 IP Interfaces는 아래와 같다. 인터페이스에는 게이트웨이가 설정된 부분이다.
eth0 : 10.17.0.250
eth1 : 192.168.17.1
eth2 : 192.168.117.1

DHCP는 네트워크 장치에 IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 정보 등 네트워크 설정을 자동으로 할당해주는 테트워크 관리 프로토콜이다. DHCP 서버가 IP 주소 할당을 중앙 관리하여, 수동 설정 없이도 장치가 네트워크에 쉽게 접속하게 하고 IP 충돌을 방지하며 효율적인 IP 관리를 가능하게 합니다.
dhcp를 설정해준다.
# dhcp 범위 설정
set service dhcp-server shared-network-name user-network subnet 192.168.117.0./24 range 0 start 192.168.117.2
set service dhcp-server shared-network-name user-network subnet 192.168.117.0./24 range 0 stop 192.168.117.254
# dhcp 설정
set service dhcp-server shared-network-name user-network subnet 192.168.117.0/24 lease 300
# dhcp default-routing
set service dhcp-server shared-network-name user-network subnet 192.168.117.0/24 default-router 192.168.117.1
set service dhcp-server shared-network-name user-network name-server 8.8.8.8
commit

프로토콜을 설정한다.
set protocols static route 0.0.0.0/0 next-hop 10.0.0.1

윈도우 클라이언트의 주소이다. 192.168.117.2가 최종이다.
디폴트 라우팅을 설정했기 때문에 ping 8.8.8.8이 응답이 온다.

(참고) 윈도우 클라이언트의 IP주소와 게이트웨이를 확인해준다.

Source NAT를 그림과 같이 설정한다. Outbound를 설정한다.
set nat source rule 100 outbound-interface eth0
set nat source rule 100 source address 192.168.117.0/24
set nat source rule 100 translation address masquerade
commot

이 규칙을 보면 eth0에 설정된 10.17.0.251은 inbound에 해당한다. 192.168.17.80으로 변환해준 것이다.
set nat destination rule 200 destination address 10.17.0.251
set nat destination rule 200 destination inbound-interface eth0
set nat destination rule 200 destination translation address 192.168.17.80
commit

eth1은 outbound이므로 주소에 masquerade 가 설정되어 있다.


인터페이스 설정된 것들 확인한다.
sh int

eth0은 192.168.117.0으로 설정된 source와 통신한다.

다시한번 확인한다.


Web 서버의 설정된 IP부터 확인한다.
192.168.17.80으로 설정되어 있다.

httpd가 올바르게 활성화되어 있다.

ping 테스트도 되었다.

IP 확인

IP 수정했다.

재시작


