LINUX.ORG.RU

Сообщения iceangel

 

Advanced routing

Добрый день. Помогите пожалуйста разобраться с маршрутизацией на шлюзе.

Стоит 2 сетевые карты. поднято 5 интерфейсов (далее ip выдуманые для удобства)

на eth0 поднято 4 vlan. к провайдерам через свитч.(4 access порта в провайдерские сети, 1 trunk пропускающий четыре vlanа идет к моему шлюзу).

eth2 - 192.168.0.1/24 - локальная сеть
eth0.10 - 192.168.1.2/24 - провайдер 1
eth0.20 - 192.168.2.2/24 - провайдер 2
eth0.30 - 192.168.3.2/24 - провайдер 3
eth0.40 - 192.168.4.2/24 - провайдер 4

Создал 4 таблицы маршрутизации(соответсвенно на каждого провайдера)
Таблица MAIN:

192.168.1.0/24 dev eth0.10  scope link  src 192.168.1.2 
192.168.2.0/24 dev eth0.20  scope link  src 192.168.2.2 
192.168.3.0/24 dev eth0.30  scope link  src 192.168.3.2 
192.168.4.0/24 dev eth0.40  scope link  src 192.168.4.2 
192.168.0.0/24 dev eth2  proto kernel  scope link  src 192.168.0.1 


Таблица 10:

default via 192.168.1.1 dev eth0.10 
127.0.0.0/8 dev lo  scope link 
192.168.1.0/24 dev eth0.10  proto static  scope link 
192.168.0.1 dev eth2  scope link 


Таблица 20:

default via 192.168.2.1 dev eth0.20 
127.0.0.0/8 dev lo  scope link 
192.168.2.0/24 dev eth0.20  proto static  scope link 
192.168.0.1 dev eth2  scope link 


Таблица 30:

default via 192.168.3.1 dev eth0.30 
127.0.0.0/8 dev lo  scope link 
192.168.3.0/24 dev eth0.30  proto static  scope link 
192.168.0.1 dev eth2  scope link 


Таблица 40:

default via 192.168.4.1 dev eth0.40 
127.0.0.0/8 dev lo  scope link 
192.168.4.0/24 dev eth0.40  proto static  scope link 
192.168.0.1 dev eth2  scope link 


Вывод команды «ip rule show»

0:      from all lookup local 
32763:  from 192.168.1.2 lookup PROVIDER1
32764:  from 192.168.2.2 lookup PROVIDER2
32765:  from 192.168.3.2 lookup PROVIDER3
32766:  from 192.168.4.2 lookup PROVIDER4
32767:  from all lookup main 
32768:  from all lookup default

Задача состоит в том. чтобы через все четыре линка была возможность доступа в интернет. Хочу таким образом реализовать резервирование каналов и проверку работоспособности. Тоесть добавить правило например «ip rule add from 192.168.0.0/24 table PROVIDER1» чтобы пустить весь трафик из локальной сети на первого провайдера. По крону запустить скрипт проверки всех каналов и в случае падения основного канала переключать на другого правилом «ip rule add from 192.168.0.0/24 table PROVIDER2», плюс оповещать о работоспособности каналов.

В таблице MAIN не задан маршрут по умолчанию. Но он задан в таблицах для провайдеров. В чем и заключаеться проблема. когда пингую по интерфейсу ping 8.8.8.8 -I eth0.10

PING 8.8.8.8 (8.8.8.8) from 192.168.1.2 eth0.10: 56(84) bytes of data.
From 192.168.1.2 icmp_seq=1 Destination Host Unreachable

хотя подразумеваю, что ядро должно смотреть в таблицу PROVIDER1 и вытягивать оттуда гейтвей, так как есть правило «from 192.168.1.2 lookup PROVIDER1» Добился только того что шлюз доступен из вне по всем 4 интерфейсам, и ответ уходит туда окуда пришел запрос, тоесть на свой гейтвей.

Можно добавить правило ip route add default scope global nexthop via $P1 dev $IF1 weight 1 nexthop via $P2 dev $IF2 weight 1 и т.д. тогда все каналы как раз работают, но идет балансировка. а мне нужно чтобы интерфейс смотрел в свою таблицу и оттуда брал свой шлюз. Прошу у Вас помощи разобраться.

 , , , ,

iceangel
()

Проблема с DHCP.

Здравствуйте. Не могу разобрать в чем проблема. Есть сеть. Адреса клиенты получают по DHCP. Все как бы работает, но некоторые машины не получают адресс. клиент шлет DHCPDISCOVER, сервер отвечает DHCPOFFER и на этом все заканчиваеться. Но если подключить машину к сети например через wifi-роутер, то она нормально получает ip от wifi-роутера.

