Я запускаю kerenl 3.14.18 и использую iptables 1.4.21, построенный с этими параметрами --static-enable --disable-shared. когда я запускаю эту команду: / sbin / iptables -A PREROUTING -m -d 127.3.0.2/24 -j DNAT --to-destination 10.0.0.1 -p udp -dport 69, я получаю это сообщение об ошибке: iptables v1.4.21: Не удалось загрузить соответствие `-d ': нет такого файла или каталога
могу ли помочь объяснить, что мне не хватает? заранее спасибо.
привет, у меня есть хост-система с двумя интерфейсами, eth0 и eth1. eth0 будет получать пакеты с ip 127.3.x.x. Я хочу перенаправить эти пакеты для выхода из eth1 на сервер (10.0.1). eth1 имеет IP 192.168.0.100. серверу необходимо видеть пакеты, как если бы они исходили от хоста (192.168.0.100). Я думаю, что могу удалить флаг -m, но когда я это сделаю, я получаю эту ошибку: iptables v1.4.21: несколько флагов -d не разрешены
Для этого вы должны использовать следующие правила iptables:
iptables -t nat -A PREROUTING -d 127.3.0.2/24 -p udp --dport 69 -j DNAT --to-destination 10.0.0.1
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.0.100
Но вы должны заменить 127.3.0.2/24 либо одним IP (например, 127.3.0.2), либо допустимым диапазоном CIDR (например, 127.3.0.0/24). 127.3.0.2/24 не является допустимым диапазоном CIDR, поскольку / 24 будет охватывать 127.3.0.0-127.3.0.254. Это также перенаправит любой трафик с любого IP-адреса в этом диапазоне на порт 69 на 10.0.0.1.
Кроме того, поскольку порт 69 - это TFTP, я считаю своим долгом упомянуть - если вы пытаетесь использовать его для загрузки PXE или другого решения на основе DHCP, велика вероятность, что это не сработает, поскольку у большинства поставщиков возникают проблемы с прохождением подсетей с использованием PXE. .