Proxy arp local: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 27: | Строка 27: | ||
Потому применяю следующюю конструкцию: |
Потому применяю следующюю конструкцию: |
||
<PRE> |
<PRE> |
||
+ | ebtables -t nat -F |
||
+ | ebtables -F |
||
+ | |||
+ | ebtables -t nat -N reply_ir_arp |
||
+ | |||
+ | ebtables -t nat -A reply_ir_arp -p arp --arp-ptype IPv4 -j arpreply --arpreply-mac 00:15:17:67:6b:53 --log-level 7 --log-arp --log-ip |
||
+ | # MAC интерфейса |
||
+ | |||
+ | ebtables -t nat -N spoof_ir_nets_SVL0 |
||
+ | ebtables -t nat -A spoof_ir_nets_SVL0 -p arp --arp-ptype IPv4 --arp-ip-dst 178.151.247.67 --arp-ip-src 178.151.247.67 -j ACCEPT |
||
+ | ebtables -t nat -A spoof_ir_nets_SVL0 -p arp --arp-ptype IPv4 --arp-ip-dst 178.151.247.0/24 --arp-ip-src 178.151.247.0/24 -j reply_ir_arp |
||
+ | #ebtables -t nat -A spoof_ir_nets_SVL0 -p arp --arp-ptype IPv4 --arp-ip-dst 10.2.0.0/16 --arp-ip-src 10.2.0.0/16 -j reply_ir_arp |
||
+ | #ebtables -t nat -A spoof_ir_nets_SVL0 -p arp --arp-ptype IPv4 --arp-ip-dst 10.3.0.0/16 --arp-ip-src 10.3.0.0/16 -j reply_ir_arp |
||
+ | |||
+ | ebtables -t nat -N input_from_SVL0 |
||
+ | ebtables -t nat -A input_from_SVL0 -p arp --arp-ptype IPv4 --arp-opcode 1 ! --arp-gratuitous -j spoof_ir_nets_SVL0 |
||
+ | |||
+ | |||
+ | ebtables -t nat -A PREROUTING -p arp --arp-ptype IPv4 --arp-opcode 1 ! --arp-gratuitous --log-level 7 --log-arp --log-ip --log-prefix "ARP_GRAT" |
||
+ | ebtables -t nat -A PREROUTING -p arp --arp-ptype IPv4 --arp-opcode 1 --arp-gratuitous --log-level 7 --log-arp --log-ip --log-prefix "ARP_GRAT_1" |
||
+ | |||
+ | ebtables -t nat -A PREROUTING --logical-in SVL0 -j input_from_SVL0 |
||
+ | ebtables -A FORWARD --logical-in SVL0 --logical-out SVL0 -j DROP |
||
</PRE> |
</PRE> |
Версия 09:24, 9 ноября 2011
PROXY ARP LOCAL
Решил сгородить SuperVlan на линуксе, но столкнулся с проблемой - proxy_arp в классическом понимании работает только между интерфейсами.
А мне нужно было что бы роутре отвечал своим маком на любой запрос на ТОМ ЖЕ интерфейсе.
В новых (выше 2.6.36) ядрах есть соответвующяя опция, но у меня старое ядро и обновлять его я не имел возможности (не хотел поломать случйно что-то что делалось до меня, в частности ядерный accel pptp )
Текущяя конфигурация
Ядро:
SuperVlan
ebtables
Есть интересная утилита - ebtables, которая позволяет сделать то что мне нужно.
Потому применяю следующюю конструкцию:
ebtables -t nat -F ebtables -F ebtables -t nat -N reply_ir_arp ebtables -t nat -A reply_ir_arp -p arp --arp-ptype IPv4 -j arpreply --arpreply-mac 00:15:17:67:6b:53 --log-level 7 --log-arp --log-ip # MAC интерфейса ebtables -t nat -N spoof_ir_nets_SVL0 ebtables -t nat -A spoof_ir_nets_SVL0 -p arp --arp-ptype IPv4 --arp-ip-dst 178.151.247.67 --arp-ip-src 178.151.247.67 -j ACCEPT ebtables -t nat -A spoof_ir_nets_SVL0 -p arp --arp-ptype IPv4 --arp-ip-dst 178.151.247.0/24 --arp-ip-src 178.151.247.0/24 -j reply_ir_arp #ebtables -t nat -A spoof_ir_nets_SVL0 -p arp --arp-ptype IPv4 --arp-ip-dst 10.2.0.0/16 --arp-ip-src 10.2.0.0/16 -j reply_ir_arp #ebtables -t nat -A spoof_ir_nets_SVL0 -p arp --arp-ptype IPv4 --arp-ip-dst 10.3.0.0/16 --arp-ip-src 10.3.0.0/16 -j reply_ir_arp ebtables -t nat -N input_from_SVL0 ebtables -t nat -A input_from_SVL0 -p arp --arp-ptype IPv4 --arp-opcode 1 ! --arp-gratuitous -j spoof_ir_nets_SVL0 ebtables -t nat -A PREROUTING -p arp --arp-ptype IPv4 --arp-opcode 1 ! --arp-gratuitous --log-level 7 --log-arp --log-ip --log-prefix "ARP_GRAT" ebtables -t nat -A PREROUTING -p arp --arp-ptype IPv4 --arp-opcode 1 --arp-gratuitous --log-level 7 --log-arp --log-ip --log-prefix "ARP_GRAT_1" ebtables -t nat -A PREROUTING --logical-in SVL0 -j input_from_SVL0 ebtables -A FORWARD --logical-in SVL0 --logical-out SVL0 -j DROP
Gratuitous ARP
Gratuitous ARP could mean both gratuitous ARP request or gratuitous ARP reply. Gratuitous in this case means a request/reply that is not normally needed according to the ARP specification (RFC 826) but could be used in some cases. A gratuitous ARP request is an AddressResolutionProtocol request packet where the source and destination IP are both set to the IP of the machine issuing the packet and the destination MAC is the broadcast address ff:ff:ff:ff:ff:ff. Ordinarily, no reply packet will occur. A gratuitous ARP reply is a reply to which no request has been made.