Лог dhcp на сервере

Apr 21 15:09:35 x3650 dhcpd: DHCPDISCOVER from 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:36 x3650 dhcpd: DHCPOFFER on 192.168.215.107 to 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:38 x3650 dhcpd: DHCPDISCOVER from 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:38 x3650 dhcpd: DHCPOFFER on 192.168.215.107 to 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:41 x3650 dhcpd: DHCPDISCOVER from 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:41 x3650 dhcpd: DHCPOFFER on 192.168.215.107 to 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:44 x3650 dhcpd: DHCPDISCOVER from 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:44 x3650 dhcpd: DHCPOFFER on 192.168.215.107 to 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:47 x3650 dhcpd: DHCPDISCOVER from 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:47 x3650 dhcpd: DHCPOFFER on 192.168.215.107 to 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:50 x3650 dhcpd: DHCPDISCOVER from 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:50 x3650 dhcpd: DHCPOFFER on 192.168.215.107 to 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:53 x3650 dhcpd: DHCPDISCOVER from 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:53 x3650 dhcpd: DHCPOFFER on 192.168.215.107 to 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:56 x3650 dhcpd: DHCPDISCOVER from 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:56 x3650 dhcpd: DHCPOFFER on 192.168.215.107 to 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:59 x3650 dhcpd: DHCPDISCOVER from 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:09:59 x3650 dhcpd: DHCPOFFER on 192.168.215.107 to 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:10:02 x3650 dhcpd: DHCPDISCOVER from 1c:ba:8c:a1:62:96 (w808) via eth1
Apr 21 15:10:02 x3650 dhcpd: DHCPOFFER on 192.168.215.107 to 1c:ba:8c:a1:62:96 (w808) via eth1

кусок tcpdump -i eth0 udp port 67 and udp port 68

15:09:37.957553 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 28:6e:d4:aa:10:62 (oui Unknown), length 548
15:09:38.576019 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 1c:ba:8c:a1:62:96 (oui Unknown), length 548
15:09:38.576769 IP x3650.local.bootps > 192.168.215.107.bootpc: BOOTP/DHCP, Reply, length 300
15:09:38.958153 IP x3650.local.bootps > 192.168.201.30.bootpc: BOOTP/DHCP, Reply, length 300
15:09:40.107955 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 28:6e:d4:aa:10:62 (oui Unknown), length 548
15:09:40.121417 IP x3650.local.bootps > 192.168.201.30.bootpc: BOOTP/DHCP, Reply, length 300
15:09:41.569767 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 1c:ba:8c:a1:62:96 (oui Unknown), length 548
15:09:41.570416 IP x3650.local.bootps > 192.168.215.107.bootpc: BOOTP/DHCP, Reply, length 300
15:09:41.682285 IP 192.168.203.33.bootpc > x3650.local.bootps: BOOTP/DHCP, Request from b8:27:eb:9e:b6:da (oui Unknown), length 300
15:09:43.189782 IP 192.168.200.245.bootpc > x3650.local.bootps: BOOTP/DHCP, Request from 28:6e:d4:aa:0c:2c (oui Unknown), length 548
15:09:43.244362 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 28:6e:d4:aa:0c:2c (oui Unknown), length 548
15:09:44.245938 IP x3650.local.bootps > 192.168.200.245.bootpc: BOOTP/DHCP, Reply, length 300
15:09:44.656826 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 1c:ba:8c:a1:62:96 (oui Unknown), length 548
15:09:44.657264 IP x3650.local.bootps > 192.168.215.107.bootpc: BOOTP/DHCP, Reply, length 300
15:09:45.340908 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 28:6e:d4:aa:0c:2c (oui Unknown), length 548
15:09:45.354991 IP x3650.local.bootps > 192.168.200.245.bootpc: BOOTP/DHCP, Reply, length 300
15:09:47.575829 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 1c:ba:8c:a1:62:96 (oui Unknown), length 548
15:09:47.576532 IP x3650.local.bootps > 192.168.215.107.bootpc: BOOTP/DHCP, Reply, length 300
15:09:50.643526 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 1c:ba:8c:a1:62:96 (oui Unknown), length 548
15:09:50.644107 IP x3650.local.bootps > 192.168.215.107.bootpc: BOOTP/DHCP, Reply, length 300

dhcpd.conf

ddns-update-style none;
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 3600;
max-lease-time 86400;
authoritative;
log-facility local7;

subnet 192.168.0.0 netmask 255.255.0.0 {
  range 192.168.200.100 192.168.220.254;
  option routers 192.168.0.1;
  option domain-name-servers 8.8.8.8;
}

Надеюсь на вашу помощь друзья. Заранее спасибо

iceangel
()

RSS подписка на новые темы