Перейти к содержимому
Калькуляторы

пропуск PI адресации через quagga freebsd 10.3-stable

Всем привет уважаемые форумчане, 

 

Прошу помощи в настройке ядерного NATа (ipfw) для пропуска своего блока IP адресов (/24) по протоколу BGP (программный роут -  квака, на этом же сервере).

 

Провайдер предоставил линковые адреса с маской /30, через который в данное время все работает. Отсюда вопрос, как заставить натиться через наши IP адреса ? 

Может кто уже сталкивался с подобной задачей ? Хотя бы направьте в нужную сторону.

 

vlan200 - аплинк BGP

vlan400 - прописан PI IP адрес c маской 32 

 

В данной конструкции почему то не натяться локальные адреса....

 

P.S>  Готов даже простиммулировать в виде хорошего крепкого напитка !!!

rc.ipfw_2

bgpd.conf

zebra.conf

Изменено пользователем start200

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Адреса с маской /30 для поднятия BGP сессии с провайдером.Не нужно через них nat-ить.

Поднимаете BGP, анонсите своие сети в мир и в конфиге nat указываете свой внешний адрес, а не тот из /30-ой подсетки.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

НАТ на линковых адресах /30,  я отключил вообще, вместо них в defaultrouter прописал свою адресацию

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну у вас в конфиге IPFW:

 

07400       50556       60835073 nat 1 ip from any to 212.188.61.62 in via vlan200

Это разве не тот адрес из сети /30

router bgp 230088
 bgp router-id 185.87.yyy.1
 network 185.87.yyy.0/24
 neighbor 212.xxx.61.61 remote-as 8359

В нат у вас должен стоять адрес вашего роутера из сети /24 которую вы анонсируете в мир.

 

10 минут назад, start200 сказал:

вместо них в defaultrouter прописал свою адресацию

Вы имеете ввиду статик прописали? А зачем?

От МТС вы получаете default route ну или full-view?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

19 минут назад, start200 сказал:

Всем привет уважаемые форумчане, 

 

Прошу помощи в настройке ядерного NATа (ipfw) для пропуска своего блока IP адресов (/24) по протоколу BGP (программный роут -  квака, на этом же сервере).

 

Провайдер предоставил линковые адреса с маской /30, через который в данное время все работает. Отсюда вопрос, как заставить натиться через наши IP адреса ? 

Может кто уже сталкивался с подобной задачей ? Хотя бы направьте в нужную сторону.

 

vlan200 - аплинк BGP

vlan400 - прописан PI IP адрес c маской 32 

 

В данной конструкции почему то не натяться локальные адреса....

 

P.S>  Готов даже простиммулировать в виде хорошего крепкого напитка !!!

rc.ipfw_2

bgpd.conf

zebra.conf

 

as-block:       AS207260 - AS262143
descr:          IANA reserved ASN block
remarks:        These AS numbers are reserved by IANA
remarks:        To be allocated further to RIRs
remarks:        http://iana.org/numbers/
org:            ORG-IANA1-RIPE
mnt-by:         RIPE-DBM-MNT
created:        2016-08-02T10:00:50Z
last-modified:  2016-08-02T10:00:50Z
source:         RIPE

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

25 минут назад, gruber сказал:

Это разве не тот адрес из сети /30

На данный vlan200 у меня прописан линковый адрес, пробывал туда дополнительно анансируемый адрес с маской 32, но нат не поднимался все равно. 


Дополнительно пробывал через конструкцию setfib0 и setfib1 (предварительно удалив дефолтные маршруты в rc.conf). Nat в fib0 идет на ура, fib1 не поднимается. 

Также параллельно к основному нату (через линковый адрес), пробывал через метки (tag, tagged) ...но та же песня, в мир натится, обратно не хочет.


А какие основные детали  должно быть в конфигурационных файлах кваки, в части ip route ...... ?

В cisco роутах, внешний IP адрес ната, реализуется через через пулы ....а в программных я так понимаю нужно на каком то интерфейсе указать  это адрес ? Многие указывают на lo0 ? 

 

 

33 минуты назад, gruber сказал:

Вы имеете ввиду статик прописали? А зачем?

От МТС вы получаете default route ну или full-view?

Да, вы правы, нужды в этом не было ....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

20 минут назад, start200 сказал:

На данный vlan200 у меня прописан линковый адрес

