Mr.Pig Жалоба Опубликовано 19 марта, 2015 Друзья, давайте как в шахматах баловаться задачками типа "Мат в 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" Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
evmian Жалоба Опубликовано 20 марта, 2015 Ты молодец! Хорошая задачка. А я хотел сначала сюда тройной интеграл написать - чтобы ты простое решение нашел - да потом не стал. Пожалел Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mr.Pig Жалоба Опубликовано 21 марта, 2015 Задачка №1 решение №1 создаём дополнительную таблицу маршрутизации, делаем однократно: echo 300 routing2 >> /etc/iproute2/rt_tables теперь в автозагрузку (типа в /etc/rc.local) засовываем ip rule add from 192.168.0.77 table routing2ip 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. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ГМО Жалоба Опубликовано 21 марта, 2015 Свин, Первое решение, это тоже самое что Не надо писать типа "а я пропишу маршруты до всех остальных адресов руками ip ro add 192.168.0.2 via 192.168.0.1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mr.Pig Жалоба Опубликовано 24 марта, 2015 Ну как же то же самое ? Одно дело так: ip rule add from 192.168.0.77 table routing2ip route add default via 192.168.0.1 table routing2 Другое дело - 252 маршрута руками ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mr.Pig Жалоба Опубликовано 24 марта, 2015 Задачка №2 Есть очень древний свич 3COM. На нём WEB-морда. Там есть настройка IP для этой морды - адрес, маска, шлюз. Шлюз не прописан. Отсюда очевидно морда должна отвечать только в свою подсеть. Однакоже она прекрасно отвечает и в другие подсети, если к ней обращаются из других. Как это может быть - шлюза не знает, а всё прекрасно шлюзует ! Ваши предположения - почему это так ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ГМО Жалоба Опубликовано 24 марта, 2015 Другое дело - 252 маршрута руками ? Add Static Route ip route add (network)/(mask) via (ip to route through) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
S10 Жалоба Опубликовано 24 марта, 2015 В качестве решения задачки 1 можно добавить 2 маршрута в 192.168.0.х/25. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
kamikaiz Жалоба Опубликовано 27 марта, 2015 Задачка №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 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты