Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

Mr.Pig

забавные задачки

Рекомендуемые сообщения

Друзья, давайте как в шахматах баловаться задачками типа "Мат в 1-2-3 хода".

 

Задачка №1

 

Есть линукс-хост, на нём сетевой интерфейс eth0 настроен

 

адрес 192.168.0.77

маска 255.255.255.0

шлюз 192.168.0.1

 

Очевидно, что в свою подсеть 192.168.0.х он посылает пакеты прямо,

а во все остальные через шлюз 192.168.0.1

 

Задача - как настроить, чтобы он и на соседние адреса своей же подсети слал пакеты через шлюз.

Придумайте несколько разных решений.

 

Решения должны быть короткие, простые, элегантные.

 

Не надо писать типа "а я пропишу маршруты до всех остальных адресов руками

ip ro add 192.168.0.2 via 192.168.0.1

ip ro add 192.168.0.3 via 192.168.0.1

...

ip ro add 192.168.0.76 via 192.168.0.1

ip ro add 192.168.0.78 via 192.168.0.1

ip ro add 192.168.0.79 via 192.168.0.1

...

ip ro add 192.168.0.254 via 192.168.0.1"

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ты молодец! Хорошая задачка. А я хотел сначала сюда тройной интеграл написать - чтобы ты простое решение нашел - да потом не стал. Пожалел

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задачка №1 решение №1

 

создаём дополнительную таблицу маршрутизации,

делаем однократно:

 

echo 300 routing2 >> /etc/iproute2/rt_tables

 

теперь в автозагрузку (типа в /etc/rc.local) засовываем

 

ip rule add from 192.168.0.77 table routing2
ip route add default via 192.168.0.1 table routing2

 

Как это работает - в Линуксе дополнительные таблицы изначально пусты,

в них не попадают даже directly connected интерфейсы,

а значит всё что исходит с 192.168.0.77 будет уходить на шлюз 192.168.0.1

 

 

Задачка №1 решение №2

 

Решение идиотическое, но...хехе.  Узнаём какой mac-адрес у роутера 192.168.0.1

и пишем правило arptables, которое у всех исходящих пакетов меняет mac-адрес

назначения на этот mac.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Свин, Первое решение, это тоже самое что 

 

Не надо писать типа "а я пропишу маршруты до всех остальных адресов руками

ip ro add 192.168.0.2 via 192.168.0.1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну как же то же самое ?

Одно дело так:

 

ip rule add from 192.168.0.77 table routing2
ip route add default via 192.168.0.1 table routing2

 

Другое дело - 252 маршрута руками ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задачка №2

 

Есть очень древний свич 3COM. На нём WEB-морда.

Там есть настройка IP для этой морды - адрес, маска, шлюз.

Шлюз не прописан. Отсюда очевидно морда должна отвечать

только в свою подсеть. Однакоже она прекрасно отвечает и в другие подсети,

если к ней обращаются из других.

Как это может быть - шлюза не знает, а всё прекрасно шлюзует !

Ваши предположения - почему это так ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Другое дело - 252 маршрута руками ?

Add Static Route 

ip route add (network)/(mask) via (ip to route through)

maska-filme-fakty-eto-interesno-poznavat

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В качестве решения задачки 1 можно добавить 2 маршрута в 192.168.0.х/25.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задачка №1 решение №1

 

создаём дополнительную таблицу маршрутизации,

делаем однократно:

 

echo 300 routing2 >> /etc/iproute2/rt_tables

 

теперь в автозагрузку (типа в /etc/rc.local) засовываем

 

ip rule add from 192.168.0.77 table routing2

ip route add default via 192.168.0.1 table routing2

 

Как это работает - в Линуксе дополнительные таблицы изначально пусты,

в них не попадают даже directly connected интерфейсы,

а значит всё что исходит с 192.168.0.77 будет уходить на шлюз 192.168.0.1

 

можно и не создавать доп таблиц

 

route del -net 192.168.0.0/24 dev eth0

route add -host 192.168.0.1 dev eth0

route add -net 192.168.0.0/24 gw 192.168.0.1

 

а если 192.168.0.1 является шлюзом по умолчанию то достаточно

 

route del -net 192.168.0.0/24 dev eth0

Задачка №2

 

Есть очень древний свич 3COM. На нём WEB-морда.

Там есть настройка IP для этой морды - адрес, маска, шлюз.

Шлюз не прописан. Отсюда очевидно морда должна отвечать

только в свою подсеть. Однакоже она прекрасно отвечает и в другие подсети,

если к ней обращаются из других.

Как это может быть - шлюза не знает, а всё прекрасно шлюзует !

Ваши предположения - почему это так ?

на шлюзе в ее подсети включен proxy arp

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты