Chinaunix首页 | 论坛 | 博客
  • 博客访问: 140677
  • 博文数量: 12
  • 博客积分: 45
  • 博客等级: 民兵
  • 技术积分: 194
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-03 13:16
文章分类

全部博文(12)

文章存档

2015年(3)

2014年(8)

2013年(1)

分类: 系统运维

2014-10-30 21:02:35

背景
     某个基础鉴权服务架构调整,有几台接口机下线回收。业务调用方需要修改ip:port。
     问题是有个erlang的老业务,调用方居然都是hardcode方式写死的。而且目前能维护的只有1个开发,更加悲剧的是这个项目的开发测试环境机器被破坏了。总而言之,替换ip重新编译的方式,短时间内没法弄。
     如果不尽快处理,将会影响业务的登陆。这种紧急关头,当然必须得我上前线!

处理过程

     大概情况是这样:
     业务机器: 10.213.117.43
     待下架鉴权接口机: 172.23.62.23
     新鉴权接口机: 10.231.48.133
     一开始想到的是iptables的nat表, 用POSTROURING转发, 但POSTROURING只能和SNAT一起用,修改源字段。我的需求是需要修改目的ip与端口,必须使用DNAT ,翻看iptables手册,发现DNAT除了PREROUTING,还能和OUTPUT一起用。应该能满足这个需求。
     找了2台机器,跑了个python的udp_echo_server测试,可以成功转发。最后,在现网业务机器执行如下命令,搞掂!

点击(此处)折叠或打开

  1. iptables -t nat -A OUTPUT -p udp -d 172.23.62.23 --dport 8081 -j DNAT --to 10.231.48.133:8081

感慨
    看起来很基础的东西关键时候都很有用,例如:iptables 
阅读(7528) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~