Есть: 1.Машина на centos с 4-мя сетевыми интерфейсами (1 смотрит во внутреннюю сеть (enp2s5) и 3 во внешнюю (enp2s0, enp2s1, enp2s2)(PS: все 3 в одной подсети и есть привязка ip-MAC)) 2 5ПК во внутренней сети.
Как можно реализовать доступ из внутренней сети, причем чтоб 2 ПК ходили через интерфейс enp2s0, 1ПК – enp2s1, 2ПК – enp2s2, была подмена ip-адресов.
IPTABLES:
#!/bin/bash
#obyavlenie peremennux
export IPT=«iptables»
export WAN_0=enp2s0
export WAN_1=enp2s1
export WAN_2=enp2s2
export LAN1=enp2s5
export LAN1_IP_0=192.168.251.169
export LAN1_IP_1=192.168.251.173
export LAN1_IP_2=192.168.251.172
export LAN1_IP_3=192.168.251.25
export LAN1_IP_4=192.168.251.26
$IPT -A FORWARD -i $LAN1 -o $WAN_0 -j ACCEPT
$IPT -A FORWARD -i $LAN1 -o $WAN_1 -j ACCEPT
$IPT -A FORWARD -i $LAN1 -o $WAN_2 -j ACCEPT
$IPT -t nat -A POSTROUTING -o $WAN_0 -s $LAN1_IP_0 -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $WAN_0 -s $LAN1_IP_3 -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $WAN_1 -s $LAN1_IP_1 -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $WAN_2 -s $LAN1_IP_2 -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $WAN_2 -s $LAN1_IP_4 -j MASQUERADE
/sbin/iptables-save > /etc/sysconfig/iptables
После данных манипуляций начинает работать 2 ПК по интерфейсу enp2s0 остальные молчат...
Подозреваю, что надо настроить маршрутизацию, пробую сделать таким образом :
#!/bin/bash
#LAN interface
IF0=«enp2s5»
# WAN interface 1
IF1=«enp2s0»
# WAN interface 2
IF2=«enp2s1»
# WAN interface 3
IF3=«enp2s2»
IP1=«192.168.35.169»
IP2=«192.168.35.173»
IP3=«192.168.35.172»
# gateway 1, 2, 3
P=«192.168.35.254»
# LAN netmask
P0_NET=«192.168.251.0/24»
# WAN1 netmask
P1_NET=«192.168.35.169/24»
# WAN2 netmask
P1_NET=«192.168.35.173/24»
# WAN3 netmask
P1_NET=«192.168.35.172/24»
TBL1=«provider1»
TBL2=«provider2»
TBL3=«provider3»
echo «1 provider1» >> /etc/iproute2/rt_tables
echo «2 provider2» >> /etc/iproute2/rt_tables
echo «3 provider3» >> /etc/iproute2/rt_tables
ip route add $P1_NET dev $IF1 src $IP1 table provider1 > /dev/null 2>&1
ip route add default via $P1 tables provider1 > /dev/null 2>&1
ip route add $P2_NET dev $IF2 src $IP2 table provider2 > /dev/null 2>&1
ip route add default via $P2 tables provider2 > /dev/null 2>&1
ip route add $P3_NET dev $IF3 src $IP3 table provider3 > /dev/null 2>&1
ip route add default via $P3 tables provider2 > /dev/null 2>&1
ip route add $P1_NET dev $IF1 src $IP1 > /dev/null 2>&1
ip route add $P2_NET dev $IF2 src $IP2 > /dev/null 2>&1
ip route add $P3_NET dev $IF3 src $IP3 > /dev/null 2>&1
ip route add default via $P1 > /dev/null 2>&1
ip rule add from $IP1 table $TBL1 > /dev/null 2>&1
ip rule add from $IP2 table $TBL2 > /dev/null 2>&1
ip rule add from $IP3 table $TBL3 > /dev/null 2>&1
ip route add $P0_NET dev $IF0 table $TBL1 > /dev/null 2>&1
ip route add $P2_NET dev $IF2 table $TBL1 > /dev/null 2>&1
ip route add $P3_NET dev $IF3 table $TBL1 > /dev/null 2>&1
ip route add 127.0.0.0/8 dev lo table $TBL1 > /dev/null 2>&1
ip route add $P0_NET dev $IF0 table $TBL2 > /dev/null 2>&1
ip route add $P1_NET dev $IF1 table $TBL2 > /dev/null 2>&1
ip route add $P3_NET dev $IF3 table $TBL2 > /dev/null 2>&1
ip route add 127.0.0.0/8 dev lo table $TBL2 > /dev/null 2>&1
ip route add $P0_NET dev $IF0 table $TBL3 > /dev/null 2>&1
ip route add $P2_NET dev $IF2 table $TBL3 > /dev/null 2>&1
ip route add $P1_NET dev $IF1 table $TBL3 > /dev/null 2>&1
ip route add 127.0.0.0/8 dev lo table $TBL3 > /dev/null 2>&1
iptables -t nat -F POSTROUTING
ip route delete default
ip route add default scope global nexthop via $P dev $IF1 weight 1 nexthop via $P dev $IF2 weight 1 nexthop via $P dev $IF3 weight 1
НЕ ПОМОГЛО... (Думал что с интерфейса enp2s5 будет делать запросы к интерфейсам enp2s0,1,2 и iptables будет «фильтровать» согласно своих правил) (Знание linux стремиться к 0)...