Jump to content
Калькуляторы

quagga 0.99.17 на FreeBSD глючит Quagga не работает так как надо

Установил на FreeBSD 7.3 Quagga 0.99.17-4 с портов.

 

Имеются 2 NAS (VPN сервера на MPD5.5). Авторизуются по протоколам PPTP и L2TP.

Создана Area 0.0.0.0, куда включены НАСы и Маршрутизатор Edge-Core. Раздаются реальные динамические IP.

195.xxx.xxx.1 - Edge-Core - ASBR

195.xxx.xxx.18 - второй NAS

 

Соседи обнаруживаются..... Но, когда клиент авторизуется, то маршрут на него работает не стабильно.

По команде show ip ospf route маршрут то появляется при авторизации, то не появляется. Следствием чего, интернет то работает, то нет!

 

Не могу понять чего ему надо? На Slackware идентичный конфиг работает на ура!

 

В логах:

2010/12/31 00:30:07 ZEBRA: Can't lookup mtu by ioctl(SIOCGIFMTU)

2010/12/31 01:06:32 ZEBRA: Can't lookup mtu by ioctl(SIOCGIFMTU)

2010/12/31 01:06:32 ZEBRA: if_ioctl(SIOCGIFFLAGS) failed: Device not configured

2010/12/31 01:06:32 ZEBRA: if_ioctl(SIOCGIFFLAGS) failed: Device not configured

 

Больше ничего подозрительного в логах нет.

 

Конфиги:

 

ospf.conf

hostname ospfd

password xxxx

log file /usr/local/etc/quagga/ospfd.log

log stdout

interface em2

ip ospf hello-interval 2

ip ospf dead-interval 10

ip ospf network broadcast

router ospf

ospf router-id 10.10.10.10

network 195.xx.xx.0/22 area 0.0.0.0

neighbor 195.xx.xx.1

neighbor 195.xx.xx.18

passive-interface default

no passive-interface em2

distribute-list ospf out connected

 

zebra.conf

hostname gw1

password xxxx

enable password zebra

!

! Interface's description.

!

interface em2

multicast

 

ip forwarding

ip route 0.0.0.0/0 195.xxx.xxx.1

log stdout

log file /usr/local/etc/quagga/zebra.log

 

 

Помогите понять, почему Quagga на FreeBSD работает через одно место?

Edited by RHAMZIN

Share this post


Link to post
Share on other sites

ну во-первых у вас как она настроена так и работает :)

зачем вам passive-interface, ip ospf network broadcast, neighbor?

выложите ifconfig плз

 

 

Share this post


Link to post
Share on other sites
ну во-первых у вас как она настроена так и работает :)

зачем вам passive-interface, ip ospf network broadcast, neighbor?

выложите ifconfig плз

FreebsdVPN# ifconfig

em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>

ether 00:0c:29:f2:0f:b2

inet 192.168.1.19 netmask 0xffffff00 broadcast 192.168.1.255

media: Ethernet autoselect (1000baseTX <full-duplex>)

status: active

em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>

ether 00:0c:29:f2:0f:bc

inet 10.230.0.19 netmask 0xfffff800 broadcast 10.230.7.255

media: Ethernet autoselect (1000baseTX <full-duplex>)

status: active

em2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>

ether 00:0c:29:f2:0f:c6

inet 195.xx.xx.22 netmask 0xffffffe0 broadcast 195.xxx.xxx.31

media: Ethernet autoselect (1000baseTX <full-duplex>)

status: active

plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0 mtu 1500

pfsync0: flags=0<> metric 0 mtu 1460

syncpeer: 224.0.0.240 maxupd: 128

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384

inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6

inet6 ::1 prefixlen 128

inet 127.0.0.1 netmask 0xff000000

pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33204

ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1396

inet 192.168.1.19 --> 195.x.xx.97 netmask 0xffffffff

ng2: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1396

inet 192.168.1.19 --> 195.xx.xx.130 netmask 0xffffffff

ng1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1396

inet 192.168.1.19 --> 195.xx.xx.147 netmask 0xffffffff

Edited by RHAMZIN

Share this post


Link to post
Share on other sites

В логах еще такое нашел:

2010/12/31 11:14:44 OSPF: can't setsockopt IP_ADD_MEMBERSHIP (fd 6, addr 192.168.1.19, ifindex 9, AllSPFRouters): Invalid argument; perhaps a kernel limit on # of multicast group memberships has been exceeded?

2010/12/31 11:14:44 OSPF: ospfTrapIfStateChange trap sent: 192.168.1.19 now Point-To-Point

