aws-ec2-双网卡问题

问题描述

在已存在的EC2上新添加网卡后发现,凡是和eth0在同一个网段的只能通过eth0访问,不能通过eth1。同样的,在eth1网段的只能通过eth1访问,不能通过eth0访问。 如果既不在eth0也不再eth0 默认走eth0(在没有修改路由表的前提下,默认路由是eth0)

问题分析

之所以出现您列出的网络访问现象,是因为目前的实例当中有两块网卡,而发生故障的时候,路由的走向是从网卡2进来的数据包从网卡1发送出去,或者从网卡1进来的数据包从网卡2发送出去,AWS底层会把这样的数据包丢弃。

因此需要手动定义策略路由,在响应网卡1进来的数据包时通过网卡1发送,响应网卡2进来的数据包时通过网卡2发送。

解决方案

关于这个现象和解决方案,可以参考这遍文档:

http://www.linuxjournal.com/article/7291

该文档较长,这里介绍一个配置路由策略的事例,可以按照此事例的方法结合具体网络环境进行配置:

1、首先为网卡1和2创建各自的路由表:

ip route add [子网1网段] via [您子网的网关IP] dev eth0 tab 1

ip route add [子网2网段] via [您子网的网关IP] dev eth1 tab 2

可以通过ip route show table 1和ip route show table 2查看您刚刚完成的配置是否正确
2、然后创建策略路由

ip rule add from [eth0的IP]/32 tab 1 priority 500

ip rule add from [eth1的IP]/32 tab 2 priority 600

这个配置的意思是,将原地址为eth0的IP的包按照路由表1发送,将原地址为eth1的IP的包按照路由表2发送

3、查看并刷新

可以通过 ip rule命令查看已经配置的路由策略。一个示例的策略如下:


$  ip rule

0:  from all lookup local

500:    from 172.31.30.238 lookup 1

600:    from 172.31.22.112 lookup 2

32766:  from all lookup main

32767:  from all lookup default

最后刷新路由策略的cache,之后您可以继续测试。


ip route flush cache

如果希望实例重启后ip route 和 ip rule所配置的规则还在,需要按照以下方式进行配置


echo “[子网1网段] via [您子网的网关IP] dev eth0 table 1″ > /etc/sysconfig/network-scripts/route-eth0

echo “[子网2网段] via [您子网的网关IP] dev eth1 table 2″ > /etc/sysconfig/network-scripts/route-eth1

echo “from [eth0的IP]/32 table 1″ > /etc/sysconfig/network-scripts/rule-eth0

echo “from [eth1的IP]/32 table 2″ > /etc/sysconfig/network-scripts/rule-eth1

最后重启network service


service network restart

需要注意的是,如果在重启服务的时候不成功,可以尝试关闭Network Manager。这个服务和默认的网络服务启动脚本经常有冲突,导致配置无法应用。


chkconfig NetworkManger off









本文转自 赵大鑫 51CTO博客,原文链接:http://blog.51cto.com/xinzong/2043494,如需转载请自行联系原作者
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值