同一网段划分vlan后,做dhcp,实现每个vlan自动获取ip地址

同一网段划分vlan后,做dhcp,实现每个vlan自动获取ip地址,第1张

赞成楼上的,只是少了配置命令,补充如下:

交换机配置DHCP配置

1,交换机作DHCP Server

『配置环境参数』

1 PC1、PC2的网卡均采用动态获取IP地址的方式

2 PC1连接到交换机的以太网端口0/1,属于VLAN10;PC2连接到交换机的以太网端口0/2,属于VLAN20

3 三层交换机SwitchA的VLAN接口10地址为10111/24,VLAN接口20地址为10121/24

『组网需求』

1 PC1可以动态获取10110/24网段地址,并且网关地址为10111;PC2可以动态获取10120/24网段地址,并且网关地址为10121

『DHCP Server配置流程流程』

可以完成对直接连接到三层交换机的PC机分配IP地址,也可以对通过DHCP中继设备连接到三层交换机的PC机分配IP地址。

分配地址的方式可以采用接口方式,或者全局地址池方式。

SwitchA采用接口方式分配地址相关配置

1 创建(进入)VLAN10

[SwitchA]vlan 10

2 将E0/1加入到VLAN10

[SwitchA-vlan10]port Ethernet 0/1

3 创建(进入)VLAN接口10

[SwitchA]interface Vlan-interface 10

4 为VLAN接口10配置IP地址

[SwitchA-Vlan-interface10]ip address 10111 2552552550

5 在VLAN接口10上选择接口方式分配IP地址

[SwitchA-Vlan-interface10]dhcp select interface

6 禁止将PC机的网关地址分配给用户

[SwitchA]dhcp server forbidden-ip 10111

SwitchA采用全局地址池方式分配地址相关配置

1 创建(进入)VLAN10

[SwitchA]vlan 10

2 将E0/1加入到VLAN10

[SwitchA-vlan10]port Ethernet 0/1

3 创建(进入)VLAN接口10

[SwitchA]interface Vlan-interface 10

4 为VLAN接口10配置IP地址

[SwitchA-Vlan-interface10]ip address 10111 2552552550

5 在VLAN接口10上选择全局地址池方式分配IP地址

[SwitchA-Vlan-interface10]dhcp select global

6 创建全局地址池,并命名为”vlan10”

[SwitchA]dhcp server ip-pool vlan10

7 配置vlan10地址池给用户分配的地址范围以及用户的网关地址

[SwitchA-dhcp-vlan10]network 10110 mask 2552552550

[SwitchA-dhcp-vlan10]gateway-list 10111

8 禁止将PC机的网关地址分配给用户

[SwitchA]dhcp server forbidden-ip 10111

补充说明

以上配置以VLAN10的为例,VLAN20的配置参照VLAN10的配置即可。在采用全局地址池方式时,需新建一个与”vlan10”不同名的全局地址池。

经过以上配置,可以完成为PC1分配的IP地址为10110/24,同时PC1的网关地址为10111;为PC2分配的IP地址为10120/24,同时PC2的网关地址为10121。

VLAN接口默认情况下以全局地址池方式进行地址分配,因此当VLAN接口配置了以全局地址池方式进行地址分配后,查看交换机当前配置时,在相应的VLAN接口下无法看到有关DHCP的配置。

利用全局地址池方式,可以完成为用户分配与三层交换机本身VLAN接口地址不同网段的IP地址。

2,DHCP Relay配置

『配置环境参数』

1 DHCP Server的IP地址为192168010/24

2 DHCP Server连接在交换机的G1/1端口,属于vlan100,网关即交换机vlan接口100的地址19216801/24

3 E0/1-E0/10属于vlan10,网段地址101011/24

4 E0/11-E0/20属于vlan20,网段地址101021/24

『组网需求』

1 在SwitchA上配置DHCP Relay使下面用户动态获取指定的相应网段的IP地址

2 PC1、PC2均可以ping通自己的网关,同时PC1、PC2之间可以互访

『交换机DHCP Relay配置流程』

DHCP Relay的作用则是为了适应客户端和服务器不在同一网段的情况,通过Relay,不同子网的用户可以到同一个DHCP Server申请IP地址,这样便于地址池的管理和维护。

SwitchA相关配置

1 全局使能DHCP功能(缺省情况下,DHCP功能处于使能状态)

[SwitchA]dhcp enable

2 创建(进入)VLAN100

[SwitchA]vlan 100

3 将G1/1加入到VLAN100

[SwitchA-vlan100]port GigabitEthernet 1/1

4 创建(进入)VLAN接口100

[SwitchA]interface Vlan-interface 100

5 为VLAN接口100配置IP地址

[SwitchA-Vlan-interface100]ip address 19216801 2552552550

