Есть задача: необходимо, чтобы пакеты от определенных демонов ходили через определенный шлюз. Пакеты, приходящие на порты к демонам маркируются файрволом меткой 0x02.
Я создал таблицу gate2 и указал ей шлюз по умолчанию 192.168.0.2. Пакеты с пометкой 0x02 отправляются в данную таблицу.
При настройке iproute2 вручную (утилитой ip из консоли), все отлично работает, но при прописывании маршрута в route-eth0 все ломается: появляется какие-то станные записи в таблице маршрутизации, а самое главное, появляются лишний ip адрес у интерфейса.
Конфиги:
# cat /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
200 gate2
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
NAME="eth0"
UUID="19a5201e-3252-4440-9ccb-15714c8f2809"
ONBOOT="yes"
HWADDR="00:16:3e:19:c0:1e"
IPADDR="192.168.0.100"
PREFIX="24"
GATEWAY="192.168.0.1"
DNS1="192.168.0.1"
# cat /etc/sysconfig/network-scripts/route-eth0
default via 192.168.0.2 dev eth0 table gate2
# cat /etc/sysconfig/network-scripts/rule-eth0
fwmark 0x2/0x2 lookup gate2
Результат:
# ip route
default via 192.168.0.1 dev eth0
default via 192.168.0.1 dev eth0 proto static metric 1024
169.254.0.0/16 dev eth0 scope link metric 1002
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.37
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:16:3e:19:c0:1e brd ff:ff:ff:ff:ff:ff
inet 192.168.0.37/24 brd 192.168.0.255 scope global dynamic eth0
valid_lft 1209578sec preferred_lft 1209578sec
inet 192.168.0.100/24 brd 192.168.0.255 scope global secondary eth0
valid_lft forever preferred_lft forever
inet6 fe80::216:3eff:fe19:c01e/64 scope link
valid_lft forever preferred_lft forever
# ip route show table gate2
default via 192.168.0.2 dev eth0
Откуда взялся лишний ip и маршрут к 169.254.0.0/16, что я не правильно делаю?