问题描述
在已存在的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

在AWS EC2实例中添加第二块网卡后,遇到网络访问问题,同一网段的流量只能通过对应网卡访问。问题源于路由策略不当,导致数据包被AWS底层丢弃。解决方案涉及创建独立的路由表和策略路由,确保网卡1和网卡2的数据包按各自路径正确转发。参照相关文档配置,并在重启后保持设置不变。
最低0.47元/天 解锁文章
157

被折叠的 条评论
为什么被折叠?