6 创建(进入)VLAN10

[SwitchA]vlan 10

7 将E0/1-E0/10加入到VLAN10

[SwitchA-vlan10]port Ethernet 0/1 to Ethernet 0/10

8 创建(进入)VLAN接口10

[SwitchA]interface Vlan-interface 10

9 为VLAN接口10配置IP地址

[SwitchA-Vlan-interface10]ip address 101011 2552552550

10 使能VLAN接口10的DHCP中继功能

[SwitchA-Vlan-interface10]dhcp select relay

11 为VLAN接口10配置DHCP服务器的地址

[SwitchA-Vlan-interface10]ip relay address 192168010

12 创建(进入)VLAN20

[SwitchA-vlan10]vlan 20

13 将E0/11-E0/20加入到VLAN20

[SwitchA-vlan20]port Ethernet 0/11 to Ethernet 0/20

14 创建(进入)VLAN接口20

[SwitchA]interface Vlan-interface 20

15 为VLAN接口20配置IP地址

[SwitchA-Vlan-interface20]ip address 101021 2552552550

16 使能VLAN接口20的DHCP中继功能

[SwitchA-Vlan-interface20]dhcp select relay

17 为VLAN接口20配置DHCP服务器的地址

[SwitchA-Vlan-interface20]ip relay address 192168010

补充说明

也可以在全局配置模式下,使能某个或某些VLAN接口上的DHCP中继功能,例如:[SwitchA]dhcp select relay interface Vlan-interface 10

3,DHCP Snooping

『配置环境参数』

1 DHCP Server连接在交换机SwitchA的G1/1端口,属于vlan10,IP地址为10101253/24

2 端口E0/1和E0/2同属于vlan10

『组网需求』

1 PC1、PC2均可以从指定DHCP Server获取到IP地址

2 防止其他非法的DHCP Server影响网络中的主机

『交换机DHCP-Snooping配置流程』

当交换机开启了DHCP-Snooping后,会对DHCP报文进行侦听,并可以从接收到的DHCP Request或DHCP Ack报文中提取并记录IP地址和MAC地址信息。另外,DHCP-Snooping允许将某个物理端口设置为信任端口或不信任端口。信任端口可以正常接收并转发DHCP Offer报文,而不信任端口会将接收到的DHCP Offer报文丢弃。这样,可以完成交换机对假冒DHCP Server的屏蔽作用,确保客户端从合法的DHCP Server获取IP地址。

SwitchA相关配置

1 创建(进入)VLAN10

[SwitchA]vlan 10

2 将端口E0/1、E0/2和G1/1加入到VLAN10

[SwitchA-vlan10]port Ethernet 0/1 Ethernet 0/2 GigabitEthernet 1/1

3 全局使能dhcp-snooping功能

[SwitchA]dhcp-snooping

4 将端口G1/1配置为trust端口,

[SwitchA-GigabitEthernet1/1]dhcp-snooping trust

补充说明

由于DHCP服务器提供给用户包含了服务器分配给用户的IP地址的报文――”dhcp offer”报文,由G1/1端口进入SwitchA并进行转发,因此需要将端口G1/1配置为”trust”端口。如果SwitchA上行接口配置为Trunk端口,并且连接到DHCP中继设备,也需要将上行端口配置为”trust”端口。

跨网段获取MAC地址方法如下:

protected void Page_Load(object sender, EventArgs e)

{

//ReadMSG();

if (!IsPostBack)

{

Label1Text =

"//客户端ip:" +

RequestServerVariablesGet("Remote_Addr")ToString() + "<br>" +

" //客户端主机名:" +

RequestServerVariablesGet("Remote_Host")ToString() + "<br>" +

"//客户端浏览器IE:" +

RequestBrowserBrowser + "<br>" +

"//客户端浏览器 版本号:" +

RequestBrowserMajorVersion + "<br>" +

"//客户端 *** 作系统:" +

RequestBrowserPlatform + "<br>" +

"//服务器ip:" +

RequestServerVariablesGet("Local_Addr")ToString() + "<br>" +

"//服务器名:" +

RequestServerVariablesGet("Server_Name")ToString() + "<br>";

string stringMAC = "";

string stringIP = "";

ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollection MOC = MCGetInstances();

foreach (ManagementObject MO in MOC)

{

if ((bool)MO["IPEnabled"] == true)

{

stringMAC += MO["MACAddress"]ToString(); //获取网卡的地址

string[] IPAddresses = (string[])MO["IPAddress"]; //获取本地的IP地址

if (IPAddressesLength > 0)

stringIP = IPAddresses[0];

Label1Text += "<br>MAC:" + stringMAC + "/ IP:" + stringIP;

if (stringIP == "192168145")

Label1Text += "<br>I get you :192168145<br>";

}

}

//在页面上打印出客户端的网卡物理地址(MAC)

//ResponseWrite(thisGetMac(RequestUserHostAddressToString())+"<br>");

GetInfo();

}

}

