Record

Linux (vyos로 NAT를 걸고 DNS서버에서 받아오자) 본문

CS/서버

Linux (vyos로 NAT를 걸고 DNS서버에서 받아오자)

now-record 2025. 12. 19. 17:47
반응형

 

 

일단 web과 DNS모두 사설 ip를 쓰고 web은 DNS서버와 통신을 해서 web에서 도메인으로 접속하는 실습을 진행했다. 

 

해야하는 것은 vyos에서 NAT설정하고 ip설정을 해야한다. 

set intetfaces ethernet eth0 address 10.11.0.250/8
set intetfaces ethernet eth1 address 192.168.11.2/24
set intetfaces ethernet eth2 address 192.168.22.1/24

지울때는 

delete interfaces ethernet eth2 address 192.168.22.1/24

 

 

이렇게 ip를 추가해준다.  참고로 commit을 해야 반영이된다.

 

그리고 우리는 10.11.0.251에 NAT를 걸 꺼기 때문에 secondary ip처럼 250을 설정해준다. 만약 250을 안해주면 NAT만 이용할 수 있고 ssh나 이런 접속을 할 수없다. ( 250으로 해도 연결은 되는데 그냥 NAT대로 간다) 

 

dhcp는 덤인데 넣어둔다. 

set service dhcp-server shared-network-name user-network subnet 192.168.111.0/24 range 0 start 192.168.119.2
set service dhcp-server shared-network-name user-network subnet 192.168.111.0/24 range 0 stop 192.168.119.254
set service dhcp-server shared-network-name user-network subnet 192.168.111.0/24 lease 300
set service dhcp-server shared-network-name user-network subnet 192.168.111.0/24 default-router 192.168.119.1
set service dhcp-server shared-network-name user-network name-server 8.8.8.8
commit

 

위에 글처럼 nat를 설정해줘야한다. 

이때 

SNAT 설정
set nat source rule 100 outbound-interface eth0
set nat source rule 100 source address 192.168.111.0/24
set nat source rule 100 translation address masquerade
commit

DNAT 설정
set nat destination rule 200 destination address 10.111.0.251
set nat destination rule 200 inbound-interface eth0
set nat destination rule 200 translation address 192.168.111.80
commit

SNAT는 내부(192.168.111.0/24)에서 외부로 나가는 트래픽의 출발지 IP를 eth0의 IP로 변경한다.

 

DNAT는 외부에서 10.111.0.251로 들어오는 트래픽의 목적지 IP를 192.168.111.80으로 변경한다.

 

 

이렇게 하게 되면 서로의 사설 ip에서 통신이 되게된다. 

 

그리고 DNS를 하기 위해 

vi /etc/named.rfc1912.zones

 

 zone파일을 안에 사용할 도메인을 작성해준다. 

 

cd /var/named
cp -p named.localhost abc.ke.dns

그후 localhost name파일을 복사하고 수정해준다. 

 

 

확인할 것은 abc로 이름을 바꿔주고 

dns서버는 사설ip(192.168.119.3)이 10.19.0.251에 NAT가 되어 있어서 ns1으로 들어올때 10.19.0.251을 타고 사설 ip 192.168.119.3에게 간다. 

 

systemctl start named.service

으로 시작을하고 

 

client에 dns서버를 바꿔준다. 

 

 

 

이러면 client에서 접속 성공!~ 

 

추가적으로 virtual machine에서 사용하는 vmnet은 vlan처럼 ip를 나누는 느낌이다. 

만약 현재 네트워크에서 10.0.0.0을 쓰면 bridge의 경우 같은 10번대를 쓰는거고 vmnet은 vlan으로 나누어진 다른 10번대를 쓰는 느낌이다.