nixp.ru v3.0

22 октября 2017,
воскресенье,
11:12:40 MSK

DevOps с компанией «Флант»
kuzmichnn написал 26 октября 2005 года в 08:45 (432 просмотра) Ведет себя как мужчина; открыл 6 тем в форуме, оставил 27 комментариев на сайте.

Добрый день всем! Делаю объединение двух филиалов.

LAN первого филиала — 191.168.1.0/24, LAN второго — 192.168.15.0/24. WAN первого 10.10.1.32/30, WAN второго — 10.10.1.36/30. Пинги с роутеров друг надруга идут. Пытаюсь пропинговать WAN второго филиала из LAN первого. Ничего не получается. В качестве роутера первого филиала используется ASPLinux 10. Eth0 (192.168.1.5) смотрит в локалку, eth1 (10.10.1.34) смотрит в WAN. Вот настройки, которые я сделал на роутере первого филиала:

iptables:

# Generated by iptables-save v1.2.11 on Tue Oct 25 16:03:04 2005

*filter

-A FORWARD -d 192.168.1.0/24 -j ACCEPT

-A FORWARD -s 192.168.1.0/24 -j ACCEPT

*nat

-A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth1 -j MASQUERADE

COMMIT

У себя на компе такие настройки — ip 192.168.1.164, шлюз по умолчанию 192.168.1.5.

Подскажите, где я ошибся или недописал.

fly4life

Форвардинг пакетов между интерфейсами на шлюзе включил?

Dr. Evil

а цепочки INPUT & OUTPUT, кто будет показывать?

Dr. Evil

Саш, лучше сразу направить человека…

$ cat /proc/sys/net/ipv4/ip_forward

fly4life

Кстати, твои строчки:

kuzmichnn
-A FORWARD -d 192.168.1.0/24 -j ACCEPT

-A FORWARD -s 192.168.1.0/24 -j ACCEPT

Равносильны одной строке:

-A FORWARD -j ACCEPT

Что при политике 'ACCEPT' в цепочке 'FORWARD' вообще не несёт никакой функциональной нагрузки ;)

kuzmichnn

fly4life, Dr._Evil огромное спасибо — проблема была действительно в форвардинге

прописать то я прописал, только вот при перезагрузке этот параметр естественно вылетел, не подскажете где он прописывается для постоянной работы?

kuzmichnn
fly4life
Кстати, твои строчки:

Равносильны одной строке:

-A FORWARD -j ACCEPT

Что при политике 'ACCEPT' в цепочке 'FORWARD' вообще не несёт никакой функциональной нагрузки ;)

Полностью согласен.:)

kuzmichnn

И ещё один странный момент:

когда делаю трассировку со своего компа в головном офисе до роутера филиала, то всё замечательно:

C:\Documents and Settings\vlad>tracert 10.10.1.38

Трассировка маршрута к 10.10.1.38 с максимальным числом прыжков 30

1 <1 мс <1 мс <1 мс 192.168.1.5

2 3 ms 2 ms 2 ms 10.10.1.33

3 4 ms 4 ms 3 ms 10.10.1.37

4 20 ms 10 ms 11 ms 10.10.1.38

Трассировка завершена.

Если же я делаю трассировку напрямую с роутера головного офиса до роутера филиала, то вот, что вижу -

# traceroute 10.10.1.38

traceroute to 10.10.1.38 (10.10.1.38), 30 hops max, 38 byte packets

1 10.10.1.33 (10.10.1.33) 5.262 ms 2.480 ms 2.602 ms

2 10.10.1.37 (10.10.1.37) 3.969 ms 3.832 ms 3.338 ms

3 * * *

4 * * *

5 * * *

6 * * *

7 * * *

8 * * *

9 * * *

10 * * *

11 * * *

12 * * *

13 * * *

14 * * *

15 * * *

16 * * *

17 * * *

18 * * *

19 * * *

20 * * *

21 * * *

22 * * *

23 * * *

24 * * *

25 * * *

26 * * *

27 * * *

28 * * *

29 * * *

30 * * *

Очень странно.

fly4life
kuzmichnn
fly4life, Dr._Evil огромное спасибо — проблема была действительно в форвардинге

прописать то я прописал, только вот при перезагрузке этот параметр естественно вылетел, не подскажете где он прописывается для постоянной работы?