//获取cpu序列号,硬盘ID,网卡MAC地址

private void GetInfo()

{

string cpuInfo = "";//cpu序列号

ManagementClass cimobject = new ManagementClass("Win32_Processor");

ManagementObjectCollection moc = cimobjectGetInstances();

foreach (ManagementObject mo in moc)

{

cpuInfo = moProperties["ProcessorId"]ValueToString();

Label1Text += "cpu序列号:" + cpuInfoToString();

}

//获取硬盘ID

String HDid;

ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");

ManagementObjectCollection moc1 = cimobject1GetInstances();

foreach (ManagementObject mo in moc1)

{

HDid = (string)moProperties["Model"]Value;

Label1Text += "硬盘序列号:" + HDidToString();

}

}

//protected void Button1_Click(object sender, EventArgs e)

//{

// try

// {

// FileDelete(@"D:\htmlhtml");

// }

// catch (Exception e2)

// {

// ResponseWrite(e2Message);

// }

// ResponseWrite("Delete Successed!");

//}

//获取远程客户端的网卡物理地址(MAC)

public string GetMac(string IP) //para IP is the client's IP

{

string dirResults = "";

ProcessStartInfo psi = new ProcessStartInfo();

Process proc = new Process();

psiFileName = "nbtstat";

psiRedirectStandardInput = false;

psiRedirectStandardOutput = true;

psiArguments = "-A " + IP;

psiUseShellExecute = false;

proc = ProcessStart(psi);

dirResults = procStandardOutputReadToEnd();

procWaitForExit();

dirResults = dirResultsReplace("\r", "")Replace("\n", "")Replace("\t", "");

Regex reg = new Regex("Mac[ ]{0,}Address[ ]{0,}=[ ]{0,}(<key>(()))__MAC", RegexOptionsIgnoreCase | RegexOptionsCompiled);

Match mc = regMatch(dirResults + "__MAC");

if (mcSuccess)

{

return mcGroups["key"]Value;

}

else

{

reg = new Regex("Host not found", RegexOptionsIgnoreCase | RegexOptionsCompiled);

mc = regMatch(dirResults);

if (mcSuccess)

{

return "Host not found!";

}

else

{

return "";

}

}

}

要解析第二点中所提的问题,首先要搞清楚DHCP的实际的工作过程及原理,下面就对此做简单介绍:DHCP是一个基于广播的协议,它的 *** 作可以归结为四个阶段,这些阶段是IP租用请求、IP租用提供、IP租用选择、IP租用确认。

1、IP租用请求:在任何时候,客户计算机如果设置为自动获取IP地址,那么在它开机时,就会检查自己当前是否租用了一个IP地址,如果没有,它就向DCHP请求一个租用,由于该客户计算机并不知道DHCP服务器的地址,所以会用255255255255作为目标地址,源地址使用0000,在网络上广播一个DHCPDISCOVER消息,消息包含客户计算机的媒体访问控制(MAC)地址(网卡上内建的硬件地址)以及它的NetBIOS名字。

2、IP租用提供:当DHCP服务器接收到一个来自客户的IP租用请求时,它会根据自己的作用域地址池为该客户保留一个IP地址并且在网络上广播一个来实现,该消息包含客户的MAC地址、服务器所能提供的IP地址、子网掩码、租用期限,以及提供该租用的DHCP服务器本身的IP地址。

3、IP租用选择:如果子网还存在其它DHCP服务器,那么客户机在接受了某个DHCP服务器的DHCPOFFER消息后,它会广播一条包含提供租用的服务器的IP地址的DHCPREQUEST消息,在该子网中通告所有其它DHCP服务器它已经接受了一个地址的提供,其他DHCP服务器在接收到这条消息后,就会撤销为该客户提供的租用。然后把为该客户分配的租用地址返回到地址池中,该地址将可以重新作为一个有效地址提供给别的计算机使用。

4、IP租用确认: DHCP服务器接收到来自客户的DHCPREQUEST消息,它就开始配置过程的最后一个阶段,这个确认阶段由DHCP服务器发送一个DHCPACK包给客户,该包包括一个租用期限和客户所请求的所有其它配置信息,至此,完成TCP/IP配置。

① 简单的笨办法就是写个批处理文件,在你电脑上运行,将上述三个网段的地址挨个去 PING。假设批文件名为 AAAABAT,文件内容为:

PING 192168151

PING 192168152

PING 19216815253

PING 19216815254

PING 192168131

PING 192168132

PING 19216813253

PING 19216813254

