CEF기능을 위해 ARP 테이블을 Neighbor로 구성된 장비에 대해서 최적화하는 명령어.
12버전대에서는 기본값이 아님. 15버전대에서는 기본값.
문제는 이 기능을 활성화 하는 경우(대게는 자의로 하는게 아니고 15버전으로 OS업그레이드를 하거나 노후 장비를 신규 장비로 교체하는 상황), 아래와 같은 형식의 로그가 지속적으로 생성될 수 있다.
%ADJ-3-RESOLVE_REQ : Adj resolve request: Failed to resolve <IP Address> <vlan ID>
이 로그에 대해 검색하면 버그"들"로 등록되어 있는걸 확인 할 수 있다.
Bug ID : CSCug43307 - 15.2(2)SNH1
Bug ID : CSCtx86444 - 15.2(2)S 15.3(1)S
Bug ID : CSCuo89272 - 15.0(2)SE
Bug ID : CSCts29063 - 12.2(33.1.1)SXJ 15.2(1)S 15.2(1.12)S
이 로그는 실제 장비 운영에는 영향이 없다고 CISCO측에서는 말하고 있는 상황이고, 이 로그를 없애기 위해서 CEF기능을 끄는건 라우팅 처리 능력이 감소하는 문제로 권하기 어렵다. 하지만... 대게의 클라이언트쪽에서는 이런 로그가 나타나는 것 자체를 문제삼기 마련.
현재까지 알려진 방법중 가장 확실한건 아래의 명령어를 입력하는 것이다.
no ip cef optimize neighbor resolution
즉, 이 기능을 끄는 것. CEF자체는 유지된다.
P.S : 이 메세지를 두번(두번째가 현재 진행형) 겪었는데, 두 경우의 공통점은 아래와 같았다.
1. 기존 12버전대 장비를 15버전대 장비로 교체
2. 해당 IP는 예전에는 사용하던 IP이나, 장비 교체시점에선 없음.
다른 경우가 더 있는지는 지금으로서는 모르겠다.
관련 문서
Cisco IOS IP Switching Command Reference
Chapter: ip cache-invalidate-delay through monitor event-trace cef ipv6 (global)
http://www.cisco.com/c/en/us/td/docs/ios/ipswitch/command/reference/isw_book/isw_i1.html
해당 기능 자체에 대한 설명문서. 보면 12버전대에서는 기본값이 아니다.
3750x Stack is repeatedly showing error " %ADJ-3-RESOLVE_REQ : Adj resolve request: Failed to resolve <IP Address> <vlan ID>..
https://supportforums.cisco.com/discussion/12215721/3750x-stack-repeatedly-showing-error-adj-3-resolvereq-adj-resolve-request-failed
문제의 로그에 대한 사용자 포럼글.
2016년 11월 29일 화요일
2014년 5월 30일 금요일
프로세스 메모리 패리티 에러(PMPE: Processor Memory Parity Error)
의외의 자료를 검색하다 얻었기에 남김.
평가용 문서라곤 하는데... 이거 말고는 안보이는듯.
프로세스 메모리 패리티 에러(PMPE: Processor Memory Parity Error)
평가용 문서라곤 하는데... 이거 말고는 안보이는듯.
프로세스 메모리 패리티 에러(PMPE: Processor Memory Parity Error)
2014년 1월 23일 목요일
GRE IPsec VPN을 이용한 원격지간 OSPF Area 연결 - 8. OSPF 보안 / Area 및 Neighbor 인증
크게 Area 단위로 하는 인증 보안이 있고, Neighbor 관계 성립에 필요한 인증이 있다.
먼저 Area 단위 인증을 확인한다. 해당 구성에서는 Area 0을 사용한다.
A00A(config)# router ospf 5730
A00A(config-router)# area 0 authentication message-digest
이 상태에서 routing table을 확인하면 아래처럼 모든 OSPF네이버가 끊겨있다.
이 명령어에서 0은 Area 넘버. 뒤의 message-digest는 MD5방식으로 신호를 주고받는 설정이고, 없을경우는 평문으로 신호를 주고 받는다. (설정이 없는 경우는 type 0, 평문인증은 type 1, MD5인증은 type 2) 이는 debug ip ospf adj 명령으로 확인하면 다음과 같은 메세지로 확인할 수 있다. 아래처럼 주변의 라우터들은 설정이 아직 안된상태라 type 0이고, 자신은 type 2를 사용해서 맞지 않는다는 메세지가 나온다. 당연히 Neighbor 관계 성립이 안되며, 설정전에 Neighbor 관계가 맺어진 상태라면 풀린다.
마찬가지로 설정되지 않은 주변 라우터에서는 아래와 같이 반대로 나온다.
동일한 설정을 하면, 다시 Neighbor 관계가 성립된다.
이 상태에서 연결된 인터페이스간에 아래와 같이 설정한다.
A00A(config)# int f2/0
A00A(config-if)# ip ospf message-digest-key 10 md5 testpw
여기서 10은 인터페이스간 Key ID. 1~255중 하나를 선택하면 된다. 당연히 연결된 Neighbor간에는 동일해야 한다. md5 뒤의 텍스트(testpw)는 인증시 사용할 키.
Key ID와 Key값은 Area 전체가 같을 필요는 없고, Neighbor간에만 일치시키면 된다.
(여기서는 편의상 전체를 통일시켰다.)
debug ip ospf packet 명령으로 확인해보면 아래처럼 인증 타입과 Key ID를 확인할 수 있다.
Area 전체가 아닌, 특정 OSPF Neighbor에 대한 인증설정을 할 경우, 아래와 같이 진행한다.
여기서는 Tunnel 인터페이스 12, 13, 22, 23에 대해서 적용한다.
A00A(config)# int t12
A00A(config-if)# ip ospf authentication message-digest
A00A(config-if)# ip ospf message-digest-key 12 md5 ntestpw
이 경우 따로 Area 설정을 해줄 필요는 없다.
외부 링크 - 설정방법 관련
OSPF Design Guide
Sample Configuration for Authentication in OSPF
P.S : 아래는 편의를 위해 저장해두는 명령들.
Area 0에 속한 라우터에 대한 Area 0 인증 설정은 아래 명령어를 사용하면 된다.
4개의 라우터 모두 공통이다.
conf t
router ospf 5730
area 0 authentication message-digest
exit
int f0/0
ip ospf message-digest-key 10 md5 testpw
exit
int f0/1
ip ospf message-digest-key 10 md5 testpw
exit
int f2/0
ip ospf message-digest-key 10 md5 testpw
exit
-마지막 f2/0은 A00A와 A00B만 해당.
아래는 Tunnel 인터페이스간 Neighbor 인증.
int t12
ip ospf authentication message-digest
ip ospf message-digest-key 12 md5 ntestpw
exit
int t13
ip ospf authentication message-digest
ip ospf message-digest-key 13 md5 ntestpw
exit
int t22
ip ospf authentication message-digest
ip ospf message-digest-key 22 md5 ntestpw
exit
int t23
ip ospf authentication message-digest
ip ospf message-digest-key 23 md5 ntestpw
exit
P.S2 : 이제 하나 남았다...
P.S2 : 이제 하나 남았다...
2014년 1월 21일 화요일
GRE IPsec VPN을 이용한 원격지간 OSPF Area 연결 - 7. Tunnel 보안 / IPSec VPN
GRE Tunnel만 사용할 경우, 네트워크간 연결 자체에는 문제가 없으나 Tunneling을 위해서 Encapsulation되었을 뿐인 원본데이타 그대로가 외부 경로(이 경우에는 BGP로 연결된 구간이 해당된다.)를 지나가게 된다. 이는 중간단계에서 얼마든지 내용을 확인할 수 있고, 이를 변조시킬 수도 있다. 즉, Encapsulation만 되어 있어서 그 내용에 대한 보안에 문제가 있을 뿐더러, 그렇게 받은 내용을 신뢰할 수도 없다. VPN이 필요한 이유는 이러한 신뢰성과 보안성을 위해서이다.
IPSec VPN (여기서는 GRE Tunnel 동반)은 VPN(Virtual Private Networks : 가상 사설 네트워크)의 한 종류로, IP기반의 3계층 보안형식이다.
여기서는 GRE Tunnel과 함께 사용한다. 볼드 처리한 부분은 변수/옵션/이름지정을 해야하는 부분들이다.
1. 먼저 ISAKMP정책을 설정한다.
A00A(config)# crypto isakmp policy 10 / 정책이 여러개면 숫자가 낮을 수록 우선시됨.
A00A(config-isakmp)# encryption aes / 암호화 방식을 설정
A00A(config-isakmp)# authentication pre-share / 인증은 사전에 설정한 키로 함.
A00A(config-isakmp)# hash sha
A00A(config-isakmp)# group 5 / Diffie Hellman groups 중 몇번을 사용할지 설정.
A00A(config-isakmp)# exit
encryption에서 사용 가능한 옵션은 아래의 세가지중 하나.
3des Three key triple DES
aes AES - Advanced Encryption Standard.
des DES - Data Encryption Standard (56 bit keys).
자세한 내용은 대칭키 암호화 - AES/DES/3DES 를 참조. 가장 최근것이 AES다.
authentication 항목에서 사용가능한 옵션을 다음과 같다.
pre-share Pre-Shared Key
rsa-encr Rivest-Shamir-Adleman Encryption
rsa-sig Rivest-Shamir-Adleman Signature
아래의 두 항목 관련 자료는 RSA (Rivest-Shamir-Adleman)를 참조.
lifetime 항목은 기본값으로 진행하였기에 별도로 설정하지 않았다.
(짧게 설정하면 보안에 좋지만... router 부하가 커진다.=GNS기동중인 컴퓨터 부하가 크다.)
2. 각 대상(여기서는 해당 Peer IP)에 대한 key값(Pre-Shared Key : PSK)을 입력하고
A00A(config)# crypto isakmp key 6 pword address 204.172.100.161
A00A(config)# crypto isakmp key 6 pword address 206.172.100.161
연결상태 유지 확인용 DPD(Dead Peer Detection) 설정.
A00A(config)# crypto isakmp keepalive 30
3. IPsec으로 보호할 대상 트래픽 지정.
ACL에서 GRE 대신 IP로 변경해도 됨.
A00A(config)# ip access-list extended vpn12 / Tunnel 12와 연동할 ACL이라 12
A00A(config-ext-nacl)# permit gre host 203.172.100.129 host 204.172.100.161
A00A(config-ext-nacl)# exit
A00A(config)# ip access-list extended vpn13 / Tunnel 13과 연동할 ACL이라 13
A00A(config-ext-nacl)# permit gre host 203.172.100.129 host 206.172.100.161
A00A(config-ext-nacl)# exit
4. IPsec SA를 지정한다. (여기서는 ts10번으로)
A00A(config)# crypto ipsec transform-set ts10 esp-aes esp-md5-hmac
A00A(cfg-crypto-trans)# exit
뒤의 보라색과 파란색 부분에 지정 가능한 옵션은 아래와 같다.
ah-md5-hmac AH-HMAC-MD5 transform
ah-sha-hmac AH-HMAC-SHA transform
comp-lzs IP Compression using the LZS compression algorithm
esp-3des ESP transform using 3DES(EDE) cipher (168 bits)
esp-aes ESP transform using AES cipher
esp-des ESP transform using DES cipher (56 bits)
esp-md5-hmac ESP transform using HMAC-MD5 auth
esp-null ESP transform w/o cipher
esp-seal ESP transform using SEAL cipher (160 bits)
esp-sha-hmac ESP transform using HMAC-SHA auth
6. Cryto Map을 설정한다.
먼저 Cryto Map의 Peer 지정을 Loopback Interface로 하기 때문에 이를 선언.
A00A(config)# crypto map GREVPN local-address loopback 0
그리고 Cryto Map의 새부설정을 지정.
A00A(config)# crypto map GREVPN 10 ipsec-isakmp
A00A(config-crypto-map)# match address vpn12
A00A(config-crypto-map)# set peer 204.172.100.161 / Tunnel 12의 Dst
A00A(config-crypto-map)# set transform-set ts10 / 연결할 IPsec SA를 지정
A00A(config-crypto-map)# exit
A00A(config)# crypto map GREVPN 20 ipsec-isakmp
A00A(config-crypto-map)# match address vpn13
A00A(config-crypto-map)# set peer 206.172.100.161 / Tunnel 13의 Dst
A00A(config-crypto-map)# set transform-set ts10
A00A(config-crypto-map)# exit
6. Cryto Map을 해당 인터페이스에 지정.
A00A(config)# int s1/0 / 외부에서 직접 오는 경로
A00A(config-if)# crypto map GREVPN
A00A(config)# int f2/0 / 네트워크 구조상 우회할 수 있는 경로
A00A(config-if)# crypto map GREVPN
작업을 마치고 상태 확인은 아래의 명령어로 진행하면 된다.
clear ip access-list counters / ACL 기록 초기화
show ip access-list / ACL 적용 내역 조회 (초기화 후 좀 기다렸다 하는게 좋음.)
clear crypto session / VPN 세션 초기화
show crypto isakmp sa / 현재 VPN 관련 SA(Security Association) 정보
show crypto ipsec sa / IPsec SA상태 조회
show crypto session detail / 세션의 암호화/복호화 내역

관련 링크
설정방법(단, 실제 설정 자체는 이 내용보다는 피터전의 책을 더 참고하였다.)
Configuring VPNs Using an IPSec Tunnel and Generic Routing Encapsulation
관련 이론이나 자료, 정보
rfc 2408 isakmp
실제 진행하다 문제생긴 경우 참고할 곳.
IPsec Troubleshooting: Understanding and Using debug Commands
Proposal with ESP is missing cipher
실제 설정에서 각 라우터별 공통 부분은 아래와 같다.
conf t
crypto isakmp policy 10
encryption aes
authentication pre-share
hash sha
group 5
exit
각 라우터별 변동되는 부분은 아래와 같다.
#A00A
crypto isakmp key 6 pword address 204.172.100.161
crypto isakmp key 6 pword address 206.172.100.161
crypto isakmp keepalive 30
ip access-list extended vpn12
permit gre host 203.172.100.129 host 204.172.100.161
exit
ip access-list extended vpn13
permit gre host 203.172.100.129 host 206.172.100.161
exit
crypto ipsec transform-set ts10 esp-aes esp-md5-hmac
exit
crypto map GREVPN local-address loopback 0
crypto map GREVPN 10 ipsec-isakmp
match address vpn12
set peer 204.172.100.161
set transform-set ts10
exit
crypto map GREVPN 20 ipsec-isakmp
match address vpn13
set peer 206.172.100.161
set transform-set ts10
exit
int s1/0
crypto map GREVPN
exit
int f2/0
crypto map GREVPN
exit
#A00B
crypto isakmp key 6 pword address 204.172.100.161
crypto isakmp key 6 pword address 206.172.100.161
crypto isakmp keepalive 30
ip access-list extended vpn22
permit gre host 205.172.100.129 host 204.172.100.161
exit
ip access-list extended vpn23
permit gre host 205.172.100.129 host 206.172.100.161
exit
crypto ipsec transform-set ts10 esp-aes esp-md5-hmac
exit
crypto map GREVPN local-address loopback 0
crypto map GREVPN 10 ipsec-isakmp
match address vpn22
set peer 204.172.100.161
set transform-set ts10
crypto map GREVPN 20 ipsec-isakmp
match address vpn23
set peer 206.172.100.161
set transform-set ts10
int s1/0
crypto map GREVPN
int f2/0
crypto map GREVPN
#A10A
crypto isakmp key 6 pword address 203.172.100.129
crypto isakmp key 6 pword address 205.172.100.129
crypto isakmp keepalive 30
ip access-list extended vpn12
permit gre host 204.172.100.161 host 203.172.100.129
exit
ip access-list extended vpn22
permit gre host 204.172.100.161 host 205.172.100.129
exit
crypto ipsec transform-set ts20 esp-aes esp-md5-hmac
exit
crypto map GREVPN local-address loopback 0
crypto map GREVPN 10 ipsec-isakmp
match address vpn12
set peer 203.172.100.129
set transform-set ts20
crypto map GREVPN 20 ipsec-isakmp
match address vpn22
set peer 205.172.100.129
set transform-set ts20
int s1/1
crypto map GREVPN
#A20A
crypto isakmp key 6 pword address 203.172.100.129
crypto isakmp key 6 pword address 205.172.100.129
crypto isakmp keepalive 30
ip access-list extended vpn13
permit gre host 206.172.100.161 host 203.172.100.129
exit
ip access-list extended vpn23
permit gre host 206.172.100.161 host 205.172.100.129
exit
crypto ipsec transform-set ts30 esp-aes esp-md5-hmac
exit
crypto map GREVPN local-address loopback 0
crypto map GREVPN 10 ipsec-isakmp
match address vpn13
set peer 203.172.100.129
set transform-set ts30
crypto map GREVPN 20 ipsec-isakmp
match address vpn23
set peer 205.172.100.129
set transform-set ts30
int s1/1
crypto map GREVPN
2013년 12월 24일 화요일
GRE IPsec VPN을 이용한 원격지간 OSPF Area 연결 - 5. 연결된 Tunnel을 통해 Area 연결 시도
지금까지의 내용을 그대로 따라한 경우, 아래와 같이 된다.
1. 3개의 OSPF Area 각각의 OSPF 경로가 형성된다.
2. 주요 4개의 라우터(A00A/A00B/A10A/A20A)간 루프백 인터페이스를 기준으로 한 eBGP경로가 생성됨.
3. 주요 4개의 라우터(A00A/A00B/A10A/A20A)간 eBGP 경로를 기반으로 터널링 연결을 통한 논리적 직접연결이 형성된다.
4. 4개의 ISP는 eBGP로 선언한 네트워크가 없어 주요 4개 라우터에 관련 경로가 남지 않음.
OSPF 단일 Area의 경우는 상관없으나, 여러 Area를 포함하는 경우, 반드시 모든 Area는 Area 0에 연결되어야만 한다. 앞에서 설정한 Tunnel 인터페이스는 이를 위해서 논리적으로 연결을 형성하기 위해 사용된 것이다.
그럼 이제 이를 이용해서 연결을 시도해 보자. (편의상 A00A와 A10A연결로 진행)
먼저 eBGP와 Tunnel 인터페이스가 정상적으로 활성화 되었는지 show ip route 명령으로 확인한다.
먼저 A00A는 아래와 같다.
아래와 같이 A10A의 루프백 인터페이스 및 Tunnel 12 인터페이스 연결이 확인된다.
그리고 A10A는 아래와 같다.
아래와 같이 A00A의 루프백 인터페이스 및 Tunnel 12 인터페이스 연결이 확인된다.
이제 여기에 Area 연결을 위해 Tunnel 12 인터페이스를 OSPF에 선언한다.
router ospf 5730
network 192.168.111.64 0.0.0.3 area 10
그러면 아래와 같이 터널의 연결이 끊겼다가 다시 복구되는게 반복된다.
일반적으로 터널링 연결상태에서 연결이 끊기는 경우는 아래와 같다.
- There is no route to the tunnel destination address.
터널의 목적지(destination)로 연결되는 경로를 알 수 없는 경우.
* 이를 방지하기 위해서 Tunnel 인터페이스와 무관하게 라우팅 태이블에 올라오도록 설정한다. 여기서는 eBGP를 사용.
- The interface that anchors the tunnel source is down.
터널의 출발지(source) 인터페이스가 다운된 경우.
* 여기서는 이를 방지하기 위해서 Loopback 인터페이스를 사용했다.
- The route to the tunnel destination address is through the tunnel itself.
터널의 목적지(destination)로 향하는 경로가 터널 자신이 될 경우.
여기서는 세번째가 원인. OSPF에 선언된 네트워크중 주요 라우터의 루프백 인터페이스가 포함되어 있기 때문이다. 해결방법은 크게 두가지 방법이 있다.
1. Tunnel을 통해 연결하는 Routing Protocol에 해당 Tunnel의 Destination/Source에 해당하는 Network를 포함시키지 않는다.
2. Tunnel을 통해 연결하는 Routing Protocol에서 해당 Tunnel의 Destination/Source에 해당하는 Network를 광고하지 않는다.
지금과 같은 경우, iBGP로 연결된 구간이 있기 때문에 1번은 불가. 때문에 2번을 선택해서 아래와 같이 진행한다.
A00A
Router(config)# access-list 11 deny 204.172.100.160 0.0.0.3 - Tunnel 12 destination 관련
Router(config)# access-list 11 permit any
Router(config)# router ospf 5730
Router(config-router)# distribute-list 11 in
A10A
Router(config)# access-list 10 deny 203.172.100.128 0.0.0.3 - Tunnel 12 destination 관련
Router(config)# access-list 10 permit any
Router(config)# router ospf 5730
Router(config-router)# distribute-list 10 in
위 내용의 의미는 ACL을 통해서 광고 대상을 설정한 뒤(여기서는 Tunnel 12 destination에 대한 network), distribute-list 명령으로 OSPF 네이버간 받아들이는(distribute-list [acl] in) 광고를 제한한것. 외부로 보내는 광고를 제한(distribute-list [acl] out)하지 않는 이유는 iBGP기반이 되는 영역과 중복되고, 다른 장비에는 경로에 대한 광고를 보내야 하기 때문.
최종적으로 이 환경에서 OSPF Area 연결에 대한 명령은 아래와 같이 된다.
A00A
access-list 11 deny 204.172.100.160 0.0.0.3
access-list 11 deny 206.172.100.160 0.0.0.3
access-list 11 permit any
router ospf 5730
network 192.168.111.64 0.0.0.3 area 10
network 192.168.121.64 0.0.0.3 area 20
distribute-list 11 in
A00B
access-list 11 deny 204.172.100.160 0.0.0.3
access-list 11 deny 206.172.100.160 0.0.0.3
access-list 11 permit any
router ospf 5730
network 192.168.111.68 0.0.0.3 area 10
network 192.168.121.68 0.0.0.3 area 20
distribute-list 11 in
A10A
access-list 10 deny 203.172.100.128 0.0.0.3
access-list 10 deny 205.172.100.128 0.0.0.3
access-list 10 permit any
router ospf 5730
network 192.168.111.64 0.0.0.3 area 10
network 192.168.111.68 0.0.0.3 area 10
distribute-list 10 in
A20A
access-list 10 deny 203.172.100.128 0.0.0.3
access-list 10 deny 205.172.100.128 0.0.0.3
access-list 10 permit any
router ospf 5730
network 192.168.121.64 0.0.0.3 area 20
network 192.168.121.68 0.0.0.3 area 20
distribute-list 10 in
P.S : distribute-list에 사용되는 ACL은 반드시 Standard ACL만 사용 가능하다. 조금 다른 경우로, X.X.X.0/24는 차단하고 X.X.X.0/25는 받도록 하고싶은 경우라면 ACL이 아닌 Prefix-List를 사용해야 한다.
P.S : 사실 이 현상 자체는 좀 더 간단한 방법으로 해결 가능하다.
관련 링크
GRE Tunnel Keepalives
OSPF Inbound Filtering Using Route Maps with a Distribute List
1. 3개의 OSPF Area 각각의 OSPF 경로가 형성된다.
2. 주요 4개의 라우터(A00A/A00B/A10A/A20A)간 루프백 인터페이스를 기준으로 한 eBGP경로가 생성됨.
3. 주요 4개의 라우터(A00A/A00B/A10A/A20A)간 eBGP 경로를 기반으로 터널링 연결을 통한 논리적 직접연결이 형성된다.
4. 4개의 ISP는 eBGP로 선언한 네트워크가 없어 주요 4개 라우터에 관련 경로가 남지 않음.
OSPF 단일 Area의 경우는 상관없으나, 여러 Area를 포함하는 경우, 반드시 모든 Area는 Area 0에 연결되어야만 한다. 앞에서 설정한 Tunnel 인터페이스는 이를 위해서 논리적으로 연결을 형성하기 위해 사용된 것이다.
그럼 이제 이를 이용해서 연결을 시도해 보자. (편의상 A00A와 A10A연결로 진행)
먼저 eBGP와 Tunnel 인터페이스가 정상적으로 활성화 되었는지 show ip route 명령으로 확인한다.
먼저 A00A는 아래와 같다.
아래와 같이 A10A의 루프백 인터페이스 및 Tunnel 12 인터페이스 연결이 확인된다.
그리고 A10A는 아래와 같다.
아래와 같이 A00A의 루프백 인터페이스 및 Tunnel 12 인터페이스 연결이 확인된다.
이제 여기에 Area 연결을 위해 Tunnel 12 인터페이스를 OSPF에 선언한다.
router ospf 5730
network 192.168.111.64 0.0.0.3 area 10
그러면 아래와 같이 터널의 연결이 끊겼다가 다시 복구되는게 반복된다.
일반적으로 터널링 연결상태에서 연결이 끊기는 경우는 아래와 같다.
- There is no route to the tunnel destination address.
터널의 목적지(destination)로 연결되는 경로를 알 수 없는 경우.
* 이를 방지하기 위해서 Tunnel 인터페이스와 무관하게 라우팅 태이블에 올라오도록 설정한다. 여기서는 eBGP를 사용.
- The interface that anchors the tunnel source is down.
터널의 출발지(source) 인터페이스가 다운된 경우.
* 여기서는 이를 방지하기 위해서 Loopback 인터페이스를 사용했다.
- The route to the tunnel destination address is through the tunnel itself.
터널의 목적지(destination)로 향하는 경로가 터널 자신이 될 경우.
여기서는 세번째가 원인. OSPF에 선언된 네트워크중 주요 라우터의 루프백 인터페이스가 포함되어 있기 때문이다. 해결방법은 크게 두가지 방법이 있다.
1. Tunnel을 통해 연결하는 Routing Protocol에 해당 Tunnel의 Destination/Source에 해당하는 Network를 포함시키지 않는다.
2. Tunnel을 통해 연결하는 Routing Protocol에서 해당 Tunnel의 Destination/Source에 해당하는 Network를 광고하지 않는다.
지금과 같은 경우, iBGP로 연결된 구간이 있기 때문에 1번은 불가. 때문에 2번을 선택해서 아래와 같이 진행한다.
A00A
Router(config)# access-list 11 deny 204.172.100.160 0.0.0.3 - Tunnel 12 destination 관련
Router(config)# access-list 11 permit any
Router(config)# router ospf 5730
Router(config-router)# distribute-list 11 in
A10A
Router(config)# access-list 10 deny 203.172.100.128 0.0.0.3 - Tunnel 12 destination 관련
Router(config)# access-list 10 permit any
Router(config)# router ospf 5730
Router(config-router)# distribute-list 10 in
위 내용의 의미는 ACL을 통해서 광고 대상을 설정한 뒤(여기서는 Tunnel 12 destination에 대한 network), distribute-list 명령으로 OSPF 네이버간 받아들이는(distribute-list [acl] in) 광고를 제한한것. 외부로 보내는 광고를 제한(distribute-list [acl] out)하지 않는 이유는 iBGP기반이 되는 영역과 중복되고, 다른 장비에는 경로에 대한 광고를 보내야 하기 때문.
최종적으로 이 환경에서 OSPF Area 연결에 대한 명령은 아래와 같이 된다.
A00A
access-list 11 deny 204.172.100.160 0.0.0.3
access-list 11 deny 206.172.100.160 0.0.0.3
access-list 11 permit any
router ospf 5730
network 192.168.111.64 0.0.0.3 area 10
network 192.168.121.64 0.0.0.3 area 20
distribute-list 11 in
A00B
access-list 11 deny 204.172.100.160 0.0.0.3
access-list 11 deny 206.172.100.160 0.0.0.3
access-list 11 permit any
router ospf 5730
network 192.168.111.68 0.0.0.3 area 10
network 192.168.121.68 0.0.0.3 area 20
distribute-list 11 in
A10A
access-list 10 deny 203.172.100.128 0.0.0.3
access-list 10 deny 205.172.100.128 0.0.0.3
access-list 10 permit any
router ospf 5730
network 192.168.111.64 0.0.0.3 area 10
network 192.168.111.68 0.0.0.3 area 10
distribute-list 10 in
A20A
access-list 10 deny 203.172.100.128 0.0.0.3
access-list 10 deny 205.172.100.128 0.0.0.3
access-list 10 permit any
router ospf 5730
network 192.168.121.64 0.0.0.3 area 20
network 192.168.121.68 0.0.0.3 area 20
distribute-list 10 in
P.S : distribute-list에 사용되는 ACL은 반드시 Standard ACL만 사용 가능하다. 조금 다른 경우로, X.X.X.0/24는 차단하고 X.X.X.0/25는 받도록 하고싶은 경우라면 ACL이 아닌 Prefix-List를 사용해야 한다.
P.S : 사실 이 현상 자체는 좀 더 간단한 방법으로 해결 가능하다.
관련 링크
GRE Tunnel Keepalives
OSPF Inbound Filtering Using Route Maps with a Distribute List
2013년 12월 20일 금요일
GRE IPsec VPN을 이용한 원격지간 OSPF Area 연결 - 4. 터널링 설정
Tunnel 연결.
특정 네트워크끼리 논리적인 연결을 구성함으로서 마치 직접 연결된 인터페이스로 인식 시키는 기술. 여기서는 총 4개의 터널 연결을 구성한다.
tunnel 12 : A00A Lo 0 - A10A Lo 0
tunnel 22 : A00B Lo 0 - A10A Lo 0
tunnel 13 : A00A Lo 0 - A20A Lo 0
tunnel 23 : A00B Lo 0 - A20A Lo 0
특정 네트워크끼리 논리적인 연결을 구성함으로서 마치 직접 연결된 인터페이스로 인식 시키는 기술. 여기서는 총 4개의 터널 연결을 구성한다.
tunnel 12 : A00A Lo 0 - A10A Lo 0
tunnel 22 : A00B Lo 0 - A10A Lo 0
tunnel 13 : A00A Lo 0 - A20A Lo 0
tunnel 23 : A00B Lo 0 - A20A Lo 0
A00A
interface Tunnel12
ip address 192.168.111.65 255.255.255.252
tunnel source 203.172.100.129
tunnel destination 204.172.100.161
interface Tunnel13
ip address 192.168.121.65 255.255.255.252
tunnel source 203.172.100.129
tunnel destination 206.172.100.161
ip address 192.168.111.65 255.255.255.252
tunnel source 203.172.100.129
tunnel destination 204.172.100.161
interface Tunnel13
ip address 192.168.121.65 255.255.255.252
tunnel source 203.172.100.129
tunnel destination 206.172.100.161
A00B
interface Tunnel22
ip address 192.168.111.69 255.255.255.252
tunnel source 205.172.100.129
tunnel destination 204.172.100.161
interface Tunnel23
ip address 192.168.121.69 255.255.255.252
tunnel source 205.172.100.129
tunnel destination 206.172.100.161
A10A
interface Tunnel12
ip address 192.168.111.66 255.255.255.252
tunnel source 204.172.100.161
tunnel destination 203.172.100.129
interface Tunnel22
ip address 192.168.111.70 255.255.255.252
tunnel source 204.172.100.161
tunnel destination 205.172.100.129
A20A
interface Tunnel13
ip address 192.168.121.66 255.255.255.252
tunnel source 206.172.100.161
tunnel destination 203.172.100.129
interface Tunnel23
ip address 192.168.121.70 255.255.255.252
tunnel source 206.172.100.161
tunnel destination 205.172.100.129
interface Tunnel22
ip address 192.168.111.69 255.255.255.252
tunnel source 205.172.100.129
tunnel destination 204.172.100.161
interface Tunnel23
ip address 192.168.121.69 255.255.255.252
tunnel source 205.172.100.129
tunnel destination 206.172.100.161
A10A
interface Tunnel12
ip address 192.168.111.66 255.255.255.252
tunnel source 204.172.100.161
tunnel destination 203.172.100.129
interface Tunnel22
ip address 192.168.111.70 255.255.255.252
tunnel source 204.172.100.161
tunnel destination 205.172.100.129
A20A
interface Tunnel13
ip address 192.168.121.66 255.255.255.252
tunnel source 206.172.100.161
tunnel destination 203.172.100.129
interface Tunnel23
ip address 192.168.121.70 255.255.255.252
tunnel source 206.172.100.161
tunnel destination 205.172.100.129
정상적으로 터널링 연결이 되었다면, 기존에 BGP를 통해 Lo 0로 핑을 보낸것과 달리 터널로 직접 핑을 보낼 수 있다. 핑 테스트를 꼭 해보자.
GRE IPsec VPN을 이용한 원격지간 OSPF Area 연결 - 3. 각 라우터간 연결(BGP)
1. ISP 연결관련 설정.
ISP부분은 OSPF가 아니면서 각 Area를 연결하기 위한 환경을 구성하는게 목적이고, 그러한 목적을 위해서 각각 모두 분리된 AS로 eBGP를 구성함. ISP들 자체의 네트워크 선언은 하지 않고 OSPF 각 Area에서 선언된 네트워크 전달만 함. 각각의 AS는 아래와 같음.
ISP_A : BGP 10
ISP_B : BGP 20
ISP_C : BGP 30
ISP_D : BGP 40
ISP_A
interface Loopback0
ip address 203.172.100.65 255.255.255.252
interface FastEthernet0/0
ip address 100.100.10.5 255.255.255.252
interface FastEthernet0/1
ip address 100.100.11.5 255.255.255.252
interface Serial1/0
ip address 10.10.10.5 255.255.255.252
router bgp 10
no synchronization (사용 IOS파일에선 기본값. 이후 언급 생략)
bgp router-id 203.172.100.65
bgp log-neighbor-changes (사용 IOS파일에선 기본값. 역시 이후 언급 생략)
neighbor 10.10.10.6 remote-as 11 (A00A와 eBGP연결)
neighbor 100.100.10.6 remote-as 20 (ISP_B와 eBGP연결)
neighbor 100.100.11.6 remote-as 30 (ISP_C와 eBGP연결)
ISP_B
interface Loopback0
ip address 204.172.100.65 255.255.255.252
interface FastEthernet0/0
ip address 100.100.10.6 255.255.255.252
interface FastEthernet0/1
ip address 110.110.10.5 255.255.255.252
interface Serial1/1
ip address 11.11.11.13 255.255.255.252
router bgp 20
no synchronization
bgp router-id 204.172.100.65
bgp log-neighbor-changes
neighbor 11.11.11.14 remote-as 12 (A10A와 eBGP연결)
neighbor 100.100.10.5 remote-as 10 (ISP_A와 eBGP연결)
neighbor 110.110.10.6 remote-as 40 (ISP_D와 eBGP연결)
ISP_C
interface Loopback0
ip address 205.172.100.65 255.255.255.252
interface FastEthernet0/0
ip address 120.120.10.5 255.255.255.252
interface FastEthernet0/1
ip address 100.100.11.6 255.255.255.252
interface Serial1/0
ip address 12.12.12.5 255.255.255.252
router bgp 30
no synchronization
bgp router-id 205.172.100.65
bgp log-neighbor-changes
neighbor 12.12.12.6 remote-as 11 (A10B와 eBGP연결)
neighbor 100.100.10.5 remote-as 10 (ISP_A와 eBGP연결)
neighbor 120.120.10.6 remote-as 40 (ISP_D와 eBGP연결)
ISP_D
interface Loopback0
ip address 206.172.100.65 255.255.255.252
interface FastEthernet0/0
ip address 120.120.10.6 255.255.255.252
interface FastEthernet0/1
ip address 110.110.10.6 255.255.255.252
interface Serial1/1
ip address 13.13.13.13 255.255.255.252
router bgp 40
no synchronization
bgp router-id 206.172.100.65
bgp log-neighbor-changes
neighbor 13.13.13.14 remote-as 13 (A20A와 eBGP연결)
neighbor 110.110.10.5 remote-as 20 (ISP_B와 eBGP연결)
neighbor 120.120.10.5 remote-as 30 (ISP_C와 eBGP연결)
2. 각 OSPF Area별 설정.
각 OSPF Area 별로 지정된 BGP AS값은 아래와 같다.
Area 0 : 11
Area 10 : 12
Area 20 : 13
OSPF Area 0은 외부 연결이 이중화 구조라 A00A와 A00B는 iBGP구성(IGP는 OSPF 그대로 사용). 그외의 BGP연결은 모두 eBGP연결.
2-1. Area 0
A00A
router bgp 11
bgp router-id 203.172.100.129
neighbor 10.10.10.5 remote-as 10
neighbor 205.172.100.129 remote-as 11
neighbor 205.172.100.129 update-source Loopback0
network 203.172.100.128 mask 255.255.255.240
router bgp 11
bgp router-id 205.172.100.129
neighbor 12.12.12.5 remote-as 30
neighbor 203.172.100.129 remote-as 11
neighbor 203.172.100.129 update-source Loopback0
network 205.172.100.128 mask 255.255.255.240
2-2. Area 10
A10A
router bgp 12
bgp router-id 204.172.100.161
network 204.172.100.160 mask 255.255.255.240
neighbor 11.11.11.13 remote-as 20
2-3. Area 20
A20A
bgp router-id 206.172.100.161
network 206.172.100.160 mask 255.255.255.240
neighbor 13.13.13.13 remote-as 40
P.S : 혹시라도 이 내용대로 직접 해보시는 분이 있을지 몰라 첨언.
지금처럼 네트워크 선언을 루프백만 한 경우, ping 명령어를 평소처럼 Destination IP만 입력하면 정상적인 핑이 돌아오지 않는다. 아래와 같이 할 필요가 있다.
ping [Destination IP] source [Source 'IP or Interface']
여기서 말하는 Source IP or Interface는 BGP를 통해 선언되서 상대쪽에서도 이미 알고 있는 네트워크를 말한다. (상대가 모르는 네트워크면 응답을 할 수가 없으니까.)
2013년 12월 19일 목요일
GRE IPsec VPN을 이용한 원격지간 OSPF Area 연결 - 2. 주요 인터페이스 IP설정 및 각 Area별 OSPF설정
각 장비별 주요 인터페이스 및 기본적인 OSPF 설정값.
(각 영역별 Core부분만. Access Layer부분은 생략. Distribute Layer는 GNS 한계상 제외)
A00A
interface Loopback0 - BGP 광고용 대표 IP 배정
ip address 203.172.100.129 255.255.255.240
interface FastEthernet0/0 - A00C와 연결
ip address 192.168.101.129 255.255.255.252
interface FastEthernet0/1 - A00D와 연결
ip address 192.168.101.133 255.255.255.252
interface Serial1/0 - ISP_A와 연결
ip address 10.10.10.6 255.255.255.252
interface FastEthernet2/0 - A00B와 연결
ip address 192.168.101.137 255.255.255.252
router ospf 5730
router-id 203.172.100.129
passive-interface Serial1/0
network 10.10.10.4 0.0.0.3 area 0
network 192.168.101.128 0.0.0.3 area 0
network 192.168.101.132 0.0.0.3 area 0
network 192.168.101.136 0.0.0.3 area 0
network 203.172.100.128 0.0.0.15 area 0
A00B
interface Loopback0 - BGP 광고용.
ip address 205.172.100.129 255.255.255.240
interface FastEthernet0/0 - A00D와 연결
ip address 192.168.101.145 255.255.255.252
interface FastEthernet0/1 - A00C와 연결
ip address 192.168.101.149 255.255.255.252
interface Serial1/0 - ISP C와 연결
ip address 12.12.12.6 255.255.255.252
interface FastEthernet2/0 -A00A와 연결
ip address 192.168.101.138 255.255.255.252
router ospf 5730
router-id 205.172.100.129
passive-interface Serial1/0
network 12.12.12.4 0.0.0.3 area 0
network 192.168.101.136 0.0.0.3 area 0
network 192.168.101.144 0.0.0.3 area 0
network 192.168.101.148 0.0.0.3 area 0
network 205.172.100.128 0.0.0.15 area 0
A10A
interface Loopback0 - BGP 광고용
ip address 204.172.100.161 255.255.255.240
interface FastEthernet0/0 - A10B와 연결
ip address 192.168.111.129 255.255.255.252
interface Serial1/1 - ISP B와 연결
ip address 11.11.11.14 255.255.255.252
router ospf 5730
router-id 204.172.100.161
passive-interface Serial1/1
network 11.11.11.12 0.0.0.3 area 10
network 192.168.111.128 0.0.0.3 area 10
network 192.168.111.132 0.0.0.3 area 10
network 204.172.100.160 0.0.0.15 area 10
A20A
interface Loopback0 - BGP 광고용
ip address 206.172.100.161 255.255.255.240
interface FastEthernet0/0 - A20B와 연결
ip address 192.168.121.129 255.255.255.252
interface Serial1/1 - ISP D와 연결
ip address 13.13.13.14 255.255.255.252
router ospf 5730
router-id 206.172.100.161
passive-interface Serial1/1
network 13.13.13.12 0.0.0.3 area 20
network 192.168.121.128 0.0.0.3 area 20
network 192.168.121.132 0.0.0.3 area 20
network 206.172.100.160 0.0.0.15 area 20
P.S : 당연하다면 당연하지만, 실제로 입력한 건 저렇게 명령다 치고 입력하지 않습니다~
그리고 저것 만 하진 않아요. 다 생략하고 마지막에 불필요한것 다 컷한 결과물. show running-config에서 필요한 부분만 잘라온겁니다~
(각 영역별 Core부분만. Access Layer부분은 생략. Distribute Layer는 GNS 한계상 제외)
A00A
interface Loopback0 - BGP 광고용 대표 IP 배정
ip address 203.172.100.129 255.255.255.240
interface FastEthernet0/0 - A00C와 연결
ip address 192.168.101.129 255.255.255.252
interface FastEthernet0/1 - A00D와 연결
ip address 192.168.101.133 255.255.255.252
interface Serial1/0 - ISP_A와 연결
ip address 10.10.10.6 255.255.255.252
interface FastEthernet2/0 - A00B와 연결
ip address 192.168.101.137 255.255.255.252
router ospf 5730
router-id 203.172.100.129
passive-interface Serial1/0
network 10.10.10.4 0.0.0.3 area 0
network 192.168.101.128 0.0.0.3 area 0
network 192.168.101.132 0.0.0.3 area 0
network 192.168.101.136 0.0.0.3 area 0
network 203.172.100.128 0.0.0.15 area 0
A00B
interface Loopback0 - BGP 광고용.
ip address 205.172.100.129 255.255.255.240
interface FastEthernet0/0 - A00D와 연결
ip address 192.168.101.145 255.255.255.252
interface FastEthernet0/1 - A00C와 연결
ip address 192.168.101.149 255.255.255.252
interface Serial1/0 - ISP C와 연결
ip address 12.12.12.6 255.255.255.252
interface FastEthernet2/0 -A00A와 연결
ip address 192.168.101.138 255.255.255.252
router ospf 5730
router-id 205.172.100.129
passive-interface Serial1/0
network 12.12.12.4 0.0.0.3 area 0
network 192.168.101.136 0.0.0.3 area 0
network 192.168.101.144 0.0.0.3 area 0
network 192.168.101.148 0.0.0.3 area 0
network 205.172.100.128 0.0.0.15 area 0
A10A
interface Loopback0 - BGP 광고용
ip address 204.172.100.161 255.255.255.240
interface FastEthernet0/0 - A10B와 연결
ip address 192.168.111.129 255.255.255.252
interface Serial1/1 - ISP B와 연결
ip address 11.11.11.14 255.255.255.252
router ospf 5730
router-id 204.172.100.161
passive-interface Serial1/1
network 11.11.11.12 0.0.0.3 area 10
network 192.168.111.128 0.0.0.3 area 10
network 192.168.111.132 0.0.0.3 area 10
network 204.172.100.160 0.0.0.15 area 10
A20A
interface Loopback0 - BGP 광고용
ip address 206.172.100.161 255.255.255.240
interface FastEthernet0/0 - A20B와 연결
ip address 192.168.121.129 255.255.255.252
interface Serial1/1 - ISP D와 연결
ip address 13.13.13.14 255.255.255.252
router ospf 5730
router-id 206.172.100.161
passive-interface Serial1/1
network 13.13.13.12 0.0.0.3 area 20
network 192.168.121.128 0.0.0.3 area 20
network 192.168.121.132 0.0.0.3 area 20
network 206.172.100.160 0.0.0.15 area 20
P.S : 당연하다면 당연하지만, 실제로 입력한 건 저렇게 명령다 치고 입력하지 않습니다~
그리고 저것 만 하진 않아요. 다 생략하고 마지막에 불필요한것 다 컷한 결과물. show running-config에서 필요한 부분만 잘라온겁니다~
2013년 12월 16일 월요일
GRE IPsec VPN을 이용한 원격지간 OSPF Area 연결 - 1. 개요
1. 개요
Routing Protocol을 공부하다보면, RIP/OSPF/EIGRP/BGP 이 네가지는 배우게 된다.
물론 BGP는 CCNA까지에서는 그냥 그런게 있다 정도나 배우거나 아예 듣지도 못하지만...
그중 OSPF는 다소 큰 구조의 네트워크 구성에 주로 사용되며, 구역별로 Area를 나눠서 Routing 정보를 전달하는 구조를 가지고 있다. 다만, 하나의 Area로만 구성된 경우에는 상관이 없지만, 둘 이상의 Area로 구성된 경우는 제한사항이 하나 있는데, 모든 Area 는 Area 0과 논리적으로 직접 연결되야만 한다는 점이다. 따라서 Area 1 - Area 0 - Area 2는 가능하지만, Area 0 - Area 1 - Area 2는 불가능하다. 당연히 Area 0 - 별도 네트워크 - 그외 Area 식의 환경도 연계가 안된다.
이런 상황을 해결하는 방법은 몇가지가 있지만, 여기서는 Tunnel 을 사용한 방법으로 분리된 네트워크 환경에서 하나의 OSPF 구성으로 만드는 방법을 알아보려고 한다.
시뮬레이션은 GNS3를 사용했으며, 실제 작업과정에서 걸리는 부하가 커서 상당히 간략화 한 구조를 사용하기로 한다.
2. 기본 설정
기본설정은 아래와 같다.
Area 0 : 가상의 회사 - 본사
Area 10/20 : 가상의 회사 - 지사
ISP A~D : 가상의 계약한 ISP 업체들
ISP간 연결 및 ISP-회사간 연결에는 BGP를 사용한다.
각 본사 및 지사 내부적으로는 OSPF를 사용한다.
각 본사 및 지사간 GRE Tunnel(with VPN)을 구성해서 연결한다.
3. 구성
-1. ip 설정 및 연결.
일단 OSPF 영역의
Point-to-Point 부분은 C Class급 사설네트워크로
192.168.100.0 - Area 0
192.168.110.0 - Area 10
192.168.120.0 - Area 20
내에서 분할함.
ISP 영역은 적당히~(중요하지 않으니까)
해서 실제 설정값은 다음게시물로
Routing Protocol을 공부하다보면, RIP/OSPF/EIGRP/BGP 이 네가지는 배우게 된다.
물론 BGP는 CCNA까지에서는 그냥 그런게 있다 정도나 배우거나 아예 듣지도 못하지만...
그중 OSPF는 다소 큰 구조의 네트워크 구성에 주로 사용되며, 구역별로 Area를 나눠서 Routing 정보를 전달하는 구조를 가지고 있다. 다만, 하나의 Area로만 구성된 경우에는 상관이 없지만, 둘 이상의 Area로 구성된 경우는 제한사항이 하나 있는데, 모든 Area 는 Area 0과 논리적으로 직접 연결되야만 한다는 점이다. 따라서 Area 1 - Area 0 - Area 2는 가능하지만, Area 0 - Area 1 - Area 2는 불가능하다. 당연히 Area 0 - 별도 네트워크 - 그외 Area 식의 환경도 연계가 안된다.
이런 상황을 해결하는 방법은 몇가지가 있지만, 여기서는 Tunnel 을 사용한 방법으로 분리된 네트워크 환경에서 하나의 OSPF 구성으로 만드는 방법을 알아보려고 한다.
시뮬레이션은 GNS3를 사용했으며, 실제 작업과정에서 걸리는 부하가 커서 상당히 간략화 한 구조를 사용하기로 한다.
2. 기본 설정
기본설정은 아래와 같다.
Area 0 : 가상의 회사 - 본사
Area 10/20 : 가상의 회사 - 지사
ISP A~D : 가상의 계약한 ISP 업체들
ISP간 연결 및 ISP-회사간 연결에는 BGP를 사용한다.
각 본사 및 지사 내부적으로는 OSPF를 사용한다.
각 본사 및 지사간 GRE Tunnel(with VPN)을 구성해서 연결한다.
3. 구성
-1. ip 설정 및 연결.
일단 OSPF 영역의
Point-to-Point 부분은 C Class급 사설네트워크로
192.168.100.0 - Area 0
192.168.110.0 - Area 10
192.168.120.0 - Area 20
내에서 분할함.
ISP 영역은 적당히~(중요하지 않으니까)
해서 실제 설정값은 다음게시물로
2013년 11월 6일 수요일
Port-channel
여러 포트를 하나의 포트로 묶어서 사용하는 기능.
기본적으로 최대 8개의 포트를 하나로 묶어 사용할 수 있다.
(PAgP는 8개 까지만, LACP는 16개 까지 가능하지만 실제 동작은 8개 까지만 한다. 나머지 포트는 예비로서 대기상태)
1. 기본적으로 묶는 포트가 모두 동일한 속도와 동일한 Duplex모드를 사용해야 한다.
2. 각 포트는 모두 활성화 된 상태야 한다.
3. 아래의 설정값은 모든 포트가 동일해야 한다. 하나라도 변경할 경우, 동일 그룹 내의 다른 모든 포트도 동일하게 변경하지 않으면 안된다.
–Allowed-VLAN list
–Spanning-tree path cost for each VLAN
–Spanning-tree port priority for each VLAN
–Spanning-tree Port Fast setting
4. Switched Port Analyzer (SPAN) destination port는 그룹에 포함될 수 없다.
5. 포트 보안 기술은 구성전에 모두 해제해야 한다.
6-1. Layer 2(스위치 포트)의 경우는
-Access Port의 경우는 동일 Vlan / Trunk Port의 경우는 동일한 Native Vlan
-Trunk mode의 경우는 개별 Port와 Port-channel이 모두 동일한 설정을 가져야 한다.
-Allowed-VLAN list가 다른 포트를 포함시킨 경우, auto나 desirable 모드를 사용하면 Port-channel이 성립되지 않는다.
-Spanning-tree cost가 다른 포트를 포함시킨 경우, 해당 포트는 포함되지 못한다.
6-2. Layer 3(라우티드 포트)의 경우는 개별 포트에 대해 IP지정을 할 수 없고, 하나로 묶인 전체에 대해서 지정해야 한다.
적용은 아래의 명령어를 사용한다.
channel-group [그룹번호] mode [모드지정]
active : LACP로 설정
passive : LACP감지시 LACP로 동작
desirable : PAgP로 설정
auto : PAgP감지시 PAgP로 동작
on : 포트채널만 구성
적용 프로토콜 변경은 아래의 명령어를 사용한다.
channel-protocol [lacp/pagp]
lacp : LACP로 지정
pagp : PAGP로 지정
Configuring EtherChannels
기본적으로 최대 8개의 포트를 하나로 묶어 사용할 수 있다.
(PAgP는 8개 까지만, LACP는 16개 까지 가능하지만 실제 동작은 8개 까지만 한다. 나머지 포트는 예비로서 대기상태)
1. 기본적으로 묶는 포트가 모두 동일한 속도와 동일한 Duplex모드를 사용해야 한다.
2. 각 포트는 모두 활성화 된 상태야 한다.
3. 아래의 설정값은 모든 포트가 동일해야 한다. 하나라도 변경할 경우, 동일 그룹 내의 다른 모든 포트도 동일하게 변경하지 않으면 안된다.
–Allowed-VLAN list
–Spanning-tree path cost for each VLAN
–Spanning-tree port priority for each VLAN
–Spanning-tree Port Fast setting
4. Switched Port Analyzer (SPAN) destination port는 그룹에 포함될 수 없다.
5. 포트 보안 기술은 구성전에 모두 해제해야 한다.
6-1. Layer 2(스위치 포트)의 경우는
-Access Port의 경우는 동일 Vlan / Trunk Port의 경우는 동일한 Native Vlan
-Trunk mode의 경우는 개별 Port와 Port-channel이 모두 동일한 설정을 가져야 한다.
-Allowed-VLAN list가 다른 포트를 포함시킨 경우, auto나 desirable 모드를 사용하면 Port-channel이 성립되지 않는다.
-Spanning-tree cost가 다른 포트를 포함시킨 경우, 해당 포트는 포함되지 못한다.
6-2. Layer 3(라우티드 포트)의 경우는 개별 포트에 대해 IP지정을 할 수 없고, 하나로 묶인 전체에 대해서 지정해야 한다.
적용은 아래의 명령어를 사용한다.
channel-group [그룹번호] mode [모드지정]
active : LACP로 설정
passive : LACP감지시 LACP로 동작
desirable : PAgP로 설정
auto : PAgP감지시 PAgP로 동작
on : 포트채널만 구성
적용 프로토콜 변경은 아래의 명령어를 사용한다.
channel-protocol [lacp/pagp]
lacp : LACP로 지정
pagp : PAGP로 지정
Configuring EtherChannels
2013년 10월 8일 화요일
SNMP(Simple Network Management Protocol) 및 SNMP Get/Get Next/Trap
SNMP(Simple Network Management Protocol)
네트워크 장비 관리 및 감시를 목적으로 개발되어 사용되는 UDP기반 응용계층 표준 프로토콜. 네트워크 구성관리/네트워크 사용량이나 에러, 처리속도, 응답시간등의 성능관리/네트워크 장비의 시스템 정보를 통한 장비 관리/정보의 제어 및 보호 등이 주요 기능이다.
SNMP Get
동기상태인 대상 기기에 대한 단일 정보를 요청하는 경우 사용.
SNMP Get Next
동기상태인 대상 및 그 하위 기기에 대한 정보를 요청하는 경우 사용.
SNMP Trap
비동기적 상황(즉, 갑작스럽게 전달해야 하는 내용)에서 전달해야 할 정보가 있을 경우 사용. 돌발상황이나 정해진 임계치 이상의 시스템 자원 사용같은 바로 전달해야 할 내용이 있는 경우에 사용된다.
참고자료
http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/SNMP_%B0%B3%BF%E4
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/SNMP
네트워크 장비 관리 및 감시를 목적으로 개발되어 사용되는 UDP기반 응용계층 표준 프로토콜. 네트워크 구성관리/네트워크 사용량이나 에러, 처리속도, 응답시간등의 성능관리/네트워크 장비의 시스템 정보를 통한 장비 관리/정보의 제어 및 보호 등이 주요 기능이다.
SNMP Get
동기상태인 대상 기기에 대한 단일 정보를 요청하는 경우 사용.
SNMP Get Next
동기상태인 대상 및 그 하위 기기에 대한 정보를 요청하는 경우 사용.
SNMP Trap
비동기적 상황(즉, 갑작스럽게 전달해야 하는 내용)에서 전달해야 할 정보가 있을 경우 사용. 돌발상황이나 정해진 임계치 이상의 시스템 자원 사용같은 바로 전달해야 할 내용이 있는 경우에 사용된다.
참고자료
http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/SNMP_%B0%B3%BF%E4
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/SNMP
2013년 8월 19일 월요일
ARP/ARP Spoofing Attacks
- ARP(Address Resolution Protocol)
동일한 broadcast Domain에서 IP와 MAC 주소를 맵핑시켜 사용하는 Layer 2 기반의 통신 방법. 특정 IP의 MAC 주소를 아는 경우는 그 MAC주소로, 모를 경우는 broadcast로 MAC주소를 요청하며 해당 IP를 가진 Host에서 자신의 MAC주소를 알려주면 그걸 기억해뒀다가 사용하게 된다. 즉, 실제 통신은 MAC주소 기반으로 하게 됨.
- ARP Spoofing Attacks
ARP는 특정 IP에 대한 MAC주소를 모를 경우, 확인하기 위한 broadcast frame을 발생시킨다. 이때 다른 Host에서 대신 자신의 MAC 주소를 알려주게 되면 그 MAC주소로 맵핑시킨다. 이로서, 다른 Host에게 가야할 정보를 중간에서 가로채는게 가능해진다. 이게 가능한 이유는 ARP에서 사용하는 맵핑 과정 자체에는 검증과정이 포함되지 않기 때문이다.
관련문서
ARP Poisoning Attack and Mitigation Techniques
동일한 broadcast Domain에서 IP와 MAC 주소를 맵핑시켜 사용하는 Layer 2 기반의 통신 방법. 특정 IP의 MAC 주소를 아는 경우는 그 MAC주소로, 모를 경우는 broadcast로 MAC주소를 요청하며 해당 IP를 가진 Host에서 자신의 MAC주소를 알려주면 그걸 기억해뒀다가 사용하게 된다. 즉, 실제 통신은 MAC주소 기반으로 하게 됨.
- ARP Spoofing Attacks
ARP는 특정 IP에 대한 MAC주소를 모를 경우, 확인하기 위한 broadcast frame을 발생시킨다. 이때 다른 Host에서 대신 자신의 MAC 주소를 알려주게 되면 그 MAC주소로 맵핑시킨다. 이로서, 다른 Host에게 가야할 정보를 중간에서 가로채는게 가능해진다. 이게 가능한 이유는 ARP에서 사용하는 맵핑 과정 자체에는 검증과정이 포함되지 않기 때문이다.
관련문서
ARP Poisoning Attack and Mitigation Techniques
2013년 8월 15일 목요일
VLAN Hopping 공격
전제조건
- 인터페이스에 직접 억세스 모드 지정(switchport mode access)을 하지 않은 상태.
- 해당 장치가 DTP 지원.
직접 억세스포트로 지정하지 않고 VLAN지정만 하는 경우가 간혹 있고, 많은 경우(대부분의 스위치는 기본값이 Access Mode지만, DTP는 허용된 상태.) 이 상태로도 별다른 문제 없이 동작한다. 하지만 연결된 장치에서 의도적으로 DTP 프레임을 보내서 Trunk 모드로 동작시키는 경우, L3라우팅 없이도 지정된 VLAN이 아닌 다른 VLAN으로 신호를 보낼 수 있게 된다. 결과적으로 접근할 수 없는 영역으로 접근을 할 수 있게 되는 문제가 생긴다.
이를 방지하기 위해서는 두가지를 지키면 된다.
1. Access Port
반드시 아래와 같이 명시적으로 Access Port로 설정해서 DTP프레임을 받아도 Trunk Port로 전환되지 않도록 한다.
SW(config-if)# switchport mode access
2. Trunk Port (802.1Q)
802.1Q Trunk Port 간 연결은 native VLAN 설정이 일치해야 한다. 따라서 기본값인 1에서, 외부인이 알 수 없는 임의의 값으로 변경해서 사용한다. (당연하지만 이 임의의 값은 양쪽이 동일해야 통신이 된다. 즉, VLAN Hopping을 시도하는 상대가 Native Vlan 번호를 모른다면 설정 불일치 문제로 해당 포트가 shutdown 된다.)
SW(config-if)# switchport trunk encapsulation dot1q
SW(config-if)# switchport mode trunk
SW(config-if)# switchport trunk native vlan [임의의 값]
참고문서
Dynamic Trunking Protocol (DTP) - CISCO
VLAN Security White Paper
- 인터페이스에 직접 억세스 모드 지정(switchport mode access)을 하지 않은 상태.
- 해당 장치가 DTP 지원.
직접 억세스포트로 지정하지 않고 VLAN지정만 하는 경우가 간혹 있고, 많은 경우(대부분의 스위치는 기본값이 Access Mode지만, DTP는 허용된 상태.) 이 상태로도 별다른 문제 없이 동작한다. 하지만 연결된 장치에서 의도적으로 DTP 프레임을 보내서 Trunk 모드로 동작시키는 경우, L3라우팅 없이도 지정된 VLAN이 아닌 다른 VLAN으로 신호를 보낼 수 있게 된다. 결과적으로 접근할 수 없는 영역으로 접근을 할 수 있게 되는 문제가 생긴다.
이를 방지하기 위해서는 두가지를 지키면 된다.
1. Access Port
반드시 아래와 같이 명시적으로 Access Port로 설정해서 DTP프레임을 받아도 Trunk Port로 전환되지 않도록 한다.
SW(config-if)# switchport mode access
2. Trunk Port (802.1Q)
802.1Q Trunk Port 간 연결은 native VLAN 설정이 일치해야 한다. 따라서 기본값인 1에서, 외부인이 알 수 없는 임의의 값으로 변경해서 사용한다. (당연하지만 이 임의의 값은 양쪽이 동일해야 통신이 된다. 즉, VLAN Hopping을 시도하는 상대가 Native Vlan 번호를 모른다면 설정 불일치 문제로 해당 포트가 shutdown 된다.)
SW(config-if)# switchport trunk encapsulation dot1q
SW(config-if)# switchport mode trunk
SW(config-if)# switchport trunk native vlan [임의의 값]
참고문서
Dynamic Trunking Protocol (DTP) - CISCO
VLAN Security White Paper
2013년 8월 3일 토요일
Inconsistent(비일관) 상태
Inconsistent(비일관) 상태는 연결된 양쪽의 설정이 서로 일치하지 않는 것으로 판단되는 경우를 말한다. 아래와 같은 경우가 존재한다.
- Loop Inconsistency
Loop Guard를 설정한 경우에 볼 수 있다. Loop Guard는 BPDU가 전송되지 않는 경우, 종단장치로 판단하고 전송상태로 변경하는걸 방지하는 기능. 이게 필요한 이유는 종단장치가 아니라도 단방향 연결상태라서 BPDU가 전송되지 않는 경우가 있기 때문이다.
- Root Inconsistency
Root Guard를 설정한 경우에 볼 수 있다. Root Guard가 설정된 스위치로, Root 스위치보다 우선인 BPDU가 전송되는 경우, 해당 포트를 차단하고 그 사유로 이 항목이 표시된다. 만약 우선권을 주장하는 BPDU의 전송이 멈추면, 별도로 설정할 필요 없이 차단이 해제되고 연결이 정상화 된다.
- EtherChannel Inconsistency
EtherChannel이 설정된 스위치간 설정이 일치하지 않는 경우 발생한다.
- Port VLAN ID (PVID) Inconsistency
연결된 포트간 VLAN ID가 일치하지 않는 경우 발생한다. 802.1q Trunk Port설정시 Native VLAN 을 동일하게 설정하지 않은 경우에도 발생한다.
Loop Guard를 설정한 경우에 볼 수 있다. Loop Guard는 BPDU가 전송되지 않는 경우, 종단장치로 판단하고 전송상태로 변경하는걸 방지하는 기능. 이게 필요한 이유는 종단장치가 아니라도 단방향 연결상태라서 BPDU가 전송되지 않는 경우가 있기 때문이다.
- Root Inconsistency
Root Guard를 설정한 경우에 볼 수 있다. Root Guard가 설정된 스위치로, Root 스위치보다 우선인 BPDU가 전송되는 경우, 해당 포트를 차단하고 그 사유로 이 항목이 표시된다. 만약 우선권을 주장하는 BPDU의 전송이 멈추면, 별도로 설정할 필요 없이 차단이 해제되고 연결이 정상화 된다.
- EtherChannel Inconsistency
EtherChannel이 설정된 스위치간 설정이 일치하지 않는 경우 발생한다.
- Port VLAN ID (PVID) Inconsistency
연결된 포트간 VLAN ID가 일치하지 않는 경우 발생한다. 802.1q Trunk Port설정시 Native VLAN 을 동일하게 설정하지 않은 경우에도 발생한다.
- Type Inconsistency
포트 타입이 일치하지 않는 경우(Access Port - Trunk Port 연결 식으로)에 발생한다.
관련 문서
Troubleshooting Spanning Tree PVID- and Type-InconsistenciesSpanning-Tree Protocol Enhancements using Loop Guard and BPDU Skew Detection Features
Spanning Tree Protocol Root Guard Enhancement
Understanding EtherChannel Inconsistency Detection
What Is a Port VLAN ID (pvid)?
2013년 7월 31일 수요일
Access Host Ports 설정하기
Access Host Ports
이 기능은 종단장치에 직접 연결된 포트 한정으로 사용하는 기능이다.
설정은 해당 인터패이스에서 아래와 같이 입력하면 된다.
SW(config-if)# switchport host
이 설정을 입력하면 아래와 같은 효과를 얻는다.
- Trunk포트인 경우, 강제로 Access 포트로 변경된다.
- Etherchannel을 구성한 경우, 강제로 해제된다.
- PortFast 기능이 자동으로 설정된다.
위의 두가지는 굳이 종단장치가 아니여도 상관없지만, 마지막의 PortFast 기능 때문에 이 설정은 반드시 종단장치에 직접 연결된 포트에 대해서만 사용해야 한다.
관련 문서
Configuring Access Host Ports
P.S : 순서가 엉망인 이유? 그야 뭐... 공부하는 사람이 엉망이라서?
이 기능은 종단장치에 직접 연결된 포트 한정으로 사용하는 기능이다.
설정은 해당 인터패이스에서 아래와 같이 입력하면 된다.
SW(config-if)# switchport host
이 설정을 입력하면 아래와 같은 효과를 얻는다.
- Trunk포트인 경우, 강제로 Access 포트로 변경된다.
- Etherchannel을 구성한 경우, 강제로 해제된다.
- PortFast 기능이 자동으로 설정된다.
위의 두가지는 굳이 종단장치가 아니여도 상관없지만, 마지막의 PortFast 기능 때문에 이 설정은 반드시 종단장치에 직접 연결된 포트에 대해서만 사용해야 한다.
관련 문서
Configuring Access Host Ports
P.S : 순서가 엉망인 이유? 그야 뭐... 공부하는 사람이 엉망이라서?
Errdisable Port State Recovery
Errdisable Port State Recovery 기능
앞에서 언급한, 다양한 보호기술들은 상당수가 포트 차단을 동반하고 있다.
이런 기술들을 적용한 상태에서 실제로 동작하게 될 경우, 관련 이슈가 발생하면 포트가 차단된다. 그리고 관리자가 해제하기 전까지는 그 상태가 유지된다. 문제는 항상 그 자리에 대기해서 해제해 줄 수는 없다는 것.
Errdisable Port State Recovery 기능은 이런식으로 차단된 포트를 일정 시간 이후에 다시 전송 상태로 전환시켜주는 기능이다.
설정은 전체 설정모드에서 아래와 같이 입력하면 된다.
SW(config)# errdisable recovery cause [해당이슈명]
예를 들어 BPDU Guard로 인한 차단을 자동적으로 해제하고자 하는 경우라면
SW(config)# errdisable recovery cause bpduguard
복구 시키는 시간은 기본값으로 300초(=5분)로 되어있다. 이 시간을 변경하고자 하는 경우에는 아래와 같이 전체 설정모드에서 입력하면 된다.
SW(config)# errdisable recovery interval [시간(초단위)]
더 자세한 내용은 아래의 관련 문서를 참고하면 된다.
관련 문서
Errdisable Port State Recovery on the Cisco IOS Platforms
앞에서 언급한, 다양한 보호기술들은 상당수가 포트 차단을 동반하고 있다.
이런 기술들을 적용한 상태에서 실제로 동작하게 될 경우, 관련 이슈가 발생하면 포트가 차단된다. 그리고 관리자가 해제하기 전까지는 그 상태가 유지된다. 문제는 항상 그 자리에 대기해서 해제해 줄 수는 없다는 것.
Errdisable Port State Recovery 기능은 이런식으로 차단된 포트를 일정 시간 이후에 다시 전송 상태로 전환시켜주는 기능이다.
설정은 전체 설정모드에서 아래와 같이 입력하면 된다.
SW(config)# errdisable recovery cause [해당이슈명]
예를 들어 BPDU Guard로 인한 차단을 자동적으로 해제하고자 하는 경우라면
SW(config)# errdisable recovery cause bpduguard
복구 시키는 시간은 기본값으로 300초(=5분)로 되어있다. 이 시간을 변경하고자 하는 경우에는 아래와 같이 전체 설정모드에서 입력하면 된다.
SW(config)# errdisable recovery interval [시간(초단위)]
더 자세한 내용은 아래의 관련 문서를 참고하면 된다.
관련 문서
Errdisable Port State Recovery on the Cisco IOS Platforms
2013년 7월 28일 일요일
STP보호기술 2 - BPDU Filtering 와 Loop Guard
BPDU Filtering
BPDU를 송/수신 하지 않도록 설정하는 기능.
BPDU를 받지 않아도 될 장비에 보내서 부하가 걸리지 않도록 하는데 그 목적이 있다.
설정은 크게 두가지 방식을 취한다.
첫번째 방법은 전체 설정모드에서 설정하는 방식으로, 전체 설정모드에서 다음과 같이 입력한다.
SW(config)# spanning-tree portfast bpdufilter default
이렇게 하면, 더이상 해당 스위치에서는 BPDU를 송신하지 않는다.
다만 수신은 하며, 수신한 경우에는 그 포트에 대해서는 BPDU Filtering이 해제되고
정상적으로 BPDU를 송수신하게된다.
이 방식의 장점은 일괄적으로 한번에 설정할 수 있다는 점.
이렇게 설정된 경우, 일단은 해당 스위치에 존재하는 모든 포트에 일괄적으로 BPDU Filtering기능이 적용된다. 하지만 다른 장치에서 BPDU를 전송 받을 경우, 해당 포트는 BPDU Filtering이 해제된다. 이후는 일반적인 STP환경처럼 Root/Desg/Altn으로 설정된다.
결과적으로 BPDU를 보내지 않는 종단 장치와 연결된 포트들에는 BPDU Filtering이 유지되고, 그 외의 포트들은 BPDU Filtering이 자동적으로 해제된다.
단점은 그 기준이 BPDU 수신여부라는 점.
누군가가 악의적으로 BPDU를 조작해서 보낼 경우, STP구조가 엉망이 되는 상황이 발생 할 수 있다. 별도로 조정하지 않은 기본상태 기준으로 최대 50초간 네트워크가 마비될 수도 있다.
두번째 방법은 개별 인터페이스에서 직접 설정하는 방식으로, 개별 인터페이스에서 다음과 같이 입력한다.
SW(config-if)# spanning-tree bpdufilter enable
이 방식의 경우는 BPDU 송신만이 아닌, BPDU의 수신도 차단한다.
이 방식의 장점은 직접 설정을 해제하지 않는 한 해제되지 않는다는 점.
앞서 언급한 전체설정모드에서 하는 방법의 단점은, 이 방식에서는 발생하지 않는다.
단점은 STP구성에 포함된 포트에서 사용시, 루프가 발생할 수 있다는 것.
본래 Altn포트로 지정되서 블럭되야하는 포트가 BPDU Filtering설정이 되면, 강제적으로 Forwarding상태가 되어 버린다. 이렇게 되면 Loop구성이 되버려서 정상적인 통신을 하지 못하게 된다.
따라서, 종단포트에 대해서만 개별 인터페이스에서 설정하는 것이 좋다.
Loop Guard
STP상에서 이미 차단(Altn - BLK)된 포트가 상대 포트에게 일정시간 이상(기본값은 50초) BPDU를 받지 못하면, 차단상태에서 전송상태(Desg - FWD)로 변경된다. 이 경우, 루프가 발생하게 된다. Loop Guard는 이러한 현상을 방지하기 위한 기능으로, 이 기능이 설정된 경우에는 차단된 포트가 BPDU를 받지 못해서 전송포트로 변경되는걸 방지한다.
전체 설정 모드에서 설정하고자 하는 경우는 아래와 같이 한다.
SW(config)# spanning-tree loopguard default
개별 인터페이스에 대해서 설정하고자 하는 경우는 해당 인터페이스에 들어가서 아래와 같이 설정한다.
SW(config-if)# spanning-tree guard loop
관련 문서
Configuring Spanning Tree PortFast, BPDU Guard, BPDU Filter, UplinkFast, BackboneFast, and Loop Guard
Catalyst 2960-X Switch Layer 2 Configuration Guide, Cisco IOS Release 15.0(2)EX
Configuring Optional Spanning-Tree Features
BPDU를 송/수신 하지 않도록 설정하는 기능.
BPDU를 받지 않아도 될 장비에 보내서 부하가 걸리지 않도록 하는데 그 목적이 있다.
설정은 크게 두가지 방식을 취한다.
첫번째 방법은 전체 설정모드에서 설정하는 방식으로, 전체 설정모드에서 다음과 같이 입력한다.
SW(config)# spanning-tree portfast bpdufilter default
이렇게 하면, 더이상 해당 스위치에서는 BPDU를 송신하지 않는다.
다만 수신은 하며, 수신한 경우에는 그 포트에 대해서는 BPDU Filtering이 해제되고
정상적으로 BPDU를 송수신하게된다.
이 방식의 장점은 일괄적으로 한번에 설정할 수 있다는 점.
이렇게 설정된 경우, 일단은 해당 스위치에 존재하는 모든 포트에 일괄적으로 BPDU Filtering기능이 적용된다. 하지만 다른 장치에서 BPDU를 전송 받을 경우, 해당 포트는 BPDU Filtering이 해제된다. 이후는 일반적인 STP환경처럼 Root/Desg/Altn으로 설정된다.
결과적으로 BPDU를 보내지 않는 종단 장치와 연결된 포트들에는 BPDU Filtering이 유지되고, 그 외의 포트들은 BPDU Filtering이 자동적으로 해제된다.
단점은 그 기준이 BPDU 수신여부라는 점.
누군가가 악의적으로 BPDU를 조작해서 보낼 경우, STP구조가 엉망이 되는 상황이 발생 할 수 있다. 별도로 조정하지 않은 기본상태 기준으로 최대 50초간 네트워크가 마비될 수도 있다.
두번째 방법은 개별 인터페이스에서 직접 설정하는 방식으로, 개별 인터페이스에서 다음과 같이 입력한다.
SW(config-if)# spanning-tree bpdufilter enable
이 방식의 경우는 BPDU 송신만이 아닌, BPDU의 수신도 차단한다.
이 방식의 장점은 직접 설정을 해제하지 않는 한 해제되지 않는다는 점.
앞서 언급한 전체설정모드에서 하는 방법의 단점은, 이 방식에서는 발생하지 않는다.
단점은 STP구성에 포함된 포트에서 사용시, 루프가 발생할 수 있다는 것.
본래 Altn포트로 지정되서 블럭되야하는 포트가 BPDU Filtering설정이 되면, 강제적으로 Forwarding상태가 되어 버린다. 이렇게 되면 Loop구성이 되버려서 정상적인 통신을 하지 못하게 된다.
따라서, 종단포트에 대해서만 개별 인터페이스에서 설정하는 것이 좋다.
Loop Guard
STP상에서 이미 차단(Altn - BLK)된 포트가 상대 포트에게 일정시간 이상(기본값은 50초) BPDU를 받지 못하면, 차단상태에서 전송상태(Desg - FWD)로 변경된다. 이 경우, 루프가 발생하게 된다. Loop Guard는 이러한 현상을 방지하기 위한 기능으로, 이 기능이 설정된 경우에는 차단된 포트가 BPDU를 받지 못해서 전송포트로 변경되는걸 방지한다.
전체 설정 모드에서 설정하고자 하는 경우는 아래와 같이 한다.
SW(config)# spanning-tree loopguard default
개별 인터페이스에 대해서 설정하고자 하는 경우는 해당 인터페이스에 들어가서 아래와 같이 설정한다.
SW(config-if)# spanning-tree guard loop
관련 문서
Configuring Spanning Tree PortFast, BPDU Guard, BPDU Filter, UplinkFast, BackboneFast, and Loop Guard
Catalyst 2960-X Switch Layer 2 Configuration Guide, Cisco IOS Release 15.0(2)EX
Configuring Optional Spanning-Tree Features
2013년 7월 27일 토요일
STP보호기술 1 - BPDU Guard 와 Root Guard
BPDU Guard
정상적인 경우, 종단장치가 연결된 포트에서는 BPDU가 송신될 필요가 없다. 같은 이유로 수신될 필요도 없고, 수신 될 일도 없는 것이 정상이다. 종단장치가 연결된 포트에서 BPDU가 수신된다는 것은, 승인되지 않은 개인의 스위치or허브 연결이나 해킹으로 인한 STP공격등이 있을 수 있다. 이를 방지하기 위한 기능이 BPDU Guard. 설정하게 되면, BPDU를 수신할 경우 해당 포트가 차단된다.
전체 설정모드에서는 아래와 같이 설정하면 된다.
SW(config)# spanning-tree portfast bpduguard default
이 방법을 사용하면 스위치에 존재하는 포트중 PortFast 설정이 적용된 포트에서 BPDU가 수신되면 해당 포트를 차단하게 된다.
개별 인터페이스에 대해서는 아래와 같이 설정하면 된다.
SW(config-if)# spanning-tree bpduguard enable
이 방법으로 설정한 포트에 BPDU가 수신되면 해당 포트를 차단한다.
Root Guard
STP를 구성할때 핵심이 되는 Root Switch는 브릿지ID가 가장 낮은 스위치가 담당하게 된다.
L2 네트워크의 중심이 되는 장비가 되므로, 대게는 전체를 관리하는 코어쪽(아래 이미지에서 오른쪽의 Service-Provider측)에 Root스위치를 설정해서 사용하게 된다. 문제는 코어에 연결된 개별 사용자측(아래 이미지에서 왼쪽의 Customer측)에서 별도의 장비(Switch)를 연결하고 내부적으로 설정하는 과정에서 Root Switch보다 더 낮은 브릿지ID를 가지게 설정한 경우가 발생할 수 있다. 이렇게 되면, Root Switch가 변경되면서 STP구조가 변경되는 등의 문제가 발생 할 수 있다.
Root Guard 기능은, 설정된 포트로 들어오는 BPDU중, 해당 스위치의 루트ID보다 브릿지ID가 더 낮은 BPDU가 들어오게 되면 해당 포트를 차단하는 기능이다.
이 기능은 개별 인터페이스에서 설정할 수 있다. (전체모드 미지원)
SW(config-if)# spanning-tree guard root
이 기능은 설정시 주의가 필요하다. 대놓고 매뉴얼 상에 장애 발생의 원인이 될 수 있다고 명시될 정도.
관련 문서
Configuring Spanning Tree PortFast, BPDU Guard, BPDU Filter, UplinkFast, BackboneFast, and Loop Guard
Spanning Tree PortFast BPDU Guard Enhancement
Catalyst 2960-X Switch Layer 2 Configuration Guide, Cisco IOS Release 15.0(2)EX
Configuring Optional Spanning-Tree Features
정상적인 경우, 종단장치가 연결된 포트에서는 BPDU가 송신될 필요가 없다. 같은 이유로 수신될 필요도 없고, 수신 될 일도 없는 것이 정상이다. 종단장치가 연결된 포트에서 BPDU가 수신된다는 것은, 승인되지 않은 개인의 스위치or허브 연결이나 해킹으로 인한 STP공격등이 있을 수 있다. 이를 방지하기 위한 기능이 BPDU Guard. 설정하게 되면, BPDU를 수신할 경우 해당 포트가 차단된다.
전체 설정모드에서는 아래와 같이 설정하면 된다.
SW(config)# spanning-tree portfast bpduguard default
이 방법을 사용하면 스위치에 존재하는 포트중 PortFast 설정이 적용된 포트에서 BPDU가 수신되면 해당 포트를 차단하게 된다.
개별 인터페이스에 대해서는 아래와 같이 설정하면 된다.
SW(config-if)# spanning-tree bpduguard enable
이 방법으로 설정한 포트에 BPDU가 수신되면 해당 포트를 차단한다.
Root Guard
STP를 구성할때 핵심이 되는 Root Switch는 브릿지ID가 가장 낮은 스위치가 담당하게 된다.
L2 네트워크의 중심이 되는 장비가 되므로, 대게는 전체를 관리하는 코어쪽(아래 이미지에서 오른쪽의 Service-Provider측)에 Root스위치를 설정해서 사용하게 된다. 문제는 코어에 연결된 개별 사용자측(아래 이미지에서 왼쪽의 Customer측)에서 별도의 장비(Switch)를 연결하고 내부적으로 설정하는 과정에서 Root Switch보다 더 낮은 브릿지ID를 가지게 설정한 경우가 발생할 수 있다. 이렇게 되면, Root Switch가 변경되면서 STP구조가 변경되는 등의 문제가 발생 할 수 있다.
Root Guard 기능은, 설정된 포트로 들어오는 BPDU중, 해당 스위치의 루트ID보다 브릿지ID가 더 낮은 BPDU가 들어오게 되면 해당 포트를 차단하는 기능이다.
이 기능은 개별 인터페이스에서 설정할 수 있다. (전체모드 미지원)
SW(config-if)# spanning-tree guard root
이 기능은 설정시 주의가 필요하다. 대놓고 매뉴얼 상에 장애 발생의 원인이 될 수 있다고 명시될 정도.
관련 문서
Configuring Spanning Tree PortFast, BPDU Guard, BPDU Filter, UplinkFast, BackboneFast, and Loop Guard
Spanning Tree PortFast BPDU Guard Enhancement
Catalyst 2960-X Switch Layer 2 Configuration Guide, Cisco IOS Release 15.0(2)EX
Configuring Optional Spanning-Tree Features
2013년 7월 25일 목요일
2013년 7월 16일 화요일
STP - Priority값
0~61440사이의 값으로 지정 가능하며, 4096 단위로 지정이 가능하다.
0000 = 0
0001 = 4096
0010 = 8192
0011 = 12288
0100 = 16384
0101 = 20480
0110 = 24576
0111 = 28672
1000 = 32768 default
1001 = 36864
1010 = 40960
1011 = 45056
1100 = 49152
1101 = 53248
1110 = 57344
1111 = 61440
위와 같이 표현되는건, 본래 16bit인걸 4bit로 표현하기위해.
0000 = 0
0001 = 4096
0010 = 8192
0011 = 12288
0100 = 16384
0101 = 20480
0110 = 24576
0111 = 28672
1000 = 32768 default
1001 = 36864
1010 = 40960
1011 = 45056
1100 = 49152
1101 = 53248
1110 = 57344
1111 = 61440
위와 같이 표현되는건, 본래 16bit인걸 4bit로 표현하기위해.
피드 구독하기:
글 (Atom)















