Tuesday, June 16, 2015

iSPF

1.     Giới thiệu iSPF.
Mức độ phức tạp của mô hình mạng thể hiện rõ nhất trên những mô hình mạng có số node lớn. Độ phức tạp của thật toán có thể chiếm dụng đáng kể tài nguyên xử lý CPU. Các dòng router mới cũng phải mất gần tram mili-giây cho mỗi chu kỳ tính SPF trên toàn sơ đồ mạng. Khoảng thời gian có thể hạn chế đáng kể bằng cách tối ưu hóa thuật toán SPF  “incremental SPF”
Ý tưởng: duy trì cấu trúc SPT ổn định sau quá trình xử lý đầu tiên của SPF và sử dụng cây SPF này cho những lần xử lý  SPF về sau.
iSPF giảm lượng tính toán SPF khi type -1 hoặc type 2 LSA thay đổi trong mạng.
3 đặc tính tối ưu hóa quy trình xử lý iSPF:

·         Đặc tính 1: Node được thêm vào hoặc gỡ bỏ ra khỏi sơ đồ hiện tại có vai trò là node nhánh của cây SPT đã được lưu trước đó thì không cần phải tiêu tốn quá nhiều tài nguyên xử lý để bổ sung thêm những mạng  (route) mới vào.
 



·         Đặc tính 2: nếu có một liên kết bị sự cố và liên kết đó không nằm trong cây SPT đã được tính toán trước đó thì không cần phải thực hiện tính toán SPF gây hao phí tài nguyên.
 




Chú ý: Đặc tính 2 không phải tốn tài nguyên xử lý SPF, nhưng khó dự đoán được có bao nhiêu liên kết sự cố có thể ảnh hưởng đến hệ thông. Bên cạnh đó, mỗi router có cây SPT khác biệt, do vậy liên kết sự cố có thể không ảnh hưởng từ cây SPT này nhưng có thể ảnh hưởng đến cây SPT của router khác.
Trường hợp giá trị cost của link thay đổi hoặc sự thay đổi trạng thái diễn ra trên link thì đặc tính 2 không phát huy tác dụng và cây SPT cần phải được tính toán lại.

·         Đặc tính 3:  Có tính chất chung hơn.  Nếu liên kết trung chuyển xảy ra sự cố và ảnh hưởng đến cây SPT trước đó, điều đó đồng nghĩ với đặc tính 1 và 2 đều không phát huy được tác dụng.  Nếu liên kết giữa 2 node gặp sự cố thì chỉ cần tính toán STP của những node nằm sau sự cố dựa trên cây SPT có sẵn.
o   Sự cố xảy ra càng xa node gốc thì càng ít ảnh hưởng đến tài nguyên xử lý router. Tuy nhiên mỗi router có 1 cây SPT khác nhau, cùng 1 sự cố trên link đầu xa không ảnh hưởng đến router nay nhưng lại có thể ảnh hưởng lớn đến router khác.
o   Hiệu quả trên kết nối phân tán, nếu fully-mesh thì các node phải xử lý lại SPF => không tối ưu, giống với SPT thông thường.







Khi chạy iSPF mặc dù giảm CPU xử lý nhưng ngược lại bộ nhớ sẽ tăng. Và bộ nhớ tăng tỉ lệ 2*N ( với N là số router trong mạng).

2.       Cấu hình và test.
-            Command cấu hình:
R1(config-router)#router ospf 1
R1(config-router)#ispf
-          Kiểm tra:            R1#show ip ospf | in Incre
                                           Incremental-SPF enable

Saturday, June 13, 2015

Introduce Unified Networking Lab


Unified Networking Lab is very good tool to simulator devices some vendor: cisco, juniper, HP, fortigate...
Unified networking lab (UNL) software to pratice lab CCIE: SP, RS, SEC..

http://www.unetlab.com/

All supported images:
A10 vThunder
Aruba ClearPass
Alcatel 7750 SR
Arista vEOS
Brocade vADX
CheckPoint Security Gateway VE
Cisco ASA (porting)
Cisco ASAv
Cisco CSR 1000V
Cisco IPS (porting)
Cisco IOS 1710 (dynamips, ethernet only)
Cisco IOS 3725 (dynamips, ethernet only)
Cisco IOS 7206VXR (dynamips, ethernet only)
Cisco IOL (for Cisco internal use only)
Cisco Titanium (for VIRL customers only)
Cisco vIOS (for VIRL customers only)
Cisco vIOS L2 (for VIRL customers only)
Cisco Virtual Wireless Lan Controller (vWLC)
Cisco Web Security Appliance (IronPort)
Cisco XRv
Citrix NetScaler
ExtremeXOS
F5 BIG-IP LTM VE
Fortinet FortiGate (new)
HP VSR1000
Juniper Olive (porting)
Juniper vMX
Juniper vSRX
Palo Alto VM-100 Firewall
VMware ESXi
VyOS
Windows host


Sunday, June 7, 2015

BGP route dampening


BGP route dampening là feature rất hay trong việc tránh quảng bá flapping route. BGP route dampening feature có 2 mục đích chính:
1.    Kỹ thuật giảm CPU router xử lý flapping route
2.    Tăng độ ổn định cho mạng
3.    prevent sustained route oscillations
Cấu hình như sau:

BGP Route Dampening Configuration
router bgp 100
 bgp dampening half-life reuse-limit suppress-limit maximum-suppress-limit
!

·         History state: Sau mỗi lần flap, route sẽ được gán giá trị vi phạm và trạng thái vi phạm vào trong History. Mặc định mỗi lần vi phạm route sẽ được tăng thêm giá trị 1000.
·         Suppress limit: Nếu vi phạm vượt quá suppress limit, route sẽ “Dampend”. Trạng thái route chuyển từ History-> Damp. Giá trị suppress limit mặc định là 20000. Khi route ở trạng thái damp, router sẽ không tính toán best_path và không adver route sang neigbhor
·         Half life: Giá trị vi phạm của route sẽ được giảm dựa trên chu kì Half_life. Giá trị half_life mặc định là 15p. Giá trị vi phạm sẽ được giảm mỗi lần sau 5s
·         Reuse limit: Khi vi phạm dưới giá trị reuse limit, route sẽ unsuppressed. Mặc định reuse limit là 750. Khi vi phạm nằm dưới ½ reuse limit thì history sẽ được xóa 
·         Maximum suppress limit: Khoảng thời gian route bị suppressed khi vi phạm vượt quá suppress limit. Mặc định là 60p ( hoặc bằng 4 lần thời gian half_life)

The BGP dampening chỉ ảnh hưởng đến BGP route.


R2 và R3 cấu hình dampening với các giá trị mặc định. Suppress limit = 2000, half-life period = 15 minutes, reuse-limit = 750 and maximum suppress-limit = 60 minutes.

R3 adver mạng 1.1.1.1/32 sang R2.

Khi 1.1.1.1/32 route flap lần thứ nhất, nó sẽ được chuyển sang trạng thái history. Và giá trị vi phạm sẽ gán thêm vào route là 1000. debug ip bgp dampening để thấy rõ hơn.

First flap
02:01:19.687: EvD: charge penalty 1000, new accum. penalty 1000, flap count 1
02:01:19.687: EvD: unsuppress item left in reuse timer array with penalty 1000
02:01:19.687: BGP(0): charge penalty for 1.1.1.1/32 path 300 with halflife-time 15 reuse/suppress 750/2000
02:01:19.687: BGP(0): flapped 1 times since 00:00:00. New penalty is 1000

R2# show ip bgp dampening flap-statistics
BGP table version is 9, local router ID is 10.2.2.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          From            Flaps Duration Reuse    Path
 h 1.1.1.1/32       10.2.2.2        1     00:34:34          300

The penalty decreases with time if no further flaps are noticed.

Reducing penalty
02:01:49.567: EvD: accum. penalty 980, not suppressed

02:02:15.931: EvD: accum. penalty decayed to 961 after 27 second(s)

Khi route flap lần 2, giá trị vi phạm sẽ được thêm 1000. Tuy nhiên giá trị vi pham chưa vượt quá suppress limit (2000) nên route chưa chuyển sang trạng thái dampended

Second flap
02:02:45.599: EvD: accum. penalty decayed to 942 after 29 second(s)
02:02:45.599: EvD: charge penalty 1000, new accum. penalty 1942, flap count 2
02:02:45.599: EvD: unsuppress item left in reuse timer array with penalty 1942
02:02:45.599: BGP(0): charge penalty for 1.1.1.1/32 path 300 with halflife-time 15 reuse/suppress 750/2000
02:02:45.603: BGP(0): flapped 2 times since 00:01:25. New penalty is 1942

show ip bgp dampening flap-statistics command hiển thị BGP dampening flap-statistics của prefixes.

show ip bgp dampening flap-statistics
R2# show ip bgp dampening flap-statistics
BGP table version is 6, local router ID is 10.2.2.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          From            Flaps Duration Reuse    Path
*> 1.1.1.1/32       10.2.2.2        2     00:02:17          300


Khi route flap lần thứ 3, giá trị vi phạm tiếp tục được tăng lên 1000 nữa. đúng lúc này giá trị vi phạm vượt quá giá trị suppress limit 2000 và route sẽ chuyển sang trạng thái dampned/ suppressed và không được adver 
Third flap
02:04:31.463: BGP(0): suppress 1.1.1.1/32 path 300 for 00:28:10 (penalty 2766)
02:04:31.463: halflife-time 15, reuse/suppress 750/2000
02:04:31.463: EvD: accum. penalty 2766, now suppressed with a reuse intervals of 169

 show ip bgp dampening dampened-paths hiển thị route đang bị dampened.  'd' thể hiện route bị dampned



Sunday, May 31, 2015

LDP ( label distribution protocol )

MPLS thiết lập neighbor:
  • Neighbor discover used UDP port 646.
  • Establish neighbor used TCP port 646.
1. LDP discover
+ sử dụng UDP port 646.
+ LDP adver LDP Router-id trong LDP trong bản tin hello. Do đó phải reachability giá trị router-id mà LDP- Router-id  cần phải match với LDP-ID trong RIB.
Ví dụ: trường hợp sử dụng loopback trong OSPF nên sử dụng /32 or network point-to-point
+ có 2 kiểu discovery:
  • Basic: giữa các LSR kết nối trực tiếp với nhau, gói tin sẽ gửi ra các subnet đã khởi tạo LDP
  • Extended: không kết nối trực tiếp. LSR gửi targe gói tin hello đến địa chỉ IP đã chỉ rõ. Dùng trong MPLS TE
                    note: LDP Roure-id match với LDP-ID trong RIB

2. LDP establish sesion .


+ using port 646 .
+ source/des default use loopback interface

=> change establish TDP physical interface .
mode physical interface :
 # mpls ldp discovery transport-address interface
+ TTL value = 1.
+ "show mpls ldp neighbor" for test TCP establish.

Thursday, May 28, 2015

IPSec overview

Giao thức IPSec và hai chế độ AH và ESP của giao thức IPSec

Khái niệm: IPsec là một hệ thống các giao thức để bảo mật cho quá trình truyền thông tin nền IP thuộc lớp mạng. Nó cho phép gửi nhận các gói tin IP được mã hóa.
Mục đích chính của IPSec là bảo vệ luồng dữ liệu mong muốn dựa trên các dịch vụ bảo mật có sẵn, hoạt động của IPSec có thể chia thành 5 bước chính như sau:
Sơ đồ hoạt động IPSec giữa hai host
- A gửi các traffic cần bảo vệ tới B
- Router A và B thỏa thuận các tham số IKE Phase 1
IKE SA      <=    IKE Phase 1  =>  IKE SA
- Router A và B thoả thuận các chính sách IKE Phase 2
IPSec SA   <=    IKE Phase 2   =>  IPSec SA
- Thông tin được truyền dẫn qua tunnel IPSec
- Kết thúc tunnel IPSec
Bước 1: Traffic cần được bảo vệ khởi tạo quá trình IPSec. Ở đây, các thiết đầu cuối IPSec sẽ nhận ra đâu là lưu lượng cần được bảo vệ thông qua trường địa chỉ.
Bước 2: IKE Phase 1 – IKE xác thực các bên và một tập các dịch vụ bảo mật được thoả thuận và công nhận để thiết lập IKE SA. Trong phase này, sẽ thiết lập một kênh truyền thông an toàn để tiến hành thoả thuận IPSec SA trong Phase 2.
Bước 3: IKE Phase 2 – IKE thoả thuận các tham số IPSec SA và thiết lập các IPSec SA tương đương ở hai phía. Các tham số bảo mật này được sử dụng để bảo vệ dữ liệu và các gói tin trao đổi giữa các điểm đầu cuối. Kết quả cuối cùng của hai bước trên sẽ tạo ra một kênh thông tin bảo mật giữa hai bên.
Bước 4: Truyền dữ liệu – Dữ liệu được truyền giữa các bên IPSec dựa trên cơ sở các thông số bảo mật và các khoá được lưu trữ trong cơ sở dữ liệu SA.
Bước 5: Kết thúc đường hầm IPSec – Do các IPSec SA hết hạn hoặc bị xoá.
SA liên kết an ninh(Security association). Mỗi SA được xem như một quan hệ một chiều giữa hai đầu truyền nhận dữ liệu, nhằm mục đích xác định các thông số nào bảo mật áp dụng cho luồng dữ liệu theo chiều đó. Như vậy, một kết nối hai chiều thường thấy giữa hai hệ thống đầu cuối sẽ bao gồm 2 SA. Mỗi SA sử dụng 1 giao thức đóng gói nhất định (AH hoặc ESP) chứ không thể sử dụng đồng thời cả hai.

