Требуется создать шлюз из сети 192.168.1 в сеть 192.168.0 из компа с двумя сетевыми карточками с FreeBSD 5.4.
Первая ethernet карточка: vr0 192.168.0.146
Вторая ethernet карточка: fxp0 192.168.1.147
Прописываю в /etc/rc.conf строчку gateway_enable="YES". Перезагружаю. В результате из сети 192.168.1 пингуются адреса обоих интерфейсов шлюза (192.168.0.146 и 192.168.147), но другие адреса сети 192.168.0.х не доступны.Default GateWay на компах (192.168.1.147 для машин сети 192.168.1) разумеется прописан.
В чем может быть причина? Простите если вопрос банальный. Вот таблица маршрутизации на шлюзе:
Destination Gateway Flags Refs Use Netif Expire
localhost localhost UH 0 43 lo0
192.168.0 link#1 UC 0 0 vr0
192.168.0.1 00:0c:6e:83:5b:82 UHLW 0 40 vr0 1165
192.168.0.255 ff:ff:ff:ff:ff:ff UHLWb 0 45 vr0
192.168.1 link#2 UC 0 0 fxp0
192.168.1.145 00:e0:4a:39:00:87 UHLW 0 44 fxp0 1138
192.168.1.255 ff:ff:ff:ff:ff:ff UHLWb 0 45 fxp0
Настроить маршруты для сети. В Вашем случае примерно так:route add 192.168.1/24 192.168.1.147
route add 192.168.0/24 192.168.0.146можно через нитерфейс:
route add 192.168.1/24 -interface fxp0
route add 192.168.0/24 -interface vr0"В результате из сети 192.168.1 пингуются адреса обоих интерфейсов шлюза (192.168.0.146 и 192.168.147), но другие адреса сети 192.168.0.х не доступны."
Потому что сервер знает только адреса которые приписаны у него,и не более того. Поэтому адреса поднятые на сервере пингуются, но нуда пулять пакеты дальше он не вкурсе.
>route add 192.168.1/24 192.168.1.147
>route add 192.168.0/24 192.168.0.146
>
>можно через нитерфейс:
>route add 192.168.1/24 -interface fxp0
>route add 192.168.0/24 -interface vr0Пробовал и так и так. Ну ни в какую не работает. Такое ощущение, что хост не работает в режиме шлюза. Хотя gateway_enable="YES" в /etc/rc.conf прописан, файрволл выключен.
Куда копать и что делать не знаю.
>
>>route add 192.168.1/24 192.168.1.147
>>route add 192.168.0/24 192.168.0.146
>
А разве это адреса не из одной сети? т.е. маска то /24, что соответствует 255.255.255.0 и адрес 192.168.1.147 равнозначен 192.168.0.147
Т.к. они различаются по последнему октету. отсюда и травла? и соответсвенно строить надо не шлюз а мост. 8)
>А разве это адреса не из одной сети? т.е. маска то /24,
>что соответствует 255.255.255.0 и адрес 192.168.1.147 равнозначен 192.168.0.147
Вообще-то 192.168.1.0/24 и 192.168.0.0/24 это разные подсети, так что не нужно.>>>route add 192.168.1/24 192.168.1.147
>>>route add 192.168.0/24 192.168.0.146
2Автор: а шлюз делаешь маршрутом по умолчанию на машинах в обоих подсетях?
Нужно и там, и там.
Плюс, что говрит ipfw list?
может нужно что-нить вида ipfw add allow ip from network1 to network2 и наоборот?
>Вообще-то 192.168.1.0/24 и 192.168.0.0/24 это разные подсети, так что не нужно.
Может я чего забыл/не понял, но сети различаются по маске. Маска /24 отсекает 3(три) первых октета. И соответсвенно остается последний!
>>Вообще-то 192.168.1.0/24 и 192.168.0.0/24 это разные подсети, так что не нужно.
>Может я чего забыл/не понял, но сети различаются по маске. Маска /24
>отсекает 3(три) первых октета. И соответсвенно остается последний!
Вероятно мы друг друга не понимаем.
/24 - это 255.255.255.0
Хост x.y.z.5 с маской 255.255.255.0 имеет непосредственный доступ только к хостам x.y.z.0-255 без использования шлюза.
Если он хочет попасть в x.y.z+1.0/24 ему нужен шлюз.
>>>Вообще-то 192.168.1.0/24 и 192.168.0.0/24 это разные подсети, так что не нужно.
>>Может я чего забыл/не понял, но сети различаются по маске. Маска /24
>>отсекает 3(три) первых октета. И соответсвенно остается последний!
>Вероятно мы друг друга не понимаем.
>/24 - это 255.255.255.0
>Хост x.y.z.5 с маской 255.255.255.0 имеет непосредственный доступ только к хостам x.y.z.0-255
>без использования шлюза.
>Если он хочет попасть в x.y.z+1.0/24 ему нужен шлюз.
Так в том то и дело при маске 255.255.255.0 без разницы какие z или z+1 т.к. это его подсеть класса С, а вот если надо различать 192.168.0.5 192.168.1.5 маска должна быть /16 или 255.255.0.0
Классная трава!
Бегом читать доки по сетям
Машины первой сети
Адрес сети 192.168.1.0/24
Шлюз 192.168.1.1Машины второй сети
Адрес сети 192.168.0.0/24
Шлюз 192.168.0.1Проверьте что используются правильные шлюзы
Запустите tcpdump на шлюзе и пустите пинг. Посмотите, что вылезет. И не забудьте перед запуском пинга удостовериться, что пингуемый хост не дропает icmp, как это водится у мелкософтовской платформы.
>Запустите tcpdump на шлюзе и пустите пинг. Посмотите, что вылезет.Сейчас попробую.
>И не
>забудьте перед запуском пинга удостовериться, что пингуемый хост не дропает icmp,
>как это водится у мелкософтовской платформы.Пинги не дропает, файрволл отключен. На комманду:
$ipfw list
выдал:
65535 allow ip from any to anyКроме того в /etc/rc.conf стоит firewall_enabled="NO"
Может быть есть другой ключ помимо gateway_enable="YES" в rc.conf, который нужно куда-нить прописать?
>>Запустите tcpdump на шлюзе и пустите пинг. Посмотите, что вылезет.
>
>Сейчас попробую.
>
>>И не
>>забудьте перед запуском пинга удостовериться, что пингуемый хост не дропает icmp,
>>как это водится у мелкософтовской платформы.
>
>Пинги не дропает, файрволл отключен. На комманду:
>$ipfw list
>выдал:
>65535 allow ip from any to any
>
>Кроме того в /etc/rc.conf стоит firewall_enabled="NO"
>
>Может быть есть другой ключ помимо gateway_enable="YES" в rc.conf, который нужно куда-нить
>прописать?
18:02:18.156973 IP 192.168.2.5 > 192.168.1.1: icmp 64: echo request seq 1
18:02:18.264361 IP 192.168.1.1 > 192.168.2.5: icmp 64: echo reply seq 1
18:02:19.170956 IP 192.168.2.5 > 192.168.1.1: icmp 64: echo request seq 2
18:02:19.264336 IP 192.168.1.1 > 192.168.2.5: icmp 64: echo reply seq 2
18:02:20.181075 IP 192.168.2.5 > 192.168.1.1: icmp 64: echo request seq 3
18:02:20.234328 IP 192.168.1.1 > 192.168.2.5: icmp 64: echo reply seq 3Пример прохождения 3 пингов. У вас точно были и request и reply?
В ОБОИХ сетях ТОЧНО прописаны ПРАВИЛЬНЫЕ шлюзы? Вобщем, выложите коротенький дамп плиз.
>18:02:18.156973 IP 192.168.2.5 > 192.168.1.1: icmp 64: echo request seq 1
>18:02:18.264361 IP 192.168.1.1 > 192.168.2.5: icmp 64: echo reply seq 1
>18:02:19.170956 IP 192.168.2.5 > 192.168.1.1: icmp 64: echo request seq 2
>18:02:19.264336 IP 192.168.1.1 > 192.168.2.5: icmp 64: echo reply seq 2
>18:02:20.181075 IP 192.168.2.5 > 192.168.1.1: icmp 64: echo request seq 3
>18:02:20.234328 IP 192.168.1.1 > 192.168.2.5: icmp 64: echo reply seq 3Вот как примерно выглядил мой пинг (при попытки с 192.168.1.145 пингануть 192.168.0.1):
17:40:55.232435 IP 192.168.1.145 > 192.168.0.1: icmp 64: echo request seq 53249
>Пример прохождения 3 пингов. У вас точно были и request и reply?
Нет, как видно только request.
САМОЕ ИНТЕРЕСНОЕ: Из нулевой подсети - 192.168.0, пингуется адреса из 192.168.1
(раньше я из нулевой сети не пробовал первую пинговать)
>В ОБОИХ сетях ТОЧНО прописаны ПРАВИЛЬНЫЕ шлюзы?
Ну, да, разумеется.
В общем получается, что доступ через шлюз работает из нулевой подсети в первую, а из первой в нулевую (что собственно мне более важно) не работает.
>Вот как примерно выглядил мой пинг (при попытки с 192.168.1.145 пингануть 192.168.0.1):
>
>
>17:40:55.232435 IP 192.168.1.145 > 192.168.0.1: icmp 64: echo request seq 53249
>
>>Пример прохождения 3 пингов. У вас точно были и request и reply?
>
>Нет, как видно только request.
192.168.0.1 - это адрес шлюза или хоста в сети 192.168.0 ?
Укажите адреса интерфейсов шлюза, плиз.
>САМОЕ ИНТЕРЕСНОЕ: Из нулевой подсети - 192.168.0, пингуется адреса из 192.168.1
У меня всетаки есть подозрение, что в сети 192.168.0 прописан не тот шлюз. Уж очень похоже.А, стоп! Сеть 192.168.0 часом не соединена с интернетом через другой шлюз?
Если так, то надо на хостах в этой сети указать, что для маршрутизации в сеть 192.168.1 использовать ваш шлюз в эту сеть.>(раньше я из нулевой сети не пробовал первую пинговать)
>
>>В ОБОИХ сетях ТОЧНО прописаны ПРАВИЛЬНЫЕ шлюзы?
>
>Ну, да, разумеется.
Вы это проверяли?
>>Нет, как видно только request.
>192.168.0.1 - это адрес шлюза или хоста в сети 192.168.0 ?192.168.0.1 - это шлюз с интернетом в сети 192.168.0
Почти все хосты в нулевой сети имеют в качестве дефолтового шлюза именно 192.168.0.1>Укажите адреса интерфейсов шлюза, плиз.
>>САМОЕ ИНТЕРЕСНОЕ: Из нулевой подсети - 192.168.0, пингуется адреса из 192.168.1
>У меня всетаки есть подозрение, что в сети 192.168.0 прописан не тот
>шлюз. Уж очень похоже.
>А, стоп! Сеть 192.168.0 часом не соединена с интернетом через другой шлюз?Хосты нулевой (192.168.0) сети выходят в и-нет через 192.168.0.1
Но я настраиваю, в данный момент др. шлюз (межну сетями 192.168.0 и 192.168.1)>Если так, то надо на хостах в этой сети указать, что для
>маршрутизации в сеть 192.168.1 использовать ваш шлюз в эту сеть.А, ясно, сейчас попробую.
>А, стоп! Сеть 192.168.0 часом не соединена с интернетом через другой шлюз?
>
>Если так, то надо на хостах в этой сети указать, что для
>маршрутизации в сеть 192.168.1 использовать ваш шлюз в эту сеть.Большое спасибо demus! Действительно на шлюзе 192.168.0.1 не был указан маршрут в сеть 192.168.1 через "мой" шлюз - 192.168.0.146. В результате пакеты из первой сети доходили до хостов нулевой сети, но не могли вернуться т.к. не знали обратного маршрута...
Странно, что я раньше не подумал об этом :(Большое спасибо Вам за помощь!
>route add 192.168.1/24 192.168.1.147
>route add 192.168.0/24 192.168.0.146
Ай черт, поутру совсем опух, неправильно, вот так надо:
route add 192.168.1/24 192.168.0.146
route add 192.168.0/24 192.168.1.147Сорри, после ДР был :-)
А в ipfw у тебя правила как прописаны?
>А в ipfw у тебя правила как прописаны?65535 allow ip from any to any
К тому же файрволл отключен