Проблема с маршрутизацией локалки в инет
есть АДСЛ, он получает статический "серый" ипшник и есть подсеть на 8 реальных ипшников, которая стоит за этим "серым" IP. Подымаю ипшник на сет. интерфейсе линуха ипшник из реальной подсетки. пингуюсь из мира - все нормально, по ссаш логинюсь без проблем, а вот линух ничего не видит в мире (бастион ничего нерубит), кроме момента, когда стартую
ping 'ip в интернете' -I x.x.x.x
, где x.x.x.x - реальный IP адресс, поднятый на виртуальном интерфейсе из выделенной подсетки.
Табл. маршрутизации:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.54.2.1 * 255.255.255.255 UH 0 0 0 ppp0
x.x.x.x * 255.255.255.248 U 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 10.54.2.1 0.0.0.0 UG 0 0 0 ppp0
Ифэйсы:
eth0:0 Link encap:Ethernet HWaddr 00:80:48:26:59:A7
inet addr:x.x.x.x Bcast:x.x.x.x Mask:255.255.255.248
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:489 errors:0 dropped:0 overruns:0 frame:0
TX packets:475 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:41367 (40.3 Kb) TX bytes:33286 (32.5 Kb)
Interrupt:11 Base address:0x4000
eth0 Link encap:Ethernet HWaddr 00:80:48:26:59:A7
inet addr:192.168.0.253 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:977 errors:0 dropped:0 overruns:0 frame:0
TX packets:1153 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:74092 (72.3 Kb) TX bytes:79095 (77.2 Kb)
Interrupt:11 Base address:0x4000
eth1 Link encap:Ethernet HWaddr 00:80:48:23:21:F7
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1146 errors:0 dropped:0 overruns:0 frame:0
TX packets:1326 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:105910 (103.4 Kb) TX bytes:115449 (112.7 Kb)
Interrupt:10 Base address:0x6000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:437 errors:0 dropped:0 overruns:0 frame:0
TX packets:437 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:24556 (23.9 Kb) TX bytes:24556 (23.9 Kb)
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.54.2.2 P-t-P:10.54.2.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:979 errors:0 dropped:0 overruns:0 frame:0
TX packets:1157 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:74244 (72.5 Kb) TX bytes:80439 (78.5 Kb)
Прописал, правило:
/sbin/iptables -t nat -A POSTROUTING -s $i -j SNAT --to-source x.x.x.x - не помогло
пробывал изменить для внутренней подсетки шлюз, тоже не помогло:
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 x.x.x.x 255.255.255.0 U 0 0 0 eth0
На виндах на сетевухе подымаю второй реальный ИП из той-же подсетки и прописываю шлюз x.x.x.x - такая схема работает.
Нужно, чтобы шлюзом являлся внутренний ИП линуха, на все машинки внешних ип не хватит )
С серыми ипшниками никогда не сталкивался.
Помогите настроить.
- Для комментирования войдите или зарегистрируйтесь
Если я правильно понял
попробуй
Если заработает, то дальше если хочешь локалке из 192.168.x.x раздавать инет, то нужно сделать:
Re: Если я правильно понял
для реальной подсетки шлюзом должен быть "серый" IP т.е. в данном случае 10.54.2.1, иначе получится что подсеть будет маршрутизироваться через ипшник, который в ее же и входит.
Или я ошибаюсь?
Все-таки попробуй
Ведь ping 'ip в интернете' -I x.x.x.x у тебя работает. А ключ -I x.x.x.x делает ни что иное, как маршрутизацию через x.x.x.x
Если не заработает, в винде, на рабочем конфиге сделай
И вывод покажи, попробую разобраться в твоих настройках.
Настройка
при таком конфиге в инет винда идет, если ставлю шлюзом локальный адрес линуха, то не пускает.
шлюз
А что такое x.x.x.57 сейчас? Это линукс что-ли? Т.е. если ставишь на соседнем виндовом клиенте адрес шлюза x.x.x.57 (где работает linux) то все ок, а если ставишь 192.168.x.x на ту же машину, то не работает?
так точно,
так точно, ставлю шлюзом внутренний адрес 192.168.0.253, то не работает.
Линух должен перебить пакет по правилу
/sbin/iptables -t nat -A POSTROUTING -s $i -j SNAT --to-source x.x.x.57
$i - список компов, которым разрешено ходить напрямую,
но что-то не работает всеравно.
тогда поидее
тогда поидее нужно делать
iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.0.0 -j SNAT --to-source 10.54.2.1
Незабыть сделать
echo 1 > /proc/sys/net/ipv4/ip_forward
и проверить чтобы в iptables -L FORWARD был разрешен форвардинг тоже.
UPDATE: К тому же заметил что на линуксовой машине локальный ip у тебя 192.168.0.253. Попробуй еще на виндовой машине для локального интерфейса выставить адрес шлюза в этот адрес.
iptables -t nat -A
iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.0.0 -j SNAT --to-source 10.54.2.1
кажется работать не будет, эта команда заменяет адрес источника пакета на заданный 10.54.2.1, а это шлюз провайдера. Их циска не поймет куда ответы рулить после.
echo 1 > /proc/sys/net/ipv4/ip_forward
эта команда всегда выполняется при каждой загрузке.
ща поеду локально эксперементировать, сервак в другом гроде ), поэтому удаленно не все можно попробывать.
Спасибо за советы, отпишу если решу проблему, и продолжу "копать" если не получится.
У тебя ведь
У тебя ведь интернет на линуксе через 10.54.2.1 идет:
default 10.54.2.1 0.0.0.0 UG 0 0 0 ppp0
Удачи вобщем. Если что, можешь мне в аську стукнуться: 9851222
Изменил
Изменил немного схему, пришлось пожертвовать 1-м ипшником):
PPPOE подымает сам модем, ему ручками назначил внешний IP, далее на линухе на внешнем интерфейсе поднял второй внешний IP, на локальных машинках прописал как положено шлюзом внутренний адрес линуха. Короче заработало,но не совсем так, как было бы правильно.
Скорее всего проблема с NAT у провайдера, они поменяли недавно у себя оборудование и толком с ним еще не разобрались ). Еще заметил такой касяк: раньше один ипшник из выделенной ими подсетки висел на их маршрутизаторе, при трассировке этого IP, имя конечного хоста показывается как бывшее имя их маршрутизатора. Возможно они не все почистили у себя на цисках, после того как отдали этот IP. Они утверждают, что дело скорее всего в самом модеме, но что может быть в модеме, если он настроен бриджом? )
С провайдером ругаться надоело, работать - работает хоть так ).
Спасибо!