免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1781 | 回复: 1
打印 上一主题 下一主题

[网络管理] 端口redirect的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-21 12:03 |只看该作者 |倒序浏览
目前服务器上有两个物理上不通的两个不同网段IP地址,假设为A,B; 应用的HTTPS端口为31040,为支持通过HTTPS访问应用界面,我们做了从443端口重定向至31040,具体实现为:
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 31040

为实现不同网段情况下可以正常访问,我们通过ip rule为A添加了静态路由,并把B的网关设置默认网关。具体实现如下:
  1. APP02:/opt/VRTSvcs/bin/cdnServiceProcess # cat /etc/APP_route
  2. SBI_GATEWAY=xx.xx.xx.1
  3. NBI_GATEWAY=192.168.240.1
复制代码
添加网关SHELL:
  1. setup_route()
  2. {
  3. APPROUTE=/etc/APP_route
  4. SBIGW=`awk -F= '$1=="SBI_GATEWAY"{print $2}' $APPROUTE`
  5. NBIGW=`awk -F= '$1=="NBI_GATEWAY"{print $2}' $APPROUTE`
  6. APPSBI=`cat /etc/hosts | grep "^[0-9]" | awk '$2=="APP-SBI" {print $1}'`
  7. APPNBI=`cat /etc/hosts | grep "^[0-9]" | awk '$2=="APP-NBI" {print $1}'`
  8. if [ -n "$SBIGW" ]
  9. then
  10.    ! grep SBI /etc/iproute2/rt_tables >/dev/null && echo -e "110\tSBI" >>/etc/iproute2/rt_tables
  11.    ip route del default table SBI >/dev/null 2>&1
  12.    ip route add default via $SBIGW table SBI >/dev/null 2>&1
  13.    ip rule del `ip rule list | grep 99 | awk -F: '{print $2}'|awk '{print $1,$2}'`  >/dev/null 2>&1
  14.    ip rule add from $APPSBI table SBI pref 99  >/dev/null 2>&1
  15. ### Begin :add tangliting
  16. # ip route list table main
  17. # ip route list table SBI
  18. #
  19. # 增加同网段的路由到SBI表中,即使南向的网关不可达,南向IP与南向同网段的网元也能通讯

  20. TempRow_d=/tmp/a_`date +%m.%d.hour%k`.lst
  21. ip route list table SBI | grep link  > $TempRow_d
  22. i=1
  23. while  [ $i -le `wc -l $TempRow_d | awk '{print $1}'` ]
  24. do
  25. ip route del `sed -n -e "${i}p" $TempRow_d` table SBI
  26. i=`expr $i + 1`
  27. done
  28. rm -f $TempRow_d

  29. TempRow=/tmp/b_`date +%m.%d.hour%k`.lst
  30. ip route | grep  bond0 > $TempRow
  31. i=1
  32. while  [ $i -le `wc -l $TempRow | awk '{print $1}'` ]
  33. do
  34. ip route add `sed -n -e "${i}p" $TempRow` table SBI
  35. i=`expr $i + 1`
  36. done
  37. rm -f $TempRow
  38. fi
  39. ### End
  40. if [ -n "$NBIGW" ]
  41. then
  42.    pre_bond1_gw=`route | grep default | awk '{print $2}'`
  43.    if [ -n "${pre_bond1_gw}" ]
  44.    then
  45.    for pre_bond1_gw in ${pre_bond1_gw}
  46.     do
  47.      route del default gw ${pre_bond1_gw}
  48.     done
  49.    fi
  50.    route add default gw $NBIGW  > /var/log/add_cdn_gw.log 2>&1
  51.    arping -c 2 -s $APPNBI -I bond1 $NBIGW >/var/log/arping.log  2>&1
  52. fi
  53. }
复制代码
问题:现在通过https://A无法访问应该Web界面。其它的IP都可以正常访问。如果把默认网关设置A的网关,https://A可正常工作。
通过抓包分析来看,连接是已经到了服务器,但无法再回去了。应该是在端口redirect的时候把源地址给改了,导致回不去了。
  1. APP02:/opt/OMC/lbin # tcpdump -i any port 443
  2. tcpdump: WARNING: Promiscuous mode not supported on the "any" device
  3. tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
  4. listening on any, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
  5. 09:05:34.415032 IP xxx.xxx.xxx.xxx.62529 > APP-SBI.https: S 1960056193:1960056193(0) win 64512 <mss 1460,nop,nop,sackOK>
  6. 09:05:37.329020 IP xxx.xxx.xxx.xxx.62529 > APP-SBI.https: S 1960056193:1960056193(0) win 64512 <mss 1460,nop,nop,sackOK>
  7. 09:05:43.344661 IP xxx.xxx.xxx.xxx.62529 > APP-SBI.https: S 1960056193:1960056193(0) win 64512 <mss 1460,nop,nop,sackOK>
复制代码
现在想不改变网络设置,即路由、网关的配置搞定这个问题。大神们知道怎么做不?

论坛徽章:
0
2 [报告]
发表于 2012-04-23 09:15 |只看该作者
顶一下,有没有人知道的呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP