BGP – podstawy działania, polityka w sieciach TCP/IP.

Transkrypt

BGP – podstawy działania, polityka w sieciach TCP/IP.
BGP – podstawy działania,
polityka w sieciach TCP/IP.
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
O czym ta mowa...
- routing w sieciach TCP/IP (forwarding/routing
statyczny/dynamiczny, link state, distance vector)
- BGP zasady funkcjonowanie, pojęcie AS, prefix, as_path
- więcej o BGP:
atrybuty
filtrowanie
rout mapy
community
- przykładowa konfiguracja
- Quagga
32
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Pojęcia pierwotne...;)
FORWARDING
ROUTING
PROTOKOŁY ROUTUJĄCE
DYNAMICZNE/STATYCZNE
LINK-STATE/DISTANCE-VECTOR(PATH-VECTOR)
31
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
BGP $ ^^^H... 4
BGP = Border Gateway Protocol
EGP – Exterior Routing Protocol
Policy Based – bardzo polityko-lubny
EGP dzisiejszego internetu
podobno skomplikowany (coś w tym jest..)
Protokól typu Distance-Vector (choć w zasadzie
Path-Vector)
30
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Pojęcie AS – to fundament BGP:)
#whois as8246
aut-num:
as-name:
descr:
descr:
descr:
descr:
...
...
29
AS8246
INTERNET-TECHNOLOGIES-POLSKA-AS
Internet Technologies Polska
GTS Internet Partners
al. Niepodleglosci 69
02-626 Warsaw, Poland
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
BGP to wymiana informacji
pomiędzy AS
28
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
27
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Jak to działa?
Połączenie TCP/179
BGP route =
prefixy + atrybuty
Wymiana pełnej
informacji
Aktualizacja danych
26
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Ustanawianie połączenia
●
●
●
●
●
●
Idle
Connect
OpenSent
Active
Confirmed
Established
router-bgpd# show ip bgp neighbors 157.25.1.16
BGP neighbor is 157.25.1.16, remote AS 8246, local AS
29620, external link
Description: "Link do GTS"
BGP version 4, remote router ID 157.25.1.16
BGP state = Established, up for 01w0d15h
25
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Typy pakietów BGP
OPEN MESSAGE – pakiet ten jest wymieniany pomiędzy routerami zaraz
po zestawieniu sesji TCP. Przekazywane są w nim podstawowe informacje
potrzebne do skonfigurowania połączenia.
UPDATE MESSAGE – jest to typ pakietu najczęściej wymieniany. W nim
znajduje się informacja o trasach dodawanych lub usuwanych oraz
związanymi z nimi parametrami.
NOTIFICATION MESSAGE – przesyłany jest w sytuacji wystąpienia
jakiegokolwiek błędu. Po wysłaniu tego typu pakietu połączenie BGP jest
przerywane.
KEEPALIVE MESSAGE – wysyłane są kiedy sesja BGP jest zestawiona,
mają one za zadanie podtrzymanie sesji BGP. Co 60 sekund przesyłany
jest pakiet o wielkości 19 bajtów. Rutery informują się za pomocą tych
pakietów, że połączenie jest wciąż aktywne. W przypadku gdy router
otrzyma pakiet UPDATE nie jest konieczne wysyłanie pakietu KEEPALIVE
przez dany okres czasu.
24
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Najczęściej spotykane
konfiguracje
MULTIHOMING -2 i więcej dostawców
TRANSIT AS
23
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
22
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Atrybuty BGP
well-known mandatory
as-path
next-hop
origin
well-known discretionaly
local preference
atomic aggregate
optional transitive
aggregator
communities
optional non-transitive
MED – multi exit discriminator
21
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
20
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
as_path w procesie BGP
router-bgpd# show ip bgp 161.12.12.0
BGP routing table entry for 161.12.12.0/22
Paths: (2 available, best #1, table Default-IP-RoutingTable)
Not advertised to any peer
12968 3549 3356
<- AS-PATH
62.111.160.101 from 62.111.160.101 (213.134.144.1)
(213.134.144.1)
Origin IGP, localpref 100, valid, external, best
Last update: Tue Dec 30 17:24:48 2003
8246 5588 1239 3356
<- AS-PATH
157.25.1.16 from 157.25.1.16 (157.25.1.16)
(157.25.1.16)
Origin IGP, localpref 100, valid, external
Community: 5588:1001 5588:3001 8246:667 8246:1080
Last update: Tue Dec 23 07:24:15 2003
19
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
local_preference
18
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
MED
17
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
communities
- internet
- no-export
- no-advertise
- local-as
vix:~# whois as8246 | grep 8246: | more
remarks:
8246:666 Polish operators (TPNET+NASK+POL34)
remarks:
8246:667 Foreign operators (EBONE, SPRINT)
router-bgpd# show ip bgp community 8246:666
BGP table version is 0, local router ID is 195.149.118.1
Status codes: s suppressed, d damped, h history, * valid, > best, i internal
Origin codes: i - IGP, e - EGP, ? - incomplete
*>
*>
*>
*>
16
Network
32.239.31.0/24
32.239.135.0/24
80.48.0.0/13
80.249.0.0/20
Next Hop
157.25.1.16
157.25.1.16
157.25.1.16
157.25.1.16
Metric LocPrf Weight
0
0
0
0
Path
8246
8246
8246
8246
5617
5617
5617
8308
2686 ?
2686 ?
i
24671 i
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Wybór najlepszej ścieżki w BGP
Jeśli NextHop jest niedostępny przechodzimy do pkt 2
Wybierana jest ścieżka z najwyższym atrybutem WEIGHT
Jeśli WEIGHT są identyczne wybierana jest z najwyższym Local-Preference
Jeśli Local-Preference są równe wybierz trasę, która pochodzi z procesu BGP
pracującego na tym routerze
Wybierz najkrótszy AS-PATH
Jeśli wszystkie ścieżki pochodzą spoza routera wybierz tę z najniższym
origin type (IGP<EGP<INCOMPLETE)
Wybierz ścieżkę z najniższym MED.
Perferuj ścieżkę :”zewnętrzną nad „wewnętrzną”
Jeśli sychronizacja jest wyłączona, wybierz najbliższą ścieżkę pochodzącą z
IGP
Wybierz trasę o najniższym adresie IP, który wskazuje na router id
15
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
peer-group
router bgp
neighbor
neighbor
neighbor
neighbor
neighbor
neighbor
14
31400
wan-link peer-group
wan-link filter-list 1 out
172.16.11.1 peer-group wan-link
172.16.11.1 remote-as 100
10.0.0.2 peer-group wan-link
10.0.0.2 remote-as 200
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Filtrowanie
Filter list
router bgp 100
neighbor 172.16.65.11 filter-list 11 in
neighbor 172.16.65.11 filter-list 1 out
...
ip as-path access-list 1 permit ^200$
ip as-path access-list 1 deny ^300
ip as-path access-list 11 permit ^400
Distribute list
access-list 15 deny ip 172.15.0.0 0.0.255.255
access-list 15 permit ip 172.16.0.0 0.0.255.255
router bgp 31400
neighbor 172.16.11.254 remote-as 31400
neighbor 172.16.11.254 distribute-list 15 in
13
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Filtrowanie cd...
Prefix list
router bgp 29620
...
neighbor 157.25.1.16
...
ip prefix-list lista-10
ip prefix-list lista-10
prefix-list lista-10 in
seq 10 deny 0.0.0.0/0
seq 20 permit any
Community list
ip
ip
ip
12
community-list
community-list
community-list
50 permit 8246:666
50 permit 8246:100
1 permit 100:1 100:2
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
ROUTE MAP
router bgp 29620
...
neighbor 157.25.1.16 route-map localonly out
neighbor 157.25.1.16 route-map gts in
...
ip as-path access-list 30 permit ^8246_
ip as-path access-list 40 permit ^12968$
ip as-path access-list 40 permit ^12968 [0-9]*$
ip as-path access-list 45 permit ^12968_
ip as-path access-list 50 permit ^$
route-map gts permit 10
match as-path 30
set local-preference 100
route-map localonly permit 10
match as-path 50
route-map cdp permit 10
match as-path 40
set local-preference 200
11
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Prependowanie AS
router bgp 100
network 172.16.0.0
neighbor 10.0.0.1 remote-as 200
neighbor 10.0.0.1 route-map SETPATH out
route-map SETPATH
set as-path prepend 100 100
10
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Przykładowy schemat w
konfiguracji Multihoming
9
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Konfiguracja bgpd (Quagga)
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
8
router bgp 100
network 10.10.10.0/24
neighbor 192.168.0.1 remote-as 200
neighbor 192.168.0.1 description “Link do ISP 1”
neighbor 192.168.0.1 prefix-list 10 in
neighbor 192.168.0.1 route-map localonly out
neighbor 172.16.31.1 remote-as 300
neighbor 172.16.31.1 description "Link do ISP 2”
neighbor 172.16.31.1 prefix-list 10 in
neighbor 172.16.31.1 route-map localonly out
!
ip prefix-list 10 seq 10 deny 0.0.0.0/0
!
ip as-path access-list 50 permit ^$
!
route-map localonly permit 10
match as-path 50
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Konfiguracja zebra (Quagga)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
7
hostname router-zebra
password 8 xxxxxx
enable password 8 xxxxxxxx
log file /var/log/quagga.log
log trap informational
log record-priority
service advanced-vty
service password-encryption
!
interface eth0
description “Siec wewnetrzna”
link-detect
ip address 10.0.0.1/24
!
15
16
17
18
19
20
21
22
23
24
25
26
27
interface eth1
description "ISP 1 – AS200"
link-detect
ip address 192.168.0.2/30
!
interface eth2
description “ISP 2 -AS300”
link-detect
ip address 172.16.31.2/30
!
interface lo
ip address 127.0.0.1/8
!
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
ethereal – czyli naga prawda o BGP
przykładowy pakiet BGP:
http://www.poznan.linux.org.pl/wyklad/materialy/20040107/zrzutekranu1.png
UPDATE msg z witdrawn routes:
http://www.poznan.linux.org.pl/wyklad/materialy/20040107/zrzutekranu2.png
Pakiet BGP z atrybutami:
http://www.poznan.linux.org.pl/wyklad/materialy/20040107/zrzutekranu3.png
NOTIFICATION msg:
http://www.poznan.linux.org.pl/wyklad/materialy/20040107/zrzutekranu4.png
Zestawianie sesji BGP TCP/IP
http://www.poznan.linux.org.pl/wyklad/materialy/20040107/zrzutekranu5.png
6
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
BGP okiem tcpdump
gamma:~# tcpdump -i eth2 port 179
tcpdump: listening on eth2
22:40:29.850573 host-ip101-160.crowley.pl.bgp > host-ip62-199.crowley.pl.58266: P
367:386(19) ack 1 win 16137: BGP (KEEPALIVE) [tos 0xc0] [ttl 1]
22:40:29.850622 host-ip62-199.crowley.pl.58266 > host-ip101-160.crowley.pl.bgp: . ack
386 win 20904 (DF)
22:40:32.962497 host-ip62-199.crowley.pl.58266 > host-ip101-160.crowley.pl.bgp: P 1:20
(19) ack 386 win 20904: BGP (KEEPALIVE) (DF)
22:40:33.165747 host-ip101-160.crowley.pl.bgp > host-ip62-199.crowley.pl.58266: . ack 20
win 16118 [tos 0xc0] [ttl 1]
22:40:42.119417 host-ip101-160.crowley.pl.bgp > host-ip62-199.crowley.pl.58266: P
386:441(55) ack 20 win 16118: BGP [|BGP UPDATE] [tos 0xc0] [ttl 1]
22:40:42.119461 host-ip62-199.crowley.pl.58266 > host-ip101-160.crowley.pl.bgp: . ack
441 win 20904 (DF)
22:41:12.487287 host-ip101-160.crowley.pl.bgp > host-ip62-199.crowley.pl.58266: P
754:785(31) ack 20 win 16118: BGP (UPDATE: (Withdrawn routes: 8 bytes)) [tos 0xc0] [ttl
1]
22:41:12.487332 host-ip62-199.crowley.pl.58266 > host-ip101-160.crowley.pl.bgp: . ack
785 win 20904 (DF)
22:41:12.498122 host-ip101-160.crowley.pl.bgp > host-ip62-199.crowley.pl.58266: .
785:1321(536) ack 20 win 16118: BGP [|BGP UPDATE] [tos 0xc0] [ttl 1]
22:41:12.498155 host-ip62-199.crowley.pl.58266 > host-ip101-160.crowley.pl.bgp: . ack
1321 win 20904 (DF)
22:41:12.502497 host-ip101-160.crowley.pl.bgp > host-ip62-199.crowley.pl.58266: P
1321:1360(39) ack 20 win 16118: BGP [tos 0xc0] [ttl 1]
22:41:12.502528 host-ip62-199.crowley.pl.58266 > host-ip101-160.crowley.pl.bgp: . ack
1360 win 20904 (DF)
5
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Informacja o wskazanym prefixie
router-bgpd# show ip bgp 217.153.107.0
BGP routing table entry for 217.153.0.0/16
Paths: (2 available, best #1, table Default-IP-Routing-Table)
Not advertised to any peer
8246
157.25.1.16 from 157.25.1.16 (157.25.1.16)
Origin IGP, localpref 250, valid, external, best
Last update: Mon Mar 29 05:26:28 2004
12968 8246
62.111.160.101 from 62.111.160.101 (213.134.144.1)
Origin IGP, localpref 100, valid, external
Last update: Sun Mar 28 21:52:08 2004
router-zebra# show ip route 217.153.107.0
Routing entry for 217.153.0.0/16
Known via "bgp", distance 20, metric 0, best
Last update 2d16h25m ago
* 157.25.1.16 (recursive via 217.153.71.33)
4
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Informacje o AS w procesie BGP
router-bgpd# show ip bgp regexp
5617$
BGP table version is 0, local router ID is 195.149.118.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*> 63.167.185.0/24
25617 i
*> 80.48.0.0/13
*
*> 83.0.0.0/11
*
3
Next Hop
62.111.160.101
157.25.1.16
62.111.160.101
157.25.1.16
62.111.160.101
Metric LocPrf Weight Path
0 12968 3549 1239
150
150
0
0
0
0
8246 5617 i
12968 24748 5617 i
8246 5617 i
12968 24748 5617 i
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Informacja o wybranym AS
router-bgpd# show ip bgp regexp ^8246$
BGP table version is 0, local router ID is 195.149.118.1
Status codes: s suppressed, d damped, h history, * valid, > best, i internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*> 195.94.192.0/19
*> 217.8.160.0/19
*> 217.153.0.0/16
Next Hop
157.25.1.16
157.25.1.16
157.25.1.16
Metric LocPrf Weight
0
0
0
Path
8246 i
8246 i
8246 i
Total number of prefixes 3
2
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
Podsumowanie informacji o
zestawionych sesjach BGP
router-bgpd# show ip bgp summary
BGP router identifier 195.149.118.1, local AS number 29620
43688 BGP AS-PATH entries
322 BGP community entries
Neighbor
State/PfxRcd
62.111.160.101
128107
157.25.1.16
129167
V
AS MsgRcvd MsgSent
TblVer
InQ OutQ Up/Down
4 12968 6575310
31966
0
0
0 4d17h27m
4
31877
0
0
0 01w0d15h
8246 1226765
Total number of neighbors 2
gamma:~# ip route | grep 217.153.71.33 |wc -l
98072
gamma:~# ip route | grep 62.111.199.61 |wc -l
31419
gamma:~# ip route | wc -l
129492
1
Marcin Mazurek <[email protected]>
P.I.W.O, 22/05/2004, Poznań, Polska:)
PYTANIA?

Podobne dokumenty