ㄴ CCNA

4월 13일 (BGP 경로 선택 조건, Standard 및 Extended ACL)

깜자왕 2022. 4. 13. 17:50
반응형

1. BGP에서 최적 경로를 선택하는 조건은 무엇입니까?
   >> BGP에서 최적경로를 선택하는 조건은 attribute (6가지)
   >> BGP는 특정경로를 Neighbor에게 update할때 다양한 attribute값을 포함 하여 update 합니다.

   (next-hop문제 해결, split-horizon 해결)
   1.Weight
   2.Local Preference
   3.Next-hop (0.0.0.0)
   4.AS-PATH

   1 Weight    -- 아무런 의미 없는 값 (자신이 광고한 경로에 대해, 32768을 붙임)
                   -- IBGP, EBGP Neighbor에게 광고하는 경우, 값은 생략
                   -- 높은값을 우선시함
                   -- outbound traffic 조정 (inbound configuration)

   2 Local Preference 
                  -- 아무런 의미 없는 값 (IBGP neighbor에게 주는 경우 100이 붙음)
                                                (EBGP로 주는 경우, 없음)
                  --  기준값 100을 기준으로 높은값을 우선시함 "0"
                  -- outbound traffic 조정 (inbound configuration)

  3 Next-hop -- 경로로 가기위한 Next-hop정보를 알려주는 인자 
                  -- 0.0.0.0 표기된 경로를 우선시 함 (자신이 광고한 경로를 우선시함)
                    (경로 선택에는 영향이 없음) ---> Weight값이 있음 !!!
                    (도달가능성 확인 !!!  ---> next-hop-self  사용)

  4 AS Path   -- 경로가 지나온 AS의 List입니다.
                  -- As-path가 짧은 경로를 우선시 합니다.
                  -- EBGP에서 routing loop를 방지하는 용도로도 사용
                  -- As-path는 AS를 벗어나는 경우에만 붙임 (IBGP간에는 붙지 않음) 
                  -- inbound traffic 조정 (outbound configuration)

 

  5 Origin Code

     -> 경로가 BGP로 유입된 방식으로 알려주는 인자

     -> i (network command) -> ? (재분배)

              ** 재분배 -> router bgp x -> redistribute ospf 1 route-map TEST

     -> IBGP, EBGP로 모두 전파

     -> set origin code ?

     -> Inbound traffic을 조정하는 용도로 사용

        * AS Path가 우선시 되기 때문에 인터넷 환경에서는 의미x, 두 개의 AS간에만 사용가능

 

  6 MED

     -> 아무런 의미가 없는 값

     -> Default로 0 값으로 전파함

     -> 낮은 값을 우선시

     -> IBGP, EBGP에게 모두 전파 (AS 넘어가는 경우에 MED 값은 없어짐)

        * AS1 - AS2 - AS3 이 있을 경우 AS1이 붙인 MED값은 AS2에 전파되지만 AS3으로는 전파되지 않음

     -> set metric ?

 

  7 EBGP / IBGP

     -> EBGP로부터 받은 경로를 IBGP로 부터 받은 경로보다 우선시 함

         ************** bgp에 들어간 후 maximum path 2 -> 여기까지만 비교한다고 선언 ***************

     -> IBGP로부터 받은 경로밖에 없을 경우, Next-hop으로 가기위한 OSPF의 Metric을 본다

     -> 그래도 같다면 Router ID가 낮은쪽 경로를 우선

 

BGP는 LoadBalancing을 하지 않기에 위 조건들을 확인하는 것이다

 


경로선택 실습 (EBGP/IBGP 경로선택)

 

-> EBGP, IBGP 연결하고 BGP network는 R2의 Lo0만 광고

R4의 bgp table

-> R1쪽에 대한 경로로 잡힌 것을 볼 수 있다. EBGP로 받은 경로가 우선시 되기 때문

 

문제 1.

AS 4번의 경우 AS1로 가는 경로는 AS4의 주라인이다 (500Mbps)

AS3으로 가는 경로는 AS4의 보조라인이다 (50Mbps)

R4,5에 show ip route로 보면, 2.2.2.2로 가기위한 경로를 AS1로 선택하도록 조정하라 (즉 AS4에서 다른 AS로 가는 모든 경로는 AS1을 통해서 통신이 되어야 한다)

 

Link Preference 이용

 

R4

router bgp 4
 neighbor 10.1.14.1 route-map TEST in

 

route-map TEST permit 10
 match ip address 10
 set local-preference 600

 

R4의 2.2.2.2로 가기위한 경로 (R1을 거침)
R5의 2.2.2.2로 가기위한 경로 (R4와 R1을 거침)

 

문제 2.

AS4 (10.1.45.0/24)로 들어오는 경로를 AS1으로 들어오도록 설정해라

 

1. 우선 R4 또는 R5에서 10.1.45.0/24를 광고해라

Router(config)#router bgp 4
Router(config-router)#network 10.1.45.0 mask 255.255.255.0

 

2. R5에서 AS-path를 설정

 

R5

Router(config)#router bgp 4
Router(config-router)#neighbor 10.1.35.3 route-map AS out
Router(config-router)#exit
Router(config)#access-list 33 permit 10.1.45.0 0.0.0.255
Router(config)#route-map permit 10
Router(config-route-map)#match ip address 33
Router(config-route-map)#set as-path prepend 4 4 4

 

문제 3.

R3에서 3.3.3.3/32를 BGP로 광고한다

R3에서 2.2.2.2로 가는 경로는 AS4를 통해서 통신하도록 설정 (R2에서 설정한다)

