DHCP : DHCP 서버가 있어서, 자신의 네트워크 안에 있는 클라이언트 컴퓨터가 부팅될 때 자동으로 IP주소, 서브넷 마스크, 게이트웨이 주소, DNS 서버 주소를 할당해 준다.
적은 IP 주소를 가지고 있더라도, ip를 할당해주고 해제하고 하기 때문에 다수의 컴퓨터를 관리할 수 있다.
우선 dhcp 설정을 꺼서, 컴퓨터를 부팅했을 때 자동으로 ip를 할당받지 못하게 하자.
현재 상태에서 client 등에서 네트워크를 활용한 무언가를 하려고 하면 제대로 동작하지 못한다. ip를 할당받지 못했기 때문.
이제 server에 dhcp를 설치하자. dnsmasq라는 프로세스를 종료하자. dhcp와 겹치기 때문.
ps -ef | grep dnsmasq로 프로세스 번호를 보고, kill -9를 하자. 그런 다음 disable시키자.
이제 /etc/dhcp/dhcpd.conf 마지막 줄에
ddns-update-style interim;
subnet 192.168.111.0 netmask 255.255.255.0 {
option routers 192.168.111.2;
oprtion subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.111.30 192.168.111.50;
option domain-name-servers 168.126.63.1; //kt에서 주는 서버
default-lease-time 10000;
max-lease-time 50000;
}
를 추가해주면 된다.
bootp는 클라이언트에게 할당할 ip주소의 범위이다.
default-lease-time은 클라이언트에게 ip주소를 임대해 줄 기본적인 초단위 시간이다. 그럼 max-lease는 알겠지???
ip를 빌려간 내역은 /var/lib/dhcpd를 확인하면 된다.
이제 dhcpd를 재시작, enable(상시가동), 방화벽 설정을 해주고 client에서 확인해 보면 잘 되는걸 확인할 수 있다.
server에 squid를 설치해서 프록시 서버를 운영해 본다.
/etc/squid/squid.conf를 수정하자. 26줄, 54줄, 62줄, 맨 아래
26 -> acl centos7 src 192.168.111.0/25.255.255.0
54 -> http_access allow centos7
62 -> 주석 제거, 100을 1000으로 바꿔 용량을 늘려줌
74 -> visible_hostname centos7
이제 방화벽 설정을 해준다.
이제 방화벽을 stop하고, client에서 firefow 환경 설정에 들어가서 프록시를 수동 설정 해준다.
이제 현재는 프록시를 가동 안 하므로, client에서 무언갈 하려고 하면 접근할 수 없다.
이제 server에서 squid를 재시작, enable하려고 했는데 진행되지 않았다! 찾아보니 openssl을 설치해야 한다고 한다. 그 이유는 squid가 자체적으로 openssl 기반으로 암호화를 진행하기 때문에 openssl을 필수적으로 필요로 한다고 한다.
windows에서는 인터넷 옵션 - LAN 설정에서 firefox와 같이 설정해주면 된다.
linux에서 windows에 접근한다면, ens32(192.168.111.100)를 통해 접근한 것으로 본다.
마스커레이딩 : 만약 Client에서 Windows로 접속한다면, Windows에서는 ens33에서 접속한 것이 아니라, ens32(192.168.111.100)에서 접속한 것으로 안다.
SNAT : Client에서 ens33 -> ens32 -> ens34 -> ens32(192.168.111.100) -> Windows 서버에 접속하면, 패킷을 전송하면 Windows에선 ens32(192.168.111.100)으로 돌려준다. 그러면 Server에선 Client로 해당 패킷을 되돌려주는 작업을 필요로 한다.