星晨雾雨 發表於 2023-8-23 00:00:00

Centos7添加静态路由的方法

<p>
        <span><strong>一、ip route显示和设定路由</strong></span></p>
<p>
        <strong>1、显示路由表</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_276075">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># ip route show </code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">default via 192.168.150.254 dev enp0s3 proto static metric 1024 192.168.150.0</code><code class="bash plain">/24</code> <code class="bash plain">dev enp0s3 proto kernel scope link src 192.168.150.110</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        太难看了,格式化一下(显示的是默认网关和局域网路由,两行的内容没有共通性):</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_841111">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># ip route show|column -t </code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">default      via 192.168.150.254 dev  enp0s3 proto static metric 1024 192.168.150.0</code><code class="bash plain">/24</code> <code class="bash plain">dev enp0s3      proto kernel scope link  src   192.168.150.110</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>2、添加静态路由</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_715355">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># ip route add 10.15.150.0/24 via 192.168.150.253 dev enp0s3 </code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># </code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># ip route show|column -t </code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">default      via 192.168.150.254 dev  enp0s3 proto static metric 1024 10.15.150.0</code><code class="bash plain">/24</code>  <code class="bash plain">via 192.168.150.253 dev  enp0s3 proto static metric 1 192.168.150.0</code><code class="bash plain">/24</code> <code class="bash plain">dev enp0s3      proto kernel scope link  src   192.168.150.110 </code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># </code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># ping 10.15.150.1 </code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">PING 10.15.150.1 (10.15.150.1) 56(84) bytes of data. 64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 </code><code class="bash functions">time</code><code class="bash plain">=1.77 ms 64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 </code><code class="bash functions">time</code><code class="bash plain">=1.08 ms 64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 </code><code class="bash functions">time</code><code class="bash plain">=1.57 ms </code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash plain">^C</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>3、删除静态路由</strong></p>
<p>
        只需要把 add 替换成 del,或者更简单的只写目标网络</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_482411">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># ip route del 10.15.150.0/24</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong><span>二、设置永久的静态路由</span></strong></p>
<p>
        <strong>1、添加永久静态路由</strong></p>
<p>
        ip route 指令对路由的修改不能保存,重启就没了。把 ip route 指令写到 /etc/rc.local 也是徒劳的。</p>
<p>
        RHEL7官网文档没有提到 /etc/sysconfig/static-routes,经测试此文件已经无效;</p>
<p>
        /etc/sysconfig/network 配置文件仅仅可以提供全局默认网关,语法同 Centos6 一样: GATEWAY=&lt;ip address&gt;;</p>
<p>
        永久静态路由需要写到 /etc/sysconfig/network-scripts/route-interface文件中,比如添加两条静态路由:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_656524">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># vi /etc/sysconfig/network-scripts/route-enp0s310.15.150.0/24 via 192.168.150.253 dev enp0s3 10.25.250.0/24 via 192.168.150.253 dev enp0s3</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        重启计算机,或者重新启用设备enp0s3才能生效。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_292188">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># nmcli dev connect enp0s3</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        一般直接连接一次设备即可,如果不成功就先断开设备再连接设备,注意必须两个指令一起运行,否则,,,,,,你晓得。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_614659">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># nmcli dev disconnect enp0s3 &amp;&amp; nmcli dev connect enp0s3</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>2、清除永久静态路由</strong></p>
<p>
        可以删除 ifcfg-enp0s3文件或者注释掉文件里的相应静态路由条目,重启计算机。</p>
<p>
        想要让修改后的静态路由立即生效,只能用 ip route del手工删除静态路由条目。</p>
<p>
        实验的过程中出现两个奇怪的现象:</p>
<p>
        1)有时候路由生效了但是在 ip route show 却没有显示,重启计算机后是肯定显示的,原因暂时不明。</p>
<p>
        2)存在多个网卡时,默认路由似乎是随机经由某个网卡设备。检查了所有连接配置文件后发现,第一网卡的默认连接配置文件 ifcfg-eth0 设置了GATEWAY0(此设置会覆盖/etc/sysconfig/network 定义的全局默认网关),第二网卡的连接配置文件 ifcfg-eth1 使用的是dhcp,会在启动时也分配默认网关,两个默认网关让计算机糊涂了。这是在测试系统里经常发生的现象,生产系统一般不会让网卡用dhcp,或者即使是用了也会仔细分配默认网关防止冲突。</p>
<p>
        <span>其他需要注意的:</span></p>
<p>
        1)连接配置文件 ifcfg-* 里可以设置多个GATEWAY,一般第一个是 GATEWAY0,然后GATEWAY1, GATEWAY2... ,尾号最大的有效;</p>
<p>
        2)如果必须在/etc/sysconfig/network 文件定义全局网关,连接配置文件 ifcfg-* 就不要设置GATEWAY了,dhcp的连接要注意dhcp服务器不要定义默认网关。</p>
<p>
        3)ifcfg-enp0s3 文件改名为 ifcfg-eth0 后,route-enp0s3 文件也要改名为 route-eth0。</p>
<p>
        以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。</p>
<p>
        原文链接:https://www.teakki.com/p/57dbd22615d9b5b7178073c7</p>
頁: [1]
查看完整版本: Centos7添加静态路由的方法