R1에서 3.3.3.3로 가는 경로는 AS4를 통해서 통신하도록 설정 (R3에서 설정한다)

 

 

R2

Router(config)#router bgp 2
Router(config-router)#neighbor 10.1.23.3 route-map fromAS3 out  #R2 기준에서 10.1.23.3 으로 '보낼 때'

 

Router(config)#access-list 11 permit 2.2.2.2 0.0.0.0


Router(config)#route-map fromAS3 permit 10
Router(config-route-map)#match ip address 11
Router(config-route-map)#set as-path prepend 2 2 2

 

R3

Router(config)#router bgp 3
Router(config-router)#neighbor 10.1.23.2  route-map fromAS1 out
Router(config-router)#exit

Router(config)#access-list 11 permit 3.3.3.3 0.0.0.0

Router(config)#route-map fromAS1 permit 10
Router(config-route-map)#match ip address 11
Router(config-route-map)#set as-path prepend 3 3

 

R3에서 2.2.2.2로 가는 경로는 AS4를 통해서 통신하도록 설정 (R3의 table)
R1에서 3.3.3.3로 가는 경로는 AS4를 통해서 통신하도록 설정 (R1의 table)


경로선택 실습 2

 

R1

router bgp 1
 bgp log-neighbor-changes
 network 1.1.1.0 mask 255.255.255.0
 neighbor 10.1.12.2 remote-as 2
 neighbor 10.1.14.4 remote-as 2

 

R2

router bgp 2
 bgp log-neighbor-changes
 neighbor 10.1.12.1 remote-as 1
 neighbor 10.1.23.3 remote-as 2
 neighbor 10.1.23.3 next-hop-self

 

R3

router bgp 2
 bgp log-neighbor-changes
 network 3.3.3.0 mask 255.255.255.0
 neighbor 10.1.23.2 remote-as 2
 neighbor 10.1.23.2 route-reflector-client
 neighbor 10.1.34.4 remote-as 2
 neighbor 10.1.34.4 route-reflector-client

 

R4

router bgp 2
 bgp log-neighbor-changes
 neighbor 10.1.14.1 remote-as 1
 neighbor 10.1.34.3 remote-as 2
 neighbor 10.1.34.3 next-hop-self

 

R1에서의 확인

R1에서의 show ip bgp

-> 3.3.3.0에 대해서 bgp 경로선택 조건에 의해 먼저받은 경로가 > 로 선택되었다

-> clear ip bgp 10.1.12.2 실행 시 10.1.14.4 경로가 > 로 선택된다.

R1에서의 show ip bgp

-> 최종적으로 routing table에 올라가는 경로는 선택된 경로다.

R1에서의 show ip route

 

R3에서의 확인

R3에서의 show ip bgp

-> 1.1.1.0에 대해서 bgp 경로선택 조건에 의해 router ID에 의해 >로 선택되었다

-> router ID는 루프백 주소를 넣지 않으면 포트주소로 인식

-> router ID는 낮은 쪽 경로 우선

R3에서의 show ip route

-> 최종적으로 routing table에 올라가는 경로는 선택된 경로다


Access-List

-> Traffic을 Classification하는 구문

-> NAT, Route-map 등등 || traffic 제어하는 용도

 

1. NAT에서의 사용

ex) access-list 1 permit 10.1.1.0 0.0.0.255

ip nat inside source list 1 interface s1/0 overload

 

2. route-map에서의 사용

ex) access-list 2 permit 10.1.1.0 0.0.0.255

route-map TEST permit 10

match ip add 2

set local-preference 200

 

3. 인터페이스에 적용 (방화벽에서 주로 사용)

ex) access-list 3 permit 10.1.1.0 0.0.0.255

int e0/0

ip access-group 3 in

** source ip에 대해서 막는 개념이다

 

R1에서 e0/1을 shutdown 한다.

그 후 R2에서 다음과 같이 ACL을 설정한다

 

Router(config)#access-list 1 deny 1.1.1.1
Router(config)#int e0/0
Router(config-if)#ip access-group 1 in

 

R1 -> 1.1.1.1 의 ping 결과

ACL 때문에 R1의 e0/0으로도 통신이 막힌다.

** int e0/1에서 ip access-group 1 out 으로 해도 동일한 ACL 효과를 받음

 

Standard ACL

   access-list (1-99) permit/deny (source 네트워크주소) (와일드카드마스크)

   access-list (1-99) deny host (ip주소) -> host ip 하나를 거부하겠다

   access-list (1-99) deny any -> 모든 주소를 거부하겠다

 

Extended ACL

   access-list (100-199) permit/deny (*protocol) (source네트워크주소) (와일드카드마스크) (dst네트워크주소) (dst와일드카드) eq (Application 포트번호)

      *Protocol : TCP, UDP, OSPF, ICMP..

      Application : 80(http), 443(https), 23(telnet) ...

 

-> R3에서 R1으로 Telnet Traffic만 차단한다

 

R2

Router(config)#int e0/1
Router(config-if)#no ip access-group 1 out
Router(config-if)#exit

Router(config)#access-list 100 deny tcp host 1.1.1.1 host 3.3.3.3 eq 23
Router(config)#access-list 100 permit ip any any 


Router(config)#int e0/0
Router(config-if)#ip access-group 100 in

-> 1.1.1.1에서 출발하는 23번 telnet의 접근을 R2의 e0/0 인터페이스에 ACL로 막는다.

R1에서 3.3.3.3으로의 telnet 접근이 막힘