LINUX.ORG.RU
ФорумAdmin

Пропали правила из таблицы маршрутизации


0

0

Доброго времени суток!
Имеется рутер с тремя сетевыми интерфейсами:
eth0 (ppp0) - ISP 1
eth1 (ppp1) - ISP 2
eth2 - LAN

Policy routing делаю через статический роутинг.
Код:

# Custom routing tables flushing
$IP route flush table megalink
$IP rule del table megalink

$IP route flush table vega_archer
$IP rule del table vega_archer

################################
# Policy routing configuration #
################################

# Routing into router ---------------------------------------------------------------------------------------------
# Confguring megalink table
$IP route add $GW_MEGALINK dev $MEGALINK_IFACE src $MEGALINK_SRC table megalink
$IP route add default via $GW_MEGALINK table megalink
$IP route add 10.10.10.2 dev tun0 src 10.10.10.1 table megalink
$IP route add 10.10.10.0/24 via 10.10.10.2 dev tun0 table megalink
$IP route add 192.168.0.0/24 dev eth2 src 192.168.0.1 table megalink
$IP route add 192.168.2.0/24 dev eth1 src 192.168.2.1 table megalink
$IP route add 195.248.185.180/30 dev eth2:1 src 195.248.185.182 table megalink
$IP route add 127.0.0.0/8 dev lo table megalink

# Confguring vega_archer table
$IP route add $GW_VEGA_ARCHER dev $VEGA_ARCHER_IFACE src $VEGA_ARCHER_SRC table vega_archer
$IP route add default via $GW_VEGA_ARCHER table vega_archer
$IP route add 10.10.10.2 dev tun0 src 10.10.10.1 table vega_archer
$IP route add 10.10.10.0/24 via 10.10.10.2 dev tun0 table vega_archer
$IP route add 192.168.0.0/24 dev eth2 src 192.168.0.1 table vega_archer
$IP route add 192.168.2.0/24 dev eth1 src 192.168.2.1 table vega_archer
$IP route add 195.248.185.180/30 dev eth2:1 src 195.248.185.182 table vega_archer
$IP route add 127.0.0.0/8 dev lo table vega_archer

# main routing table configuration
$IP route add $GW_MEGALINK dev $MEGALINK_IFACE src $MEGALINK_SRC
$IP route add $GW_VEGA_ARCHER dev $VEGA_ARCHER_IFACE src $VEGA_ARCHER_SRC

$IP route add default dev $MEGALINK_IFACE src $MEGALINK_SRC
$IP route add default dev $MEGALINK_IFACE src $MEGALINK_SRC

# routing realms
$IP rule add from $MEGALINK_SRC table megalink
$IP rule add from $VEGA_ARCHER_SRC table vega_archer

# Routing decision about fwmarks
$IP rule add fwmark 10 table megalink
$IP rule add fwmark 20 table vega_archer

# Flush route cache
$IP route flush cache



Трафик направляется в нужные таблицы маршрутизации на основе таргета iptables MARK (657 правил, если будет необходимо показать выложу отдельным файлом)

В нормальном состоянии таблица маршрутизации выглядит так:
Код:

1 Kernel IP routing table
2 Destination Gateway Genmask Flags Metric Ref Use Iface
3 195.248.176.xxx 0.0.0.0 255.255.255.255 UH 0 0 0 ppp1
4 10.10.10.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
5 193.200.32.x 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
6 195.248.32.x 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
7 195.248.185.xxx 0.0.0.0 255.255.255.252 U 0 0 0 eth2
8 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
9 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
10 10.10.10.0 10.10.10.2 255.255.255.0 UG 0 0 0 tun0
11 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth2
12 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0



В аварийной ситуации так:
Код:

1 Kernel IP routing table
2 Destination Gateway Genmask Flags Metric Ref Use Iface
3 195.248.176.xxx 0.0.0.0 255.255.255.255 UH 0 0 0 ppp1
4 10.10.10.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
5 193.200.32.x 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
6 195.248.185.xxx 0.0.0.0 255.255.255.252 U 0 0 0 eth2
7 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
8 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
9 10.10.10.0 10.10.10.2 255.255.255.0 UG 0 0 0 tun0
10 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth2



При аварийно ситуации команды:
ping -I ppp0 ya.ru
ping -I ppp1 ya.ru
Возвращают: Operation not permitted
это при условии
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT

Вопрос, что могло грохнуть маршруты? ICMP redirect например?
_________________

Ответ на: комментарий от Kiteman

Кажется вот ответ.
Конфиг ifcfg-ppp0/1

Код:

USERCTL=no
BOOTPROTO=dialup
NAME=DSLppp0
DEVICE=ppp0
TYPE=xDSL
ONBOOT=yes
PIDFILE=/var/run/pppoe-adsl.pid
FIREWALL=NONE
PING=.
PPPOE_TIMEOUT=80
LCP_FAILURE=3
LCP_INTERVAL=10
CLAMPMSS=1412
CONNECT_POLL=6
CONNECT_TIMEOUT=60
DEFROUTE=no
SYNCHRONOUS=no
ETH=eth0
PROVIDER=DSLppp0
USER=xxx
PEERDNS=no
DEMAND=no
UNIT=0
HOLDOFF=1
PERSIST=yes


/var/log/messages
Код:

Mar 3 08:30:11 hydra pppd[22131]: Connection terminated.
Mar 3 08:30:12 hydra pppd[22131]: Modem hangup
Mar 3 08:30:17 hydra pppd[22131]: Exit.
Mar 3 08:30:22 hydra pppd[22162]: pppd 2.4.4 started by root, uid 0
Mar 3 08:30:22 hydra pppd[22162]: Using interface ppp0
Mar 3 08:30:22 hydra pppd[22162]: Connect: ppp0 <--> /dev/pts/5
Mar 3 08:30:32 hydra pppoe[22163]: PPP session is 13244
Mar 3 08:30:34 hydra pppd[22162]: CHAP authentication succeeded
Mar 3 08:30:34 hydra pppd[22162]: local IP address 193.200.32.xxx
Mar 3 08:30:34 hydra pppd[22162]: remote IP address 193.200.32.xxx
Mar 3 08:30:46 hydra pppoe[22132]: PPP session is 13246



Это означает что при падении интерфейса пропал и маршрут динамически с ним ассоциированый. А при поднятии данный маршрут не добавился т.к. DEFROUTE=no

keferoff ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.