2010/12/31 11:14:44 OSPF: can't setsockopt IP_ADD_MEMBERSHIP (fd 6, addr 192.168.1.19, ifindex 10, AllSPFRouters): Invalid argument; perhaps a kernel limit on # of multicast group memberships has been exceeded?

2010/12/31 11:14:44 OSPF: Link State Update: Unknown Neighbor 195.xxx.xx.1 on int: em2:195.xxx.xxx.22

 

Share this post


Link to post
Share on other sites

вы не редистрибьютите правильно

нужно как минимум redistribute kernel и redistribute connected, чтобы роуты с ng появлялись в сети (только нужно правильно написать роут-мэп)

а также описать все интерфейсы ng в виде

interface ng1

ip ospf network broadcast

...

interface ngX

ip ospf network broadcast

 

дефолт статикой также выбросить из конфига, принимать его через ospf, и отключить глобально ip ospf network broadcast

 

я бы пересадила ospf на серые адреса и сделала только редистрибьюцию суммарного маршрута до вашей подсети

или если оставить в таком варианте, то можно вообще от ospf отказаться, зароутить статикой вашу белую подсеть

 

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

Edited by Frau

Share this post


Link to post
Share on other sites
вы не редистрибьютите правильно

нужно как минимум redistribute kernel и redistribute connected, чтобы роуты с ng появлялись в сети (только нужно правильно написать роут-мэп)

а также описать все интерфейсы ng в виде

interface ng1

ip ospf network broadcast

...

interface ngX

ip ospf network broadcast

 

дефолт статикой также выбросить из конфига, принимать его через ospf, и отключить глобально ip ospf network broadcast

 

я бы пересадила ospf на серые адреса и сделала только редистрибьюцию суммарного маршрута до вашей подсети

или если оставить в таком варианте, то можно вообще от ospf отказаться, зароутить статикой вашу белую подсеть

 

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

AS

 

Как так описать все интерфейсы вида ngX? Их более чем 2000 штук.

Команды ospf: redistribute kernel и redistribute connected стоят на Edge-Core как AS border routers

 

 

Share this post


Link to post
Share on other sites

не правильно. Connected & kernel должны стоять на сервере доступа

Share this post


Link to post
Share on other sites

Уберите 192.168.1.19 из конфига mpd, поставьте там адрес из другой подсети, например 10.0.0.1.

Бедная квагга не знает, с каким интерфейсом работать.

 

Share this post


Link to post
Share on other sites
Уберите 192.168.1.19 из конфига mpd, поставьте там адрес из другой подсети, например 10.0.0.1.

Бедная квагга не знает, с каким интерфейсом работать.

в mpd5 конфиге ваще нет упоминания об 192.168.1.19

 

startup:

# configure mpd users

set user rhxxx xxxx

# configure the console

set console self 127.0.0.1 5005

set console open

# configure the web server

set web self 0.0.0.0 5006

set netflow peer 192.168.1.4 9996

set netflow timeouts 10 10

set web open

 

default:

load pptp_server

load l2tp_server

 

pptp_server:

 

# Define dynamic IP address pool.

# set ippool add pool1 172.16.1.50 172.16.1.99

 

# Create clonable bundle template named B

create bundle template B

set iface enable proxy-arp

set iface idle 1800

set iface enable tcpmssfix

set iface enable netflow-out

set ipcp yes vjcomp

 

# Specify IP address pool for dynamic assigment.

# set ipcp ranges 192.168.2.1/32 ippool pool1

set ipcp dns 192.168.1.23

# The five lines below enable Microsoft Point-to-Point encryption

# (MPPE) using the ng_mppc(8) netgraph node type.

set bundle enable compression

set ccp yes mppc

set mppc yes e40

set mppc yes e128

set mppc yes stateless

 

# Create clonable link template named L

create link template L pptp

# Set bundle template to use

set link action bundle B

# Multilink adds some overhead, but gives full 1500 MTU.

set link disable multilink

set link yes acfcomp protocomp

set link no pap chap eap

set link enable chap

# We can use use RADIUS authentication/accounting by including

# another config section with label 'radius'.

set link keep-alive 60 180

# We reducing link mtu to avoid GRE packet fragmentation.

set link mtu 1400

set link enable peer-as-calling

# Configure PPTP

set pptp self 0.0.0.0

# Allow to accept calls

set link enable incoming

set pptp disable windowing

load radius

....

 

Share this post


Link to post
Share on other sites
ng1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1396

inet 192.168.1.19 --> 195.xx.xx.147 netmask 0xffffffff

хм, раскомментируйте set ippool и set ipcp ranges

Share this post


