The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"Настройка маршрутов утилитой ip из iproute2"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / Linux)
Изначальное сообщение [ Отслеживать ]

"Настройка маршрутов утилитой ip из iproute2"  –1 +/
Сообщение от Перспективный on 20-Сен-17, 10:23 
Привет. Подключил 2го провайдера через PPPoE (Ростелеком). Настроил маршрутизацию. Оба канала в интернет активны и работают как ожидается.
Возникли следующие проблемы с утилитой ip из пакета iproute2:
1. не могу сменить маршрут по дефолту на pppoe подключение
$ip route list
default via 10.0.0.171 dev eth0
10.0.0.168/30 dev eth0 proto kernel scope link src 10.0.0.170
30.0.0.147 dev ppp0 proto kernel scope link src 20.0.0.25

$ip r g 8.8.8.8
8.8.8.8 via 10.10.0.171 dev eth0 src 10.10.0.170

Пробую сменить
$ip route del default
$ip route add default via 30.0.0.147
RTNETLINK answers: Network is unreachable
потому что выданный pppoe адрес из другой подсети чем gw для него

утилита route отрабатывает нормально
$route add default gw 30.0.0.147

Как тут быть с утилитой ip?

2. Проблема вытекает из первой, хочу сделать простую балансировку по обоим каналам

$ip route add default scope global nexthop via 10.0.0.171 dev eth0 weight 1 nexthop via 30.0.0.147 dev ppp0 weight 2
RTNETLINK answers: Network is unreachable

Для этой команды я не могу придумать замены утилитой route, что делать?


Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Настройка маршрутов утилитой ip из iproute2"  +/
Сообщение от stalker37 email(ok) on 20-Сен-17, 10:50 
ip route del default
ip route add default  dev ppp0
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Настройка маршрутов утилитой ip из iproute2"  –1 +/
Сообщение от Перспективный on 20-Сен-17, 13:59 
> ip route del default
> ip route add default  dev ppp0

так не работает

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Настройка маршрутов утилитой ip из iproute2"  +/
Сообщение от Аноним (??) on 20-Сен-17, 21:42 
>> ip route del default
>> ip route add default  dev ppp0
> так не работает

ip route add default via $ипшник_на_том_конце_туннеля dev ppp0

если не работает см наты и прочие iptables-ы

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Настройка маршрутов утилитой ip из iproute2"  +/
Сообщение от Аноним (??) on 20-Сен-17, 21:43 
>>> ip route del default
>>> ip route add default  dev ppp0
>> так не работает
>  ip route add default via $ипшник_на_том_конце_туннеля dev ppp0
> если не работает см наты и прочие iptables-ы

ЗЫ и tcpdump + conntrack в помощь

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Настройка маршрутов утилитой ip из iproute2"  +/
Сообщение от Перспективный on 21-Сен-17, 08:13 
>>> ip route del default
>>> ip route add default  dev ppp0
>> так не работает
>  ip route add default via $ипшник_на_том_конце_туннеля dev ppp0

Я ваше написал уже в чём проблема:
Если $ипшник_на_том_конце_туннеля из другой подсети, то ответ будет таким
RTNETLINK answers: Network is unreachable

И выше спросил, что тут можно поделать с утилитой ip, если утилита route работает нормально

> если не работает см наты и прочие iptables-ы

допустим этого ничего нет


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Настройка маршрутов утилитой ip из iproute2"  +/
Сообщение от Аноним (??) on 21-Сен-17, 11:46 
>> ip route del default
>> ip route add default  dev ppp0
> так не работает

ip route replace default dev ppp0
у меня именно так работает.
Если не работает - пишите, как именно не работает.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

7. "Настройка маршрутов утилитой ip из iproute2"  +/
Сообщение от Перспективный on 21-Сен-17, 17:27 
>>> ip route del default
>>> ip route add default  dev ppp0
>> так не работает
> ip route replace default dev ppp0
> у меня именно так работает.
> Если не работает - пишите, как именно не работает.

Да никак не работает. Debian 9, по простому пример вообще с одним сетевым линком. В сети из 2х устройств - 192.168.0.1 это роутер.

»iptables -L -nx
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        

»ip route ls
default via 192.168.0.1 dev wlan0 proto dhcp src 192.168.0.2 metric 1024  
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.2  
192.168.0.1 dev wlan0 proto dhcp scope link src 192.168.0.2 metric 1024  
»ip r g 8.8.8.8
8.8.8.8 via 192.168.0.1 dev wlan0 src 192.168.0.2  
    cache  
»ip route del default
»ip route ls
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.2  
192.168.0.1 dev wlan0 proto dhcp scope link src 192.168.0.2 metric 1024  
»ip route replace default dev wlan0
»ip route ls
default dev wlan0 scope link  
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.2  
192.168.0.1 dev wlan0 proto dhcp scope link src 192.168.0.2 metric 1024  
»ip r g 8.8.8.8
8.8.8.8 dev wlan0 src 192.168.0.2  
    cache  

