Стоит linux 2.4.18, iptables 1.2.6a (пробывались и 1.2.5)
Допустим есть на этой машине интерфейс eth1
eth1 - 192.168.1.1
eth1:0 192.168.1.2
eth1:1 192.168.1.3
пишем:
iptables -I INPUT -i eth1 -d 192.168.1.3 -j DROP
что теоретически должно привести к невидимости eth1:1 снаружи.
Практически он виден полностью. Но если написать
iptables -I INPUT -d 192.168.1.3 -j DROP
его становится не видно.
так же его становится не видно при
iptables -I INPUT -i eth+ -d 192.168.1.3 -j DROP
Эксперементально было выяснено, что команда
iptables -I INPUT -i eth0 -d 192.168.1.3 -j DROP
приводит к невидимости 192.168.1.3
Для eth1:0 соответственно верно будет "-i eth2"
для eth1 тем не менее все отрабатывает верно именно на "-i eth1"
Интерфейс eth0 физически не имеет отношения к подсети за eth1
Что за ерунда такая получается?
p.s.
чуть позже было выяснено еще кое-что:
интерфейсы просто гуляют - при каждом iptables-restore все
ethX меняются местами случайным образом (включая и главный (не алиас)
eth1).
собирание чистого ядра (с подрубленными iptables 1.2.6a или 1.2.5) не помогает.
Настройки, касающиеся сети там такие:
<*> Packet socket
[ ] Packet socket: mmapped IO
< > Netlink device emulation
[*] Network packet filtering (replaces ipchains)
[ ] Network packet filtering debugging
[ ] Socket Filtering
<*> Unix domain sockets
[*] TCP/IP networking
[*] IP: multicasting
[*] IP: advanced router
[*] IP: policy routing
[*] IP: use netfilter MARK value as routing key
[*] IP: fast network address translation
[ ] IP: equal cost multipath
[ ] IP: use TOS value as routing key
[ ] IP: verbose route monitoring
[ ] IP: large routing tables
[ ] IP: kernel level autoconfiguration
< > IP: tunneling
< > IP: GRE tunnels over IP
[ ] IP: multicast routing
[ ] IP: TCP Explicit Congestion Notification support
[ ] IP: TCP syncookie support (disabled per default)
IP: Netfilter Configuration --->
---
< > The IPX protocol
< > Appletalk protocol support
< > DECnet Support
< > 802.1d Ethernet Bridging
QoS and/or fair queueing --->
<*> Connection tracking (required for masq/NAT)
<*> FTP protocol support
<*> IRC protocol support
<*> IP tables support (required for filtering/masq/NAT)
<*> limit match support
<*> MAC address match support
<*> netfilter MARK match support
< > Multiple port match support
< > TOS match support
< > AH/ESP match support
< > LENGTH match support
< > TTL match support
< > tcpmss match support
<*> Connection state match support
<*> Packet filtering
<*> REJECT target support
<*> Full NAT
<*> MASQUERADE target support
<*> REDIRECT target support
<*> Packet mangling
<*> TOS target support
<*> MARK target support
<*> LOG target support
< > ULOG target support
< > TCPMSS target support
[*] QoS and/or fair queueing
<*> CBQ packet scheduler
< > CSZ packet scheduler
< > The simplest PRIO pseudoscheduler
< > RED queue
< > SFQ queue
< > TEQL queue
< > TBF queue
< > GRED queue
< > Diffserv field marker
< > Ingress Qdisc
[*] QoS support
[*] Rate estimator
[ ] Packet classifier API
Танцы с бубном не помогают..
Как бы заставить эти прыгающие интерфейсы успокоится?
Что используеш просто алиасы или VLAN ?
Если VLAN, то настрой VLAN с параметром VLAN_PLUS_VID_NO_PAD
в /etc/rc.d/init.d/network
iptables не понимает имен интерфейсов с точками !
Настрой влэн и пиши в iptables канонические имена интерфейсов,
ну типа iptables -A INPUT -s 192.168.1.5 -i vlan1 -j ACCEPT.