Rusty's code
@Dying in the rain.

一、前言:

还是为了搭建strongswan环境,为了配置net-net等模式,需要两个网关。

而且网关还有很多用途。比如不用路由器共享上网。最经典的就是一台电脑如果有蓝牙,可以连入互联网,再通过蓝牙共享,这样其他人就可以无线上网了(这么听说过,没实践)。

做网关,当然要有两个网卡用于转发。自己的机子上没有,而Vmware中网卡个数可以随意增删,因此便用它来实现。

二、环境:

Vmware宿主环境:Windows XP SP3,没办法,还是Win下操作的方便,比如弄个注册机什么的。。。

一台宿主机的Vmware上开了两个系统(两个网关),其余的主机与宿主机通过交换机或路由器连在一起(只要保证物理上能通就行)。

虚拟机中环境:Ubuntu10.10

拓扑结构:

其中sun和moon主机自然是网关。

只要保证sun的一个网卡和moon的一个网卡IP处在同一网段中,sun_net和sun的另一网卡IP处在同一网段中,moon_net和moon的另一网卡IP处在同一网段中即可。

要实现的就是:sun_net中的主机通过sun和moon能与不在同一网段的moon_net中的主机实现通信。

建议:操作前先相互ping一下,看看该通的地方通不通。偶就是以为一台电脑有间歇性的“网络不通”症,白白浪费一天时间。

宿主机的IP无需配置,但要保证是连在这个网络中的。

三、操作步骤

1、建虚拟机,配置双网卡

配置-add,加块网卡就OK了。设置为桥接模式。注意Vmware需要的服务启动方式如果有设置的话,确保需要的服务都启动了。

2、配置IP

命令:sudo gedit /etc/network/interfaces

当然也可通过ifconfig等命令实现,但那样重启无效。

以下是各主机上配置的/etc/network/interfaces文件:

moon:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet
static
address
172.16.1.13
gateway
172.16.1.12 #这里网关设为sun与此相连的IP,即拓扑图中B的IP
netmask 255.255.0.0
auto eth1
iface eth1 inet
static
address
192.168.4.90
network
192.168.4.0
netmask
255.255.255.0

sun:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet
static
address
192.168.3.90
network
192.168.3.0
netmask
255.255.255.0
auto eth1
iface eth1 inet
static
address
172.16.1.12
gateway
172.16.1.13 #网关设置同上
netmask 255.255.0.0


moon_net中的主机:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet
static
address
192.168.4.99
gateway
192.168.4.90 #网关设置为moon主机与此子网连通的那个IP,即D的IP
netmask 255.255.255.0

sun_net中的主机:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet
static
address
192.168.3.99
gateway
192.168.3.90 #网关设置方法同上
netmask 255.255.255.0

这里注意的就是网关的设置。B处的网关是C,C处的网关是B。sun_net的网关是A,moon_net中的网关是D。

重启网络:sudo /etc/init.d/networking restart

第2步完成。

B处的网关也可这样设置:

sudo route add default gw 172.16.1.13

同理C处的:

sudo route add default gw 172.16.1.12

其实就是设置缺省路由。缺省的路由是把所有的数据包都发往它的上一级网关。

后面设置成功后如果无法通,可以用route命令查看一下,如果默认路由没有的话就用这两条命令设置一下。

3、设置转发

第2步完成后sun_net与moon_net还是不通的,原因就是未设置转发。

在网关moon和sun中设置:

在 /etc/sysctl.conf 文件中,设置 net.ipv4.ip_forward = 1 ,开启 IP 包转发功能,然后执行 sysctl -p 让参数生效。这样moon和sun就可以在它们的两个网卡之间转发数据包了。

四、测试

端口两两之间ping一下,如果配置正确,应该都能通。不通则检查下IP和路由表,一般是那的问题。

posted on 2011-04-09 13:37  Rusty's code  阅读(3557)  评论(0编辑  收藏  举报