Но, ping 8.8.8.8 не работает. telnet ya.ru 80 не работает, ведь нет маршрутов никуда.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Настройка маршрутов утилитой ip из iproute2"  +/
Сообщение от pavel_simple (ok) on 21-Сен-17, 20:40 
>[оверквотинг удален]
> »ip route replace default dev wlan0
> »ip route ls
> default dev wlan0 scope link
> 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.2
> 192.168.0.1 dev wlan0 proto dhcp scope link src 192.168.0.2 metric 1024
> »ip r g 8.8.8.8
> 8.8.8.8 dev wlan0 src 192.168.0.2
>     cache
> Но, ping 8.8.8.8 не работает. telnet ya.ru 80 не работает, ведь нет
> маршрутов никуда.

что-то делаешь не так

root@jessie:~# ip r
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.216
root@jessie:~# ip r d 0/0
root@jessie:~# ip r
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.216
root@jessie:~# ip r a 0/0 via 192.168.1.1
root@jessie:~# ip r g 8.8.8.8
8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.216
    cache
root@jessie:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=54 time=29,507 ms
^C--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/stddev = 29,507/29,507/29,507/0,000 ms
root@jessie:~# ip li add name g1 type gre remote 12.12.12.12 local 13.13.13.13
root@jessie:~# ip r
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.216
root@jessie:~# ip a a 23.23.23.23 remote 123.23.23.23 dev g1
root@jessie:~# ip r
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.216
root@jessie:~# ip li set g1 up
root@jessie:~# ip r
default via 192.168.1.1 dev eth0
123.23.23.23 dev g1 proto kernel scope link src 23.23.23.23
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.216
root@jessie:~# ip r d 0/0
root@jessie:~# ip r
123.23.23.23 dev g1 proto kernel scope link src 23.23.23.23
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.216
root@jessie:~# ip route add default scope global nexthop via 192.168.1.1 dev eth0 weight 1 nexthop via 123.23.23.23 dev g1 weight 2
root@jessie:~# ip r
default
    nexthop via 192.168.1.1  dev eth0 weight 1
    nexthop via 123.23.23.23  dev g1 weight 2
123.23.23.23 dev g1 proto kernel scope link src 23.23.23.23
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.216
root@jessie:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
^C--- 8.8.8.8 ping statistics ---
30 packets transmitted, 0 packets received, 100% packet loss

при этом в консоле с tcpdump'ом видно

root@jessie:~# tcpdump -npi g1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on g1, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
22:35:19.536968 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 2854, seq 14, length 64
22:35:20.538165 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 2854, seq 15, length 64
22:35:21.539322 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 2854, seq 16, length 64
22:35:22.540509 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 2854, seq 17, length 64
22:35:23.541709 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 2854, seq 18, length 64
22:35:24.542907 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 2854, seq 19, length 64
22:35:25.544106 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 2854, seq 20, length 64
22:35:26.545302 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 2854, seq 21, length 64
22:35:27.546478 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 2854, seq 22, length 64
22:35:28.547673 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 2854, seq 23, length 64
22:35:29.548858 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 2854, seq 24, length 64
22:35:30.550062 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 2854, seq 25, length 64
22:35:31.551264 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 2854, seq 26, length 64

это во первых

а во вторых, так поделить увеличить пропускную способность конечно можно, но лучше не надо, по крайней мере без использования промежуточного узла хождение по тырнетам будет работать через жoпy

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Настройка маршрутов утилитой ip из iproute2"  +/
Сообщение от Перспективный on 21-Сен-17, 21:20 
> это во первых

хорошо, беру твой пример и полностью повторяю на живой системе, заменив лишь 192.168.1.1 на 192.168.0.1 и eth0 на wlan0
»tcpdump -npi g1
02:06:08.233367 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 4961, seq 1, length 64
02:06:09.241759 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 4961, seq 2, length 64
02:06:10.265763 IP 23.23.23.23 > 8.8.8.8: ICMP echo request, id 4961, seq 3, length 64

Никуда ничего не идёт. Что я забыл сделать? iptables пустые, все ядерные настройки сети дефолтные, кроме net.ipv4.ip_forward=1

>но лучше не надо, по крайней мере без использования промежуточного узла

я собрался это делать на роутере(тоже debian9), то есть он и будет промежуточным узлом, или я не так понял?

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Настройка маршрутов утилитой ip из iproute2"  +/
Сообщение от Перспективный on 21-Сен-17, 21:26 
ой, никуда идти и не должно, туплю уже и запутался.

у меня всё равно с живой ppp0 поднятой что ppp, что pppoe, при попытке сменить маршрут
RTNETLINK answers: Network is unreachable
я не знаю как с помощью ip  поднять pppoe соединение чтобы этот ip смог прописать маршрут


Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Настройка маршрутов утилитой ip из iproute2"  +/
Сообщение от Перспективный on 24-Сен-17, 19:50 
> $ip route del default
> $ip route add default via 30.0.0.147
> RTNETLINK answers: Network is unreachable

Ответ нашёл в коде, поэтому отвечаю сам себе, может кому пригодится.
ip хочет обязательно знать сеть для любого хопа задаваемых им маршрутов
Поэтому просто определяем сеть и затем маршрут
ip route add 30.0.0.147/29 dev ppp0
ip route add default via 30.0.0.147


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor