Jump to content

Recommended Posts

Posted (edited)

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

 

Прошу помощи в настройке ядерного 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
Posted

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

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

 

 

 

Posted

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

 

Posted
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

 

Posted
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?

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

Posted
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

 

Posted

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

 

Posted
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 дополнительно прописать адрес роутера из анонсируемой сети ? 

Posted
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 к примеру во фре отлично работает.

 

 

 

Posted
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

 

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

inet 185.87.yyy.254

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

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

 

Posted
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

Posted

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

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 ? 

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

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

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

 

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

 

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

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

 

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

Posted

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

 

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

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

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

Posted

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

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

 

Posted
23 минуты назад, 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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.