network/vyOS

VyOS 기본설치 및 기본 문법

부엉이사장 2023. 10. 13. 09:07

vyos환경을 사용할 인스턴스를 먼저 만든다.

사실 vyos가 가벼운 라우터? 같은 느낌이라 그닥 리소스가 큰 VM머신을 파줄 필요가 없다.

나는 ram 1gb, hdd 5gb짜리 인스턴스를 기본으로 할거다.

 

# vyos 기본 설치 명령어 ( 명령모드에서만 )

일단 VM웨어가 만들어지면 화면이 뜰거다. 아이디와 비밀번호를 각각 vyos로 입력하고 진행하면 명령어를 칠 수 있는 화면이 나온다. 

install image

바이오스 환경에서 이미지를 설치하는 명령어다. 바이오스 vm을 만들었을 경우 필수로 해줘야한다. 쉽게 생각해서 윈도우 iso를 cd rom에 넣고 돌리면 설치화면이 뜨고 설치를 진행하는것이라고 보면 된다.

 

모든 설정에서 그냥 enter을 입력하고 넘어가다가, This will destroy all data on /dev/sda. continue? 라는 질문이 나왔을때 yes를 입력하고 진행하자.

이 질문은 음.. 어차피 쌩 VM머신에 설치를 진행하는거라 꼭 설정해줘야하는지 모르겠는데 윈도우 설치시에 디스크 포맷후 설치하냐는 의미같다. 암튼 이 질문만 yes를 누르고 진행한다.

 

쭉 엔터를 누르다가 비밀번호 입력창이 나오면 'vyos'를 입력해준다. 그리고 나머지 설정도 모두 yes를 눌러준다.

설정이 완료되면 이렇게 안도의 메세지가 나오고 명령어를 입력할수 있는 상태로 돌아간다.

 

 

# 모드 변경

configure

이 명령어를 치면 vyos환경을 변경할 수 있는 구성모드로 진입한다.

exit

구성모드에서 나오려면 'exit'명령어를 치고 나올 수 있다. 

먼저 커맨드 입력때 $표시가 있는건 명령모드이다. 우리는 이미 'install image'를 명령모드에서 입력하였다.

여기서 구성모드로 진입하면(configure) $가 #으로 변하게 된다. 구성모드를 제일 자주 쓰게 될거다. 우리가 라우터 설정을 하거나 대역대를 다룰때 구성모드에서 명령어들을 입력하기 때문에 그냥 시작하자마자 conf치고 시작하자.

참고로 configure말고 conf 만 치고 접속할 수 있다.

 

 

# 설정 확인 명령어

show system

이 명령어를 치면 시스템 설정을 볼 수 있다. 뭐 이것저것 들어있따..

 

# 인터페이스 확인

run sh int
show interface

인터페이스 정보 보여줘~ 둘중 하나 쓰면된다.

기본 설정을 마친 상태라 eth0에 그냥 맥주소만 달려있다. 인터페이스의 맥주소이다.

만약 이 인터페이스에 아이피를 추가하면 아래와 같이 바뀐다.

eth0에 아이피 1.1.1.1/24를 부여하였다. packet tracer과 같이 서브넷마스크를 길게 안써줘도 되서 편하다.

참고로 'sh int' 만으로 확인 할 수도 있다.

 

# 라우팅테이블

ip route show

라우팅테이블 상태를 볼 수 있다.

아까 eth0에 아이피대역 1.1.1.0/24의 1.1.1.1아이피가 들어있는걸 볼 수 있다.

그냥 'ip route'명령어로도 확인할 수 있다.

 

 

# commit 명령어

commit

위에서 잠깐 보였는데 vyos에서는 설정 명령어를 친다고 바로 적용되지 않는다. 명령어를 많이 치고 최종적으로 commit을 쳐줘야 변경사항이 저장된다.

예를들어 2.2.2.2/24아이피를 eth0에 추가하고 인터페이스 정보를 보면

요렇게 뜬다. 근데 방금 추가한 2.2.2.2/24아이피 옆에 +기호가 있네? 이건 설정을 적용하기 이전이란 상태이다. 물론 실제 vyos서버에서도 이 설정이 적용되어 적용되지 않는다. 

이 상태에서 commit을 치면

아까 있던 +기호가 사라진다. 이제 실제로 vyos서버에서 이 설정이 동작하기 시작한다.

약간 git이랑 비슷하다능..

 

 

++ commit 이전 적은 설정들을 취소하고 싶을떄? 

discard

이 명령어를 치면 이전 커밋상태로 리셋하는 명령어이다.

아까 eth0에 추가한 2.2.2.2/24아이피를 취소해보겠다.

취소했고 인터페이스 정보를 보니 옆에 -기호가 나타났다.

이 상태에서 commit을 치면 eth0에 2.2.2.2/24주소가 사라지는데 여기서 discard명령어를 치면?

가장 최근 커밋 이전으로 설정이 리셋된다. 명령어 잘못 쳤을때 유용하게 쓸 수 있다.

 

 

# 전체 설정 확인 명령어

show

시스템 설정 등등 모든 정보들을 볼 수있다. 후에 sh nat같이 nat설정만 볼 수 있는 명령어가 길지 않아서 편하다.

 

 

# save명령어

save

현재상태를 저장할 수 있다. 

위의 인터페이스 상태에서 eth0의 2.2.2.2/24주소를 삭제하고 commit한 상태에서 저장해보겠다

/config/config

# load 불러오기 명령어(save와 짝꿍)

load

얘는 커밋을 무시하고 save상태로 돌아간다. 코드 실수가 많은 단계가 예상되면 save해주면 될 것 같다.예시를 들어보자면

현재 인터페이스 상태에는 eth0에 1.1.1.1/24아이피만 부여되어 있다. 이 상태에서 save를 하겠다.

그리고 인터페이스 eth0에 2.2.2.2/24아이피를 부여하고 commit 해보자.

마지막으로 load 명령어를 입력하고 commit 후에 인터페이스를 다시보면 이렇게 이전설정으로 되돌아와있다.

중요한점은!!  load 명령어를 입력후에 commit을 해야 적용된다는 점이다.

+ 직접 파일 경로를 잡아서 load 할수도 있다고함.. 근데 잘모르곘음

 

# 기타 등등

reboot

재부팅

poweroff

전원종료