LINUX.ORG.RU
ФорумAdmin

Вопрос про iptables + quagga

 , , ,


1

1

И так, имеем OSPF - шару на quagga. Данная шара принемает маршруты от «малых» роутеров и анонсирует их по локальной сети. У меня такой вопрос, как сделать так, чтобы сервер принемающий ospf-маршруты заносил их так-же в iptables.

На основном iptables такой:

root@wifi-master:~# cat /etc/firewall.conf
# Generated by iptables-save v1.4.13 on Tue Oct 28 14:30:53 2014
*nat
:PREROUTING ACCEPT [355:43822]
:INPUT ACCEPT [311:40994]
:OUTPUT ACCEPT [599:43756]
:POSTROUTING ACCEPT [586:42760]
-A PREROUTING -s 192.168.4.0/24 -d 91.209.124.67/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.4.1:9040
-A PREROUTING -s 192.168.2.0/24 -d 91.209.124.67/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.4.1:9040
-A PREROUTING -s 10.99.0.0/16 -d 91.209.124.67/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.4.1:9040
-A POSTROUTING -s 192.168.2.0/24 -d 10.192.0.0/16 -j ACCEPT
-A POSTROUTING -s 192.168.4.0/24 -d 10.192.0.0/16 -j ACCEPT
-A POSTROUTING -s 10.192.0.0/16 -d 192.168.2.0/24 -j ACCEPT
-A POSTROUTING -s 10.192.0.0/16 -d 192.168.4.0/24 -j ACCEPT
-A POSTROUTING -s 192.168.2.0/24 -d 10.99.0.0/16 -j ACCEPT
-A POSTROUTING -s 10.99.0.0/16 -d 192.168.2.0/24 -j ACCEPT
-A POSTROUTING -s 192.168.4.0/24 -d 10.99.0.0/16 -j ACCEPT
-A POSTROUTING -s 10.99.0.0/16 -d 192.168.1.0/24 -j ACCEPT
-A POSTROUTING -s 192.168.4.0/24 -d 192.168.2.0/24 -j ACCEPT
-A POSTROUTING -s 192.168.4.0/24 -d 192.168.1.0/24 -j ACCEPT
-A POSTROUTING -s 192.168.2.0/24 -d 192.168.2.0/24 -j ACCEPT
-A POSTROUTING -s 192.168.2.0/24 -d 192.168.1.0/24 -j ACCEPT
-A POSTROUTING -s 192.168.4.0/24 -j MASQUERADE
-A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE
-A POSTROUTING -s 10.99.0.0/16 -j MASQUERADE
COMMIT
# Completed on Tue Oct 28 14:30:53 2014
# Generated by iptables-save v1.4.13 on Tue Oct 28 14:30:53 2014
*filter
:INPUT ACCEPT [45023:4983670]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [48680:5229031]
-A FORWARD -d 10.192.0.0/16 -j ACCEPT
-A FORWARD -s 10.192.0.0/16 -j ACCEPT
-A FORWARD -d 10.99.0.0/16 -j ACCEPT
-A FORWARD -s 10.99.0.0/16 -j ACCEPT
-A FORWARD -d 192.168.2.0/24 -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -j ACCEPT
-A FORWARD -d 192.168.4.0/24 -j ACCEPT
-A FORWARD -s 192.168.4.0/24 -j ACCEPT
-A FORWARD -j DROP
COMMIT
# Completed on Tue Oct 28 14:30:53 2014

Сети 10.192.0.0/16 10.99.0.0/16 - это сети получаемые по ospf. Каждую сеть приходится добавлять руками. А как сделать так, что-бы сеть добавлялась автоматически.

★★★★★

Ответ на: комментарий от Deleted

Для того, чтобы добавление правил в iptables было автоматически.

Например, у тебя 256 малых роутеров и 128 ospf-шар и один бордер, работающий по bgp. Если посчитать, то кахдый малый роутер анонсирует свою сеть. А, кохдая шара анонсирует несколько таких сетей. А вот на бордере получается аш 385 сетей. Руками в iptables прописовать замучиешься.

ne-vlezay ★★★★★
() автор топика
Ответ на: комментарий от Deleted

