lab1(11.8,周一)
Ubuntu:server
Ubuntu1:host1
一些报错解决:
1.用DHCP给网卡自动分配地址时,出现RTNETLINK answers: File exists
的报错,执行一下指令 ip addr flush dev 网卡名
就可以了
2.如果要重启网络服务,用下面这个
service network-manager restart
一些知识
1.ARP协议:把IP地址转成MAC地址
2.DNS协议:域名解析协议
3.NAT协议:网络地址转换协议
几个注意点:
1.在server中对sysctl.conf进行修改后,还需要使用命令sysctl -p
使得这个修改对系统配置真正生效
2.在host1中对/etc/resolv.conf
的修改在重启后会失效,所以如果要对host1进行重启,那么需要再次修改这个文件
3.在server中对局域网网卡的IP进行的修改同样会在重启后失效
总结:重启机器后
1)需要用ifconfig
看看IP地址都设置对了没有
2)用gedit /etc/resolv.conf查看nameserver 114.114.114.114
写进去了没有
NAT服务器配置技术
1.设备需要
至少运行两台机器,一台作为客户机client,一台作为NAT服务器server
2.客户机的设置
1.通过virtualbox或者VMware的虚拟机设置选项来设置单张网卡运行,连接模式为内部网络(internal)
2.设置这张网卡的IP地址为局域网:
ifconfig eth0 192.168.0.2
eth0是网卡的名字,不同机器可能有所不同,按实际情况来填就行
3.设置DNS服务器地址:
sudo gedit /etc/resolv.conf
# 在resolve.conf文件中添加如下内容,相当于告诉客户机域名转换服务器的地址
nameserver 114.114.114.114
注意,如果重启了client,那么要重新执行这一步!!!
4.设置网关地址
# 这个网关地址就是server中用于和client进行通信的局域网IP地址
route add default gw 192.168.0.1
3.服务器设置
1.通过virtualbox或者VMware的虚拟机设置选项设置服务器虚拟机用两张网卡通信,其中一张网卡的连接方式为NAT,记这张网卡为eth0;另一张网卡的连接方式设置为内部网络(internal),记这张网卡为eth1
2.设置两张网卡的IP地址
用DHCP方式为NAT网卡分配IP地址
dhclient eth0
对于和host在同一个局域网内的网卡eth1,静态指定其IP地址
ifconfig eth1 192.168.0.1
3.打开转发功能
gedit /etc/sysctl.conf
#在这个文件中取消对net.ipv4.ip_forward=1的注释
#再用sysctl -p指令让上面的修改真正对系统起效,而不仅仅是对文件起效
sysctl -p
4.添加NAT功能
iptables -t nat -A POSTROUTING -s "192.168.0.1/24" -o eth0 -j MASQUERADE
4.实际抓包
- 在客户机中运行
ping baidu.com
2.在服务器中,对两张网卡分别进行监听和抓包
在NAT网卡中抓包
在局域网网卡中进行监听和抓包
可以看到,从客户机(192.168.0.2)出发的请求顺利到达了百度(220.181.38.149)