Как я понимаю как это работает (iptables):
Я создаю правило
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEОно помещается в iptables-save (временно, до ребута ситемы)
В этом правиле -t указывает имя таблицы (nat), -A POSTROUTING (добавить в цепочку POSTROUTING), -o eth0 указывает имя выходного интерфейса (только не пойму - это куда пакеты выходят, т. е. выходят в интернет или от какого интерфейса они приходят т. е. из локалки), -j MASQUERADE (что такое -j не пойму, а MASQUERADE это типа замена ip адреса пакетов из одной подсети на ip из другой).
iptables-save > /etc/iptables.up.rulesСохраняю все правила из iptables-save в файл /etc/iptables.up.rules
echo "pre-up iptables-restore < /etc/iptables.up.rules">>/etc/network/interfacesСоздаю строчку в /etc/network/interfaces, которая будет при старте системы прописывать в iptables-restore правила хранящиеся в /etc/iptables.up.rules
И как я понимаю все должно работать, если конечно я имя выходного интерфейса правильно указал.
iptables.up.rules
Generated by iptables-save v1.4.21 on Thu Feb 13 06:12:07 2003
*nat
:PREROUTING ACCEPT [38:18407]
:INPUT ACCEPT [2:149]
:OUTPUT ACCEPT [3:360]
:POSTROUTING ACCEPT [3:360]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Thu Feb 13 06:12:07 2003
# Generated by iptables-save v1.4.21 on Thu Feb 13 06:12:07 2003
*filter
:INPUT ACCEPT [2995:259178]
:FORWARD ACCEPT [9:456]
:OUTPUT ACCEPT [2135:268624]
COMMIT
# Completed on Thu Feb 13 06:12:07 2003
1) Я правильно механику понимаю?
2) На счет строчки no-dhcp-interface=eth0, я так понимаю она указывает на то, чтобы dnsmasq не лез на интерфейс eth0 (пробовал закоментировать, эффекта не заметил).
3) Не смотря на настройки /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# интернет
auto eth0
iface eth0 inet dhcp
# сеть1
auto eth1
iface eth1 inet static
address 192.168.10.1
netmask 255.255.255.0
# сеть2
auto eth2
iface eth2 inet static
address 192.168.11.1
netmask 255.255.255.0
pre-up iptables-restore < /etc/iptables.up.rules
eth0 получает ip после ребута системы, только после команды dhclient да и то через какое то время.
4) и еще
на интерфейсе eth2 dhcp так и не хочет работать. Что на него может еще влиять?
/etc/dnsmasq.conf
#no-dhcp-interface=eth0
interface=eth1
dhcp-range=eth1,192.168.10.100,192.168.10.200,7d
dhcp-option=eth1,2,255,255,255,0
dhcp-option=eth1,3,192.168.10.1
interface=eth2
dhcp-range=eth2,192.168.11.100,192.168.11.200,7d
dhcp-option=eth2,2,255.255.255.0
dhcp-option=eth2,3,192.168.11.1
Сетевая карта рабочая.
Вопросов конечно уйма, надеюсь подскажите.