Linux ip_forward 测试
linux ip_forward 作用:可以实现路由器的功能,利用 linux 主机的两块网卡(网卡处于不同网段),将数据包在两块网卡之间进行传送,实现两个网络之间的访问
这里使用 3 台虚拟机进行测试,使用 virtual box 创建3个虚拟机,网络管理都添加 host-only (仅主机)网络,与 桥接网络,这样就可以使虚拟机处在两个不同的网段。
也可以在虚拟机设置中,添加两个 host-only 网络,只要使虚拟机都含有两个网段的 ip 地址即可
其实对于两台测试用的主机,每台主机只需要一个网卡就可以了,保证两个 ip 所在网段不同即可,但也要保证和中间转发主机在同一网段,这样就不必执行下面的关闭网卡操作。
两个网段地址
# 私有网络 host-only
172.28.128.0/24
# 桥接网卡
192.168.1.0/24
将 3 台主机标记为 A,B, S。让 主机 S 作为中间转发的设备。
查看主机网卡 IP 信息
在 win 主机上通过 ssh 连接到 虚拟机,对于 3台 虚拟机,使用的 ssh 连接地址并不相同,因为后续我们需要关闭一些网卡
这里只显示与两个网段先关的 网卡与 IP 信息
- A 主机 在最后我们保留 A 主机
172.28.128.0 网段的地址
[root@host-A ~]# ip a
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:bd:ca:83 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.104/24 brd 192.168.1.255 scope global noprefixroute dynamic enp0s9
valid_lft 6278sec preferred_lft 6278sec
inet6 fe80::2416:a0e8:dd20:facf/64 scope link noprefixroute
valid_lft forever preferred_lft forever
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:7e:85:e7 brd ff:ff:ff:ff:ff:ff
inet 172.28.128.10/24 brd 172.28.128.255 scope global noprefixroute dynamic enp0s10
valid_lft 485sec preferred_lft 485sec
inet6 fe80::87b9:63b4:bd11:4964/64 scope link noprefixroute
valid_lft forever preferred_lft forever
可以得到 A 主机的 ip 地址 与对应的网卡
enp0s9 --- 192.168.1.104
enp0s10 --- 172.28.128.10
- B主机
[root@host-B ~]# ip a
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:14:11:43 brd ff:ff:ff:ff:ff:ff
inet 172.28.128.6/24 brd 172.28.128.255 scope global noprefixroute dynamic eth1
valid_lft 535sec preferred_lft 535sec
inet6 fe80::a00:27ff:fe14:1143/64 scope link
valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:15:26:84 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.119/24 brd 192.168.1.255 scope global noprefixroute dynamic eth2
valid_lft 6309sec preferred_lft 6309sec
inet6 fe80::a00:27ff:fe15:2684/64 scope link
valid_lft forever preferred_lft forever
可以得到 B 主机的两个 ip 地址
eth2 ---- 192.168.1.119
eth1 ---- 172.28.128.6
- S 主机
root@host-S:~# ip a
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:db:37:e6 brd ff:ff:ff:ff:ff:ff
inet 172.28.128.8/24 brd 172.28.128.255 scope global dynamic eth1
valid_lft 500sec preferred_lft 500sec
inet6 fe80::a00:27ff:fedb:37e6/64 scope link
valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:d3:dc:52 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.105/24 brd 192.168.1.255 scope global dynamic noprefixroute eth2
valid_lft 6030sec preferred_lft 6030sec
inet6 fe80::a00:27ff:fed3:dc52/64 scope link noprefixroute
valid_lft forever preferred_lft forever
可以得到 S 的两个 ip 地址
eth2 ---- 192.168.1.105
eth1 ---- 172.28.128.8
这里我们先测试一个 A 与 B 是否可以 ping 通 | 分别使用 2个 ip 地址测试
- A <—> B
[root@host-A ~