freebsd + bgp

Статическая и динамическая, протоколы

freebsd + bgp

Сообщение dzek » 18 янв 2013, 14:23

попробывал сделать такую связку как на грубой схеме.
Изображение

что хочу реализовать. при down линка между 195.1.1.1 и 195.1.1.11 канал должен уйти через некий резервный канал из сети 10.10.10.0/29

маршрутизация при нормальном состоянии

Код: Выделить всё
AS64512> sh ip b
BGP table version is 0, local router ID is 195.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*  195.1.1.11/32 195.1.1.10                          0 65000 65001 i
*>                  195.1.1.11            0             0 65001 i

Total number of prefixes 1


принудительно роняем линк на AS65001 из сети 195.1.1.1
ждем 2 минуты... и видим уже след.

Код: Выделить всё
AS64512> sh ip b
BGP table version is 0, local router ID is 195.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 195.1.1.11/32 195.1.1.10                          0 65000 65001 i

Total number of prefixes 1
AS64512>q
Connection closed by foreign host.
gw# netstat -rn|grep 195.1.1.11
195.1.1.11      195.1.1.10      UGH1        0        1    em1
gw# ping -c1 195.1.1.11
PING 195.1.1.11 (195.1.1.11): 56 data bytes

--- 195.1.1.11 ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
gw#
gw# traceroute 195.1.1.11
traceroute to 195.1.1.11 (195.1.1.11), 64 hops max, 52 byte packets
 1  bgp1 (195.1.1.10)  0.944 ms  1.695 ms  1.033 ms
 2  * * *
 3  *^C
gw#


на "AS65000" работает и при поднятом интерфейсе и выключеном

Код: Выделить всё
as65000# ping -c1 195.11.1.11
PING 195.1.1.11 (195.1.1.11): 56 data bytes
64 bytes from 195.1.1.11: icmp_seq=0 ttl=64 time=0.871 ms

--- 195.1.1.11 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.871/0.871/0.871/0.000 ms
as65000#


подскажите в какую сторону рыть...
dzek
новичок
 
Сообщения: 17
Зарегистрирован: 18 янв 2013, 13:53

Re: freebsd + bgp

Сообщение root » 19 янв 2013, 09:17

Ты приводишь таблицу маршрутизации только с AS64512. Трафик - это двустронний обмен, а значит мало знать путь к хосту назначения, нужно чтобы и хост назначания знал обратный путь.
Что происходит на AS65001 с маршрутом до 195.1.1.1 ?

dzek писал(а):на "AS65000" работает и при поднятом интерфейсе и выключеном

На AS65000 и AS65001 у тебя несколько IP-адресов, но когда ты делаешь пинг, то ты не указываешь SRC адрес.
В данном случае при пинге из AS65000 адреса 195.1.1.11 без указания SRC адреса, то он будет выбран как 10.10.10.1, т.к. именно за этим ифейсом живет 195.1.1.11 - поэтому не забывай учитывать этот факт.

dzek писал(а):подскажите в какую сторону рыть...

Ковырять нужно AS65001 - обратный маршрут к 195.1.1.1, т.к. по всей видимости при обрыве тобой линка AS65001 его не знает. Если это так, то нужно убедиться что AS65000 получает анонс 195.1.1.1/32 и в свою очередь анонсирует 195.1.1.1/32 в сторону AS65001.

Так же попрос: какая маска у адресов 195.1.1.Х на интерфейстах роутеров ?

З.Ы. А чего тренируешся на BSD, а не сделал стенд на цисках в GNS ? Так удобнее заниматься изучением.
С уважением, root

Изображение
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
root
Site Admin
 
Сообщения: 1887
Зарегистрирован: 11 июн 2008, 13:05
Откуда: Moscow, Russia

Re: freebsd + bgp

Сообщение dzek » 19 янв 2013, 11:20

