LINUX.ORG.RU
ФорумAdmin

Маршрутизация через iptables/iproute2


1

1

Добрый день.

Что то сегодня все из рук валится, подскажите, ткните носом в ошибку, уже запарился ловить ее.

Есть.
Подсеть белых IP x.x.x.56/29 GW x.x.x.57

Весь трафик ходит исключительно через шлюз
Внешний интерфейс vl999 c IP x.x.x.60/29

Внутренний интерфейс vl120 без IP
в этом интерфейсе живет комп с белым IP x.x.x.62/29 GW x.x.x.57

Необходимо организовать маршрутизацию для компа x.x.x.62/29 во внешний мир и обратно.

Делаю

ip link add link eth0 name vl999 type vlan id 999
ip addr add x.x.x.60/29 dev vl999
ip link set vl999 up
ip route add default via x.x.x.57

ip link add link eth0 name vl120 type vlan id 120
ip link set vl120 up

echo "120 ip" >> /etc/iproute2/rt_tables

ip route add x.x.x.62 dev vl120 table ip
ip route add x.x.x.60 dev vl999 table ip
ip route add x.x.x.57 dev vl999 table ip
ip route add default via x.x.x.57 table ip

ip rule add to x.x.x.62 table ip
ip rule add from x.x.x.62 table ip

echo 1 > /proc/sys/net/ipv4/conf/vl999/forwarding
echo 1 > /proc/sys/net/ipv4/conf/vl120/forwarding

echo 1 > /proc/sys/net/ipv4/conf/vl999/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/vl120/proxy_arp

echo 0 > /proc/sys/net/ipv4/conf/vl999/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/vl120/rp_filter

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
И после этого трафик из vl120 ходит только во внешний мир, а вот обратно в vl120 не возвращается.

Тестировал так: запускал ping 8.8.8.8 на машине во vl120 (IP x.x.x.62/29 GW x.x.x.57)

При этом пакеты до 8.8.8.8 доходят корректно, возвращается корректный ответ, но шлюз его не пропускает.

Самое удивительное, что пакет не видно даже с цепочке PREROUTING!!! Хотя на интерфейс он попадает

tcpdump -i vl999 icmp and src host 8.8.8.8 -n -nn[br]
16:33:01.018313 IP 8.8.8.8 > x.x.x.62: ICMP echo reply, id 512, seq 7683, length 40
А в iptables уже счетчик не тикает
iptables -A PREROUTING -t mangle -s 8.8.8.8 -j ACCEPT
Что удивительно машина, которая стоит во vl999 с ip из той же подсети (IP x.x.x.58) нормально пингуется!

Подскажите как такое может быть??? Где я накосячил???

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

Мой косяк, все работает, данный пост можно использовать как how to :)

Приведи в нормальный вид.

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