wesleyflagon 2018-05-06 14:03 采纳率: 0%
浏览 1433
已采纳

求Linux大神看一个网络问题,forward转发不成功

问题发生在一个Openstack的控制节点(兼网络节点)。我的网络由一个VM、两个路由器组成。结构如下:

VM -> Router1 -> Router2 -> External network

其中第一个路由器做SNAT,没有问题;第二个路由器是用来转发的,但是转发不成功,就是下面的qrouter-d3dcb2df-f3ca-4079-a434-491b23f84b5a。不会发贴,贴截图了。。。
图片说明
图片说明
图片说明
图片说明
图片说明

  • 写回答

7条回答

  • wesley-fly 2018-05-08 09:43
    关注

    你的方案

    看到你的描述了,如你的拓扑图,VM(192.168.1.x) -> (LAN:192.168.1.1)Router1(WAN:10.10.52.X) -> Router2 -> (10.10.52.X)External network,指出几点我**个人认为**有问题的点:
    1.如你所说Router1做SNAT,Router2透传转发,首先如果Router1只做SNAT,那么VM的数据包文能到Externel network,但是Externel network回应的报文无法到达VM,还需要在Router1上做DNAT;
    2.以我理解,VM的IP使用Router1的LAN端私网IP,假设是192.168.1.x网段,Router1的WAN端IP需要与External network同网段,假设为10.10.52.x,此时要实现VM到Externel network的互通,有两种做法:
    《1》将Router2配置为Bridge模式,数据包在二层进行透传,但是由于Router2所处的位置,需要消耗一个10.10.52.x的IP地址,具体方式是在Router2上新建一个虚拟网桥接口如br0,讲Router2的LAN和WAN都加入网桥(brctl 命令),最后为br0配置需要消耗的哪个10.10.52.X的IP,并且启动此接口br0;缺点:基本不可能为Router2配置一个公网IP地址,很容易冲突,解决办法是将Router2移动到Router1之前,让Router2消耗私网IP(192.168.1.x),即拓扑变为VM(192.168.1.x) -> Router2(br0:192.168.1.x)->(LAN:192.168.1.1)Router1(WAN:10.10.52.X) -> (10.10.52.X)External network,或者直接去掉Router2更好;
    《2》将Router2配置为NAT模式,(但是感觉没必要),拓扑变为VM(192.168.1.x) -> (LAN:192.168.1.1)Router1(WAN:192.168.2.x)-> (LAN:192.168.2.1)Router2(WAN:10.10.52.x)->-> (10.10.52.X)External network,这种Router1和2都要做SNAT/DNAT或者MASQUERADE,并且Router和21的默认路由需要配置正确

    大概就是这样了,不知道我理解的对不对

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名