Linux操作系统
<p class="shortdesc"></p>
<section class="section" id="Linux_OS__section_czr_x5l_svb"><h2 class="doc-tairway">添加临时路由</h2>
<p class="p">ECS_A 主机执行以下命令。</p>
<div class="p">
<pre class="pre codeblock" id="Linux_OS__codeblock_tl2_1vl_svb"><code># 查看 eth0 和 eth1 网卡的网关,可以从DHCP信息里面获取
grep routers /var/lib/dhclient/dhclient-eth0.leases | tail -1 | awk '{print $3}' | sed 's/;//g'
10.16.117.1
grep routers /var/lib/dhclient/dhclient-eth1.leases | tail -1 | awk '{print $3}' | sed 's/;//g'
10.17.56.1
# 此例当中,eth0 网卡的网关是 10.16.117.1, eth1 网卡的网关 10.17.56.1
# 添加到ECS_B主机网段的路由规则
ip route add 10.17.60.0/25 via 10.17.56.1 dev eth1
# 确认路由添加成功
ip route show | grep 10.17.60.0/25
# 输出内容为10.17.60.0/25 via 10.17.56.1 dev eth1
# 因平安金融云agent等功能需要默认网卡连接服务器端,需要确认默认路由走eth0
ip route show | grep default
# 输出内容为default via 10.16.117.1 dev eth0
# 如果缺少默认路由,则需要手动加上
ip route add default via 10.16.117.1 dev eth0</code></pre>
</div>
<p class="p">ECS_B 主机添加临时路由方法与ECS_A一样,只是目的网络和网关不一样。</p>
<div class="p">
<pre class="pre codeblock" id="Linux_OS__codeblock_r34_cvl_svb"><code># 按照在ECS_A主机上面获取eth0,eth1默认网关的方法,首先同样获取ECS_B的默认网关
# 命令不再重复列出。
# 本例当中,ECS_B 的 eth0 网关为10.16.192.1,eth1 网关为10.17.60.1
# 添加到ECS_A主机网段的路由规则
ip route add 10.17.56.0/25 via 10.17.60.1 dev eth1
# 确认路由添加成功
ip route show | grep 10.17.56.0/25
# 输出内容为10.17.56.0/25 via 10.17.60.1 dev eth1
# 因平安金融云agent等功能需要默认网卡连接服务器端,需要确认默认路由走eth0
ip route show | grep default
# 输出内容为default via 10.16.192.1 dev eth0
# 如果缺少默认路由,则需要手动加上
ip route add default via 10.16.192.1 dev eth0</code></pre>
</div>
</section>
<section class="section" id="Linux_OS__section_ocr_dvl_svb"><h2 class="doc-tairway">添加静态路由</h2>
<p class="p">添加临时路由后可以通过eth1访问到对方主机,但是如果ECS主机重启,则这条路由策略会丢失,需要将它写入配置文件。</p>
<p class="p"><strong class="ph b">注意事项</strong></p>
<p class="p">静态路由并不是在添加文件后就立即生效,它的作用是在网卡被拉起的过程(可以是OS启动或者是执行ifup)中自动添加路由。如果需要立即能够通过eth1网卡相互访问,并且在OS或者网卡重启后也能保留这条路由,请先添加临时路由,再添加静态路由。</p>
<p class="p"><strong class="ph b">CentOS/Red Hat Enterprise Linux 系统</strong></p>
<p class="p">在ECS_A主机,创建eth1网卡的路由配置文件 /etc/sysconfig/network-scripts/route-eth1。</p>
<p class="p">添加以下内容</p>
<div class="p">
<pre class="pre codeblock" id="Linux_OS__codeblock_whn_lvl_svb"><code>10.17.60.0/25 via 10.17.56.1</code></pre>
</div>
<p class="p">在ECS_B主机,同样创建eth1网卡的路由配置文件 /etc/sysconfig/network-scripts/route-eth1。</p>
<div class="p">添加以下内容<pre class="pre codeblock" id="Linux_OS__codeblock_lyv_mvl_svb"><code>10.17.56.0/25 via 10.17.60.1</code></pre></div>
<p class="p"><strong class="ph b">Debian/Ubuntu 系统</strong></p>
<div class="p">对于Debian以及 16.04 或者以下版本的Ubuntu系统,在ECS_A主机编辑 /etc/network/interfaces
文件,添加如下红色的两行内容。<pre class="pre codeblock" id="Linux_OS__codeblock_bm4_4vl_svb"><code># This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet dhcp
up ip route add 10.17.60.0/25 via 10.17.56.1 dev eth1
up ip route change default via 10.16.117.1 dev eth0</code></pre></div>
<div class="p">ECS_B主机同样的配置文件和位置,添加如下配置行。<pre class="pre codeblock" id="Linux_OS__codeblock_izf_qvl_svb"><code>up ip route add 10.17.56.0/25 via 10.17.60.1 dev eth1
up ip route change default via 10.16.192.1 dev eth0</code></pre></div>
<div class="p">对于 Ubuntu 18.04 , 它的默认网络管理工具已经换成了netplan,因此静态路由添加需要修改 /etc/netplan/01-netcfg.yaml
配置文件,在 eth1 配置段增加红色配置行。<pre class="pre codeblock" id="Linux_OS__codeblock_ct4_rvl_svb"><code>network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true
nameservers:
search: [cloud.papub]
addresses: [100.68.10.22, 100.68.10.23]
eth1:
dhcp4: true
optional: true
routes:
- to: 10.17.60.0/25
via: 10.17.56.1</code></pre></div>
<div class="p">ECS_B 主机同样的配置文件和位置,添加如下配置行。<pre class="pre codeblock" id="Linux_OS__codeblock_vny_svl_svb"><code> routes:
- to: 10.17.56.0/25
via: 10.17.60.1</code></pre></div>
</section>
提交成功!非常感谢您的反馈,我们会继续努力做到更好!