Либо в rc.local <font size=«-2»>(такой ведь ещё есть в ASPLinux 10? ;))</font> добавить строку:

echo "1" > /proc/sys/net/ipv4/ip_forward

либо, что правильней, задать значение «1» соответствующему параметру в sysctl.conf.

fly4life
kuzmichnn
И ещё один странный момент:

когда делаю трассировку со своего компа в головном офисе до роутера филиала, то всё замечательно:

C:\Documents and Settings\vlad>tracert 10.10.1.38

Трассировка маршрута к 10.10.1.38 с максимальным числом прыжков 30

1 <1 мс <1 мс <1 мс 192.168.1.5

2 3 ms 2 ms 2 ms 10.10.1.33

3 4 ms 4 ms 3 ms 10.10.1.37

4 20 ms 10 ms 11 ms 10.10.1.38

Трассировка завершена.

Если же я делаю трассировку напрямую с роутера головного офиса до роутера филиала, то вот, что вижу -

# traceroute 10.10.1.38

traceroute to 10.10.1.38 (10.10.1.38), 30 hops max, 38 byte packets

1 10.10.1.33 (10.10.1.33) 5.262 ms 2.480 ms 2.602 ms

2 10.10.1.37 (10.10.1.37) 3.969 ms 3.832 ms 3.338 ms

3 * * *

Очень странно.

Да не, нормально ;).

traceroute может идти по протоколу UDP, а может и по ICMP.

Виндовый tracert использует ICMP запросы для проверки маршрута, а линуксовый traceroute — UDP транаспорт. Либо где-то <font size=«-2»>(10.10.1.37)</font> на пути режется UDP по портам, используемым traceroute, либо на самом филиальном роутере.

kuzmichnn
fly4life
Либо в rc.local <font size=«-2»>(такой ведь ещё есть в ASPLinux 10? ;))</font> добавить строку:

echo "1" > /proc/sys/net/ipv4/ip_forward

либо, что правильней, задать значение «1» соответствующему параметру в sysctl.conf.

Лучше как правильней;)

kuzmichnn
fly4life
Да не, нормально ;).

traceroute может идти по протоколу UDP, а может и по ICMP.

Виндовый tracert использует ICMP запросы для проверки маршрута, а линуксовый traceroute — UDP транаспорт. Либо где-то <font size=«-2»>(10.10.1.37)</font> на пути режется UDP по портам, используемым traceroute, либо на самом филиальном роутере.

Ок, спасибо. Вероятнее всего на промежуточном роутере — так как в филиальном я ничего не режу.

kuzmichnn

И ещё такой вопросик — я хочу из своего компа(192.168.1.164) в головном офисе достукиваться до локального компа в филиале (192.168.15.5). Такое возможно?

fly4life
kuzmichnn
И ещё такой вопросик — я хочу из своего компа(192.168.1.164) в головном офисе достукиваться до локального компа в филиале (192.168.15.5). Такое возможно?

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

Пример маршрута на линуксовом роутере головного офиса (за которым сетка 192.168.1.0):

route add -net 192.168.15.0 netmask 255.255.255.0 gw $EXT_IP_ROUTER_FILIAL

где $EXT_IP_ROUTER_FILIAL — это IP-адрес на внешнем интерфейсе фиалиального роутера (за которым сетка 192.168.15.0).

kuzmichnn
fly4life
Да, возможно. Необходимо настроить маршруты, а такж убедиться, что на филиальном шлюзе ничего не режется файерволлом и включен форвардинг пакетов между интерфейсами.

Пример маршрута на линуксовом роутере головного офиса (за которым сетка 192.168.1.0):

route add -net 192.168.15.0 netmask 255.255.255.0 gw $EXT_IP_ROUTER_FILIAL

где $EXT_IP_ROUTER_FILIAL — это IP-адрес на внешнем интерфейсе фиалиального роутера (за которым сетка 192.168.15.0).

Пардон, я забыл дописать, как устроена маршутизация:

# /sbin/route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

10.10.1.32 * 255.255.255.252 U 0 0 0 eth1

192.168.1.0 * 255.255.255.0 U 0 0 0 eth0

default 10.10.1.33 0.0.0.0 UG 0 0 0 eth1

