Добрый день. Не получается настроить NAT. Форвардинг включён.
Сеть примерно такая:
eth0 inet manual
br0 inet manual
bridge_ports eth0
br0.2 inet static
address 172.16.0.1
netmask 255.255.0.0
gateway 172.16.0.1
vlan_raw_device br0
br0.15 inet dhcp
vlan_raw_device br0
добавляю правило
iptables -t nat -A POSTROUTING -o br0.15 -j MASQUERADE
Все политики iptables стоят ACCEPT
Все политики ebtables стоят ACCEPT
net.ipv4.ip_forward=1
По DHCP br0.15 получает адрес 10.100.1.1
Адрес интернет шлюза 10.0.0.1
Пинг до 172.16.0.1 идёт
Пинг до 10.100.1.1 идёт
Пинг до 10.0.0.1 не идёт, а должен.
С сервера 10.0.0.1 пинг идёт
С сервера пинг в инет идёт.
iptables-save
# Generated by iptables-save v1.4.10 on Wed Sep 14 12:09:09 2011
*mangle
:PREROUTING ACCEPT [35:2846]
:INPUT ACCEPT [25:2006]
:FORWARD ACCEPT [5:420]
:OUTPUT ACCEPT [20:1896]
:POSTROUTING ACCEPT [25:2316]
COMMIT
# Completed on Wed Sep 14 12:09:09 2011
# Generated by iptables-save v1.4.10 on Wed Sep 14 12:09:09 2011
*nat
:PREROUTING ACCEPT [3:240]
:INPUT ACCEPT [2:156]
:OUTPUT ACCEPT [4:256]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o br0.15 -j MASQUERADE
-A POSTROUTING -s 172.16.0.0/16 -j MASQUERADE
COMMIT
# Completed on Wed Sep 14 12:09:09 2011
# Generated by iptables-save v1.4.10 on Wed Sep 14 12:09:09 2011
*filter
:INPUT ACCEPT [25:2006]
:FORWARD ACCEPT [5:420]
:OUTPUT ACCEPT [20:1896]
COMMIT
# Completed on Wed Sep 14 12:09:09 2011
System information as of Wed Sep 14 12:09:59 EEST 2011
System load: 0.04 Users logged in: 0
Usage of /: 18.5% of 20.01GB IP address for br0.2: 172.16.0.1
Memory usage: 28% IP address for br0.3: 172.17.0.1
Swap usage: 0% IP address for br0.4: 172.18.0.1
Processes: 83 IP address for br0.15: 10.100.1.1
route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
172.18.0.0 * 255.255.0.0 U 0 0 0 br0.4
172.16.0.0 * 255.255.0.0 U 0 0 0 br0.2
172.17.0.0 * 255.255.0.0 U 0 0 0 br0.3
10.0.0.0 * 255.0.0.0 U 0 0 0 br0.15
default 10.0.0.1 0.0.0.0 UG 100 0 0 br0.15
ebtables -L
Bridge table: filter
Bridge chain: INPUT, entries: 1, policy: ACCEPT
-p IPv4 -j ACCEPT
Bridge chain: FORWARD, entries: 3, policy: ACCEPT
-s 0:17:31:ea:2e:34 -d 0:13:49:c6:65:76 -j ACCEPT
-d 0:13:49:c6:65:76 -j ACCEPT
-p IPv4 -j ACCEPT
Bridge chain: OUTPUT, entries: 1, policy: ACCEPT
-p IPv4 -j ACCEPT
Задача:
br0.2 br0.3 br0.4 должны ходить в инет через br0.15
Сеть на компе-клиенте настроена правильно по dhcp. шлюзом и днс-ом указан 172.16.0.1.
Настройка коммутатора
lan0 - vlan15 untagget
lan1 - vlan15 vlan2 vlan3 vlan4 tagget
lan2 - vlan2 untagget
lan3 - vlan3 untagget
Пользователь решил продолжить мысль 14 Сентября 2011, 14:14:52:
Заменил br0 на eth0 - заработало.
Что должно быть настроено в ebtables, что бы инет раздавался через br0.2?
Пользователь решил продолжить мысль 14 Сентября 2011, 15:08:02:
Удивительно, но получилось настроить.... Правда не знаю точно как...
Сделал вот как:
/etc/network/interfaces
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 172.16.0.1
netmask 255.255.0.0
gateway 172.16.0.1
bridge_ports eth0.2
auto eth0.2
iface eth0.2 inet manual
auto eth0.15
iface eth0.15 inet dhcp
vlan_raw_device eth0
post-up /bin/sh /scripts/nat
В /scripts/nat записал следующее:
#!/bin/sh
PATH=/usr/sbin:/sbin:/bin:/usr/bin
#
# delete all existing rules.
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT
# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i !br0.15 -j ACCEPT
iptables -A FORWARD -i br0.15 -o br0.2 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i br0.2 -o br0.15 -j ACCEPT
# Masquerade.
iptables --table nat -A POSTROUTING -o eth0.15 -j MASQUERADE
# Don't forward from the outside to the inside.
#iptables -A FORWARD -i br0.15 -o br0.15 -j REJECT
#iptables -A FORWARD -i -o br0.15 -j REJECT
# Enable routing.
iptables -I FORWARD -i eth0.15 -j ACCEPT
/etc/rc.local
#RESTART NETWORK AND SETUP EBTABLES:
/etc/init.d/networking restart
iptables -P FORWARD DROP
#DISABLE IPv6:
sudo echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
ebtables -F
ebtables -I INPUT -p IPv4 -j ACCEPT
ebtables -I FORWARD -p IPV4 -j ACCEPT
ebtables -I OUTPUT -p IPV4 -j ACCEPT
IPV4 - политика ebtables для фильтрации IPV4 (вопросы безопасности)