У меня насколько шлюзов, один прямой, один заторный. Так вот, те хосты, которые выходят через tor, должны нормально видить хосты с внешними адресами. И так, вот политики маршрутизации:

root@router:~# cat /etc/firewall.conf
# Generated by iptables-save v1.4.14 on Wed Oct 29 18:56:24 2014
*nat
:PREROUTING ACCEPT [1840:216775]
:INPUT ACCEPT [355:74021]
:OUTPUT ACCEPT [668:86865]
:POSTROUTING ACCEPT [1981:197582]
COMMIT
# Completed on Wed Oct 29 18:56:24 2014
# Generated by iptables-save v1.4.14 on Wed Oct 29 18:56:24 2014
*filter
:INPUT ACCEPT [1386892:375961686]
:FORWARD ACCEPT [309777:260563571]
:OUTPUT ACCEPT [1160430:105621624]
COMMIT
# Completed on Wed Oct 29 18:56:24 2014
# Generated by iptables-save v1.4.14 on Wed Oct 29 18:56:24 2014
*mangle
:PREROUTING ACCEPT [944:88145]
:INPUT ACCEPT [920:82841]
:FORWARD ACCEPT [36:6120]
:OUTPUT ACCEPT [999:86220]
:POSTROUTING ACCEPT [1035:92340]
-A PREROUTING -s 10.99.220.0/24 -d 10.192.0.0/16 -j ACCEPT
-A PREROUTING -s 10.192.0.0/16 -d 10.99.220.0/24 -j ACCEPT
-A PREROUTING -s 10.99.250.0/24 -d 10.192.0.0/16 -j ACCEPT
-A PREROUTING -s 10.192.0.0/16 -d 10.99.250.0/24 -j ACCEPT
-A PREROUTING -s 10.99.200.0/24 -d 10.192.0.0/16 -j ACCEPT
-A PREROUTING -s 10.192.0.0/16 -d 10.99.200.0/24 -j ACCEPT
-A PREROUTING -s 10.99.100.0/24 -d 10.192.0.0/16 -j ACCEPT
-A PREROUTING -s 10.192.0.0/16 -d 10.99.100.0/24 -j ACCEPT
-A PREROUTING -s 10.192.0.0/16 -d 192.168.0.0/16 -j ACCEPT
-A PREROUTING -s 10.99.200.0/24 -d 10.99.100.0/24 -j ACCEPT
-A PREROUTING -s 10.99.100.0/24 -d 10.99.200.0/24 -j ACCEPT
-A PREROUTING -s 10.99.100.0/24 -d 10.99.250.0/24 -j ACCEPT
-A PREROUTING -s 10.99.250.0/24 -d 10.99.100.0/24 -j ACCEPT
-A PREROUTING -s 10.192.0.0/16 -j MARK --set-xmark 0x2/0xffffffff
COMMIT
# Completed on Wed Oct 29 18:56:24 2014

10.192.0.0/16 - это заторная
10.99.0.0/16 - это прямая

Меня интересует, как так сделать, чтобы ospf автоматом заносил эти сети в iptables

ne-vlezay ★★★★★
() автор топика
Ответ на: комментарий от ne-vlezay

А почему просто не добавить сразу суммирующую сеть в разрешённую?

Зачем дополнительно нагружать оборудование и терять в производительности, заставляя его проверять целую цепочку правил фаервола?

Deleted
()
Ответ на: комментарий от Deleted

Это понятно, но как тогда провайдеры ограничевают скорость или ставят блок на сайты пользователям, которые анонсируют свою сеть по bgp. Например, я анонесирую 18.188.0.0/16, шейтер понятно, об ней незнает.

ne-vlezay ★★★★★
() автор топика

Может, правила на интерфейс посадить, а не на IP? А IP по маске.

turtle_bazon ★★★★★
()

Дергать скриптом динамические маршруты из таблицы (в выводе route print в столбце Flags должно стоять «UD» или что-то такое), скриптом же лепить из них правила и как-то пихать их в iptables. В общем grep, sed, awk и все такое прочее.

rubic
()

отслеживать изменения в таблице маршрутизации можно через «ip monitor» и при необходимости изменять набор сетей через ipset ( а не менять правила в iptables )

Но велосипед придется писать тебе самому.

vel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.