start200 Posted February 20, 2018 (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 February 20, 2018 by start200 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gruber Posted February 20, 2018 Адреса с маской /30 для поднятия BGP сессии с провайдером.Не нужно через них nat-ить. Поднимаете BGP, анонсите своие сети в мир и в конфиге nat указываете свой внешний адрес, а не тот из /30-ой подсетки. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
start200 Posted February 20, 2018 НАТ на линковых адресах /30, я отключил вообще, вместо них в defaultrouter прописал свою адресацию Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gruber Posted February 20, 2018 Ну у вас в конфиге 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? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ne-vlezay80 Posted February 20, 2018 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
start200 Posted February 20, 2018 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? Да, вы правы, нужды в этом не было .... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gruber Posted February 20, 2018 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
YuryD Posted February 20, 2018 Отделяем мух от котлет. Стыковые 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
start200 Posted February 20, 2018 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 дополнительно прописать адрес роутера из анонсируемой сети ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gruber Posted February 20, 2018 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 к примеру во фре отлично работает. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
start200 Posted February 20, 2018 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gruber Posted February 20, 2018 7 минут назад, start200 сказал: inet 185.87.yyy.254 Ну вот vlan400 и прописывайте в IPFW nat. И тогда все адреса из локалки будут транслироваться в ваш 185.87.yyy.254 и уходить в мир с этим адресом. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
start200 Posted February 20, 2018 7 минут назад, gruber сказал: Ну вот vlan400 и прописывайте в IPFW nat. а последующие адреса /32 можно будет через tablearg указывать ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gruber Posted February 20, 2018 Не очень понял задачу... Вы хотите 1:1 static nat? То есть чтобы каждый локальный IP транслировался в свой внешний IP ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
start200 Posted February 20, 2018 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
start200 Posted February 20, 2018 Сегодня ночью все прописал, согласно выше указанным сообщениям, но увы счастье не наступило. 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 ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gruber Posted February 21, 2018 8 часов назад, start200 сказал: Почему то дефолтный маршрут с кваги не отражается в netstat -arn ? Хз, надо смотреть логи зебры. Для начала, забудьте про нат и вообще IPFW. Настройте сначала BGP и проверьте что ваша сеть /24 видна в интернете и пинги в нее проходят. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
start200 Posted February 21, 2018 2 часа назад, gruber сказал: Для начала, забудьте про нат и вообще IPFW. Настройте сначала BGP и проверьте что ваша сеть /24 видна в интернете и пинги в нее проходят. здесь все работает, линковый адрес доступен из сети и обратно. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gruber Posted February 21, 2018 Я не про линковый адрес. Из вне должны быть доступны адреса из вашей подсети 185.87-.yyy.0/24. И как минимум один адрес должен быть настроен на этом сервере. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
myth Posted February 21, 2018 в случае квагги - не обязательно. Она анонсирует все подряд без проверок Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
start200 Posted February 21, 2018 3 часа назад, gruber сказал: Я не про линковый адрес. Из вне должны быть доступны адреса из вашей подсети 185.87-.yyy.0/24. И как минимум один адрес должен быть настроен на этом сервере. Может я что то не правильно понимаю, но если адреса /24 не будут прописаны на интерфейсах, то как они будут доступны из вне ? Будет строиться маршрут до хоста, а дальше уходить в Null Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gruber Posted February 21, 2018 Да, все правильно,@myth имел ввиду что квагге пофигу че анонсить в мир и есть ли реально эти адреса на каком либо интерфейсе. @start200 Вы мне скажите пожалуйста, у вас сетка ваша 185.87.yyy.0/24 в мир уходит? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
start200 Posted February 21, 2018 23 минуты назад, gruber сказал: Вы мне скажите пожалуйста, у вас сетка ваша 185.87.yyy.0/24 в мир уходит? напрямую с интерфейса, пинги идут норма ... или я не про то говорю ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gruber Posted February 21, 2018 Адреса из сети 185.87.yyy.0/24 пингуются из интернета??? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
start200 Posted February 21, 2018 4 минуты назад, gruber сказал: Адреса из сети 185.87.yyy.0/24 пингуются из интернета??? Пингуется, с этим все нормально Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...