네트워크 구성
- HQ(본사)와 2개의 지사(Branch1,2)로 구성된 네트워크이다.
- OSPF로 라우팅 되어있지만 내부망과 IP대역이 달라서 현재 라우터 끼리만 통신이 가능하고 내부 PC간에는 통신이 불가능하다.
- 본사와 지사, 지사와 지사간에 GRE 터널과 DMVPN을 사용하여 서로 통신을 할 수 있도록 설정 하려고 한다.
- 동적인 대규모 Site-to-Site VPN을 구성하기 적합한 방식이다.
- DMVPN은 새로운 지사와 VPN 연결을 해야 하는 경우 본사 VPN 장치에서는 별도의 추가 설정이 요구되지 않는다.
DMVPN 기술
1) mGRE (Multipoint GRE)
- 다수의 Next-hop 장치와 연결될 수 있다는 특징 때문에 DMVPN에서 사용된다.
- DMVPN의 경우 동적으로 지사가 증가될 수 있고, 이 경우 기존의 tunnel destination 명령어를 사용하여 지사의 IP 주소를 먼저 입력하는 것이 불가능하다.
2) NHRP (Next Hop Resolution Protocol)
- 터널 인터페이스로 연결된 상대방의 터널 IP와 목적지 IP를 자동으로 학습한다.
3) Crypto profile
- DMVPN의 경우 반대편 지사가 사용할 공인 IP주소를 먼저 알 수 없기 때문에 IPSec 대상 트래픽 지정(Access-list) 및 Crypto Map을 사용할 수 없다.
- Point-to-Point GRE / Multipoint GRE 터널 인터페이스로 송.수신되는 패킷들을 IPSec으로 보호하는 경우 Crypto Map 대신에 Crypto Profile을 사용하는것이 가능하다.
- Crypto Profile을 사용하면 IP 주소 정보를 자동으로 흭득하여 Crypto Map을 생성하는 것이 가능하다.
HQ_VPN 라우터 multipoint GRE 설정 (NHRP Server)
tunnel key 1
여러 개의 Multipoint gre를 구성할 경우 구분할 숫자 설정
ip nhrp network-id 1
NHRP로 정보를 교환하는 모든 라우터들은 동일한 NHRP Network-ID를 사용해야만 정보교환이 가능하다.
ip nhrp holdtime 600
NHRP Map의 hold time을 지정한다. (default 7200)
<HQ_VPN> conf t int tunnel 0 ip add 10.10.1.1 255.255.255.0 tunnel source fastethernet 0/0 tunnel mode gre multipoint tunnel key 1 ip nhrp network-id 1 ip nhrp holdtime 600 ! |
show interface tunnel 0
Branch 라우터 multipoint GRE 구성 (Client)
ip nhrp nhs 10.10.1.1
NHRP Server IP를 설정한다.
ip nhrp map 10.10.1.1 1.1.100.1
10.10.1.1로 가려면 1.1.100.1로 가야 한다고 Static으로 경로를 설정한다. (설정하지 못하면 NHS로 가지 못한다.)
ip nhrp registration timeout 60
NHS에게 자신의 터널 IP 주소 ↔ 터널 출발지 IP 주소 정보를 60초 간격으로 전송한다. (NHS의 hold-time보다 낮게 설정하면 된다.)
<Branch1> conf t int tunnel 0 ip add 10.10.1.2 255.255.255.0 tunnel source fa 0/0 tunnel mode gre multipoint tunnel key 1 ip nhrp network-id 1 ip nhrp nhs 10.10.1.1 ip nhrp map 10.10.1.1 1.1.100.1 ip nhrp registration timeout 60 !
<Branch 2> conf t int tunnel 0 ip add 10.10.1.3 255.255.255.0 tunnel source fa 0/0 tunnel mode gre multipoint tunnel key 1 ip nhrp network-id 1 ip nhrp nhs 10.10.1.1 ip nhrp map 10.10.1.1 1.1.100.1 ip nhrp registration timeout 60 !
|
show ip nhrp
- Branch 라우터에서 확인해보면 Static으로 등록된 HQ_VPN 라우터로 가는 경로가 등록되어있다.
- HQ_VPN 라우터에서 확인해보면 Dynamic으로 등록된 Branch1, 2로 가는 정보가 등록되어있다.
EIGRP 라우팅 프로토콜 변경시 문제점 해결
<HQ/HQ_VPN/Branch1/Branch2> conf t no router ospf 1
<HQ> router eigrp 1 no auto net 10.1.1.254 0.0.0.0 net 10.1.100.1 0.0.0.0 ! <HQ_VPN> router eigrp 1 no auto net 10.1.100.2 0.0.0.0 net 10.10.1.1 0.0.0.0 ! <Branch1> router eigrp 1 no auto net 10.1.2.254 0.0.0.0 net 10.10.1.2 0.0.0.0 ! <Branch2> router eigrp 1 no auto net 10.1.3.254 0.0.0.0 net 10.10.1.3 0.0.0.0 ! |
- 설정을 완료하면 HQ ↔ HQ_VPN 간에는 라우팅이 잘 되지만 HQ_VPN ↔ Branch 간에는 라우팅이 되지 않는다.
HQ_VPN ↔ Branch EIGRP 라우팅 연결
ip nhrp map multicast dynamic
mGRE 터널 인터페이스로 전송되는 트래픽 목적지 IP 주소가 멀티캐스트인 경우 동적(dynamic)으로 등록된 NHRP Peer(지사) 주소로 전송하기 위한 명령어이다.
ip nhrp map multicast 1.1.100.1
Branch에서 VPN_HQ라우터에게 Static경로로 멀티캐스트 정보를 전송하기 위한 명령어이다.
<HQ_VPN> conf t int tunnel 0 ip nhrp map multicast dynamic
<Branch1/Branch2> conf t int tunnel 0 ip nhrp map multicast 1.1.100.1 |
show ip router
- HQ_VPN 라우터에서 확인해보면 Branch1, 2 라우터가 EIGRP로 라우팅 된 것을 확인할 수 있다.
show ip eigrp neighbors
wireshark 패킷 확인
- EIGRP Hello 패킷이 GRE로 감싸져서 정상적으로 전송된다.
- Branch1 라우터에서 확인해 Branch2 라우터에 대한 정보가 존재하지 않는다.
- EIGRP 설정 후 Branch1과 Branch2는 상대방 지사 내부 정보를 교환하지 못하고 있다. 하지만 HQ_VPN의 경우 양쪽 지사의 정보를 Routing Table에 모두 등록하고 있다.
- Branch1과 Branch2이 서로 내부 정보를 교환하지 못하는 이유는 EIGRP의 경우 기본적으로 Split-horizon이 활성화 되어있기 때문이다.
- Split-horizon은 특정 인터페이스로 광고받은 정보는 다시 해당 인터페이스로 광고하지 않는 특성이다. (Loop를 방지하기 위한 목적으로 활성화 되어있다. 하지만 Hub & Spoke 구간에서 하나의 인터페이스로 허브를 구성한 경우에는 반드시 비활성화 시켜야만 Spoke 간 정보교환을 수행할 수 있다.)
- Hub & Spoke 는 Full-mesh(전체 mash), Partial-mesh(부분 mash)와 구분되는 개념으로 허브 하나를 중심으로 연결되어있는 구조이다
- Full-mesh, Partial-mesh 방식에 비해서 안전하지 않다. (단일 실패지점 발생)
HQ_VPN 라우터 Split-horizon 비활성화
<HQ_VPN> conf t int tunnel 0 no ip split-horizon eigrp 1 ! |
show ip router
- Branch 라우터에서 확인해 보면 Branch2, HQ_VPN 모두 등록되었다.
GRE 패킷 구성
Crypto Profile 사용
- Point-to-Point GRE일 경우 tunnel destination [tunnel-destination] 명령어로 입력한 IP 주소를 사용하여 ACL 및 Set Peer 주소를 설정한다.
- Multipoint GRE일 경우 tunnel destination 명령어를 사용할 수 없기 때문에 NHRP Map에 등록된 상대방 NHRP Peer 정보를 확인하여 ACL및 set peer를 설정한다.
라우터 IPSec VPN 구성 (Crypto Profile)
- GRE에서 쓰는 IP 패킷과 IPSec에서 사용하는 IP패킷이 동일하기 때문에 ESP앞에 IP패킷을 붙이지 않기 위해서 IPSec을 transport 모드로 구성해야 한다.
tunnel protection ipsec profile HQ_VPN
tunnel로 이동하는 모든 패킷들을 crypto profile 정책(HQ_VPN)으로 보호한다는 명령어이다.
<HQ_VPN / Branch1 / Branch2> conf t
|
show crypto isakmp sa
show crypto ipsec sa
show crypto map
지사(Branch3) 추가 구성
- 지사를 추가하여 Multipoint GRE에 IPSec으로 통신할 수 있도록 추가하려고 한다.
<ISP> interface FastEthernet3/0
<Branch3> conf t
|
show ip nhrp
PC Ping 테스트
Wireshark 확인
- ESP로 암호화 되어서 통신이 되는것을 확인할 수 있다.
- 지사를 여러개 추가하여도 많은 설정 필요없이 간편하게 VPN을 연결할 수 있다.
OSPF 로 구성시 문제점 해결
- OSPF로 변경 후 터널 인터페이스로 Neighbor 상태가 활성화/비활성화로 반복되고 있다. 이유는 GRE 터널의 OSPF Network-Type(L2 Protocol)은 기본값이 Point-to-Point이다.
- 그이외의 Network-Type은 PPP/HDLC, BMA, NBMA, Point to MultiPoint가 있다.
- 위와같은 문제를 해결하기 위해서 관리자가 명령어를 사용하여 OSPF Network-Type을 변경해야 한다.
라우터 OSPF Network-Type 변경
ip ospf network broadcast
network Type을 multi access타입으로 변경한다.
<HQ_VPN / Branch1 / Branch2 / Branch3> conf t int tunnel 0 ip ospf network broadcast ! |
show ip ospf neighbor
라우터 DR, BDR 선출
- 현재 5.5.5.5(Branch3 라우터)가 Router-ID가 가장 높기 때문에 DR로 선정되있다.
- Full Mash 구조에서는 누가 DR이되어도 상관없지만 현재 네트워크가 Hub & Spoke 구조이기 때문에 HQ_VPN(Hub역할을 하는 장비)을 OSPF Priority 값을 조정하여 DR로 선정해야한다.
DR/DBR 선출 조건
https://peemangit.tistory.com/41
<Branch1 / Branch2 / Branch 3> conf t int tunnel 0 ip ospf priority 0 ! |
show ip ospf neighbor
- HQ_VPN 라우터가 우선순위 값이 높아서 DR로 선정되었다.
DMVPN 이중화 구성
- HQ_VPN 라우터와 HQ_VPN 라우터 둘다 NHS로 만들어야 한다.
- HQ_VPN2 라우터를 DR, HQ_VPN 라우터를 BDR로 선정한다.
- HQ_VPN 라우터와 Branch 1~3 라우터는 HQ_VPN2 라우터로 멀티캐스트 정보를 보내야 한다.
- HQ_VPN2 라우터의 OSPF Network-Type 을 변경해야한다.
- 빨간 네모: NHS, 파란네모: Client, 파란 화살표는 Static 지정할 경로이다.
<HQ> conf t router ospf 1 net 10.1.100.5 0.0.0.0 area 0 !
<HQ_VPN2> conf tint fa 0/0 bandwidth 100000 no router ospf 1
router ospf 1 router-id 6.6.6.6 net 10.1.100.6 0.0.0.0 area 0 net 10.10.1.5 0.0.0.0 area 0 !
int tunnel 0 ip add 10.10.1.5 255.255.255.0 tunnel source fa 0/1 tunnel mode gre multipoint tunnel key 1
ip nhrp network-id 1 ip nhrp holdtime 600 ip nhrp map multicast dynamic
ip nhrp nhs 10.10.1.1 ip nhrp map 10.10.1.1 1.1.100.1 ip nhrp map multicast 1.1.100.1 ip nhrp registration timeout 60
ip ospf network broadcast ! crypto isakmp policy 1
<HQ_VPN / Branch1 / Branch2 / Branch3> conf t int tunnel 0 ip nhrp nhs 10.10.1.5 ip nhrp map 10.10.1.5 1.1.100.13 ip nhrp map multicast 1.1.100.13 ip nhrp registration timeout 60 !
<HQ_VPN> int tunnel 0 ip ospf priority 10
<HQ> conf t int fa 1/0 bandwidth 10000 |
HQ Router show ip route
- bandwidth를 조정해서 0/0으로 패킷이 이동한다.
show ip ospf neighbor
- Branch에서는 이중화된 라우터 2대가 등록되어 있다.
- HQ_VPN이 DR로 선정되었다.
'Network > Router' 카테고리의 다른 글
[Router] Floating Static Routing + IP SLA (0) | 2019.12.24 |
---|---|
[Router] Remote Access VPN (Easy VPN) 개념, 설정 (0) | 2019.12.11 |
[Router] GRE over IPSEC VPN (1) | 2019.12.09 |
[Router] GRE Tunnel (0) | 2019.12.05 |
PPP 인증(Authentication) 방식 (0) | 2019.11.18 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