нормальное состояние.... тут все просто... (раньше не связывался с этим, поэтому какие то косяки лезут :oops:
как обычно от избытка информации в голове каша.

с AS65001
Код: Выделить всё
as65001# netstat -rn|grep 195.1.1
default            195.1.1.1       UGS         0       16    de0
195.1.1.0/24    link#1             U           0       11    de0
195.1.1.11      link#1             UHS         0        0    lo0
as65001#


роняем de0 (смотрящий в 195.1.1.1/24)
Код: Выделить всё
as65001# netstat -rn | grep 195.1.1
default            195.1.1.1       UGS         0       23    de0
195.1.1.11      link#1             UHS         0        0    lo0
as65001#


если route flush и route add default 10.10.10.1
то пакеты из любого места сети идут правильно до as65001

маршруты на as65000
Код: Выделить всё
as65000# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            195.1.1.1       UGS         0      408    de0
10.10.10.0/29      link#2             U           0     4370    de1
10.10.10.1         link#2             UHS         0        0    lo0
127.0.0.1          link#3             UH          0        0    lo0
195.1.1.0/24    link#1             U           0     4216    de0
195.1.1.10      link#1             UHS         0        0    lo0
195.1.1.11      10.10.10.2         UGH1        0        0    de1


понимаю что косяк на as65001
конфиг зебры
Код: Выделить всё
hostname zebra-as65001
password 123
enable password 123
log file /var/log/quagga/zebra.log
log monitor informational
!
interface de0
 !ip address 195.1.1.11/24
!
interface de1
 !ip address 10.10.10.2/30
!
interface lo0
!
!
!ip route 0.0.0.0 0.0.0.0 10.10.10.1
!ip route 10.10.10.2/30 10.10.10.1
!ip route 195.1.1.11/24 195.1.1.1
!
!ip route 0.0.0.0 0.0.0.0 195.1.1.1
!ip route 195.1.1.11/24 10.10.10.1
!
ip forwarding
!
line vty
 exec-timeout 0 0
!


конфиг bgpd.conf тоже пока особо не сложный.
Код: Выделить всё
hostname AS65001
password 123
enable password 123
log file /var/log/quagga/bgpd.log
!
!
router bgp 65001
 bgp router-id 195.1.1.11
 bgp log-neighbor-changes
 network 195.1.1.11/32
 neighbor 195.1.1.1 remote-as 64512
 neighbor 195.1.1.1 next-hop-self
!
 neighbor 10.10.10.1 remote-as 65000
 neighbor 10.10.10.1 next-hop-self
!
! neighbor 10.10.10.1 next-hop-self
! neighbor 10.10.10.1 description MY-PROVIDER
! neighbor 10.10.10.1 next-hop-self
! neighbor 10.10.10.1 route-map MY-PROVIDER-in in
! neighbor 10.10.10.1 route-map MY-PROVIDER-out out
!
line vty
!


root писал(а):На AS65000 и AS65001 у тебя несколько IP-адресов, но когда ты делаешь пинг, то ты не указываешь SRC адрес.
В данном случае при пинге из AS65000 адреса 195.1.1.11 без указания SRC адреса, то он будет выбран как 10.10.10.1, т.к. именно за этим ифейсом живет 195.1.1.11 - поэтому не забывай учитывать этот факт.

да, это я понял... ибо с AS65001 по умолчанию объявляется маршрут. и линки в прямой видимости.

root писал(а):Так же попрос: какая маска у адресов 195.1.1.Х на интерфейстах роутеров ?

так повелось что не стал делить на /25, /26 и т.д. и так с горем пополам /24 выбили.

root писал(а):З.Ы. А чего тренируешся на BSD, а не сделал стенд на цисках в GNS ? Так удобнее заниматься изучением.

стенд стенду рознь. тем более в сети пока нет живых цисок.
почему FreeBSD. да с ней как то проще для меня, до этого момента считал...
Эмулятор все работает. даже тестовые вдс делал. все ходило. в реальности чет совсем .... руки загнулись.
Последний раз редактировалось dzek 23 янв 2013, 22:13, всего редактировалось 1 раз.
dzek
новичок
 
Сообщения: 17
Зарегистрирован: 18 янв 2013, 13:53

Re: freebsd + bgp

Сообщение dzek » 19 янв 2013, 11:27

уронил de0 и
Код: Выделить всё
AS65001> s ip b
BGP table version is 0, local router ID is 195.1.1.11
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 195.1.1.11/32 0.0.0.0                  0         32768 i

Total number of prefixes 1
AS65001>


хотя поидеи он должен на 10.10.10.1 поменяться. :(
dzek
новичок
 
Сообщения: 17
Зарегистрирован: 18 янв 2013, 13:53

Re: freebsd + bgp

Сообщение dzek » 19 янв 2013, 21:09

чую что где то не досмотрел... но вот такая схема завелась, правда похожу через ...опу.
схема та же.

AS64512 -это наш шлюз в нашей сети. em1 смотри в сеть 95.1.1.0/24, em0 живой интерфейс аплинка.
Код: Выделить всё
gw# ifconfig em1|grep 192.1
        inet 195.1.1.1 netmask 0xffffff00 broadcast 195.1.1.255
gw#


zebra.conf
Код: Выделить всё
hostname gw-zebra
password 123
enable password 123
!
debug zebra events
debug zebra packet
debug zebra kernel
!
log file /var/log/quagga/zebra.log
log monitor informational
!
!interface em0
!description UPLINK
!
interface em1
description LAN
!
ip forwarding
!
line vty
 exec-timeout 0 0


bgpd.conf
Код: Выделить всё
! Zebra configuration saved from vty
!   2013/01/19 02:02:00
!
hostname AS64512
password 123
enable password 123
!
log file /var/log/quagga/bgpd.log
debug bgp events
debug bgp filters
debug bgp fsm
debug bgp keepalives
debug bgp updates
!
router bgp 64512
 bgp router-id 195.1.1.1
 bgp log-neighbor-changes
 neighbor 195.1.1.10 remote-as 65000
 neighbor 195.1.1.11 remote-as 65001
!
line vty
!


telnet 0 zebra
Код: Выделить всё
gw-zebra> sh ip ro
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, A - Babel,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 via 172.18.8.5, em0
B>* 10.10.10.0/30 [20/0] via 195.1.1.10, em1, 00:00:49
C>* 10.255.255.0/24 is directly connected, em1
B>* 30.20.20.0/24 [20/0] via 195.1.1.11, em1, 00:01:13
C>* 91.2.129.96/27 is directly connected, em1
C>* 127.0.0.0/8 is directly connected, lo0
C>* 172.18.8.4/30 is directly connected, em0
C>* 195.1.1.0/24 is directly connected, em1
B   195.1.1.11/32 [20/0] via 195.1.1.11 inactive, 00:01:13
gw-zebra>


AS65000
Код: Выделить всё
AS65000# ifconfig
de0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        inet 195.1.1.10 netmask 0xffffff00 broadcast 195.1.1.255
        inet 91.2.129.107 netmask 0xffffffe0 broadcast 91.2.129.127
de1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        inet 10.10.10.1 netmask 0xfffffff8 broadcast 10.10.10.7


zebra.conf
Код: Выделить всё
hostname as65000-zebra
password 123
enable password 123
!
debug zebra events
debug zebra packet
debug zebra kernel
!
log file /var/log/quagga/zebra.log
log monitor informational
!
interface de0
description DIRECT-LINK
!
interface de1
description REZERV-LINK
!ip route 195.1.1.11/32 10.10.10.2
ip forwarding
line vty
 exec-timeout 0 0


bgpd.conf
Код: Выделить всё
!   2013/01/19 02:02:00
hostname AS65000
password 123
enable password 123
!
debug bgp events
debug bgp filters
debug bgp fsm
debug bgp keepalives
debug bgp updates
!
log file /var/log/quagga/bgpd.log
!
router bgp 65000
!++ bgp router-id 91.2.129.107
 bgp router-id 195.1.1.10
 bgp log-neighbor-changes
! no synchronization
 network 10.10.10.1/30
!++ neighbor 91.2.129.97 remote-as 64512
 neighbor 195.1.1.1 remote-as 64512
 neighbor 10.10.10.2 remote-as 65001
 neighbor 10.10.10.3 remote-as 65002
!
! neighbor 10.10.10.2 weight 1000
!
line vty


telnet 0 zebra
Код: Выделить всё
as65000-zebra> sh ip ro
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, A - Babel,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 via 195.1.1.1, de0
C>* 10.10.10.0/29 is directly connected, de1
B>* 30.20.20.0/24 [20/0] via 10.10.10.3, de1, 00:09:38
C>* 91.2.129.96/27 is directly connected, de0
C>* 127.0.0.0/8 is directly connected, lo0
C>* 195.1.1.0/24 is directly connected, de0
B>* 195.1.1.11/32 [20/0] via 10.10.10.2, de1, 00:09:38
as65000-zebra>


AS65001

zebra.conf
Код: Выделить всё
! Zebra configuration saved from vty
!   2013/01/19 15:14:12
!
hostname zebra-as65001
password 123
enable password 123
!
debug zebra events
debug zebra packet
debug zebra kernel
!
log file /var/log/quagga/zebra.log
log monitor informational
!
interface de0
 ipv6 nd suppress-ra
!
interface de1
 ipv6 nd suppress-ra
!
interface lo0
!
ip forwarding
!
line vty
 exec-timeout 0 0
!


bgpd.conf
Код: Выделить всё
! Zebra configuration saved from vty
!   2013/01/17 20:38:09
!
hostname AS65001
password 123
enable password 123
!
debug bgp events
debug bgp filters
debug bgp fsm
debug bgp keepalives
debug bgp updates
log file /var/log/quagga/bgpd.log
!
router bgp 65001
 bgp router-id 195.1.1.11
 bgp log-neighbor-changes
 network 195.1.1.11/32
 neighbor 195.1.1.1 remote-as 64512
!neighbor 195.1.1.1 next-hop-self
!
 neighbor 10.10.10.1 remote-as 65000
 neighbor 10.10.10.1 next-hop-self
!
 neighbor 10.10.10.3 remote-as 65002
!
line vty
!


telnet 0 zebra
Код: Выделить всё
zebra-as65001> s ip ro
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, A - Babel,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 via 10.10.10.1, de1
C>* 10.10.10.0/29 is directly connected, de1
B   10.10.10.0/30 [20/0] via 10.10.10.1 inactive, 00:19:52
B>* 30.20.20.0/24 [20/0] via 10.10.10.3, de1, 00:46:44
C>* 127.0.0.0/8 is directly connected, lo0
C>* 195.1.1.0/24 is directly connected, de0
zebra-as65001>


это в состоянии покоя. т.е. все линки подняты.

вот тут и выходит загвоздка...
- если в системе default route 195.1.1.1 то когда будет выключен/недоступен de0 на as65001 и пока он не поднимется связи не будет.
- если default route 10.10.10.1, то связь будет даже если будет выключен de0 но пакеты ответа идут через de1. если роняем de1 связь рвется.
- и еще не понял... вроде должно помогать такое
Код: Выделить всё
router bgp 65001
....
 neighbor 195.1.1.1 weight 200
 neighbor 10.10.10.1 weight 100
, но после поднятия всех линков маршрутизация не меняется, продолжает ходить по прежнему пути. т.е. через de1

роняем линк de0 (195.1.1.11/AS65001)

на AS64512
Код: Выделить всё
gw-zebra> s ip ro
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, A - Babel,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 via 172.18.8.5, em0
B>* 10.10.10.0/30 [20/0] via 195.1.1.10, em1, 00:40:06
C>* 10.255.255.0/24 is directly connected, em1
B>* 30.20.20.0/24 [20/0] via 195.1.1.10, em1, 00:00:12
C>* 91.2.129.96/27 is directly connected, em1
C>* 127.0.0.0/8 is directly connected, lo0
C>* 172.18.8.4/30 is directly connected, em0
C>* 195.1.1.0/24 is directly connected, em1
B>* 195.1.1.11/32 [20/0] via 195.1.1.10, em1, 00:00:12
gw-zebra>


Код: Выделить всё
C:\>tracert 195.1.1.11

Трассировка маршрута к AS65001 [195.1.1.11]
с максимальным числом прыжков 30:

  1    <1 мс    <1 мс    <1 мс  192.168.0.1
.....skip.....
  6     2 ms     2 ms     1 ms  172.18.8.10
  7     3 ms     2 ms     1 ms  172.18.8.6
  8     4 ms     3 ms     3 ms  AS65000 [195.1.1.10]
  9     4 ms     4 ms     3 ms  AS65001 [195.1.1.11]

Трассировка завершена.

C:\>


Код: Выделить всё
AS65001# ifconfig de0 up
AS65001#


AS65001 в журнале bgpd.log
Код: Выделить всё
2013/01/19 23:59:56 BGP: 195.1.1.1 [Event] Connect start to 195.1.1.1 fd 13
2013/01/19 23:59:56 BGP: 195.1.1.1 [FSM] Non blocking connect waiting result
2013/01/19 23:59:56 BGP: 195.1.1.1 [FSM] TCP_connection_open (Connect->OpenSent)
....skip.....
2013/01/20 00:02:13 BGP: stream_read_try: read failed on fd 13: Connection reset by peer
2013/01/20 00:02:13 BGP: 195.1.1.1 [Error] bgp_read_packet error: Connection reset by peer
2013/01/20 00:02:13 BGP: 195.1.1.1 [FSM] TCP_fatal_error (OpenSent->Active)
2013/01/20 00:02:22 BGP: Import timer expired.


AS54512 в журнале bgpd.log
Код: Выделить всё
2013/01/20 00:03:35 BGP: 195.1.1.10 [FSM] Timer (routeadv timer expire)
2013/01/20 00:03:39 BGP: 195.1.1.11 [FSM] Timer (connect timer expire)
2013/01/20 00:03:39 BGP: 195.1.1.11 [FSM] ConnectRetry_timer_expired (Active->Connect)
2013/01/20 00:03:39 BGP: 195.1.1.11 [Event] Connect start to 195.1.1.11 fd 12
2013/01/20 00:03:39 BGP: 195.1.1.11 [FSM] Non blocking connect waiting result
2013/01/20 00:03:39 BGP: 195.1.1.11 [Event] Connect failed (Operation now in progress)
2013/01/20 00:03:39 BGP: 195.1.1.11 [FSM] TCP_connection_open_failed (Connect->Active)
2013/01/20 00:03:41 BGP: Import timer expired.
Последний раз редактировалось dzek 23 янв 2013, 22:15, всего редактировалось 1 раз.
dzek
новичок
 
Сообщения: 17
Зарегистрирован: 18 янв 2013, 13:53

Re: freebsd + bgp

Сообщение root » 21 янв 2013, 09:44

dzek писал(а):уронил de0 и

как ты его роняешь ?
Если на AS65001 ты роняешь линк de0, то никаких маршрутов смотрящих через этот линк в таблице маршрутизации просто не должно быть, т.к. OS их должна пометить как упавшие.
Если они там есть, а они у тя есть, то OS не считает данный линк лежащим.
Вот тебе пример с моего компа:
Код: Выделить всё
# netstat -rn | grep 192.168.0.0/24
192.168.0.0/24     link#16            U           0      831 vlan11

Код: Выделить всё
# ifconfig vlan11 down

Код: Выделить всё
# netstat -rn | grep 192.168.0.0/24 | wc -l
       0

Код: Выделить всё
# ifconfig vlan11 up
# netstat -rn | grep 192.168.0.0/24 | wc -l
       1

Т.е. если ифейс в дауне, то и все маршруты к нему относящиеся так же в дауне.

dzek писал(а):хотя поидеи он должен на 10.10.10.1 поменяться.

с чего это он должен меняться ?
Код: Выделить всё
*> 195.1.1.11/32 0.0.0.0                  0         32768 i

0.0.0.0 в next-hop и означает что это местный IP, что так и есть, т.к. дана команда:
Код: Выделить всё
network 195.1.1.11/32

195.1.1.11 это адрес самой AS65001 и ни на что он меняться не будет.

dzek писал(а):роняем de0 (смотрящий в 195.1.1.1/24)

Тогда откуда у тя в табле роутинга дефолт:
Код: Выделить всё
default            195.1.1.1       UGS         0       23    de0

?
Если ты уронил линк, то такого маршрута не должно быть.

dzek писал(а):как обычно от избытка информации в голове каша

Это заметно.
Я выше написал:
root писал(а):обратный маршрут к 195.1.1.1, т.к. по всей видимости при обрыве тобой линка AS65001 его не знает.
Если это так, то нужно убедиться что AS65000 получает анонс 195.1.1.1/32 и в свою очередь анонсирует 195.1.1.1/32 в сторону AS65001.

Исходя из приведенной тобой команды show ip bgp с AS65001 это так и есть, он не знает как добраться до 195.1.1.1 отсюда и отсутствие пинга.
Более того, ты сам пишешь что маска у тя /24, а это значит что подсеть 195.1.1.0/24 для AS65001 является directly connected за de0 что и показывает тебе netstat -rn.
Надеюсь ты прочел что такое административная дистанция и понимаешь каким образом роутер выбирает лучший маршрут к источнику.

Посему тебе нужно разбираться по шагам, чего ты упорно не делаешь, а вместо этого метаешся по всей схеме.
Разбираться по шагам означет полностью проследить весь путь пакета от источника до получателя и обратно и убедиться что все устройства на пути знают как добираться и к источнику и к получателю.
    AS64512 должен знать где находится и как добираться до 195.1.1.11.
    AS65001 должна знать где находится и как добираться до 195.1.1.1.
    AS65000 должна знать где находится и как добираться до 195.1.1.1 и до 195.1.1.11.
Исходя из этого и лежащего у AS65001 линка de0 для успешного пинга с 195.1.1.1 до 195.1.1.11 должно быть следущее:
    - AS64512 должна анонсировать 195.1.1.1/32 в сторону AS65000
    - AS65000 должна анонсировать 195.1.1.1/32 в сторону AS65001
    - AS65000 должна анонсировать 195.1.1.11/32 в сторону AS64512
    - на AS65001 при лежащей de0 не должно быть никаких link маршрутов в 195.1.1.0/24
Вот и дебаж это по шагам, начиная с AS64512 и далее.
А вот эти BGP команды тебе помогут:
Код: Выделить всё
show ip bgp neighbors [address] received-routes

Код: Выделить всё
show ip bgp neighbors [address] advertised-routes
С уважением, root

Изображение
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
root
Site Admin
 
Сообщения: 1887
Зарегистрирован: 11 июн 2008, 13:05
Откуда: Moscow, Russia

Re: freebsd + bgp

Сообщение root » 21 янв 2013, 10:05

И вообще, для разборок рекомендую тебе изменить схему вот на такую:
test_sheme.PNG
Тестовая схема

и разбираться на ней.
Твоя задача анонсировать подсети с lo0 каждой AS и каждая AS должна мочь пингать 192.168.Х.1 в любой другой AS беря в кач-ве SRC адреса адрес .1 со своего lo0.
На примере AS65000:
Код: Выделить всё
ping -S 192.168.0.1 192.168.2.1

Пинг должен быть, как в ситуации когда все линки работают, так и в ситуации когда одни из линков в дауне.
С уважением, root

Изображение
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
root
Site Admin
 
Сообщения: 1887
Зарегистрирован: 11 июн 2008, 13:05
Откуда: Moscow, Russia

Re: freebsd + bgp

Сообщение dzek » 21 янв 2013, 20:48

root писал(а):И вообще, для разборок рекомендую тебе изменить схему вот на такую:
test_sheme.PNG

...skip....


схему переделал... получилась примерно как ваша.
если что то не получается. все в мусор и с начала.
3AS, 3 интерфейса у каждой...
только сейчас на gw он же AS64512 идет анонс и выдергивание сети 195.1.1.24/29...

интерфейс роняю
# inconfig deX down


спасибо за ответы и тумаки.
dzek
новичок
 
Сообщения: 17
Зарегистрирован: 18 янв 2013, 13:53

Re: freebsd + bgp

Сообщение root » 22 янв 2013, 08:00

dzek писал(а):схему переделал... получилась примерно как ваша.

и какой резалт ? работает ?

dzek писал(а):интерфейс роняю
# inconfig deX down

я не зря это спрашиваю, т.к. мной неоднократно замечено, что с quagga бывают необъяснимые, с точки зрения теории вещи, - рестарт quagga и все встает на свои места.
у тебя сейчас схема на реальных машинах или виртуалках ? если на реальных, то попробуй ронять линк физически - выдергивая кабло.
С уважением, root

Изображение
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
root
Site Admin
 
Сообщения: 1887
Зарегистрирован: 11 июн 2008, 13:05
Откуда: Moscow, Russia

Re: freebsd + bgp

Сообщение dzek » 22 янв 2013, 11:31

Изображение
в итоге такая.

конфиги, тут уже роли не играют. они не шибко отличаются от топикстарта.
разве что на AS65001

Код: Выделить всё
hostname zebra-as65001
password 123
enable password 123
!
debug zebra events
debug zebra packet
debug zebra kernel
!
log file /var/log/quagga/zebra.log
log monitor informational
!
interface de0
!-ip address 10.10.10.2/29
!
interface de1
!-ip address 10.30.30.2/29
!
interface de2
!-ip address 192.168.1.1/24
!
!----ip route 0.0.0.0/0 10.10.10.1
!-ip route 0.0.0.0/0 10.30.30.1
!
!ip route 10.10.10.0/29 de0
!ip route 10.30.30.0/29 de1
!ip route 192.168.1.0/24 de2
!
!-----------------ip route 172.16.0.0/12 Null0 254
!
ip forwarding
!
line vty
 exec-timeout 0 0


Код: Выделить всё
hostname AS65001
password 123
enable password 123
!
debug bgp events
debug bgp filters
debug bgp fsm
debug bgp keepalives
debug bgp updates
!
log file /var/log/quagga/bgpd.log
!
router bgp 65001
 bgp router-id 10.10.10.2
 no synchronization
 bgp log-neighbor-changes
 network 192.168.1.1/24
 network 195.1.1.25/29
!
 neighbor 10.10.10.1 remote-as 65000
 neighbor 10.10.10.1 next-hop-self
 neighbor 10.10.10.1 description LINK1
 neighbor 10.10.10.1 send-community
 neighbor 10.10.10.1 version 4
 neighbor 10.10.10.1 soft-reconfiguration inbound
 !neighbor 10.10.10.1 route-map map-AS65000 in
 !neighbor 10.10.10.1 route-map map-AS65000out out
 neighbor 10.10.10.1 weight 200
 distance bgp 180 200 200
!
 neighbor 10.30.30.1 remote-as 65002
 neighbor 10.30.30.1 next-hop-self
 neighbor 10.30.30.1 description LINK2
 neighbor 10.30.30.1 send-community
 neighbor 10.30.30.1 version 4
 neighbor 10.30.30.1 soft-reconfiguration inbound
 !neighbor 10.30.30.1 route-map map-AS65002in in
 !neighbor 10.30.30.1 route-map map-AS65002out out
 neighbor 10.30.30.1 weight 100
 distance bgp 180 200 200
!
no auto-summary
!
!route-map map-AS65000in permit 10
!route-map map-AS65000out permit 10
!match as-path 5
!set local-preference 100
!
!route-map map-AS65002in permit 20
!route-map map-AS65002out permit 20
!
!
line vty
 exec-timeout 0 0


физик только AS64512, остальные AS65001...002 это вдс под hyper-v
как роняю... выключаю для вдс линк. т.е. состояние "Нет подключения" в консоль при этом сыпится
Код: Выделить всё
Jan 22 12:59:52 AS65001 kernel: de0: link down: cable problem?


ну или на самом сервере
# inconfig deX down

нормальное состояние. пакеты бегают согласно маршрута. все верно и ровно. tcpdump тоже показывает путь прохождения пакета в правильном интерфейсе.

не штатная ситуация. AS65002 должен фильтровать трафик. скажем на 195.1.1.26 завелся гад... и хотим его под "контроль" через тригер netflow + nfsen + тригер меняем для 195.1.1.26 маршрут через AS65002. скажем в сети 195.1.1.24/29 сидят особо опасные.

уронили. путь поменялся через AS65002. и тут начинается "о боже.... куча эмоций"
для верности пингуем с AS64512. идем на AS65000 и tcpdump -i de2
видим входящий ICMP
Код: Выделить всё
13:59:56.832938 IP gw.AS64512.ru > 195.1.1.25: ICMP echo request, id 2474, seq 44, length 64
13:59:58.835102 IP 195.1.1.25 > gw.AS64512.ru: ICMP echo reply, id 2474, seq 46, length 64

на AS65001 на int: de1 видим входящий.....
а исходящий видим только на de0.

на AS65000
Код: Выделить всё
zebra-as65000> s ip r
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, A - Babel,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 via 195.1.1.1, de0
C>* 10.10.10.0/29 is directly connected, de1
C>* 10.20.20.0/29 is directly connected, de2
C>* 127.0.0.0/8 is directly connected, lo0
B>* 192.168.1.0/24 [180/0] via 10.20.20.2, de2, 00:00:16
B>* 192.168.2.0/24 [180/0] via 10.20.20.2, de2, 00:00:23
C>* 195.1.1.0/24 is directly connected, de0
B>* 195.1.1.24/29 [180/0] via 10.20.20.2, de2, 00:00:16
zebra-as65000>


Код: Выделить всё
AS65000> sh ip b
BGP table version is 0, local router ID is 195.1.1.10
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 192.168.1.0      10.20.20.2                           100 65002 65001 i
*> 192.168.2.0      10.20.20.2               0           100 65002 i
*> 195.1.1.24/29    10.20.20.2                           100 65002 65001 i

Total number of prefixes 3
AS65000>


на AS65001 смотрим маршруты (линк de0 уже положили)
AS65001# netstat -rn
Routing tables

Код: Выделить всё
AS65001# netstat -rn
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            10.10.10.1         UGS         0    12343    de0
10.10.10.0/29      link#1             U           0     3007    de0
10.10.10.2         link#1             UHS         0        0    lo0
10.30.30.0/29      link#2             U           0      419    de1
10.30.30.2         link#2             UHS         0        0    lo0
127.0.0.1          link#4             UH          0      222    lo0
192.168.1.0/24     link#3             U           0        0    de2
192.168.1.1        link#3             UHS         0        0    lo0
192.168.2.0/24     10.30.30.1         UG1         0      790    de1
195.1.1.24/29      link#3             U           0      290    de2
195.1.1.25         link#3             UHS         0        0    lo0


убирал на AS65001 В /etc/rc.conf
#defaultrouter="10.10.10.1"
тогда из внешней сети не видно 195.1.1.24/29

так и не догоняю в чем мой косяк.
dzek
новичок
 
Сообщения: 17
Зарегистрирован: 18 янв 2013, 13:53

След.

Вернуться в Маршрутизация / Routing

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5