更新时间:2025-08-20 GMT+08:00
分享

开启弹性公网IP直通模式

使用场景

为边缘实例开启弹性公网IP直通模式后,您可以直接在边缘实例内查看到弹性公网IP地址。实际业务场景下,借助EIP直通模式,您可以将内网流量和外网流量分别转发到不同的IP地址。

约束与限制

  • IEC当前仅支持为Linux边缘实例开启弹性公网IP直通模式,不支持为Windows边缘实例开启弹性公网IP直通模式。Linux支持CentOS 7.0及以上、Ubuntu 16.0及以上、EulerOS 2.2及以上版本。
  • 被虚拟IP绑定的弹性公网IP暂不支持开启直通模式。

为边缘实例主网卡开启EIP直通模式

建议您首次完成为边缘实例主网卡开启EIP直通模式的操作后,将该边缘实例制作为私有镜像,方便用于后续直接创建其他开启EIP直通模式的边缘实例。

  1. 通过如下两种方式之一在IEC控制台为边缘实例主网卡开启EIP直通模式:

  2. 禁用边缘实例网卡的“源/目的检查”。

    您可以通过边缘实例详情页面,选择“网卡”页签,并展开,将“源/目的检查”选项设置为“OFF”。

  3. 远程登录任意一个和需要开启EIP直通模式的边缘实例(简称A)归属于同一个子网的其他边缘实例(简称B)。

    以B为Linux操作系统为例,登录前提条件和方法请参见登录边缘实例

  4. 下载配置脚本放置到B的任意路径,如/tmp。

  5. 在B上执行以下命令,登录A。

    ssh root@xxx.xxx.xxx.xxx

    其中,xxx.xxx.xxx.xxx为A的私网IP地址。

  6. 在A上,执行以下命令,将配置脚本复制至A。

    scp root@yyy.yyy.yyy.yyy:/tmp/脚本名称 /root

    其中,yyy.yyy.yyy.yyy为B的私网IP地址,/tmp为B上配置脚本的存放路径,/root为A上配置脚本的存放路径(可以是任意路径)

  7. 执行以下命令,解压脚本文件。

    cd /root;tar -xzvf 脚本名称

    /root为配置脚本的存放路径。

  8. 执行以下命令,添加set_eip_auto.sh文件的执行权限。

    cd IEC_set_eip;chmod +x set_eip_auto.sh

  9. 执行以下命令,运行配置脚本。

    sh set_eip_auto.sh

    脚本运行期间会导致实例网络短暂中断(大概1到2秒),请确认对其他业务的影响后,谨慎操作。

  10. 执行以下命令,验证主网卡连通性并使其持续产生报文,如图1

    ping xxx.xxx.xxx.xxx

    xxx.xxx.xxx.xxx为目的端公网IP地址。

    图1 验证主网卡连通性

  11. 重新打开一个新的终端窗口,执行以下命令,抓包验证主网卡流量是否按照直通模式转发,如图2

    tcpdump -i eth0 -nne icmp

    当源地址和目的地址均为公网IP地址时,表示流量按照直通模式转发。

    图2 抓包验证流量转发

  12. 执行reboot命令,重启边缘实例A;然后重新执行步骤10步骤11,验证重启不会对配置的直通模式造成影响。

    • 当为主网卡更换EIP时,需要重启实例后直通模式才生效。重启后再执行步骤10步骤11进行重复验证。
    • 当不重启虚拟机,仅重启主网卡的场景下,需要在重启主网卡后,重新执行如下步骤,直通模式才生效。1. 执行cd /root/IEC_set_eip;chmod +x set_eip.sh命令,添加set_eip.sh文件的执行权限。其中,/root/IEC_set_eip为A上配置脚本的存放路径。2. 执行sh set_eip.sh命令,运行配置脚本。3. 执行步骤10步骤11进行重复验证。