Link to post
Share on other sites

А OSPF Вам обязательна?

Судя по

Имеются 2 NAS (VPN сервера на MPD5.5). Авторизуются по протоколам PPTP и L2TP.
задача состоит в том, чтобы "рассказать" роутеру о маршрутах на НАС-ы?

Я подобное решаю с помощью RIP из того же пакета quagga той же версии. Правда на FreeBSD 8.1, ну и сессий (на обоих НАС-ах) в два раза меньше вашего.

Жужжит, аки пчёл и не кашляет. :)

 

P.S. Насчёт OSPF вместо RIP меня здесь (и НЕ здесь тоже) не раз пинали, но... Посоветовался с коллегами... И... Юзаю без проблем то, что выше описано...

Edited by AlKov

Share this post


Link to post
Share on other sites
router ospf

ospf router-id 10.10.10.10

network 195.xx.xx.0/22 area 0.0.0.0

neighbor 195.xx.xx.1

neighbor 195.xx.xx.18

passive-interface default

no passive-interface em2

distribute-list ospf out connected[/i]

Без static neighbor'ов они не сцепляются чтоли?

Share this post


Link to post
Share on other sites

Может кто встречался с проблемой:

quagga не соединяется по bgp

похоже требует аутентификацию в логах такая строка:

BGP: %NOTIFICATION: received from neighbor 82.96.200.33 2/5 (OPEN Message Error/Authentication Failure) 0 bytes

И провайдер говорит, что похоже от нас идёт запрос пароля или чего-то подобного. Только у меня нигде ничего такого не задано.

quagga 0.99.17, до этого пытал 0.99.16 - после обновления проблема осталась, конфиги как только не менял.

Share this post


Link to post
Share on other sites

Поддержу RIP.

2000 постоянно изменяющихся маршрутов для OSPF - слишком много. При изменении хотя бы одного маршрута перестраивается вся area.

Кстати, а L3-свитчи у вас тоже OSPF принимают? А то у меня некоторые уже при ~800 маршрутах в ребут уходили.

Share this post


Link to post
Share on other sites
Может кто встречался с проблемой:

quagga не соединяется по bgp

похоже требует аутентификацию в логах такая строка:

BGP: %NOTIFICATION: received from neighbor 82.96.200.33 2/5 (OPEN Message Error/Authentication Failure) 0 bytes

И провайдер говорит, что похоже от нас идёт запрос пароля или чего-то подобного. Только у меня нигде ничего такого не задано.

quagga 0.99.17, до этого пытал 0.99.16 - после обновления проблема осталась, конфиги как только не менял.

конфиг покажите плз

Share this post


Link to post
Share on other sites

ноу проблем

hostname tele-mag2

password ххх

enable password ххх

log file /var/log/quagga/zebra.log

interface em0

interface em2

interface em1

ip forwarding

line vty

no exec-timeout

hostname tele-mag2_bgpd

password ххх

log file /var/log/quagga/bgpd.log

router bgp 51991

bgp router-id 82.96.200.34

bgp log-neighbor-changes

network 91.221.174.0/23

neighbor 82.96.200.33 remote-as 30751

neighbor 82.96.200.33 description EUROTEL

neighbor 82.96.200.33 next-hop-self

neighbor 82.96.200.33 prefix-list AS51991 out

!

access-list 120 deny ip any any

!

ip prefix-list AS51991 seq 1 permit 91.221.174.0/23 le 32

!

line vty

!

log stdout

конфиг bgpd сокращал до предела

 

на sh ip bgp neighbor выдаётся:

tele-mag2_bgpd> sh ip bgp neighbor

BGP neighbor is 82.96.200.33, remote AS 30751, local AS 51991, external link

Description: EUROTEL

BGP version 4, remote router ID 10.62.255.1

BGP state = Idle

Last read 00:12:36, hold time is 180, keepalive interval is 60 seconds

Message statistics:......

Вот думаю откуда тут remote router ID 10.62.255.1?

 

странно также, что на этом сервере мне не удалось запустить openbgpd - тупо не запускается и всё :(

похоже придётся собрать на другом компе сервачок с фря 7.2 например. На этом сервере фря 8.1 и на него ничего лишнего вроде не ставили. Сейчас запущены только ipnat и ipfw.

Edited by Alexam

Share this post


Link to post
Share on other sites

Вопрос закрыт - похоже явный баг провайдера. После предъявы им дебага bgp-соединения вдруг поднялась сессия, только они ошибку свою так и не признали. Ну в общем это не первый раз, просто пока только один пров, как ко 2-му подключимся, буду сильнее с ними ругаться.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this