路由器能运行linux程序么,用Linux系统做路由器

一、网络结构如下:

Internet

路由器A (Lan:192.168.1.1)

Linux路由器(eth0接路由器A,IP:192.168.1.2,网关:192.168.1.1)

↑            (eth1接Switch:IP:192.168.0.1,网关不要填)

Switch

PC1 | …… | PCn

(PC1接Switch,IP:192.168.0.2,网关:192.168.0.1)

二、按以上顺序接好各设备,并按如下内容设置:

1、路由器A:将其设置成能上互联网,Lan口设置IP:192.168.1.1,子网掩码:255.255.255.0。

并添加一条路由:route add -net 192.168.0.0 network 255.255.255.0 gw 192.168.1.2 (根据我的经验,如果不加这个命令,会导致路由器A无法向PC1。。。PCn发送数据)

2、Linux路由器eth0接路由器A,IP:192.168.1.2,子网掩码:255.255.255.0,网关:192.168.1.1。

3、Linux路由器eth1接Switch,IP:192.168.0.1,子网掩码:255.255.255.0,网关不要填。

4、PC1…… n接Switch,IP:192.168.0.0/24,子网掩码:255.255.255.0,网关:192.168.0.1。

三、启动封包转发

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

四、启动网络设备

# ifup eth0

# ifup eth1

五、日志记录

1、打开日志配置文件:

# vim /etc/syslog.conf

2、增加一行:

kern.=debug      /var/log/router.log

3、记录日志:

# iptables -A FORWARD -p tcp -j LOG --log-level debug --log-prefix "router test ------ "

就这样,一个简单的Linux路由器就架设成功了。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

以上是我转载的,另外我在自已的VirtualBox虚拟机上做了类似的实验:配置linux路由器,使两个局域网之间能通讯

路由器是linux系统,

eth0 ip为192.168.56.35 对应VirtualBox的Ethernet adapter VirtualBox Host-Only Network

eth2 ip为192.168.57.1对应VirtualBox的Ethernet adapter VirtualBox Host-Only Network #2

我们的目的是实现xpVC6访问win2003上的网页

win2003上有php做的网站,ip为192.168.56.25 对应VirtualBox的Ethernet adapter VirtualBox Host-Only Network,

默认网关为192.168.56.35(如果不这样设置,会导致xpVC6可以ping向win2003,但是win2003无法回应xpVC6,最终xpVC6看到的结果就是ping不通win2003)

xpVC6的ip为192.168.57.3 对应VirtualBox的Ethernet adapter VirtualBox Host-Only Network #2

默认网关为192.168.57.1

打开linux内核的包转发功能:

修改/etc/sysctl.conf中的net.ipv4.ip_forward = 1

然后执行sysctl -p,使内核参数修改生效

# iptables -A FORWARD -j ACCEPT

在linux上执行tcpdump -i eth0 -vnn icmp

然后在xpVC6(192.168.57.3)上ping win2003(192.168.56.25)

最终linux上显示

[root@gis sysconfig]# tcpdump -i eth0 -vnn icmp

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

00:00:59.969797 IP (tos 0x0, ttl 127, id 214, offset 0, flags [none], proto ICMP (1), length 60)

192.168.57.3 > 192.168.56.25: ICMP echo request, id 512, seq 29184, length 40

00:00:59.971002 IP (tos 0x0, ttl 128, id 381, offset 0, flags [none], proto ICMP (1), length 60)

192.168.56.25 > 192.168.57.3: ICMP echo reply, id 512, seq 29184, length 40

00:01:00.978717 IP (tos 0x0, ttl 127, id 215, offset 0, flags [none], proto ICMP (1), length 60)

。。。。。。

虽然实验到此结束了,但是我发现两个局域网在通讯的时候路由器不需要进行NAT(至少我没有在iptables中配置nat表,只是配置了filter,当然局域网上公网必须NAT,应为局域网中的私有IP不能出现在公网上)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值