Tùy theo mức độ, IPsec có thể cung cấp tính bảo mật và xác thực cho quá trình trao đổi dữ liệu trên 2 kiểu dv mã hóa: AH, ESP
·        AH (Authentication header): Là giao thức cung cấp sự toàn vẹn, chứng thực nguồn dữ liệu và một số tùy chọn khác. Nhưng khác với ESP, nó không cung cấp chức năng bảo mật (data confidential). AH đảm bảo dữ liệu không bị thay đổi trong quá trình truyền dẫn nhưng không mã hóa dữ liệu.
IP Packet được bảo vệ bởi AH
Trường AH chỉ định cái sẽ theo sau AH header. Trong transport mode, nó sẽ là giá trị của giao thức lớp trên đang được bảo vệ (chẳng hạn UDP hoặc TCP). Trong tunnel mode, giá trị này là 4. Vị trí của AH trong transport và tunnel mode được mô tả ở hình sau:
IP Packet được bảo vệ bởi AH trong Transport Mode
Trong tunnel mode, AH đóng gói gói tin IP và thêm vào một IP header trước AH header
IP Packet được bảo vệ bởi AH trong Tunnel Mode
·        ESP (Encapsulating Security Payload): Là giao thức cung cấp sự an toàn, toàn vẹn, chứng thực nguồn dữ liệu và những tùy chọn khác, chẳng hạn anti-replay. ESP cung cấp gần như toàn bộ tính năng của IPSec, ngoài ra nó còn cung cấp tính năng mã hóa dữ liệu. Do đó, ESP được sử dụng phổ biến trong IPSec VPN. ESP bao gồm những tính năng sau:
·       Tính bảo mật (Data confidentiality)
·       Tính toàn vẹn dữ liệu (Data integrity)
·       Chứng thực nguồn dữ liệu (Data origin authentication)
·       Tránh trùng lặp (Anti-replay)
Những tính năng trên cũng là những tính năng đặc trưng và chính yếu nhất của IPSec.
Lưu ý: ESP sử dụng IP protocol number 50.
Hoạt động của ESP
ESP chèn một header vào sau phần IP header và trước header của giao thức lớp trên. Header này có thể là một IP header mới trong tunnel mode hoặc IP header của gói tin ban đầu trong transport mode. Hình sau cho thấy vị trí của ESP header trong transport mode và tunnel mode:
IP Packet được bảo vệ bởi ESP trong Transport Mode

IP Packet được bảo vệ bởi ESP trong Tunnel Mode

 

BGP filter with Regulare expression



  1. GIỚI THIỆU REGULARE EXPRESSION
  • Regular Expression  là h thng chun các biu din các kí t “string” , là một công cụ rất mạnh trong BGP khi sử dụng filter route theo các AS.
  • Cấu hình topology như hình vẽ
    • R1 thiết lập eBGP với R2, R2 eBGP R3, R3 eBGP R4
    • R1 adver 8.8.8.0/24 vào BGP
  • Kiểm tra bảng BGP trên R4:
R4#show ip bgp
BGP table version is 2, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 8.8.8.0/24       10.1.34.3                              0 300 200 100 i

  • Các AS quảng bá mạng 8.8.8.0/24 đến AS 400 được viết theo thứ tự từ phải qua trái
    • AS_PATH:         300 200 100 I
  • Chuyển đổi sang Regular Expression ta thêm vào các ký tự đặc biệt vào AS_PATH
    • AS_PATH:        ^300_200_100$
      • ^ bắt đầu AS_PATH
      • $ kết thúc AS_PATH
      • _ giữa các AS
    • Regular expression :
      • ^300_  peer AS ( thằng AS hàng xóm )
      • _200_  transit AS ( AS mà route đi qua)
      • _100$   origin AS ( route được sinh ra từ AS)
      • ^300_200_100$ transit path
      • ^*     Route Local AS
      • .*       Match tất cả
  1. FILTER BẰNG REGULAR EXPRESSION
    • Filter dựa trên một số reguler expression căn bản trên
    • Command:
ip as-path access-list x deny/permit {regular expression}
!
router bgp {AS}
neighbor a.b.c.d filter-list x in/out

  1. TEST FEATURE:
    • Trên R2 tạo mạng  2.2.2.0/24 và adver vào BGP
R4#show ip bgp
BGP table version is 5, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 2.2.2.0/24       10.1.34.3                              0 300 200 i
*> 8.8.8.0/24       10.1.34.3                              0 300 200 100 i

  • Tiến hành filter mạng 8.8.8.0/24 bằng 3 cách sử dụng regular expression như ở trên
  • Cách 1: filter dựa vào peer AS 300:
ip as-path access-list 1 deny ^300_ 
ip as-path access-list 1 permit .*
!
router bgp 400
 neighbor 10.1.34.3 filter-list 1 in

 BGP(0): 10.1.34.3 rcvd UPDATE w/ attr: nexthop 10.1.34.3, origin i, path 300 200 100
 BGP(0): 10.1.34.3 rcvd 8.8.8.0/24 -- DENIED due to: filter-list;
 BGP(0): no valid path for 8.8.8.0/24
 BGP(0): 10.1.34.3 rcvd UPDATE w/ attr: nexthop 10.1.34.3, origin i, path 300 200
 BGP(0): 10.1.34.3 rcvd 2.2.2.0/24 -- DENIED due to: filter-list;

 Nhận xét: R4 cùng học mạng 2.2.2.0/24 và mạng 8.8.8.0/24 qua peer AS 300. nên khi filter dựa vào peer AS thì cả 2 mạng trên đều bị filter

*Cách 2: filter dựa vào transit AS 200 :
ip as-path access-list 1 deny _200_
ip as-path access-list 1 permit .*
!
router bgp 400
 neighbor 10.1.34.3 filter-list 1 in

 BGP(0): 10.1.34.3 rcvd UPDATE w/ attr: nexthop 10.1.34.3, origin i, path 300 200 100
 BGP(0): 10.1.34.3 rcvd 8.8.8.0/24 -- DENIED due to: filter-list;
 BGP(0): no valid path for 8.8.8.0/24
 BGP(0): 10.1.34.3 rcvd UPDATE w/ attr: nexthop 10.1.34.3, origin i, path 300 200
 BGP(0): 10.1.34.3 rcvd 2.2.2.0/24 -- DENIED due to: filter-list;
 BGP(0): no valid path for 2.2.2.0/24
 BGP(0): nettable_walker 2.2.2.0/24 no best path
 BGP(0): nettable_walker 8.8.8.0/24 no best path

Nhận xét: giống trường hợp trên cả 2 mạng đều bị filter. Mạng 2.2.2.0/24 có nguồn gốc là AS 200 nó cũng được xem như là transit AS = 200 nên bị filter

* Cách 3: filter dựa vào origin AS cac route có nguồn gốc AS 100:
ip as-path access-list 1 deny _100$
ip as-path access-list 1 permit .*
!
router bgp 400
 neighbor 10.1.34.3 filter-list 1 in

 10.1.34.3 rcvd UPDATE w/ attr: nexthop 10.1.34.3, origin i, path 300 200 100
 BGP(0): 10.1.34.3 rcvd 8.8.8.0/24 -- DENIED due to: filter-list;
 BGP(0): no valid path for 8.8.8.0/24
 BGP(0): 10.1.34.3 rcvd UPDATE w/ attr: nexthop 10.1.34.3, origin i, path 300 200
 BGP(0): 10.1.34.3 rcvd 2.2.2.0/24...duplicate ignored
 BGP(0): nettable_walker 8.8.8.0/24 no best path.

R4(config)#do show ip bgp
BGP table version is 16, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 2.2.2.0/24       10.1.34.3                              0 300 200 i

Nhận xét: route 8.8.8.0/24 có nguồn gốc từ AS 100 đã bị filter . Trên BGP table R4 còn route 2.2.2.0/24


Kết luận: Regular là một công cụ rất mạnh, trên đây chỉ mới là những trường hợp đơn giản. Bằng cách kết hợp filter AS Path bằng regular chúng ta có thể filter tất cả các route từ những AS_PATH  bằng cách cấu hình đơn giản ở trên.