zoukankan      html  css  js  c++  java
  • Linux主机添加路由和端口转发


    环境(关闭防火墙和seLinux):

      6A: CentOS6
      7A 和 7B:CentOS 7 
       6A: 192.168.20.131/24
      7B: 192.168.20.129/24 和 192.168.10.130/24
      7A: 192.168.10.129/24     


    各主机上配置如下:
    6A:
      ip route add default via 192.168.20.129  //添加默认路由
    7B:
      echo 1 > /proc/sys/net/ipv4/ip_forward  //开启转发功能
    7A:
      ip route add default via 192.168.10.130  //添加默认路由
      ip add add 1.1.1.1/32 dev lo:0  //添加 loopback IP

    测试过程:
      7A 上 ping 192.168.20.131,结果正常,没有问题,因为 ICMP request 报文的源地址是 7A 的 interface ip,但若执行 ping -I 1.1.1.1 192.168.20.131 指明使用 1.1.1.1 为源IP发送 ICMP request,则无法 ping 通。在 vmnet1 上抓包,发现 ICMP request ,但在 vmnet2 上抓包,没有发现转发过来的 ICMP request。
      在 7B 上通过 ip route add 1.1.1.1 via 192.168.10.129 添加到 7A 上 loopback 的路由后,再在 7A 上执行 ping -I 1.1.1.1 192.168.20.131 则可以 ping 通。由此推测 Linux 主机开启 ip_forward 后,若要转发某个报文,不仅仅要求该报文目的IP可达,源IP也要可达才行。可能是协议栈的设计者考虑到对于7B来说若发送方(本例中的1.1.1.1)不可达的情况下将报文转发给6A,该报文的响应报文到达7B后也是要丢弃的(因为1.1.1.1作为目的IP不可达),不如提前就丢弃。



    原文作者:xiaohaiyinyu
    来源:CSDN
    原文:https://blog.csdn.net/xiaohaiyinyu/article/details/73656780
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    内存泄露之LeakCanary原理简析
    springboot(2.3.4)替换默认的logback为log4j2
    springboot-SPI-修改配置文件
    Vue组件
    米尔开发板测试记录
    调试米尔开发板记录
    linux操作GPIO命令
    linux操作PWM命令
    前端缓存(Storage)之有效期
    微信移动端判断二维码识别是否长按
  • 原文地址:https://www.cnblogs.com/kaishirenshi/p/10394754.html
Copyright © 2011-2022 走看看