什么是路由器
路由器会分析来源端封包的 IP 表头,在表头内找出要送达的目标 IP 后,透过路由器本身的路由表 (routing table) 来将这个封包向下一个目标 (next hop) 传送。
何时需要路由器
计算机数量小于数十部的小型企业是无须路由器的,只需要利用 hub/switch 串接各部计算机, 然后透过单一线路连接到 Internet 上即可
如果公司分布在各楼层而不想架设路由器,而是直接以网络线串接各楼层的 hub/switch 时, 那由于同一网域的数据是透过广播来传递的,那当整个大楼的某一部计算机在广播时, 所有的计算机将会予以回应 太慢 不安全
两种方式达成路由器功能
- 硬件功能:例如 Cisco, TP-Link, D-Link (注2) 等公司都有生产硬件路由器, 这些路由器内有嵌入式的操作系统,可以负责不同网域间的封包转译与转递等功能;
- 软件功能:例如 Linux 这个操作系统的核心就有提供封包转递的能力。
以下讨论以太网里头最简单的路由器功能:连接两个不同网域(linux核心就可以完成)
查看核心是否启动封包转递功能
[[email protected] ~]# cat /proc/sys/net/ipv4/ip_forward
修改配置文件 永久启动
[[email protected] ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 改为1
[[email protected] ~]# sysctl -p 立刻让设定生效(sysctl是在核心工作时用来修改核心参数的指令)
路由表的两种设定方法
- 静态路由:直接以类似 route 这个指令来直接设定路由表到核心功能当中,设定值只要与网域环境相符即可。 不过,当你的网域有变化时,路由器就得要重新设定;
- 动态路由:透过类似 Quagga 或 zebra 软件的功能,这些软件可以安装在 Linux 路由器上, 而这些软件可以动态的侦测网域的变化,并直接修改 Linux 核心的路由表信息, 你无须手动以 route 来修改你的路由表信息喔!
NAT服务器 (Network Address Translation, 网络地址转换)
路由器两端的网域分别是 Public 与 Private IP 时,才需要 NAT 的功能!
NAT服务器本身就是一个路由器 但比路由器多了一个『 IP 转换』的功能
- 一般来说,路由器会有两个网络接口,透过路由器本身的 IP 转递功能让两个网域可以互相沟通网络封包。 那如果两个接口一边是公共 IP (public IP) 但一边是私有 IP (private IP) 呢? 由于私有 IP 不能直接与公共 IP 沟通其路由信息,此时就得要额外的『 IP 转译』功能了;
- Linux 的 NAT 服务器可以透过修改封包的 IP 表头数据之来源或目标 IP ,让来自私有 IP 的封包可以转成 NAT 服务器的公共 IP ,就可以连上 Internet !
静态路由器搭建
动态路由器搭建
必须要了解到对方路由器上面所提供的动态路由协议才行,这样两部路由器才能够透过该协议来沟通彼此的路由规则
目前常见的动态路由协议有:RIPv1, RIPv2, OSPF, BGP 等。
搞定这些动态路由的相关机制,那就得要使用 quagga 这个软件!这个软件是 zebra 计划的延伸,