Так на головном роутере. В филиале стоит D-Link DSL-500T, настроенный в качестве маршрутизатора.

C:\Documents and Settings\vlad>tracert 192.168.15.2

Трассировка маршрута к 192.168.15.2 с максимальным числом прыжков 30

1 <1 мс <1 мс <1 мс 192.168.1.5 — адрес роутера в локальной сети головного офиса

2 2 ms 2 ms 2 ms 10.10.1.33 — промежуточный роутер провайдера

3 6 ms 4 ms 4 ms 10.10.1.37 — промежуточный роутер провайдера

4 * * * Превышен интервал ожидания для запроса.

5 * * * Превышен интервал ожидания для запроса.

Внешний IP-адрес второго офиса 10.10.1.38, внутренний 192.168.15.1.

Так что пакет с адресом назначения 192.168.15.2 уже маршрутизируется ка положено и добавлять строчку route add -net 192.168.15.0 netmask 255.255.255.0 gw $EXT_IP_ROUTER_FILIAL имхо не надо. Я не прав?

fly4life
kuzmichnn
…skip…

Так что пакет с адресом назначения 192.168.15.2 уже маршрутизируется ка положено и добавлять строчку route add -net 192.168.15.0 netmask 255.255.255.0 gw $EXT_IP_ROUTER_FILIAL имхо не надо. Я не прав?

А, ну это совсем другое дело. Значит действительно ничего прописывать не надо. На 10.10.1.33, видимо, маршрутизация уже настроена.

Тгда я не понял вопроса: «И ещё такой вопросик — я хочу из своего компа(192.168.1.164) в головном офисе достукиваться до локального компа в филиале (192.168.15.5). Такое возможно?». Работает же само ;)

kuzmichnn
fly4life
А, ну это совсем другое дело. Значит действительно ничего прописывать не надо. На 10.10.1.33, видимо, маршрутизация уже настроена.

Тгда я не понял вопроса: «И ещё такой вопросик — я хочу из своего компа(192.168.1.164) в головном офисе достукиваться до локального компа в филиале (192.168.15.5). Такое возможно?». Работает же само ;)

Действительно работает:)

Только что вернулся с филиала — оказался неправильно настроенным фаервол на D-Link DSL-500T. Теперь и пинги бегают и trace есть. Только опять непонятки:

пингую с головного офиса со своей тачки (192.168.1.164) машину в филиале (192ю168ю15ю3) — круто, всё работает, а трейс пропадает в одном месте:(

С филиала те же действия проходят нормально, т.е. 1 хоп никуда не пропадает. Возможно дело в TTL?

C:\Documents and Settings\vlad>tracert 192.168.15.3

Трассировка маршрута к 192.168.15.3 с максимальным числом прыжков 30

1 <1 мс <1 мс <1 мс 192.168.1.5

2 2 ms 2 ms 2 ms 10.10.1.33

3 5 ms 4 ms 4 ms 10.10.1.37

4 * * * Превышен интервал ожидания для запроса.

5 12 ms 11 ms 11 ms 192.168.15.3

Трассировка завершена.

C:\Documents and Settings\vlad>ping 192.168.15.3

Обмен пакетами с 192.168.15.3 по 32 байт:

Ответ от 192.168.15.3: число байт=32 время=12мс TTL=122

Ответ от 192.168.15.3: число байт=32 время=11мс TTL=122

Ответ от 192.168.15.3: число байт=32 время=10мс TTL=122

Ответ от 192.168.15.3: число байт=32 время=12мс TTL=122

Статистика Ping для 192.168.15.3:

Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),

Приблизительное время приема-передачи в мс:

Минимальное = 10мсек, Максимальное = 12 мсек, Среднее = 11 мсек

fly4life

D-Link DSL-500T — это, значит, филиальный роутер, у которого IP 10.10.1.38.

Дело в нём. Не всё ты там донастроил верно.

kuzmichnn
fly4life
D-Link DSL-500T — это, значит, филиальный роутер, у которого IP 10.10.1.38.

Дело в нём. Не всё ты там донастроил верно.

Абсолютно верно.

Значит дело не в TTL?

Просто странно, что с филиала trace без потери хопов, а с головного офиса с потерей. Ну вообщем то это не очень важно — так уж для чистоты эксперимента.

PS Огромное спасибо за помощь. Смотри почту;)