iptables v1.4.21: Не удалось загрузить соответствие `-d':Нет такого файла или каталога

iptables v1.4.21: Не удалось загрузить соответствие `-d':Нет такого файла или каталога

Я использую 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': Такого файла или каталога нет

Может ли кто-нибудь помочь объяснить, что я упускаю? Заранее спасибо.

решение1

привет, у меня есть хост-система с 2 интерфейсами, eth0 и eth1. eth0 будет получать пакеты с IP 127.3.xx я хочу переслать эти пакеты из eth1 на сервер (10.0.1). eth1 имеет IP 192.168.0.100. сервер должен видеть пакеты так, как будто они приходят с хоста (192.168.0.100). я думаю, что могу убрать флаг -m, но когда я это делаю, я получаю эту ошибку: iptables v1.4.21: multiple -d flags not allowed

Чтобы добиться этого, вам следует использовать следующие правила 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.

Связанный контент