Назад | Перейти на главную страницу

Как я могу запретить TINC ретранслировать DHCP

Я использую tinc в нескольких NAT-маршрутизаторах под управлением Debian 7 Wheezy, VPN работает нормально в течение нескольких месяцев, за исключением того, что я установил его в режиме переключения, он ретранслирует запросы DHCP и отвечает по всей VPN. Проблема в том, что хост A использует пул из 10.10.10.2-254 для DHCP, с 10.10.10.1 в качестве шлюза (хост A), хост B использует пул из 10.10.10.2-254 для DHCP с 10.10.20.1 в качестве шлюза (хост B) и так далее.

Обратите внимание, что интерфейс tinc tap (ethernet) соединен мостом через физический интерфейс LAN, потому что цель моего «облака» состоит в том, чтобы ВСЕ хосты во всех сетях (A, B ..) появлялись в одной LAN.

Я ищу простое решение, чтобы преодолеть это. Пытался использовать iptables с Physdev и Physdev, указав интерфейс tinc, но это, похоже, не работает.

Есть ли другое решение?

P.S: переключение tinc в режим маршрутизатора не является решением, так как мне действительно нужны многоадресные и другие немаршрутизируемые протоколы.

Он должен работать с iptables -t mangle -m Physdev, если для переменной sysctl net.bridge.bridge-nf-call-iptables установлено значение 1.

sysctl -w net.bridge.bridge-nf-call-iptables=1
iptables -t mangle -I PREROUTING -m physdev --physdev-in vpn1 \
    -p udp --dport 67:68 -j DROP


У вас также есть альтернатива заблокировать его с помощью ebtables:

## dont accept dhcp packets directed to the local machine
ebtables -A INPUT --in-interface vpn1 --protocol ipv4 \
    --ip-protocol udp --ip-destination-port 67:68 -j DROP

## dont forward dhcp packets coming in from vpn
ebtables -A FORWARD --in-interface vpn1 --protocol ipv4 \
    --ip-protocol udp --ip-destination-port 67:68 -j DROP

## dont send dhcp requests over vpn
ebtables -A FORWARD --out-interface vpn1 --protocol ipv4 \
   --ip-protocol udp --ip-destination-port 67:68 -j DROP