проблема думаю пустяковая...просто я еще только учусь, что-то делаю не так.доки читал,не помогло.если ткнете что почитать полезного по данному вопросу - скажу спасибо =)имеется линуховая машина,сетка 10.80.15.0/24 (ее админю не я,так что причины такой корявости мне неизвестны =)),ip линуховой машины - 10.80.15.1,интерфейс - eth5.инет на линуховую машину попадает через шлюз 10.80.15.254
к линуховой машине подцеплен комп с виндой,ip на интерфейсе уходящим туда - опять таки 10.80.15.1,интерфейс eth0,ip на виндовой машине - 10.80.15.66
нужно чтобы инет был доступен на виндовом компе.(инет на самой линуховой машине настроен и работает)
мне приходит в голову две идеи.
1)тупо пробрасывать все пакета приходящие с 10.80.15.66 на внешний интерфейс(eth5),шлюз на виндовой машине прописать 10.80.15.254
2)натить приходящие пакеты,шлюз на виндовой машине прописать 10.80.15.1
попытался реализовать и то и то.не заработало ничего =)для начала сделал так:
ip route add default dev eth0 table to_win
ip rule add to 10.80.15.66 table to_win
тут все нормально,виндовый комп успешно пингуется1)далее.
ip route add default dev eth5 table to_inet
ip rule add from 10.80.15.66 table to_inet
с виндовой машины ничего дальше линуховой не пингуется,шлюз на ней прописан 10.80.15.254.что я тут сделал неправильно?2)план б =)
ip route add default via 10.80.15.254 dev eth5 table to_inet
ip rule add from 10.80.15.66 nat 10.80.15.1 table to_inet
на виндовом компе шлюз 10.80.15.1.опять не пашет.что тут не так?=)
Первый вариант одним только ip роутингом не реализуем в принципе. Машины с адресами 10.80.15.66 и 10.80.15.254 не находятся физически в одной сети, следовательно арп запрос от 10.80.15.66 машина с адресом 10.80.15.254 не получит, и не будет знать мак адрес шлюза. Даже если вписать его в винде статически, линукс не будет заниматься пересылкой транзитных эзернет фреймов.
Второй вариант с натом, тоже не красивый. :) Возможно его можно реализовать с помощью iptables...
Предлагаю сделать на linux бридж и добавить в него интерфейсы eth0 и eth5.
Для этого нужно включить бридж в ядре, установить пакет bridge-utils, сделать:brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth5
ifconfig eth0 0.0.0.0 promisc
ifconfig eth5 0.0.0.0 promisc
ifconfig br0 10.80.15.1 netmask 255.255.255.0 broadcast 10.80.15.255 up
ip route add default via 10.80.15.254После этого машина с 10.80.15.66 будет видеть напрямую все машины сети 10.80.15.0.
>Первый вариант одним только ip роутингом не реализуем в принципе. Машины с
>адресами 10.80.15.66 и 10.80.15.254 не находятся физически в одной сети, следовательно
>арп запрос от 10.80.15.66 машина с адресом 10.80.15.254 не получит, и
>не будет знать мак адрес шлюза. Даже если вписать его в
>винде статически, линукс не будет заниматься пересылкой транзитных эзернет фреймов.
>Второй вариант с натом, тоже не красивый. :) Возможно его можно реализовать
>с помощью iptables...
>Предлагаю сделать на linux бридж и добавить в него интерфейсы eth0 и
>eth5.
>Для этого нужно включить бридж в ядре, установить пакет bridge-utils, сделать:
>
>brctl addbr br0
>brctl addif br0 eth0
>brctl addif br0 eth5
>ifconfig eth0 0.0.0.0 promisc
>ifconfig eth5 0.0.0.0 promisc
>ifconfig br0 10.80.15.1 netmask 255.255.255.0 broadcast 10.80.15.255 up
>ip route add default via 10.80.15.254
>
>После этого машина с 10.80.15.66 будет видеть напрямую все машины сети 10.80.15.0.
>На линуксе:
echo "1" > /proc/sys/net/ipv4/ip_forward
На винде:
gateway 10.80.15.1
>На линуксе:
>
>echo "1" > /proc/sys/net/ipv4/ip_forward
>
>На винде:
>
>gateway 10.80.15.1Вот только одно но - нужен шлюз в сеть, в которой винда сама находится...
>
>>На линуксе:
>>
>>echo "1" > /proc/sys/net/ipv4/ip_forward
>>
>>На винде:
>>
>>gateway 10.80.15.1
>
>Вот только одно но - нужен шлюз в сеть, в которой винда
>сама находится...
???????
>???????ОК. Машина 10.80.15.66 послала пакет в интернет через щлюз 10.80.15.1. Далее по таблице маршрутизации 10.80.15.1 пакет попадает на шлюз 10.80.15.254 и далее в интернет. Проблема в том, что ответ машина 10.80.15.254 не сможет передать на 10.80.15.66, т.к. не находится с ней физически в одной сети.
>>???????
>
>ОК. Машина 10.80.15.66 послала пакет в интернет через щлюз 10.80.15.1. Далее по
>таблице маршрутизации 10.80.15.1 пакет попадает на шлюз 10.80.15.254 и далее в
>интернет. Проблема в том, что ответ машина 10.80.15.254 не сможет передать
>на 10.80.15.66, т.к. не находится с ней физически в одной сети.
>
уже все решил - обыкновенным натом на уровне iptables