Chinaunix首页 | 论坛 | 博客
  • 博客访问: 531982
  • 博文数量: 119
  • 博客积分: 3167
  • 博客等级: 中校
  • 技术积分: 1215
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-20 21:21
文章分类

全部博文(119)

文章存档

2015年(21)

2012年(4)

2011年(1)

2007年(11)

2006年(50)

2005年(32)

分类: LINUX

2005-12-29 02:38:55

局域网通过NAT连上internet的机器 代理其他机器上网 不使用NAT的方法

怎么察看每个路由项通过的包   希望知道的指点指点

 
|-----------------------------|-----------------------------|
|192.168.100/24              |          192.168.0.1/24    |
|                                    |                                    |
|                               SERVER2                       SERVER1
|                                    |                                    |
|                                    |                                    |
|                                    |                                    |
|        LAN2                     |        LAN1                     |  
|-----------------------------|-----------------------------|
LAN1 -  SERVER1 :
eth0 - A.B.C.D  公网IP  
eth1 - 192.168.0.1

LAN2 -  SERVER2 :
eth0 - 192.168.0.249
eth1 - 192.168.100.254

LAN1 可以通过server1连上internet
LAN2 如果要连internet一般 使用的方法是在server2上面进行NAT, 2个命令就OK

1> echo "1" > /proc/sys/net/ipv4/ip_forward
2> iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j SNAT --to 192.168.0.249

其实1命令执行以后 从192.168.100.0这个子网内的机器 的包 可以通过SERVER2路由到192.168.0.0这个网络
但是 192.168.0.0这个网络收到这个包以后 给于回应时并不知道 怎么把包回复给 192.168.100.0这个网络的机器

也就是server2 知道去往两个网络的路由
所以问题在于  如何让192.168.0.0这个网络的client知道怎么去往192.168.100.0这个网络

在192.168.0.0这个网络的client的网关都已经设置成server1的内网地址 也就是192.168.0.1
那么这个时候

在我们对server1做了策略路由后 SERVER1中添加去往192.168.100.0的路由项
就可以实现两个LAN的通讯了

为了安全 不影响原本的路由表  我们在新的路由表中进行
server1:

1) shell > echo "100  t1" >> /etc/iproute2/ip_tables   #新建t1表

2) shell > ip ro add 192.168.100.0/24 via 192.168.0.249 dev eth1 table t1
 #添加t1表的路由项 去往192.168.100.0这个网络的包通过192.168.0.249来路由
     添加了 这个路由项以后  从server1上面测试的时候 server1的包已经可以到达192.168.100.0/24这个网络了
     但是 192.168.0.0 中其他的机器无法到达192.168.100.0/24 , 我们还需要添加一个策略

3) shell > ip ru show
   shell > ip ru add to 192.168.100.0/24 table t1
 这样192.168.0.0 中其他的机器收发包的时候就可以使用上面的via 192.168.0.249 dev eth1这个规则了

 这时两个网络可以通过路由来通讯了   在192.168.100.0/24这个网络的client, 也可以通过指定GATEWAY=192.168.0.1
 来进行连上internet了

如果需要的话 可以把t1表删掉 放到我们的main表里面
4) shell > ip ro add 192.168.100.0/24 via 192.168.0.249 dev eth1
上面命令没有指定放到t1表里面 就是放到mian表  然后把t1表删除
   shell > ip ro del 192.168.100.0/24 table t1


流量分割 (扩充表) :
策略路由  的策略(rule) 常用的还有fwmark , to net , from net , 一般步骤都是先建立表,  然后再定义策略

负载均衡 (扩充路由项) :
 方法就是 一个路由项中指定多个出口 使用nexthop与weight来进行

例如 我们对上面的例子 t1表中的那条路由项 改变一下
shell > ip ro add 192.168.100.0/24 via 192.168.0.249 dev eth1 table t1   #正常方法 没有负载均衡的方式

# 指定 table 不能放在最后 否则语法错误
shell > ip ro add 192.168.100.0/24  table t1 nexthop via 192.168.0.249 dev eth1 weight 1
 nexthop via 192.168.0.101 dev eth1 weight 1

  但是  不知道怎么察看每个路由通过的包   希望知道的指点指点
注: 参考johnbull的策略路由

阅读(1830) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~