linux下配置路由器,iptables,NAT,DHCP

来源:互联网 发布:网络态势感知研究 编辑:程序博客网 时间:2024/05/09 13:24
实验环境
我的真机是xp,拨号上网,DNS是172.17.1.6(通过nslookup www.baidu.com命令就可得到这个DNS)
还有两个VirtualBox虚拟机:xp 和linux。


虚拟机xp有一张网卡,上网模式是Host Only
虚拟机linux有两张网卡,
eth0的上网模式是Host Only ,ip地址是192.168.56.78
eth1的上网模式是NAT ,ip地址是10.0.3.15(主要是用这个ip模拟公网ip,因为这个ip可以上网)


我准备用linux做路由器,使虚拟机xp在Host Only模式下能上网


配置虚拟机xp
设置ip 192.168.56.23
子网掩码 255.555.555.0
默认网关 192.168.56.78(这个ip地址正好对应linux的eth0的host only的ip地址)
首选DNS服务器 172.17.1.6(这个DNS和我真机上的DNS是一样的)


配置虚拟机linux
以root用户执行:
modprobe ip_tables
modprobe ip_nat_ftp
chkconfig iptables on
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
局域网共享实现(可选,这条命令和下面的MASQUERADE类似,虚拟机xp都能上网,但是用MASQUERADE更灵活)
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.56.23 -j SNAT --to-source 10.0.3.15
建立伪装和IP转发
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth0 -j ACCEPT


打开内核的包转发功能:
修改/etc/sysctl.conf中的net.ipv4.ip_forward = 1
然后执行sysctl -p,使内核参数修改生效


在虚拟机xp中能上网,关闭linux,xp不能上网,再启动linux,xp能上网,由此可见linux路由器配置成功了
-----------------------------------------------------------------------------
上面的配置路由器的方法存在一点问题,客户机要手工设置ip和DNS,能不能让客户机自动获取IP和DNS来上网呢?
下面就在linux服务器上架设DHCP服务器。
将/usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample 复制到 /etc/dhcpd.conf
按照指示修改里边的内容,然后用root用户执行如下命令
chkconfig dhcpd on
service dhcpd restart
为了看DHCP服务器的效果,先在真机上结束VBoxNetDHCP.exe进程,否则DHCP默认会用这个进程
虚拟机xp只要设置为自动获取ip地址就行。
输入ipconfig查看,里面的内容和/etc/dhcpd.conf是吻合的,而且虚拟机xp能上网,看来DHCP服务器确实是运行成功了。

原创粉丝点击