Так, зачем у вас в IPFW в nat прописан адрес из сети /30 по которому у вас BGP бегает????

07400       50556       60835073 nat 1 ip from any to 212.188.61.62 in via vlan200

Пропишите туда адрес вашего роутера 

185.87.yyy.1

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 Отделяем мух от котлет. Стыковые IP bgp-пиров ну никак не должны участвовать в nat. Далее, если у вас есть своя AS - стройте свой нат на её адресах(у меня например были фейковые адреса на одном из стыков), не на интерфейсах. Делать всё это на одной машине - неудобно, но можно. И учтите - при приёме фуллфью квагга ставит раком комп при массовой перестройке маршрутов.

 

 Ну допустим так, ipfw nat постройте на вашем ip типа

 

nat 123 ip from 10.0.0.0/8 to any
nat 123 ip from any to xxx.xxx.xxx.xxx

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 часа назад, gruber сказал:

Так, зачем у вас в IPFW в nat прописан адрес из сети /30 по которому у вас BGP бегает????



 

у меня там вместо адреса интерфейс указан 

${fwcmd} nat 1 config if ${if_mts} reset same_ports deny_in

 

Я понимаю так, в ipfw вместо интерфейса указать:   nat 1 config ip 185.87.yyy.1 

А на интерфейсе vlan200 дополнительно прописать адрес роутера из анонсируемой сети ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

10 минут назад, start200 сказал:

у меня там вместо адреса интерфейс указан 

Если упрощенно посмотреть, то на фре у вас три интерфейса к примеру.
1. 212.188.61.62/30 - для стыка по BGP с вышестоящим ISP.
2. 185.87.yyy.0/24 - ваша сетка которую вы анонсируете в мир.
3. 10.100.10.0/24 - ваша локалка которую вы nat-ите.

 

Для nat указывайте в IPFW интерфейс с вашими адресами - 185.87.yyy.1/24

 

12 минут назад, start200 сказал:

А на интерфейсе vlan200 дополнительно прописать адрес роутера из анонсируемой сети ?

Зачем? Судя по вашему zebra.conf он на vlan400 у вас.

ifconfig покажите плз, 

 

А вообще не хочется разводить холивары, но квагу сам не юзаю и не буду никому советовать. По мне так интерфейсы настраивать надо средствами OS, а BGP средствами соответствующего демона (тысячи их...), openbgpd к примеру во фре отлично работает.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

14 минут назад, gruber сказал:

Зачем? Судя по вашему zebra.conf он на vlan400 у вас.

ifconfig покажите плз, 

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 
        inet 127.0.0.1 netmask 0xff000000 
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
vlan400: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:0c:29:a4:09:8e
        inet 185.87.yyy.254 netmask 0xffffffff broadcast 185.87.yyy.254 
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        vlan: 400 parent interface: em0
vlan100: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:0c:29:a4:09:8e
        inet 5.108.xxx.132 netmask 0xffffff80 broadcast 5.108.xxx.255 
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        vlan: 100 parent interface: em0
vlan250: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:0c:29:a4:09:8e
        inet 10.100.10.1 netmask 0xffffff80 broadcast 10.100.10.127 
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        vlan: 250 parent interface: em0
vlan200: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:0c:29:a4:09:8e
        inet6 fe80::20c:29ff:fea4:98e%vlan200 prefixlen 64 tentative scopeid 0xc 
        inet 212.188.xxx.62 netmask 0xfffffffc broadcast 212.188.xxx.63 
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        vlan: 200 parent interface: em0

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

7 минут назад, start200 сказал:

inet 185.87.yyy.254

Ну вот vlan400 и прописывайте в IPFW nat.

И тогда все адреса из локалки будут транслироваться в ваш 185.87.yyy.254 и уходить в мир с этим адресом.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

7 минут назад, gruber сказал:

Ну вот vlan400 и прописывайте в IPFW nat.

а последующие адреса /32 можно будет через tablearg указывать ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не очень понял задачу...

Вы хотите 1:1 static nat? То есть чтобы каждый локальный IP транслировался в свой внешний IP ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, gruber сказал:

Не очень понял задачу...

Вы хотите 1:1 static nat? То есть чтобы каждый локальный IP транслокировался в свой внешний IP ?

для разных подсетей или отдельных локальных адресов свой WAN адрес 

 

