1 / 75

BGP 에서 Traffic 제어

BGP 에서 Traffic 제어. ㈜ 데이콤 장우현 whchang@bora.net. 최근 동향. BGP 네트웍 증가 소규모 ISP 들 , 금융기관들 , 정보제공업체들 IX Point 의 다양화 KIX(DACOM, KT, NCA), IX-Seoul (INET) DACOM L2IX, KINX ISP 들의 직접 연동 강화 IP block filtering 한계 ( 유명무실 ) @Major US ISP /19 block 이하에 대한 filtering by Sprint. BGP 운영시 고려사항.

Download Presentation

BGP 에서 Traffic 제어

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BGP에서 Traffic 제어 ㈜데이콤 장우현 whchang@bora.net

  2. 최근 동향 • BGP 네트웍 증가 • 소규모 ISP들, 금융기관들, 정보제공업체들 • IX Point의 다양화 • KIX(DACOM, KT, NCA), IX-Seoul (INET) • DACOM L2IX, KINX • ISP들의 직접 연동 강화 • IP block filtering 한계 (유명무실) @Major US ISP • /19 block 이하에 대한 filtering by Sprint

  3. BGP 운영시 고려사항 • IP Address block • 라우터 사양 • 안정성 • Traffic 제어

  4. IP Address block • 연속된 32개 C Class IP block (/19) • 제한없음 • 연속된 16개 C Class IP block (/20) • 제한이 있다고 하며, /20에 대해서는 제한을 없애자는 의견들이 있음. 그러나 실질적인 제한은 거의 없음 • 낱개의 C Class IP block • 제한이 있다고 하나, 실질적인 제한은 거의 없음 • Subnetted C Class IP block • 해외는 제한되며, 국내도 제한가능성이 매우 높음

  5. 라우터 사양 • 3Mbps 이하의 Traffic을 처리하고 국내정보를 전달받지 않는 경우 Cisco 라우터기준 2500 시리즈로 BGP 접속 가능 • 3~4Mbps 이상의 Traffic을 처리하는 경우는 Cisco 라우터기준 3600 시리즈 이상 권장. 100M LAN Interface 이용 권장 • 국내 BGP 정보를 유지하기 위해서는 32M RAM 이상 권장 (3000개 정보 유지) • 해외 BGP 정보를 유지하기 위해서는 64M RAM 이상 권장 (60000개 정보 유지)

  6. 안정성 • 1개의 라우터 이용시 라우터에 장애 발생시 서비스 장애 발생 • 서로 다른 국내/국제 연결 경로를 갖고 있는 ISP를 선택하여 연결 • 한 개의 ISP에게 여러 개의 회선을 연결할 경우 • Loopback Address를 이용해 1개의 BGP session을 구성하거나, • 복수개의 BGP Session을 구성하여 장애에 대비

  7. Traffic 조절 대상 • Inbound Traffic 조절 • 정보제공업체를 제외한 대부분의 ISP/기업들이 Inbound Traffic 조절 필요 • Outbound Traffic 조절 • 정보제공업체들이 외부와 연결된 복수개의 회선을 효율적으로 이용하기 위해 Outbound Traffic 조절 필요

  8. Traffic 조절시 유의사항 • Inbound Traffic을 조절하기 위해서는 내가 전달하는 라우텅정보를 조절하여야 함 • 내가 원하는 대로 제어하는 것이 쉽지 않음 • Outbound Traffic을 조절하기 위해서는 내가 전달받는 라우팅정보를 조절하여야 함 • 내가 원하는 대로 거의 100% 제어 가능 • BGP에서 목적지로 가는 경로는 항상 1개임 • Best Path는 1개 • 100% 50:50 traffic 분산은 불가능 • AS-Path & Prefix Filtering

  9. 상황요소들 • 라우터 개수 • 연결된 ISP의 AS 구성 방식 • 1개의 ISP에 연결된 회선 수 • 회선대역 • IP block 개수 • IP block이 ISP IP block에 포함되는 경우

  10. Traffic 조절 수단 • Inbound • as-path 길이 • MED 값 • prefix 길이 • Outbound • weight (only Cisco IOS) • local_preference • as-path 길이 • MED 값

  11. Traffic 조절 수단 (cont.) • Wegiht: 값을 클수록 best path • Local Preference: 값이 클수록 best path • As-path 길이: 길이가 짧을수록 best path • MED: 값이 작을수록 best path • prefix 길이: 길이가 길수록 best path

  12. 상황1 • ABC-A 기업 • Cisco 2501 라우터 1대 • 512Kbps 1회선씩 2개의 ISP에 연결. • Inbound Traffic이 많음 • IP block 200.200.200.0/24 이용 • AS Number 9999

  13. 상황 1에 대한 검토 • Cisco 2501 라우터 1대 • ISP로부터 정보를 전달받지 않고, ISP에게 200.200.200.0/24만을 전달하는 것이 바람직 • LAN Interface가 10M Ethernet이므로 3Mbps 이상 외부와의 Traffic 처리 곤란. 그러나 512Kbps 회선이 2개이므로 문제없음 • 2Mbps 2회선을 이용할 경우에는 LAN Interface를 100M Interface로 교체해주는 것이 바람직하며, 이 경우 상위 기종 라우터 이용 필요 • 혹은 10M Interface가 2개 이상 지원되는 라우터 이용해야 함 • 라우터가 1대이므로 장애 가능성 잠재

  14. 상황 1에 대한 검토 (cont.) • 512Kbps 1회선씩 2개의 ISP에 연결 • 동일대역의 회선이므로 outbound traffic은 default route를 2개만을 선언하여 50:50으로 분산 가능. • 국내정보를 2개의 ISP로부터 받을 수 있는 라우터를 이용한 경우 default route만으로는 outbound traffic 분산이 완전하지 않을 수 있음. 이 경우에는 weight, local_preference, as-path, metric등으로 outbound traffic 조절 필요 • 동일대역 회선이더라도 연결된 사업자에 따라 inbound traffic이 매우 불균형상태일수 있음. 이 경우 as-path, MED, prefix 길이 등으로 traffic 조절 필요

  15. 상황 1에 대한 검토 (cont.) • 2개의 ISP에게 연결되어 있으므로 전체장애 발생 가능성은 낮음 • Inbound Traffic이 많음 • outbound traffic 조절보다는 inbound traffic 조절 방법 숙지 필요 • 불균형한 상태로 회선이 이용될 경우, 필요에 따라서는 어느 1개의 회선대역 증가 필요 • IP block 200.200.200.0/24 이용 • C Class 1개 block을 이용하므로 prefix 길이를 이용한 inbound traffic 조절은 곤란

  16. Case 1 • 상황1에서 AS100, AS200에 연결 AS100 1.1.1.1 AS9999 Internet 1.1.1.2 국내 인터넷 2.2.2.2 AS200 2.2.2.1

  17. Case1 Config 설정 interface ethernet0ip address 200.200.200.1 255.255.255.0ip route-cache same-interfaceno ip directed-broadcast ! router bgp 9999no synchronizationno auto-summarynetwork 200.200.200.0neighbor 1.1.1.1 remote-as 100neighbor 2.2.2.1 remote-as 200neighbor 1.1.1.1 filter-list 10 outneighbor 2.2.2.1 filter-list 10 outneighbor 1.1.1.1 filter-list 20 inneighbor 2.2.2.1 filter-list 20 inneighbor 1.1.1.1 distribute-list 100 outneighbor 2.2.2.1 distribute-list 100 out

  18. Case1 Config 설정(cont.) ip as-path access-list 10 permit ^$ ! ip as-path access-list 20 deny .* ! access-l 100 per ip host 200.200.200.0 host 255.255.255.0 ! ip route 0.0.0.0 0.0.0.0 1.1.1.1 ip route 0.0.0.0 0.0.0.0 2.2.2.1

  19. Case2 • Case1에서 Cisco2501이 상위기종으로 교체되어 국내정보를 받을 수 있는 상황이 됨 • 국내 ISP들은 대개 국내정보만을 전달함 router bgp 9999no synchronizationno auto-summarynetwork 200.200.200.0neighbor 1.1.1.1 remote-as 100neighbor 2.2.2.1 remote-as 200neighbor 1.1.1.1 filter-list 10 outneighbor 2.2.2.1 filter-list 10 out no neighbor 1.1.1.1 filter-list 20 inno neighbor 2.2.2.1 filter-list 20 in neighbor 1.1.1.1 distribute-list 100 outneighbor 2.2.2.1 distribute-list 100 out

  20. Case3 • Case2에서 AS100과 연결된 회선의 Inbound traffic이 100%에 가까운 반면 AS200과 연결된 회선의 Inbound traffic이 50% 이하임 • 원인 • AS100에 정보제공시스템이 많거나 • AS9999에 대해 다른 네트웍관점에서 AS100을 경유하는 것이 as-path 길이가 짧을 경우 • 해결방안 • as-path 길이를 조절 • as-path prepend

  21. Case3 (cont.) *>200.200.200.0 100 9999 *>200.200.200.0 300 200 9999 AS400 AS100 200.200.200.0/24 AS9999 AS500 AS200 AS300 AS600 *>200.200.200.0 100 9999 *>200.200.200.0 300 200 9999

  22. Case3 (cont.) *>200.200.200.0 100 9999 9999 *>200.200.200.0 300 200 9999 AS400 AS100 AS9999 AS9999 AS500 200.200.200.0/24 AS200 AS300 AS600 *>200.200.200.0 100 9999 9999 *>200.200.200.0 300 200 9999

  23. Case3(cont.) router bgp 9999no synchronizationno auto-summarynetwork 200.200.200.0neighbor 1.1.1.1 remote-as 100neighbor 2.2.2.1 remote-as 200neighbor 1.1.1.1 filter-list 10 outneighbor 2.2.2.1 filter-list 10 outneighbor 1.1.1.1 distribute-list 100 outneighbor 2.2.2.1 distribute-list 100 out neighbor 1.1.1.1 route-map MY-PREPEND out ! route-map MY-PREPEND permit 10 set ip as-path prepend 9999

  24. Case4 • Case2에서 AS100과 연결된 회선을 100%가깝게(병목현상), AS200과 연결된 회선을 80% 정도 이용시 • 이 경우에는 AS100과 연결된 회선대역을 늘려주어야 하는 것이 바람직함. • Case3에서와 같이 as-path prepend를 이용해 문제를 해결해 보려고 시도할 수는 있으나, 그 경우 AS100과 연결된 회선의 대역은 50%, AS200과 연결된 회선의 대역은 100%를 이용(병목현상)하는 상황 발생

  25. Case5 • Case1에서 IP block을 1개 더 얻은 경우 • 200.200.201.0/24 추가 • 200.200.200.0/23 • 상황 • AS100과 연결된 회선은 100% 이용(병목현상)하는 반면, AS200과 연결된 회선은 50% 이하 이용 • 원인 • Case3과 동일한 원인일 가능성이 높음 • 해결방안 • as-path prepend • specific prefix 전달

  26. Case5(cont.) 200.200.200.0/24 9999 9999 200.200.201.0/24 9999 AS400 AS100 200.200.200.0/24 200.200.201.0/24 AS9999 AS500 AS200 AS300 AS600 *>200.200.200.0/24 300 200 9999 *>200.200.200.0/24 100 9999 9999 *>200.200.201.0/24 300 200 9999 *>200.200.201.0/24 100 9999 200.200.200.0/24 9999 200.200.201.0/24 9999

  27. Case 5(cont.) router bgp 9999no synchronizationno auto-summarynetwork 200.200.200.0network 200.200.201.0neighbor 1.1.1.1 remote-as 100neighbor 2.2.2.1 remote-as 200neighbor 1.1.1.1 filter-list 10 outneighbor 2.2.2.1 filter-list 10 outneighbor 1.1.1.1 distribute-list 100 outneighbor 2.2.2.1 distribute-list 100 out neighbor 1.1.1.1 route-map MY-PREPEND out ! route-map MY-PREPEND permit 10match ip address 110set ip as-path prepend 9999 route-map MY-PREPEND permit 20 ! access-li 100 per ip host 200.200.200.0 ho 255.255.255.0

  28. Case5(cont.) 200.200.200.0/23 AS400 AS100 200.200.200.0/23 AS9999 AS500 AS200 AS300 AS600 *>200.200.200.0/23 9999 *>200.200.200.0/24 9999 *>200.200.200.0/23 100 9999 *>200.200.200.0/23 300 200 9999 *>200.200.200.0/24 300 200 9999

  29. Case5 (cont.) router bgp 9999no synchronizationno auto-summarynetwork 200.200.200.0 mask 255.255.254.0network 200.200.200.0neighbor 1.1.1.1 remote-as 100neighbor 2.2.2.1 remote-as 200neighbor 1.1.1.1 filter-list 10 outneighbor 2.2.2.1 filter-list 10 outneighbor 1.1.1.1 distribute-list 100 outneighbor 2.2.2.1 distribute-list 110 out ! access-li 100 per ip host 200.200.200.0 ho 255.255.254.0 ! access-li 110 per ip host 200.200.200.0 ho 255.255.254.0 access-li 110 per ip host 200.200.201.0 ho 255.255.255.0 ! ip route 200.200.200.0 255.255.254.0 Null0

  30. 상황2 • ABC-B 기업 • Cisco 4500 라우터 2대 • 2Mbps 3회선 • 2회선은 ISP-AS100, 1회선은 ISP-AS200에 접속 • Inbound Traffic이 많음 • IP block 200.200.200.0/22 이용 • AS Number 9999

  31. 상황2에 대한 검토 • 4500 라우터가 2대이므로, 회선을 분산해서 수용하는 것이 바람직 • AS100에 연결된 2회선을 각각 다른 라우터에 수용하는 경우 및 분산 수용하는 경우에 따라 Traffic 조절 방법이 다름 • 4500 라우터에서 RAM이 32M라고 할 경우 국내 정보를 모두 받을 수 있으므로 국내정보 모두 유지

  32. Case6 • 동일 ISP에 연결되는 회선은 동일 라우터에 수용 • one BGP session with AS100 L0: 6.6.6.1 AS9999 1.1.1.2 1.1.1.1 AS100 A 200.200.200.1 2.2.2.2 2.2.2.1 Internet L0: 4.4.4.1 국내 인터넷 AS200 200.200.200.2 3.3.3.2 3.3.3.1 B

  33. Case6(cont.) ! Router A interface loopback 0ip address 4.4.4.1 255.255.255.252 router bgp 9999no synchronizationno auto-summarynetwork 200.200.200.0 mask 255.255.252.0neighbor 6.6.6.1 remote-as 100neighbor 6.6.6.1 ebgp-multihop 3neighbor 6.6.6.1 update-source loopback 0neighbor 6.6.6.1 filter-list 10 outneighbor 6.6.6.1 distribute-list 100 outneighbor 200.200.200.2 remote-as 9999neighbor 200.200.200.2 next-hop-self ! ip route 6.6.6.1 255.255.255.255 1.1.1.2 ip route 6.6.6.1 255.255.255.255 2.2.2.2 ! ip as-path access-list 10 permit ^$ ip route 200.200.200.0 255.255.252.0 Null0 access-li 100 per ip host 200.200.200.0 ho 255.255.252.0

  34. Case6(cont.) ! Router B router bgp 9999no synchronizationno auto-summarynetwork 200.200.200.0 mask 255.255.252.0neighbor 3.3.3.1 remote-as 100neighbor 3.3.3.1 filter-list 10 outneighbor 3.3.3.1 distribute-list 100 outneighbor 200.200.200.1 remote-as 9999neighbor 200.200.200.1 next-hop-self ! access-li 100 per ip host 200.200.200.0 ho 255.255.252.0 ip as-path access-list 10 permit ^$ ip route 200.200.200.0 255.255.252.0 Null0

  35. Case7 • 동일 ISP에 연결되는 회선은 동일 라우터에 수용 • Two BGP sessions with AS100 L0: 6.6.6.1 AS9999 1.1.1.2 1.1.1.1 AS100 A 200.200.200.1 2.2.2.2 2.2.2.1 Internet L0: 4.4.4.1 국내 인터넷 AS200 200.200.200.2 3.3.3.2 3.3.3.1 B

  36. Case7(cont.) ! Router A interface loopback 0ip address 4.4.4.1 255.255.255.252 router bgp 9999no synchronizationno auto-summarynetwork 200.200.200.0 mask 255.255.252.0neighbor 1.1.1.1 remote-as 100neighbor 1.1.1.1 filter-list 10 outneighbor 1.1.1.1 distribute-list 100 outneighbor 2.2.2.1 remote-as 100neighbor 2.2.2.1 filter-list 10 outneighbor 2.2.2.1 distribute-list 100 out neighbor 200.200.200.2 remote-as 9999neighbor 200.200.200.2 next-hop-self ! ip as-path access-list 10 permit ^$ ip route 200.200.200.0 255.255.252.0 Null0 access-li 100 per ip host 200.200.200.0 ho 255.255.252.0

  37. Case7(cont.) • 이 configuration에는 큰 문제점이 있습니다. 무슨 문제일까요?

  38. Case7(cont.) -> 해결방안 ! Router A …….. router bgp 9999……..network 200.200.200.0 mask 255.255.252.0network 200.200.200.0 mask 255.255.254.0network 200.200.202.0 mask 255.255.254.0 neighbor 1.1.1.1 remote-as 100neighbor 1.1.1.1 filter-list 10 outneighbor 1.1.1.1 distribute-list 100 outneighbor 2.2.2.1 remote-as 100neighbor 2.2.2.1 filter-list 10 outneighbor 2.2.2.1 distribute-list 110 out ……... ! access-li 100 per ip host 200.200.200.0 ho 255.255.252.0 access-li 100 per ip host 200.200.200.0 ho 255.255.254.0 ! access-li 110 per ip host 200.200.200.0 ho 255.255.252.0 access-li 110 per ip host 200.200.202.0 ho 255.255.254.0

  39. Case7(cont.) -> 해결방안 ! Router B …….. router bgp 9999……..network 200.200.200.0 mask 255.255.252.0network 200.200.200.0 mask 255.255.254.0network 200.200.202.0 mask 255.255.254.0 neighbor 3.3.3.1 remote-as 100neighbor 3.3.3.1 filter-list 10 outneighbor 3.3.3.1 distribute-list 100 out……... ! access-li 100 per ip host 200.200.200.0 ho 255.255.252.0 access-li 100 per ip host 200.200.200.0 ho 255.255.254.0 access-li 100 per ip host 200.200.202.0 ho 255.255.254.0 ! ! 만약 access-list 100에서 ! host 200.200.200.0 ho 255.255.254.0 와 ! host 200.200.202.0 ho 255.255.254.0 가 없다면 문제점은?

  40. Case8 • 분산 수용 * 이 경우에는 bgp session을 어떻게 맺으면 좋을까요? L0: 6.6.6.1 AS9999 1.1.1.2 1.1.1.1 AS100 A 200.200.200.1 2.2.2.1 Internet L0: 4.4.4.1 국내 인터넷 2.2.2.2 AS200 200.200.200.2 3.3.3.2 3.3.3.1 B

  41. 상황3 • ABC-C 기업 • Cisco 2501 라우터 1대 • 2Mbps 2 회선 • 1회선씩 ISP-AS100, ISP-AS200에 접속 • Outbound Traffic이 많음 • IP block 200.200.200.0/24 이용 • AS Number 9999

  42. Case9 • 구성도 AS100 1.1.1.1 AS9999 Internet 1.1.1.2 국내 인터넷 2.2.2.2 AS200 2.2.2.1

  43. Case9(cont.) router bgp 9999…….neighbor 1.1.1.1 remote-as 100neighbor 2.2.2.1 remote-as 200neighbor 1.1.1.1 filter-list 10 outneighbor 2.2.2.1 filter-list 10 outneighbor 1.1.1.1 distribute-list 100 outneighbor 2.2.2.1 distribute-list 100 out ! ! AS100에 연결된 회선에 Outbound Traffic이 높음 ! 어떻게 하면 될까요?

  44. Case9(cont.) - 해결방안1 router bgp 9999…….neighbor 1.1.1.1 remote-as 100neighbor 2.2.2.1 remote-as 200neighbor 1.1.1.1 filter-list 10 outneighbor 2.2.2.1 filter-list 10 outneighbor 1.1.1.1 distribute-list 100 outneighbor 2.2.2.1 distribute-list 100 outneighbor 1.1.1.1 filter-list 20 inneighbor 2.2.2.1 filter-list 20 in ! ip as-path access-list 20 deny .* ! ip route 0.0.0.0 0.0.0.0 1.1.1.1 ip route 0.0.0.0 0.0.0.0 2.2.2.1 ! ! 회선대역이 틀릴 경우는 바람직하지 않음 ! 또 다른 한가지 문제점이라고 할 수 있는 것이 있는데 그것은?

  45. Case9(cont.) - 해결방안2 router bgp 9999…….neighbor 1.1.1.1 remote-as 100neighbor 2.2.2.1 remote-as 200neighbor 1.1.1.1 filter-list 10 outneighbor 2.2.2.1 filter-list 10 outneighbor 1.1.1.1 distribute-list 100 outneighbor 2.2.2.1 distribute-list 100 outneighbor 1.1.1.1 filter-list 20 in ! ip as-path access-list 20 permit ^(100_)+$ ! ip route 0.0.0.0 0.0.0.0 1.1.1.1 ip route 0.0.0.0 0.0.0.0 2.2.2.1 ! ! 회선대역이 틀릴 경우에도 이용할 수 있는 수단임 ! filter-list 20의 내용을 정기적으로 변경 필요

  46. Case9(cont.) - 해결방안3 router bgp 9999…….neighbor 1.1.1.1 remote-as 100neighbor 2.2.2.1 remote-as 200neighbor 1.1.1.1 route-map HIGHMED in……. ! route-map HIGHMED permit 10match ip as-path 20set metric 1000 route-map HIGHMED permit 20 ! ip as-path access-list 20 permit 300$ ip as-path access-list 20 permit 300 900 ip as-path access-list 20 permit 400 ip as-path access-list 20 permit 700 800 …………. !

  47. Appendix (For Your Info.) • 데이콤 내부 교육용으로 만든 자료이니 참고하세요. • 앞에 있는 내용들과 중복된 사항들이 많습니다. • 오류가 있을 가능성도 있습니다.

  48. Example-1 • as-path 길이가 짧은 것이 우선함 *>10.1.1.0/24 3786 100 i 10.1.1.0/24 4766 3559 100 i DACOM AS3786 ISP1 AS2000 CUST AS100 ISP2 AS3000 10.1.1.0/24 KT AS3559 KT AS4766

  49. Example-2 • as-path 길이가 같은 경우는 router-ID가 작은 것을 best path로 선택함 *>10.1.1.0/24 3786 100 i 10.1.1.0/24 3976 100 i DACOM AS3786 ISP1 AS2000 CUST AS100 ISP2 AS3000 10.1.1.0/24 INET AS3976 10.1.1.0/24 3786 100 i *>10.1.1.0/24 3976 100 i

  50. Example-3 • 다른 두 ISP에게 MED를 조정해서 내보내는 것은 inbound traffic에 거의 영향을 미치지 못함 Set MED=10 out for 14.1.1.0/24 12.1.1.0/24로 가는 traffic DACOM AS3786 ISP AS200 CUST AS100 INET AS3976 Set MED=10 out for 12.1.1.0/24 14.1.1.0/24로 가는 traffic 12.1.1.0/24 14.1.1.0/24

More Related