conf t
int fa1/0
ip add 10.10.100.1 255.255.255.0
no sh
int fa0/1
ip add 10.10.10.1 255.255.255.0
no sh
do show ip int br
conf t
int fa 0/0
ip add 10.10.200.1 255.255.255.0
no sh
int fa0/1
ip add 10.10.10.2 255.255.255.0
no sh
# HQ
do ping 10.10.10.2 # 연결 O, 10.10.10.1 -> 10.10.10.2로 통신 O
do ping 10.10.10.2 so 10.10.100.1 # 연결 X, 원래는 10.10.10.1인데 출발지가 10.10.100.1로 하는 것. 통신 X (2로 갔는데, 돌아올 때 10.10.100.1을 알아야하는데 모르기 때문에 통신이 안되는 것. 되게 하려면 라우팅테이블에서 찾아야함)
do ping 10.10.200.1 # 연결 X, 10.10.10.1 -> 10.10.200.1 어디있는 지 모르니까 안 가는 것
# HQ 설정
ip route 10.10.200.0 255.255.255.0 10.10.10.2 # 해당 범위로 하는 목적지 패킷이 들어오면 HQ는 BR한테(10.10.10.2)로 보내면 됨
# BR 설정
ip route 10.10.100.0 255.255.255.0 10.10.10.1 # BR에서도 설정
# HQ에서 잘 보내지는 지 확인
do ping 10.10.200.1 so 10.10.100.1 # 출발지를 10.10.100.1 -> 목적지 10.10.200.1
[HQ]에서 확인
ip route 1.1.1.0 255.255.255.0 2.2.2.2
ip route 1.1.0.0 255.255.0.0 2.2.2.2
ip route 1.0.0.0
ip route 0.0.0.0 0.0.0.0 2.2.2.2
IPv4 : 4개의 옥텟. 각 옥텟은 8bit.
ip route 0.0.0.0 0.0.0.0 192.168.1.1
ip route 0.0.0.0 0.0.0.0 10.10.10.1
10.10.200.100으로 가려고 할 때
C 10.10.10.200.0/24 ←상세한 주소
S 0.0.0.0/0
int fa0/0
ip add 192.168.1.114 255.255.255.0
no sh
do ping 8.8.8.8 # 연결 되는 것 확인 가능
exit
conf t
ip name-server 8.8.8.8 # PC에 8.8.8.8 넣는 것과 같은 효과
ip domain-lookup # 지금 부터 쓰는 글자를 DNS에게 물어볼 것임
do ping www.google.com # 정상적으로 동작
그러나, 뒤쪽에 있는 사설 ip는 인터넷 연결되지 못함
do ping 8.8.8.8 # BR에서는 연결되지 않음
공유기 하나기때문에 PAT를 해야함
내 뒤에 있는 것 중 어떤 걸 연결할지
! private addresses
access-list 1 permit any
! private addresses => public ip
ip nat inside so list 1 int fa0/0 overload
any = 0.0.0.0
HQ(config)#! busan branch network
HQ(config)#int fa0/1
HQ(config-if)#ip nat inside
HQ(config-if)#! head quarter network
HQ(config-if)#int fa1/0
HQ(config-if)#ip nat inside
HQ(config-if)#! internet network
HQ(config-if)#int fa0/0
HQ(config-if)#ip nat outside
모든 IP가 나에게 오는데 80번 포트로 가는 것을 나는 허용하겠다
외부에 있는 모든 애들이 내부로 443으로 접속하는 것을 허용하겠다
외부에 있는 모든애들이 내 뒤에 있는 모든 1024-65535 에 대해 접속하는 걸 허용하도록한다.
이 제외한 나머지는 차단시키겠다.
본사와 지사의 모든 내부 네트워크는 HQ 라우터의 fa0/0에 있는 한개의 IP주소를 공유하여 인터넷을 사용할 수 있어야 한다
PC1> ip 10.10.100.100/24 10.10.100.1 # ip, 게이트웨이 설정
PC1> ip dns 8.8.8.8 # dns 설정
PC1> ping www.google.com # 인터넷 연결 확인
PC2> ip 10.10.200.200/24 10.10.200.1
PC2> ip dns 8.8.8.8
ping www.google.com # 구글 접속(인터넷)되는 지 확인
ping 10.10.100.100 # 본사로 가는 지 확인
문제점을 찾아 해결 해나가는 과정
ping 10.10.10.1
do ping 10.10.10.2
ping 10.10.200.1
→ 각 네트워크 끼리 통신 문제 X
ping 10.10.10.2
ping 10.10.200.200
→ 내부 네트워크 문제 X
인터넷 문제일 수 있음
do ping 192.168.1.1
if 안되면
do show ip int br
(0/0에 IP가 들어가있는지, 상태가 up인지, 라인 프로토콜이 up인지) down이면 no sh 하면 됨. IP가 192.168.1.1xx가 맞는지
이래도 안되면
라인 지웠다가 다시 연결
PC에서 timeout 기간 / 라우터에서 . 인 것은 ARP통신 중인 것임
우리 회사는 웹서비스 제공을 위하여 공인주소를 구매하였다.
211.183.3.0/24를 사용할 수 있고, 라우터에 HQ의 fa0/0에는 211.183.3.99를 할당한다.
ISP 주소는 211.183.3.2로 고정되어 있다. 나머지 주소는 내부에서 자유롭게 사용할 수 있다.
이 중, 211.183.3.100은 본사와 지사에 있는 PC들이 동적 PAT를 통하여 인터넷과 연결이 가능하도록 할 계획이고, 211.183.3.101은 본사 내부에 있는 웹서버 10.10.10.100.100과 1:1로 정적 NAT를 구성하여 웹서비스를 제공할 계획이다.
우리 회사는 웹서비스 제공을 위하여 공인주소를 구매하였다.
211.183.3.0/24를 사용할 수 있고, 라우터에 HQ의 fa0/0에는 211.183.3.99를 할당한다.
ISP 주소는 211.183.3.2로 고정되어 있다. 나머지 주소는 내부에서 자유롭게 사용할 수 있다.
int fa0/0
ip add 211.183.3.99 255.255.255.0
do ping 211.183.3.2
do show run | in ip route
no ip route 0.0.0.0 0.0.0.0 192.168.1.1 #바꾸기 전 거 지우는 것
ip route 0.0.0.0 0.0.0.0 211.183.3.2 # 서비스프로바이더에게 던짐
do show run | in ip rooute # 잘 바뀌었는 지 확인
do ping 8.8.8.8 # 연결 확인
위쪽은 지워야함 (없어진거니)
아래쪽은 본사에서 지사로 가기 위한
—————————여기까지가 첫번째 단락 한 것————————
211.183.3.100은 본사와 지사에 있는 PC들이 동적 PAT를 통하여 인터넷과 연결이 가능하도록 할 계획이고
101번으로 들어가는 지 1:1 매핑되는 지확인할 것임
NAT중에 지워야 할 설정 지우기
do show run | in ip nat # 여기서 나온 4번째 주소를 지워야함
no ip nat inside source list 1 interface FastEthernet0/0 overload # 지우기
# ping 확인해보면 연결 안되어야함 (여기서는 NAT가 구성하지 않아도 자동으로 웹으로 빠져나가게 설정 되어있는 데 실제로는 안되어야 하는 것)
공인 IP 주소는 Pool에 담아둬야 한다. 내가 가려고할 때 공인 IP를 띄운담에 가지고 빠져나가야 한다.
ip nat pool PRI 211.183.3.100 211.183.3.100 pre 24
PRI : 이름
211.~ : 도착 IP 주소
ip nat inside so list 1 pool PRI overload
어떤 주소로 변경되어서 나가는 지 확인
인터넷-서울본사 사이 케이블 start capture
PC1, PC2에서 구글로 ping 보내보기
ping www.google.com
나갈 때 211.183.3.100 으로 나가고, 들어올 때 211.183.3.100 으로 들어 오는 것 확인
211.183.3.101은 본사 내부에 있는 웹서버 10.10.10.100.100과 1:1로 정적 NAT를 구성하여 웹서비스를 제공할 계획이다.
aws에서 서버를 생성하면 사설 주소가 할당되고, 자동으로 공인 주소를 부여해준다.(매핑) 하지만 이 공인 주소는 고정이 되지는 않는다 → 동적 NAT(dynamic NAT) (풀 안에 아무거나 끄집어냄, 종료 시 반납)
elastic IP : 위와 같은 환경에서 공인 IP 주소를 정적으로 사설 주소와 매핑해 주는 기능이다. → 정적 NAT (static NAT)
일대일로 IP매핑할것이기 때문에 overload아니고 그냥하면됨
ip nat inside so static 10.10.100.100 211.183.3.101
1 인터넷-HQ라우터 (공인IP로 보이고)
2 HQ라우터-스위치(1) 은 사설 IP로 보이면 정상인 것
1 2
211.183.3.1 , 211.183.3.101 → 211.183.3.1, 10.10.100.100 으로 변경 됨
정리 )
NAT는 사설IP 공인IP 1대1매핑
동적: ip가 바뀔 수 있다. 웹서비긑안 흔환경에선 적절X
정적: 1대1로 정확히매핑. 클라우드상에서는 aws elatsitc ip라는 걸 이용하고 오픈스택이라면 플로팅ip인걸 이용
sudo yum -y install docker
sudo systemctl start docker
sudo systemctl status docker # docker 활동하고 있는 지 확인
sudo docker container run --name centos --hostname centos -it centos:7 /bin/bash # 아마존 위에 centOS를 올린것. 커널이 없고, 아마존 커널을 쓰는 것임
uname -nr
ip a # 안됨
ifconfig # 안됨
ping # 됨. centOS에서 바깥쪽으로 나가는 것임
Ctrl + P 누름
Ctrl + Q 누름 (centOS는 위에서 돌아가고 있는 상태)
sudo docker container attach centos # 다시 centOS로 들어온것
나가려면 다시 Ctrl + P, Ctrl + Q
sudo docker container run -d --name nginx1 -p 80:80 nginx
윗 방향 키 해서 nginx2로 바꾸고, p를 8001:80으로
sudo docker container run -d --name nginx2 -p 8001:80 nginx # 포트를 바꾼것. 아마존 8001로 접속하면 컨테이너 nginx의 80 으로 넘겨줌. 아마존의 80하면 nginx의 80으로 (정적 PAT)
주소창에 public IP주소:8001 입력 → 두번째 nginx 실행 되는 것
하나 더 하려면
sudo docker container run -d --name nginx3 -p 8002:80 nginx
sudo docker container rm -f nginx3 # nginx3 지우기
sudo docker container run -d --name httpd1 -p 8002:80 httpd # nginx말고 httpd 만들기