#--------NAT-------------

${fwcmd} nat 1 config log ip 180.87.yyy.199 reset same_ports
${fwcmd} nat 2 config log ip 180.87.yyy.198 reset same_ports
${fwcmd} nat 4 config log ip 180.87.yyy.168 reset same_ports redirect_addr 10.30.86.22  180.87.yyy.168
${fwcmd} nat 9 config log ip 180.87.yyy.175 reset same_ports redirect_addr 10.30.85.78  180.87.yyy.175
${fwcmd} nat 10 config log ip 180.87.yyy.178 reset same_ports redirect_addr 10.30.86.56  180.87.yyy.178


${fwcmd} add nat tablearg ip from "table(3)" to any via ${IF_WAN}
${fwcmd} add nat tablearg ip from "table(1)" to any via ${IF_WAN}
${fwcmd} add nat tablearg ip from any to "table(5)" via ${IF_WAN}

 

#------table3-----

${fwcmd} table 3 add 10.30.86.22/32 4
${fwcmd} table 3 add 10.30.90.56/32 5
${fwcmd} table 3 add 10.30.85.78/32 9
${fwcmd} table 3 add 10.30.86.56/32 10

 

#------table1-----
${fwcmd} table 1 add 10.5.1.0/24 1
${fwcmd} table 1 add 10.30.2.46/32 1
${fwcmd} table 1 add 10.30.3.70/32 1
${fwcmd} table 1 add 10.30.118.2/32 1

 

#------table5-----
${fwcmd} table 5 add 180.87.yyy.199 1
${fwcmd} table 5 add 180.87.yyy.198 2
${fwcmd} table 5 add 180.87.yyy.168 4
${fwcmd} table 5 add 180.87.yyy.175 9
${fwcmd} table 5 add 180.87.yyy.178 10

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

1.  на vlan400  прописал внешний адрес анонсируемой сети с маской /32.

2. В rc.conf убрал маршруты по умолчанию, также убрал setfib.

 

-----основные моменты ipfw  nat----------

${fwcmd} nat 1 config if  vlan400 reset same_ports 

${fwcmd} add nat 1 ip from "table(70)" to any out xmit vlan400
${fwcmd} add nat 1 ip from any to 185.87-.yyy.254 in via vlan400

 

Почему то дефолтный маршрут с кваги не отражается в netstat -arn ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

8 часов назад, start200 сказал:

Почему то дефолтный маршрут с кваги не отражается в netstat -arn ? 

Хз, надо смотреть логи зебры.

 

Для начала, забудьте про нат и вообще IPFW. Настройте сначала BGP и проверьте что ваша сеть /24 видна в интернете и пинги в нее проходят.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, gruber сказал:

Для начала, забудьте про нат и вообще IPFW. Настройте сначала BGP и проверьте что ваша сеть /24 видна в интернете и пинги в нее проходят.

 

здесь все работает, линковый адрес доступен из сети и обратно. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я не про линковый адрес. Из вне должны быть доступны адреса из вашей подсети 185.87-.yyy.0/24. И как минимум один адрес должен быть настроен на этом сервере.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

в случае квагги - не обязательно. Она анонсирует все подряд без проверок

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 часа назад, gruber сказал:

Я не про линковый адрес. Из вне должны быть доступны адреса из вашей подсети 185.87-.yyy.0/24. И как минимум один адрес должен быть настроен на этом сервере.

Может я что то не правильно понимаю, но если адреса /24 не будут прописаны на интерфейсах, то как они будут доступны из вне ? Будет строиться маршрут до хоста, а дальше уходить в Null 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, все правильно,@myth  имел ввиду что квагге пофигу че анонсить в мир и есть ли реально эти адреса на каком либо интерфейсе.

@start200 Вы мне скажите пожалуйста, у вас сетка ваша 185.87.yyy.0/24 в мир уходит?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

23 минуты назад, gruber сказал:

Вы мне скажите пожалуйста, у вас сетка ваша 185.87.yyy.0/24 в мир уходит?

напрямую с интерфейса, пинги идут норма ... или я не про то говорю ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Адреса из сети 185.87.yyy.0/24 пингуются из интернета???

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

4 минуты назад, gruber сказал:

Адреса из сети 185.87.yyy.0/24 пингуются из интернета???

Пингуется, с этим все нормально

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.