如下图的网络结构
192.168.65.128是一个windows主机,仅链接vmnet1的网卡。属于内网,无法连接外网,路由如下:
IPv4 路由表
=========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
127.0.0.0 255.0.0.0 在链路上 127.0.0.1 331
127.0.0.1 255.255.255.255 在链路上 127.0.0.1 331
127.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
192.168.65.0 255.255.255.0 在链路上 192.168.65.128 281
192.168.65.128 255.255.255.255 在链路上 192.168.65.128 281
192.168.65.255 255.255.255.255 在链路上 192.168.65.128 281
224.0.0.0 240.0.0.0 在链路上 127.0.0.1 331
224.0.0.0 240.0.0.0 在链路上 192.168.65.128 281
255.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
255.255.255.255 255.255.255.255 在链路上 192.168.65.128 281
=========================================================================
centos的有两个网卡,一个是192.168.65.130,一个是192.168.183.152。其中192.168.65.0/24是一个内网子网。 192.168.183.0/24是vmnet8的子网,可以连接外网。
为了让内网连接到外网,需要配置centos的路由功能:
[root@localhost ocserv]# vim /etc/sysctl.conf
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward = 1
设置net.ipv4.ip_forward等于1
保存。
我的恰好是1,不需要做额外的操作。如果不是1,修改成1后运行命令 sysctl -p以便启用该设置。
运行下面的命令,让流量指向ens33,注意ens33是我本机的网卡,需要根据自己的配置进行调整。
firewall-cmd --permanent --zone=external --change-interface=ens33
运行命令查看是否生效:
firewall-cmd --zone=external --list-all
[root@localhost ocserv]# firewall-cmd --zone=external --list-all
external (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh
ports:
protocols:
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
此时windows依然是不能上网的,需要为本机增加路由:
route add 0.0.0.0/0 192.168.65.130
让除了本子网的流量都走到192.168.65.130。
经过这样配置,就可以通过centos 路由上网了。