PING 192168111

PING 192168112

PING 19216811253

PING 19216811254

你可用记事本软件编写,一个网段的 PING 命令编辑完后,第二个网段就可以拷贝修改后得到。

② 运行 AAAA,为了得到运行后的结果,你可将运行结果重定向到文本文件 BBBB 中,打开 BBBB 文件,可查到哪些 IP 地址可 PING 通。

AAAA > BBBB

不过你要保证所有电脑不阻止 PING 反馈信息。

③ 不过,我遇到过你同样问题,我采用的最准确的办法,还是到每台电脑上去检查,这是最保险的办法,其实也用不着花多少时间,你等待答案的时间,说不定全查完了。

局域网管理中经常遇到已知某个MAC地址,要查询其IP地址的情况,有如下几种方法:

方法一:用ARP -A 查询

这种方法只能查到与本机通讯过(20分钟内)的主机MAC地址和IP地址。可在远程主机所属网段中的任一台主机上运行此命令,这样可查出IP欺骗类病毒的主机。

方法二:用专用软件查,如nbtscan

命令方式是:nbtscan -r 网络号/掩码位,这种方法可查询某网段的所有IP与MAC对应关系,但装有防火墙的主机则禁止查询。

方法三: 如果所连交换机有网管功能,可用ARP SHOW 命令显示交换机的arp缓存信息,这种方式基本可查询所有的IP 与MAC地址,但只有网管才有这个权限。

方法四:用sniffer类的嗅探软件抓包分析,packet中一般都含用IP地址与MAC地址。

方法五:用solarwinds类软件中的MAC ADDRESS DISCOVERY查询,但这个工具好象不能跨网段查询。

DOS窗口,输入: arp -a,显示所有机器mac。

或者下个局域网软件,点击扫描。比如IP BOOK

FYI:

有时候,我们需要获得所在局域网中所有的主机的MAC地址,不巧,手中又恰恰没有合适的软件。难道我们就束手无策了么?

其实,使用一些DOS命令,完全可以胜任这个工作,而且,效果会比某些软件好的多。

下面介绍下我的思路:

还记得ARP命令么?,利用ARP缓存信息,就可以得到我想要的局域网机器的MAC地址了。呵呵,理了一下思路,动手 *** 作,效果非常好,就连一些试用版、破解版的MAC扫描工具扫不出的有些机器的信息ARP里都有!如何实施呢?

用Ping 命令,先Ping 一下局域网中的机器IP,因为我想在本地机器的ARP缓存信息里得到想要的MAC地址信息。只有Ping 过局域网中在线机器,本地机器的ARP缓存就会记录下Ping 过的机器的IP与MAC地址信息,也就是说,本地机器发出个数据包,目标机器会有一个应答,这个应答里含有IP地址和MAC地址的信息,这些个信息会晢存 在本地机器的ARP缓存里。在本地机器上,用ARP -a就可全部显示出来了。(防火墙或者过滤包的方法也无法禁止ARP的查看,远程计算机不返回Ping成功的消息但会告诉本地计算机该IP地址对应的 MAC地址。有些MAC扫描工具因对方防火墙的原因而无法得到对方的IP和Mac信息。)

有了这些思路,就差不多了。可我总不能一个一个的去Ping 啊,于是我就写个批处理,批量检测局域网中在线的机器。例如要查看1921680这个网段中有哪些地址在线。在桌面上点鼠标右键新建一个文本文件后输入如下代码:

FOR /L %%i IN (0,1,255) Do ping 1921680%%i -n 1

arp -a -> MACtxt

将该文件保存为bat文件,双击这个批处理文件将自动搜索网段中的所有IP,并且将发现出的ARP信息都保存到MACtxt文件中。

arp –a ->MACtxt 这行命令表示将ARP显示的结果保存到 MACtxt的文本文件中。

如果只是想Ping某一部分IP而不是所有该网段中的IP,可以将上面命令行中 IN(0,1,255) 中1,255是<指IP的范围>改写。

注意:批处理没有程序报错功能,所以,IP的范围应严格在1,255之间,防止机器执行批处理时发生意外^_^)。比如,我只想扫描192168010至1921680200之间的IP与MAC信息,可以这样写:

FOR /L %%i IN (0,10,200) Do ping 1921680%%i -n 1

arp -a -> MACtxt

提示:扫描过程中可以使用“ctrl+c”命令进行中断。

以上就是关于同一网段划分vlan后,做dhcp,实现每个vlan自动获取ip地址全部的内容,包括:同一网段划分vlan后,做dhcp,实现每个vlan自动获取ip地址、如何跨网段取MAC地址、简述在某一网段内,DHCP CLIENT使用DHCP自动获取IP地址的工作原理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9435841.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存