virtualbox + Debian 模拟linux局域网配置

来源:互联网 发布:淘宝两元包邮 编辑:程序博客网 时间:2024/06/05 23:02

    • Preface
    • 概述
    • 使用工具
    • 需要配置的文档
    • 正文
    • References

Preface

  • 因为之前ubuntu上使用mln+user-mode-linux模拟局域网配置上总是出问题,考虑到mln是好几年前的产物加上启动的时候总会出现read-only的问题,虽然可以通过remount解决不过还是感觉超级不爽,所以改换工具,选择正统很多的virtualbox+linux实现模拟

概述

  • 在virtualbox中建立一个internal网络(net: 192.168.1.0/24; gateway:192.168.1.1)
  • 使用一个debian host作为路由器(hostname: gw-debian; eth0: connect through NAT and addressed with DHCP; eth1 address: 192.168.1.1/24)
  • 其他三个hosts:
    • eth0:192.168.1.2/24 server-debian
    • eth0:192.168.1.3/24 client-1-debian
    • eth0:192.168.1.4/24 client-2-debian

使用工具

  • virtualbox 4.3.28
  • debian-8.0.0-amd64-netinst
  • quagga: an open-source routing software

需要配置的文档

  • /etc/hosts (包含ip、完全名以及hostname)
  • /etc/hostname (只有hostname)
    在以上两个文档修改后需要通过重启服务完成更新 /etc/init.d/networking restart
  • /etc/sysctl.conf (将net.ipv4.ip_forward = 0 或者注释更改为 net.ipv4.ip_forward = 1,此项为了支持ip转发)
  • /etc/resolv.conf (DNS configuration)

正文

一些基本步骤
- 在virtualbox中建立一个internal网络
- 配置各host网卡信息,其中gw-debian的eth0(adapter1/网卡1)对应NAT,eth1连接internal网络
- 启动各host并配置hostname以及ipaddress等信息,服务重启后,通过ifconfig打印确认
- 此时gw-debian可以连接外网,不过其他内网中的host不可以,而内网中各host可以相互ping通

通过ip masquerading(ip 伪装)使得内网host可以访问外网
- 修改 /etc/sysctl.conf 允许ip转发: net.ipv4.ip_forward = 1
- 通过iptables完成防火墙通过规则:

# /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE# /sbin/iptables -A FORWARD -i eth0 -o eth1 -m state \   --state RELATED,ESTABLISHED -j ACCEPT# /sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
  • 此时可以使用server-debian(192.168.1.2/24) ping 8.8.8.8
  • 查看是否可以使用server-debian(192.168.1.2/24) ping www.baidu.com
    • 如果不可以则检查DNS配置文件 /etc/resolv.conf

References

  • Quick-Tip: Linux NAT in Four Steps using iptables
  • Install Quagga As Linux Router
0 0