victor3000 Опубликовано 13 сентября, 2010 несколько дней бьюсь головой об стену и не могу решить проблему. есть федора 12 с двумя сетевухами в которые приходят линки от двух провов с фулл вив по bgp, и третья сетевуха смотрит в локал с честной подсетью и as номером. поставил квагу, настроил zebra и bgpd сервисы, настроил анонсы через провов. запустил. вроде все работает, но. всегда виден только один аплинк, если второй падает, обрыв провода, просто down и т.д. , то красиво подымается другой, при востановлении первого все возращается назад. но, мне нужно чтобы и в момент когда оба линка исправны работали оба канала. но он даже не пингуется. хотя. если просто рестартануть зебру оба канала начинают работать. гуру смотрели сервак, вывод что якобы чето там в ядре не то скомпилено и маршрутизации нет (думаю что это далеко не так) , но после рестарта зебры ядро начинает работать нормально, по этому думаю проблема в чем-то другом. буду рад любым дельным советам. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
disappointed Опубликовано 13 сентября, 2010 Удалить дефолт роут где proto kernel (если есть). Пусть зебра сама его ставит (proto zebra). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
disappointed Опубликовано 13 сентября, 2010 Чего-то я ернуду написал. Второй аплинк не пигуется по адресу связки с вами? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
victor3000 Опубликовано 13 сентября, 2010 (изменено) Чего-то я ернуду написал. Второй аплинк не пигуется по адресу связки с вами? именно так, пока живой один линк второй даже не пингуется. при обрыве одного переключается на второй и пинг появляется и трафик бежит по нему. вот такой вот парадокс.на счет пинга я имею ввиду что пинг не проходит на машину из вне по второму каналу. спасибо что подключились, реально уже просто незнаю в какую сторону копать. Изменено 13 сентября, 2010 пользователем victor3000 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Умник Опубликовано 13 сентября, 2010 victor3000, сессии multihop? Откуда пингуете (с самого маршрутизтатора / с компьютера за ним)? Вообще хорошо бы посмотреть на конфиг BGP. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
disappointed Опубликовано 13 сентября, 2010 tcpdump -i интерфейс_ на_второго_аплинка -n -p icmp and host адрес_откуда_пингуете_извне Что там? Видно приходящие icmp? Куда уходят ответы? Сразу глянуть на первом аплинке также. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
victor3000 Опубликовано 14 сентября, 2010 итак tcpdump показал следующие, при пинге из вне, грубо говоря с интернета, ip связки с вторым провайдером ответов нет. не через первый интерфейс не через второй. хотя я так понимаю если пакеты приходят на второй интерфейс, ответы должны уходить через первый. то что пакеты приходят на второй tcpdump показывает, а вот ответов нет на обоих интерфейсах. хотя достаточно сделать service zebra restart и вуаля, пинги уходят через первый интерфейс, в принципе как и должно быть. вот что находиться в zebra.cfg что волшебным образом востанавливает работоспособность. hostname blablapassword gjrf !enable password gjrf log file /var/log/zebra.log interface eth0 multicast ! interface eth1 multicast ! interface eth2 multicast ! interface lo0 ! ip route 0.0.0.0/0 ip связки с провом номер 1 ip route 0.0.0.0/0 ip связки с провом номер 2 ! ip forwarding line vty и все будет чудесно работать до тех пор пока bgp не попытается что-то сделать с сессией, например востановить после обрыва.что интересно при рестарте зебры при не работающем состоянии я вижу сообщение об ошибке от нее при рестарте: Starting zebra: Failed to send flush request: SuccessFlush terminated что наводит меня на не хорошие мысли, а именно об ошибке в самой кваге. хотя надеюсь что это не так. потому как если рестартануть ее в тот момент когда все работает нормально, грубо говря сразу повторно, то этой ошибки нет. вроде все. есть мысли? или переходим к конфигу bgp? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Deac Опубликовано 14 сентября, 2010 ip route 0.0.0.0/0 ip связки с провом номер 1ip route 0.0.0.0/0 ip связки с провом номер 2 ! А это тебе зачем? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
victor3000 Опубликовано 14 сентября, 2010 просто это подымает оба канала. если убрать, то при рестарте зебры ничего не происходит. конечно оно не нужно, просто исходя из этого может кто предположит в чем проблема. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
a_andry Опубликовано 14 сентября, 2010 Если ip route get ip_gw_неработающего_аплинка показывает маршрут через неправильный интерфейс, то вы получаете к нему маршрут через работающего аплинка. На всяк случай снесите мултихоп, если есть. Маршруты к пирам лучше добавить статиком в зебру c /32, если сети на стыке бальше чем /30. пс. покажите что выдает show ip bgp sum в консоли bgpd когда все не работает Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Deac Опубликовано 14 сентября, 2010 Оно не просто не нужно, оно вредно. BGP должен сам добавлять default-ы, сесии к аплинкам поднимаются? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
disappointed Опубликовано 14 сентября, 2010 А а что у вас по ip route | wc -l ? Такое ощущение что полную таблицу и не принимаете. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
victor3000 Опубликовано 14 сентября, 2010 sh ip bgp sumBGP router identifier 91.90.19.33, local AS number 51299 RIB entries 607688, using 37 MiB of memory Peers 2, using 5040 bytes of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 91.90.19.61 4 13307 65513 187 0 0 0 01:31:08 327381 95.67.4.129 4 34867 112062 16 0 0 0 00:00:59 327384 Total number of neighbors 2 ip route | wc -l328251 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
TiFFolk Опубликовано 14 сентября, 2010 (изменено) sh ip bgp sumNeighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 91.90.19.61 4 13307 65513 187 0 0 0 01:31:08 327381 95.67.4.129 4 34867 112062 16 0 0 0 00:00:59 327384 Total number of neighbors 2 И один из соседей не пингуется? Фаерволл отключен? И вот это сделайте: for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $i done Изменено 14 сентября, 2010 пользователем TiFFolk Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
victor3000 Опубликовано 14 сентября, 2010 (изменено) изнутри соседи пингуются оба. а снаружи пингуется только один. отсюда вытекают и другие проблемы, как-то работа по двум bgp одновременно. tcpdump показывает что пакеты пинга на второй интерфейс приходят но не уходят не вторым не первым интерфейсом. в этом и состоит основная проблема. с файрволом проблем нет, не работает и при полностью выключенном. Изменено 14 сентября, 2010 пользователем victor3000 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
disappointed Опубликовано 14 сентября, 2010 (изменено) Если убить кваггу, оставить просто 2 аплинка без всякого bgp всё пингуется как надо? Изменено 14 сентября, 2010 пользователем disappointed Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
martin74 Опубликовано 14 сентября, 2010 ifconfig eth1 ifconfig eth2 у меня лично такое впечатление, что таблица маршрутизации от одного аплинка полностью перекрывает маршрутизацию во сторону второго... Вот пакетики и не ходят. Я бы рекомендовал прибить маршрутизацию AS аплинков через интерфейсы связи гвоздями Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
victor3000 Опубликовано 15 сентября, 2010 ifconfigeth0 Link encap:Ethernet HWaddr 00:23:CD:B4:9A:AC inet addr:91.90.19.33 Bcast:91.90.19.63 Mask:255.255.255.192 inet6 addr: fe80::223:cdff:feb4:9aac/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:64649225 errors:0 dropped:0 overruns:0 frame:0 TX packets:75048689 errors:0 dropped:0 overruns:3 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3075269535 (2.8 GiB) TX bytes:647171963 (617.1 MiB) Interrupt:21 Base address:0xac00 eth1 Link encap:Ethernet HWaddr 00:07:E9:80:01:3D inet addr:95.67.4.130 Bcast:95.67.4.131 Mask:255.255.255.252 inet6 addr: fe80::207:e9ff:fe80:13d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:136096 errors:0 dropped:0 overruns:0 frame:0 TX packets:101132 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:67932139 (64.7 MiB) TX bytes:15490604 (14.7 MiB) eth2 Link encap:Ethernet HWaddr 00:07:E9:80:01:3C inet addr:195.226.192.254 Bcast:195.226.192.255 Mask:255.255.255.0 inet6 addr: fe80::207:e9ff:fe80:13c/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:75068236 errors:2 dropped:0 overruns:0 frame:1 TX packets:64385885 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:651544404 (621.3 MiB) TX bytes:2987541546 (2.7 GiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:505 errors:0 dropped:0 overruns:0 frame:0 TX packets:505 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:41077 (40.1 KiB) TX bytes:41077 (40.1 KiB) давайте еще раз сфокусируемся на главном. ip сзязки провов 91.90.19.61 основной и 95.67.4.129 забудем про маршруты получаемые по bgp и т.д. остановимся на простом, на пингах. ip связки провов всегда пингуются из нутри и снаружи. мои ip сзязки которые кстати видны на интерфейсах пингуются из вне только до момента запуска демона bgpd. после его запуска спустя 1 минуту пингуется только один( на второй пакеты приходят, я это видел tcpdumpom, но никуда не уходят, смотрел на первом и втором интерфейсе, нада еще на третьем посмотреть :)). и если основной канал падает и bgp переключается на второй то только тогда он начинает пинговаться. грубо говоря второй аплинк не работает пока работает первый по bgp. надеюсь не очень путано написал. в этом основная причина с которые вытекают и последующие, по этому давайте сфокусируемся на ней, поскольку пинг он и в африке пинг :), просто и понятно. думаю решим с ним и остальное решится само собой. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Nafanya Опубликовано 15 сентября, 2010 попробуйте такой конфиг зебры hostname blabla password gjrf !enable password gjrf log file /var/log/zebra.log interface eth0 ip address 91.90.19.33/26 ! interface eth1 ip address 95.67.4.130/30 ! interface eth2 ip address 195.226.192.254/24 ! interface lo0 ! ip forwarding line vty если не поможет, покажите bgpd.conf Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kristoff_Vampire Опубликовано 15 сентября, 2010 А зебра первым запускается? А то раз наткнулся на такие грабли. Сначало запускали bgpd а потом zebra. И помню вроде реально ерунда получалась. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
victor3000 Опубликовано 15 сентября, 2010 в том то и дело что если зебру запускать с таким конфигом: hostname blablapassword gjrf !enable password gjrf log file /var/log/zebra.log interface eth0 multicast ! interface eth1 multicast ! interface eth2 multicast ! interface lo0 ! ip route 0.0.0.0/0 ip связки с провом номер 1 ip route 0.0.0.0/0 ip связки с провом номер 2 ! ip forwarding line vty то все ходит нормально. только до запуска bgpd. потом один канал умерает спустя 2 минуты. если зебру перезапустить тоопять заработают оба, НО, до сбоя по основному каналу bgp и когда bgp попытается переключиться на запасной или вернутся с резервного на основной. вообщем работа по двум каналам одновременно невозможно, без рестарта зебры с вышеупомянутым конфигом. что не есть хорошо :). надеюсь картина проясняется. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
martin74 Опубликовано 15 сентября, 2010 покажите маршруты на bgp сервера аплинков. И настройте bgp так, чтобы AS аплинков роутились только напрямую. Похоже на то, что при подъеме bgp у вас все маршруты строятся через одного аплинка, в том числе и маршруты на as второго аплинка. А второй очень не хочет принимать ваши анонсы от своих аплинков, а не от вас... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Max P Опубликовано 15 сентября, 2010 а как сделать чтобы АС аплинков роутились напрямую? тупо сетки асок роутить статически? как раз тут тоже второй канал организовываю Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
martin74 Опубликовано 15 сентября, 2010 (изменено) ну лично я делаю так: router bgp 41709 .... bgp router-id 193.192.36.1 ... network 193.192.36.0/23 network 94.158.32.0/20 ! ITEAM ... neighbor xxx.xxx.xxx.xxx route-map LLUGANET-IN in ... ip prefix-list LLUGA seq 5 permit 194.146.132.0/22 ip prefix-list LLUGA seq 10 permit 93.157.24.0/21 ip prefix-list LLUGA seq 25 permit 10.16.0.0/12 ip prefix-list LLUGA seq 30 permit 10.32.0.0/11 ip prefix-list LLUGA seq 35 permit 10.64.0.0/10 ip prefix-list LLUGA seq 40 permit 10.128.0.0/9 ... route-map LLUGANET-IN permit 10 match ip address prefix-list LLUGA set local-preference 165 ... route-map LLUGANET-IN permit 20 set local-preference 100 ... local-preference для сетей аплинка задираю повыше, а local-preference для остальных маршрутов - в зависимости от желаний по балансировке каналов... Как то так Изменено 15 сентября, 2010 пользователем martin74 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
victor3000 Опубликовано 15 сентября, 2010 итак проблема решена с помощью совета на другом форуме, но я думаю не лишним это будет написать и сдесь. вот что спросил человек: что в net.ipv4.conf.all.rp_filter?мой ответ первый:0 а что должно быть?и вот мой ответ второй:ураааааааааааааааааааааа :) огромное вам человеческое спасибо за этот бесценный совет. не смотря на то что в этом файле стоит 0, и якобы оно должно отрабатывать на все интерфейсы, я посмотрел что конкретно стоит на каждом интерфейсе, и конечно там почему-то стояло по умолчанию 1, и это перекрывало значение с файла который в папке all. сменил на 0 на каждом интерфейсе, и все заработало. еще раз спасибо всем кто откликнулся :)надеюсь ответ понятен. так же хочу всех поблагодарить всех кто откликнулся в этой теме. спасибо :)))) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...