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

пропуск 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

Edited by start200

Share this post


Link to post
Share on other sites

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

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

 

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Ну у вас в конфиге 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?

 

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites
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?

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

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites

 Отделяем мух от котлет. Стыковые 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

 

Share this post


Link to post
Share on other sites
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 дополнительно прописать адрес роутера из анонсируемой сети ? 

Share this post


Link to post
Share on other sites
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 к примеру во фре отлично работает.

 

 

 

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites
7 минут назад, start200 сказал:

inet 185.87.yyy.254

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

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

 

Share this post


Link to post
Share on other sites
7 минут назад, gruber сказал:

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

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

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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

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 ? 

Share this post


Link to post
Share on other sites
8 часов назад, start200 сказал:

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

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

 

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

 

Share this post


Link to post
Share on other sites
2 часа назад, gruber сказал:

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

 

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
3 часа назад, gruber сказал:

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

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

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites
23 минуты назад, gruber сказал:

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

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

Share this post


Link to post
Share on other sites

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

 

 

Share this post


Link to post
Share on other sites
4 минуты назад, gruber сказал:

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

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

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