start200 Опубликовано 20 февраля, 2018 (изменено) · Жалоба Всем привет уважаемые форумчане, Прошу помощи в настройке ядерного NATа (ipfw) для пропуска своего блока IP адресов (/24) по протоколу BGP (программный роут - квака, на этом же сервере). Провайдер предоставил линковые адреса с маской /30, через который в данное время все работает. Отсюда вопрос, как заставить натиться через наши IP адреса ? Может кто уже сталкивался с подобной задачей ? Хотя бы направьте в нужную сторону. vlan200 - аплинк BGP vlan400 - прописан PI IP адрес c маской 32 В данной конструкции почему то не натяться локальные адреса.... P.S> Готов даже простиммулировать в виде хорошего крепкого напитка !!! rc.ipfw_2 bgpd.conf zebra.conf Изменено 20 февраля, 2018 пользователем start200 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gruber Опубликовано 20 февраля, 2018 · Жалоба Адреса с маской /30 для поднятия BGP сессии с провайдером.Не нужно через них nat-ить. Поднимаете BGP, анонсите своие сети в мир и в конфиге nat указываете свой внешний адрес, а не тот из /30-ой подсетки. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
start200 Опубликовано 20 февраля, 2018 · Жалоба НАТ на линковых адресах /30, я отключил вообще, вместо них в defaultrouter прописал свою адресацию Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gruber Опубликовано 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? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 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 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
start200 Опубликовано 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? Да, вы правы, нужды в этом не было .... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gruber Опубликовано 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 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
YuryD Опубликовано 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 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
start200 Опубликовано 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 дополнительно прописать адрес роутера из анонсируемой сети ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gruber Опубликовано 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 к примеру во фре отлично работает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
start200 Опубликовано 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 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gruber Опубликовано 20 февраля, 2018 · Жалоба 7 минут назад, start200 сказал: inet 185.87.yyy.254 Ну вот vlan400 и прописывайте в IPFW nat. И тогда все адреса из локалки будут транслироваться в ваш 185.87.yyy.254 и уходить в мир с этим адресом. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
start200 Опубликовано 20 февраля, 2018 · Жалоба 7 минут назад, gruber сказал: Ну вот vlan400 и прописывайте в IPFW nat. а последующие адреса /32 можно будет через tablearg указывать ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gruber Опубликовано 20 февраля, 2018 · Жалоба Не очень понял задачу... Вы хотите 1:1 static nat? То есть чтобы каждый локальный IP транслировался в свой внешний IP ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
start200 Опубликовано 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 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
start200 Опубликовано 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 ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gruber Опубликовано 21 февраля, 2018 · Жалоба 8 часов назад, start200 сказал: Почему то дефолтный маршрут с кваги не отражается в netstat -arn ? Хз, надо смотреть логи зебры. Для начала, забудьте про нат и вообще IPFW. Настройте сначала BGP и проверьте что ваша сеть /24 видна в интернете и пинги в нее проходят. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
start200 Опубликовано 21 февраля, 2018 · Жалоба 2 часа назад, gruber сказал: Для начала, забудьте про нат и вообще IPFW. Настройте сначала BGP и проверьте что ваша сеть /24 видна в интернете и пинги в нее проходят. здесь все работает, линковый адрес доступен из сети и обратно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gruber Опубликовано 21 февраля, 2018 · Жалоба Я не про линковый адрес. Из вне должны быть доступны адреса из вашей подсети 185.87-.yyy.0/24. И как минимум один адрес должен быть настроен на этом сервере. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
myth Опубликовано 21 февраля, 2018 · Жалоба в случае квагги - не обязательно. Она анонсирует все подряд без проверок Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
start200 Опубликовано 21 февраля, 2018 · Жалоба 3 часа назад, gruber сказал: Я не про линковый адрес. Из вне должны быть доступны адреса из вашей подсети 185.87-.yyy.0/24. И как минимум один адрес должен быть настроен на этом сервере. Может я что то не правильно понимаю, но если адреса /24 не будут прописаны на интерфейсах, то как они будут доступны из вне ? Будет строиться маршрут до хоста, а дальше уходить в Null Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gruber Опубликовано 21 февраля, 2018 · Жалоба Да, все правильно,@myth имел ввиду что квагге пофигу че анонсить в мир и есть ли реально эти адреса на каком либо интерфейсе. @start200 Вы мне скажите пожалуйста, у вас сетка ваша 185.87.yyy.0/24 в мир уходит? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
start200 Опубликовано 21 февраля, 2018 · Жалоба 23 минуты назад, gruber сказал: Вы мне скажите пожалуйста, у вас сетка ваша 185.87.yyy.0/24 в мир уходит? напрямую с интерфейса, пинги идут норма ... или я не про то говорю ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gruber Опубликовано 21 февраля, 2018 · Жалоба Адреса из сети 185.87.yyy.0/24 пингуются из интернета??? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
start200 Опубликовано 21 февраля, 2018 · Жалоба 4 минуты назад, gruber сказал: Адреса из сети 185.87.yyy.0/24 пингуются из интернета??? Пингуется, с этим все нормально Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...