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

lunux bridge и таблица nat в iptables прохождение транзитных пакетов bridge через таблицу nat в iptables

Добрый день !

проходят ли транзитные пакеты идущие между портами bridge'а в linux через таблицу nat iptables? а то в интернете как-то противоричиво пишут. попробывал экпериментально - походу пакеты не проходят. может какая настройка есть для решения этой проблемы. (конкретно интересует реализация прозрачного NETMAP на bridge).

Share this post


Link to post
Share on other sites
спасибо.

нашел у себя ошибку (не ту циферку написал в IP-адресе).

 

теперь другая проблема:

 

собрал тестовый стенд с конфигурацией хост1-bridge-хост2

 

настройки bridge

echo 0 >/proc/sys/net/ipv4/conf/all/rp_filter
echo 0 >/proc/sys/net/ipv4/conf/default/rp_filter
echo 1 >/proc/sys/net/ipv4/ip_forward

/sbin/modprobe ipt_NETMAP
/sbin/modprobe e1000
/sbin/ifconfig eth2 0.0.0.0 promisc up
/sbin/ifconfig eth3 0.0.0.0 promisc up
/usr/sbin/brctl addbr br0
/usr/sbin/brctl stp br0 off
/usr/sbin/brctl addif br0 eth2
/usr/sbin/brctl addif br0 eth3

/usr/bin/iptables -t nat -A POSTROUTING -m physdev --physdev-in eth2 -s 10.7.0.0/16 -j NETMAP --to 10.204.0.0/16
/usr/bin/iptables -t nat -A PREROUTING -m physdev --physdev-in eth3 -d 10.204.0.0/16 -j NETMAP --to 10.7.0.0/16

/sbin/ifconfig br0 up

к сетевухе eth2 подключен хост1 c IP 10.7.5.10/8

к сетевухе eth3 хост2 с адресом IP 10.205.5.250/8

на хост1 и хост2 для друг друга сделаны статические записи ARP

 

пингуем с хост1 хост2 :

$ ping 10.205.5.250

не пингуется :(

 

на хост2 снифером видно что приходят icmp запросы с адреса 10.204.5.10 и уходят ответы на 10.204.5.10

 

на bridge видно что на eth3 есть и запросы и ответы, а на eth2 только запросы(!).

а отсутмтвующие ответы появляются на интерфейсе br0 (dst ip=10.7.5.10 dst_mac=mac_br0(!!!), а не MAC хост1, как должно быть)

как заставить bridge не менять MAC-адрес получателя?

Edited by msh_1

Share this post


Link to post
Share on other sites

Настоятельно рекомендую для отладки использовать "iptables -A FORWARD -p icmp ... -j log --log-prefix 'Trap1: '".

iptables -nvL | grep -i trap будет сразу показывать количество прошедших через правило пакетов,

а в /var/log/security будет записываться детальная информация о них.

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
Sign in to follow this