要求:
- PC1与PC2不能通信。
- PC1可以和PC3通信。
- PC2可以和PC3通信。
1. VLAN配置
根据拓扑图的连接,PC1、PC2、PC3属于不同的VLAN。我们需要确保交换机上的端口已经正确划分到不同的VLAN。假设交换机接口的VLAN配置已经完成(其他博文有):
- PC1在VLAN10:
interface Ethernet 0/0/1
- PC2在VLAN20:
interface Ethernet 0/0/2
- PC3在VLAN30:
interface Ethernet 0/0/3
-
interface Ethernet0/0/1switchport access vlan 10switchport mode accessinterface Ethernet0/0/2switchport access vlan 20switchport mode accessinterface Ethernet0/0/3switchport access vlan 30switchport mode access
2. 路由器的接口配置(子接口配置)
由于三台PC属于不同的网段,必须在路由器上为每个VLAN配置子接口,以实现VLAN间的通信。
-
interface GigabitEthernet0/0.10encapsulation dot1Q 10ip address 192.168.10.254 255.255.255.0interface GigabitEthernet0/0.20encapsulation dot1Q 20ip address 192.168.20.254 255.255.255.0interface GigabitEthernet0/0.30encapsulation dot1Q 30ip address 192.168.30.254 255.255.255.0
3. 配置访问控制列表(ACL)
为了实现PC1不能和PC2通信,但可以和PC3通信,以及PC2和PC3可以通信的要求,我们可以配置ACL。
阻止PC1和PC2的通信:
创建ACL来阻止PC1(192.168.10.1)与PC2(192.168.20.1)的通信。
access-list 100 deny ip 192.168.10.1 0.0.0.0 192.168.20.1 0.0.0.0 access-list 100 permit ip any any
将这个ACL应用在路由器的VLAN10子接口上:
interface GigabitEthernet0/0.10ip access-group 100 in
PC1可以和PC3通信:
ACL默认会允许PC1和PC3通信,因为我们只阻止了PC1和PC2的通信,其他通信默认允许。
PC2可以和PC3通信:
同样的,PC2与PC3之间的通信不需要特别处理,只要不在ACL中阻止就可以了。因此,PC2和PC3之间的通信会被允许。
总结:
- VLAN配置:PC1、PC2、PC3被分别划分到VLAN10、VLAN20和VLAN30。
- 路由配置:配置路由器子接口,使各个VLAN能够进行路由。
- ACL配置:使用访问控制列表(ACL)阻止PC1与PC2的通信,而允许PC1与PC3、PC2与PC3的通信。
思考:如果三台PC属于同一个网段?
如果三台PC处于同一个网段(比如子网掩码为255.255.255.0,它们的网段范围是192.168.x.0/24
,而IP地址分别是192.168.10.1
、192.168.20.1
、192.168.30.1
),并且你打算使用VLAN来区分不同PC的网络隔离,那么路由器的配置主要围绕路由器上的子接口配置进行。
由于每个PC位于不同的VLAN(例如PC1在VLAN10、PC2在VLAN20、PC3在VLAN30),需要在路由器上为每个VLAN配置子接口,确保每个VLAN的流量可以通过路由器来进行互通。这样可以实现跨VLAN的通信控制。
以下是配置路由器子接口的具体命令。这里假设路由器的主接口为GigabitEthernet 0/0
。
1. 创建子接口并为每个VLAN分配IP地址
每个VLAN的子接口必须和VLAN对应。具体命令如下:
配置 VLAN 10 子接口(PC1所在的 VLAN)
interface GigabitEthernet 0/0.10encapsulation dot1Q 10 # 为 VLAN10 配置 802.1Q 封装ip address 192.168.10.254 255.255.255.0 # 为 VLAN10 的网关分配 IP 地址
配置 VLAN 20 子接口(PC2所在的 VLAN)
interface GigabitEthernet 0/0.20encapsulation dot1Q 20 # 为 VLAN20 配置 802.1Q 封装ip address 192.168.20.254 255.255.255.0 # 为 VLAN20 的网关分配 IP 地址
配置 VLAN 30 子接口(PC3所在的 VLAN)
interface GigabitEthernet 0/0.30encapsulation dot1Q 30 # 为 VLAN30 配置 802.1Q 封装ip address 192.168.30.254 255.255.255.0 # 为 VLAN30 的网关分配 IP 地址
2. 确保主接口没有 IP 地址
在配置子接口的同时,确保路由器的主接口上没有直接配置 IP 地址,因为所有 IP 地址应该配置在子接口上。
interface GigabitEthernet 0/0no ip address
3. 配置交换机的Trunk端口
为了确保交换机可以识别多个VLAN并将其传递给路由器,我们需要在交换机上配置Trunk端口。这些端口允许多个VLAN通过交换机和路由器之间的连接。
假设连接到路由器的交换机端口是GigabitEthernet 0/1
,配置如下:
interface GigabitEthernet 0/1switchport mode trunkswitchport trunk allowed vlan 10,20,30 # 允许 VLAN 10、20、30 通过
4. 路由器上配置静态路由(如果有必要)
如果你的拓扑中存在其他网络,需要让这些VLAN能够与其他网络通信,你可能还需要配置静态路由或动态路由协议。如果没有其他网络参与,则路由器内部会自动处理这些VLAN之间的路由,不需要额外配置。
5. ACL配置(如果需要通信控制)
为了满足你之前提到的通信要求,可以使用访问控制列表(ACL)来控制不同VLAN之间的通信。
阻止 PC1 与 PC2 之间的通信:
access-list 101 deny ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255
access-list 101 permit ip any any
应用 ACL 到路由器的接口上:
interface GigabitEthernet 0/0.10ip access-group 101 in