<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Поменять метрики нескольких default-маршрутов</title>
    <link>https://www.solaris.opennet.ru/openforum/vsluhforumID9/10260.html</link>
    <description>Нужно при помощи shell (sh, не bash!) поменять метрики default-маршрутов системы. Количество default-маршрутов может быть произвольным (от нуля до N). В sh, насколько я знаю, нет массивов и я не пойму как без них решить эту задачу...&lt;br&gt;&lt;br&gt;Пример с четыремя default-маршрутами.&lt;br&gt;&lt;br&gt;До изменения:&lt;br&gt;&#091;code&#093;$ ip -4 route &amp;#124; grep default&lt;br&gt;default via 10.1.1.1 dev eth1 proto static metric 10&lt;br&gt;default via 10.2.2.2 dev eth2 proto static metric 20&lt;br&gt;default via 10.3.3.3 dev eth3 proto static metric 30&lt;br&gt;default via 10.4.4.4 dev eth4 proto static metric 40&#091;/code&#093;&lt;br&gt;&lt;br&gt;Что должно быть после изменения:&lt;br&gt;&#091;code&#093;$ ip -4 route &amp;#124; grep default&lt;br&gt;default via 10.1.1.1 dev eth1 proto static metric 40&lt;br&gt;default via 10.2.2.2 dev eth2 proto static metric 10&lt;br&gt;default via 10.3.3.3 dev eth3 proto static metric 20&lt;br&gt;default via 10.4.4.4 dev eth4 proto static metric 30&#091;/code&#093;&lt;br&gt;&lt;br&gt;Иными словами должно произойти изменение метрик путем смещения:&lt;br&gt;&#091;code&#093;10 -&amp;gt; 40&lt;br&gt;20 -&amp;gt; 10&lt;br&gt;30 -&amp;gt; 20&lt;br&gt;40 -&amp;gt; 30&#091;/code&#093;&lt;br&gt;&lt;br&gt;Команда на изменение маршрута -- это его удал</description>

<item>
    <title>Поменять метрики нескольких default-маршрутов (jr)</title>
    <link>https://www.solaris.opennet.ru/openforum/vsluhforumID9/10260.html#3</link>
    <pubDate>Wed, 27 Feb 2019 08:18:23 GMT</pubDate>
    <description>&amp;gt; Очевидно, что нет смысла менять метрику всем. Достаточно удалить маршрут с меньшей &lt;br&gt;&amp;gt; метрикой и создать его заново с метрикой большей, чем у самого &lt;br&gt;&amp;gt; последнего. Метрика - это 32 битное целое. Хватит надолго.&lt;br&gt;&lt;br&gt;Да, хорошая идея! Как-то не подумал посмотреть на задачу с такой стороны :)&lt;br&gt;Думаю, что такое решение мне подойдет. Спасибо!&lt;br&gt;</description>
</item>

<item>
    <title>Поменять метрики нескольких default-маршрутов (pavel_simple)</title>
    <link>https://www.solaris.opennet.ru/openforum/vsluhforumID9/10260.html#2</link>
    <pubDate>Tue, 26 Feb 2019 12:56:02 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; default via 10.3.3.3 dev eth3 proto static metric 20 &lt;br&gt;&amp;gt; default via 10.4.4.4 dev eth4 proto static metric 30&#091;/code&#093; &lt;br&gt;&amp;gt; Иными словами должно произойти изменение метрик путем смещения: &lt;br&gt;&amp;gt; &#091;code&#093;10 -&amp;gt; 40 &lt;br&gt;&amp;gt; 20 -&amp;gt; 10 &lt;br&gt;&amp;gt; 30 -&amp;gt; 20 &lt;br&gt;&amp;gt; 40 -&amp;gt; 30&#091;/code&#093; &lt;br&gt;&amp;gt; Команда на изменение маршрута -- это его удаление и установка нового: &lt;br&gt;&amp;gt; &#091;code&#093;ip route delete default via 10.1.1.1 dev eth1 metric 10 &lt;br&gt;&amp;gt; ip route add default via 10.1.1.1 dev eth1 metric 40&#091;/code&#093; &lt;br&gt;&lt;br&gt;сделать 2 новые таблицы с нужным приоритетом маршрутов&lt;br&gt;переключаться одной командой через ip rule&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Поменять метрики нескольких default-маршрутов (Аноним)</title>
    <link>https://www.solaris.opennet.ru/openforum/vsluhforumID9/10260.html#1</link>
    <pubDate>Tue, 26 Feb 2019 12:51:51 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; default via 10.3.3.3 dev eth3 proto static metric 20 &lt;br&gt;&amp;gt; default via 10.4.4.4 dev eth4 proto static metric 30&#091;/code&#093; &lt;br&gt;&amp;gt; Иными словами должно произойти изменение метрик путем смещения: &lt;br&gt;&amp;gt; &#091;code&#093;10 -&amp;gt; 40 &lt;br&gt;&amp;gt; 20 -&amp;gt; 10 &lt;br&gt;&amp;gt; 30 -&amp;gt; 20 &lt;br&gt;&amp;gt; 40 -&amp;gt; 30&#091;/code&#093; &lt;br&gt;&amp;gt; Команда на изменение маршрута -- это его удаление и установка нового: &lt;br&gt;&amp;gt; &#091;code&#093;ip route delete default via 10.1.1.1 dev eth1 metric 10 &lt;br&gt;&amp;gt; ip route add default via 10.1.1.1 dev eth1 metric 40&#091;/code&#093; &lt;br&gt;&lt;br&gt;Очевидно, что нет смысла менять метрику всем. Достаточно удалить маршрут с меньшей метрикой и создать его заново с метрикой большей, чем у самого последнего. Метрика - это 32 битное целое. Хватит надолго. &lt;br&gt;&lt;br&gt;ROUTE=$(ip -4 route &amp;#124; grep default &amp;#124; head -n1)&lt;br&gt;MAX_METRIC=$(ip -4 route &amp;#124; grep default &amp;#124; tail -n1&amp;#124; sed -e&apos;s/.*metric&#092;s*//&apos;)&lt;br&gt;&lt;br&gt;ip r del &quot;$ROUTE&quot;&lt;br&gt;ip r add $(echo &quot;$ROUTE&quot; &amp;#124; sed -e &apos;s/&#092;d+&#092;s*$//&apos;) $(expr $MAX_METRIC + 10)&lt;br&gt;&lt;br&gt;&lt;br&gt;Код не проверял, идея думаю ясна. &lt;br&gt;</description>
</item>

</channel>
</rss>
