linux系统路由器的配置

假设现有三台计算机

A计算机有三块网卡 eth0: 192.168.1.125 连接到Internet。 eth1:192.168.2.1 。 eth2:192.168.3.1。

B计算机 ip:192.168.2.120 默认网关:192.168.2.1

C计算机 ip:192.168.3.114 默认网关:192.168.3.1

 

现在B、C计算机要以A计算机ip为网关上网,并实现B、C网段之间的访问,A计算机相当于实现路由器功能。

 

A计算机配置:

$/sbin/ifconfig eth0 192168.1.125 netmask 255.255.255.0

$/sbin/ifconfig eth1 192168.2.1 netmask 255.255.255.0

$/sbin/ifconfig eth2 192168.3.1 netmask 255.255.255.0

不过开机重启后这些配置信息会丢失,所以添加到文件保存,如eth0的配置信息添加到/etc/sysconfig/network-scripts/ifcfg-eth0

 

# Networking Interface
DEVICE=eth0
HWADDR=00:0C:29:D3:7D:7C
ONBOOT=yes
IPADDR=192.168.1.125
BOOTPROTO=none
NETMASK=255.255.255.0
DNS2=202.96.128.68
TYPE=Ethernet
GATEWAY=192.168.1.1
DNS1=202.96.134.133
NM_CONTROLLED=yes
IPV6INIT=no
USERCTL=yes
PREFIX=24
NAME="my eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03

 

eth1和eth2类似添加

 

添加完这些后添加路由表

#/sbin/route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0

#/sbin/route add -net 192.168.2.0 netmask 255.255.255.0 dev eth1

#/sbin/route add -net 192.168.3.0 netmask 255.255.255.0 dev eth2

 

使用命令查看路由表

#route

Kernel IP routing table
Destination     Gateway         Genmask    Flags Metric Ref    Use Iface
192.168.3.0     *               255.255.255.0   U     0      0            0 eth1
192.168.2.0     *               255.255.255.0   U     1      0            0 eth2
192.168.1.0     *               255.255.255.0   U     1      0            0 eth0

 

这时候还需要添加默认网关,也就是计算机A连接到网络的路由器:192.168.1.1

#route add default gw 192.168.1.1

#route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.3.0     *               255.255.255.0           U     0      0        0 eth1
192.168.2.0     *               255.255.255.0           U     1      0        0 eth2
192.168.1.0     *               255.255.255.0           U     1      0        0 eth0
default         192.168.1.1     0.0.0.0                 UG    0      0        0 eth0

 

打开转发ip转发功能

echo 1 >/proc/sys/net/ipv4/ip_forward

或者

sysctl -w net.ipv4.ip_forward = 1

可以在命令中使用,也可以为了自动化加入rc.local中


计算机BC配置

B:ip address:192.168.2.120 mask:255.255.255.0 default gateway:192.168.2.1

c:ip address:192.168.3.120 mask:255.255.255.0 default gateway:192.168.3.1

DNS自己根据当地网络设置

 

B计算机:

ping 192.168.2.1

ping 192.168.3.1

ping 192.168.1.125

这三个应该没什么问题,继续

ping 192.168.3.114

ping 192.168.1.1

发现还是不通


查看A计算机的iptables

iptables -L

Chain INPUT (policy ACCEPT)

...

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

 

ok, we find it! 看来iptable中转发被阻止了,删除这个组织规则就可以了

iptables -D FORWARD 1

OK!现在BC应该可以联网了

 

当然笔者在此还遇到了其他的问题,最后需求帮助得知输入如下信息

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.3.0/24 -j MASQUERADE

or

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 192.168.1.125
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.3.0/24 -j
SNAT --to 192.168.1.125

自己分析下

nat,这个表被查询时表示遇到了产生新的连接的包

POSTROUTING链表存放修改准备出去的包

-o eth0 表示修改后的数据包由接口eth0送出

SNAT: 这个目标只适用于nat表的POSTROUTING链。它规定修改包的源地址

到此目标linux路由器配置完成了!

欢迎各位留意讨论

 

下面对为什么要进行伪装做分析:

利用之前网上看到的一个例子:

两个客户机想通信,要求网关都之指新做的这台路由上,可是在一些情况下做不到。这时可以用地址伪装实现。
比如我做了一台新linux路由器,这时他可以与其它科室的一台机可以通信(因为我的新linux路由器一块网卡与其在一个网段嘛),我的另一台客户机通过我做的新linux路由在另一个网段。这时如果我能把其它科室的机器与我的机器网关都设成我的新linux路由器就可以通信了,可是没有这种权限啊!!!
我可以在新linux路由器上通过地址伪装得以实现。
如果实现我可以访问他,他不能访问我可以这么做:
iptables -t nat -A POSTROUTING -o eth0 -s 你的IP地址段/子网掩码表示 -j MASQUERADE
如果实现他可以访问我,可以加上:
iptables -t nat -A POSTROUTING -o eth1 -s 他的IP地址段/子网掩码表示 -j
MASQUERADE
原理及分析:
如果我没有做地址伪装时,我的数据包通过了新的linux路由器,转发到了他的机器,可是因为我的IP地址不与他在同一网段,他利于网关发到了其它的地方。所以只有你对的数据包没有回来的,通过在新的linux路由器抓包可以看的很清楚。
在做了地址伪装后,数据包源地址是新的linux路由器上的地址,因为发过去后是与他在同一网段内,所以不用网关转发,直接发到新的linux路由器,然后就可以返回来。通过在新的linux路由器上抓包也可以看的很清楚。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值