Linux学习--将一台主机配置为路由器,提供路由转换功能

Posted 丢爸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习--将一台主机配置为路由器,提供路由转换功能相关的知识,希望对你有一定的参考价值。

本文通过虚拟机部署了三台CentOS6.10的主机来实现,其中一台主机使用了双网卡
注:下文中将实现路由转换的主机称为NAT主机,设定为仅主机模式的主机称为A主机,设定为NAT模式的主机称为B主机

  1. NAT主机使用了双网卡,一个网卡配置为NAT模式,另一个配置为仅主机模式
    在这里插入图片描述
  2. 修改路由的转发功能
#如果此项不为1,则修改为1
[root@mail ~]# cat /proc/sys/net/ipv4/ip_forward
1
#永久修改ip_forward,将net.ipv4.ip_forward参数设置为1
[root@mail ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#重新载入一下sysctl参数
[root@mail ~]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
#查看网卡1的配置
[root@mail ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.88.135
PREFIX=24
GATEWAY=192.168.88.2
DNS1=114.114.114.114
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
#查看网卡2的配置
[root@mail ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=172.16.100.7
PREFIX=24
GATEWAY=172.16.100.1
DNS1=114.114.114.114
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
#注:如出现网卡启动不了,删除/etc/udev/rules.d/70-persistent-net.rules中的内容,重新启动服务即可
  1. 对A主机进行配置,网络选择仅主机模式
    在这里插入图片描述
#修改网卡的配置文件
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=172.16.100.9
PREFIX=24
GATEWAY=172.16.100.7
DNS1=114.114.114.114
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"

修改完成后,ping一下NAT主机,连接正常
在这里插入图片描述

  1. 对B主机进行配置,网络选择NAT模式
    在这里插入图片描述
#查看网卡配置文件
[root@lotus ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.88.137
PREFIX=24
GATEWAY=192.168.88.135
DNS1=114.114.114.114
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
#查看pingNAT主机的结果
[root@lotus ~]# ping 192.168.88.135
PING 192.168.88.135 (192.168.88.135) 56(84) bytes of data.
64 bytes from 192.168.88.135: icmp_seq=1 ttl=64 time=0.389 ms
64 bytes from 192.168.88.135: icmp_seq=2 ttl=64 time=0.256 ms
64 bytes from 192.168.88.135: icmp_seq=3 ttl=64 time=0.350 ms
... ...
#ping一下A主机的IP地址,连接成功
[root@lotus ~]# ping 172.16.100.9
PING 172.16.100.9 (172.16.100.9) 56(84) bytes of data.
64 bytes from 172.16.100.9: icmp_seq=1 ttl=63 time=0.398 ms
64 bytes from 172.16.100.9: icmp_seq=2 ttl=63 time=0.791 ms
64 bytes from 172.16.100.9: icmp_seq=3 ttl=63 time=0.526 ms
64 bytes from 172.16.100.9: icmp_seq=4 ttl=63 time=0.522 ms

以上是关于Linux学习--将一台主机配置为路由器,提供路由转换功能的主要内容,如果未能解决你的问题,请参考以下文章

端口映射vs端口转发

linux中配置路由器

网络安全课程实验二-iptabls实现路由转发

路由器RIP动态路由配置

静态路由原理与配置——理论篇

Linux主机实现简单的路由转发功能