为边缘实例扩展网卡开启EIP直通模式

  1. IEC控制台通过为边缘实例绑定弹性公网IP时为扩展网卡开启直通模式
  2. 禁用边缘实例网卡的“源/目的检查”。

    您可以通过边缘实例详情页面,选择“网卡”页签,并展开,将“源/目的检查”选项设置为“OFF”。

  3. 通过主网卡EIP远程登录需要开启EIP直通模式的边缘实例。
  4. 执行以下命令,在“/etc/iproute2/rt_tables”文件中为当前扩展网卡增加路由表优先级和名称(数值越小优先级越高),如下net1,net2对应eth1,eth2,如果有多张扩展网卡,依次添加。

    vi /etc/iproute2/rt_tables

    # added for dual net 
    250     net1
    251     net2 

  5. 为扩展网卡增加路由信息。

    • 场景一:当主网卡已经配置EIP直通模式的情况下,执行以下命令,在“rc.local”文件中为每张扩展网卡增加路由信息。

    vi /etc/rc.local

    对于每张网卡,查找以下信息:

    以eth1为例,IPv4地址:192.168.0.129、子网网段:192.168.0.0/24、网关地址:192.168.0.1,EIP:xxx.xxx.xxx.xxx,以及步骤4中添加的路由表:net1,如果有多张网卡,在字段/etc/rc.d/init.d/set_eip.sh这的下一行依次添加如下信息:

    # wait for nics up 
     sleep 5 
     /etc/rc.d/init.d/set_eip.sh
     sleep 1
     # Add v4 routes for eth1 
     ip route flush table net1 
     ip route add default via 192.168.0.1 dev eth1 src xxx.xxx.xxx.xxx table net1 
     ip rule add from xxx.xxx.xxx.xxx table net1  
     # Add v4 routes for eth2 
     ip route flush table net2 
     ip route add default via 192.168.1.1 dev eth2 src yyy.yyy.yyy.yyy table net2 
     ip rule add from yyy.yyy.yyy.yyy table net2
    • 场景二:当主网卡未配置EIP直通模式时,执行以下命令,在“rc.local”文件中为每张扩展网卡增加路由信息。

    vi /etc/rc.local

    对于每张网卡,查找以下信息:

    以eth1为例,IPv4地址:192.168.0.129、子网网段:192.168.0.0/24、网关地址:192.168.0.1,EIP:xxx.xxx.xxx.xxx,以及步骤4中添加的路由表:net1,如果有多张网卡,依次添加如下信息:

    # wait for nics up 
     sleep 5 
     # Add eip for eth1
     ip address add xxx.xxx.xxx.xxx dev eth1
     # Add v4 routes for eth1 
     ip route flush table net1 
     ip route add default via 192.168.0.1 dev eth1 src xxx.xxx.xxx.xxx table net1 
     ip rule add from xxx.xxx.xxx.xxx table net1  
     # Add eip for eth2
     ip address add yyy.yyy.yyy.yyy dev eth2
     # Add v4 routes for eth2 
     ip route flush table net22 
     ip route add default via 192.168.1.1 dev eth2 src yyy.yyy.yyy.yyy table net2 
     ip rule add from yyy.yyy.yyy.yyy table net2

  6. 执行以下命令,添加rc.local文件的执行权限。

    # chmod +x /etc/rc.local

  7. 执行以下命令,重启边缘实例。

    reboot

  8. 重启后,执行以下命令,确认配置的路由规则和路由表生效,如果有多张路由表,依次执行。

    ip rule

    ip route show table net1

    ip route show table net2

  9. 执行以下命令,验证扩展网卡连通性并使其持续产生报文,如图3

    ping -I xxx.xxx.xxx.xxx zzz.zzz.zzz.zzz

    ping -I yyy.yyy.yyy.yyy zzz.zzz.zzz.zzz

    xxx.xxx.xxx.xxxyyy.yyy.yyy.yyy为扩展网卡EIP,zzz.zzz.zzz.zzz为目的端公网IP地址。

    图3 验证扩展网卡连通性

  10. 重新打开一个新的终端窗口,执行以下命令,抓包验证扩展网卡流量是否按照直通模式转发,如图4

    tcpdump -i eth1 -nne icmp

    tcpdump -i eth2 -nne icmp

    图4 抓包验证流量转发

    当源地址和目的地址均为公网IP地址时,表示流量按照直通模式转发。

  11. 执行reboot命令,重启边缘实例;然后重新执行步骤9步骤10,验证重启不会对配置的直通模式造成影响。

    • 当为扩展网卡更换EIP时,需要手动修改步骤5中“rc.local”文件中的EIP地址后直通模式才生效。重启后再执行步骤9步骤10进行重复验证。
    • 当不重启虚拟机,仅重启扩展网卡的场景下,需要在重启扩展网卡后,重新按照步骤5的场景二中命令执行一遍,直通模式才生效。

相关操作

如需通过扩展网卡访问公网,可参考通过扩展网卡绑定的弹性公网IP访问公网

相关文档