upd
BIN
computer_networks/labs/lab1/assets/1.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
computer_networks/labs/lab1/assets/10.png
Normal file
|
After Width: | Height: | Size: 243 KiB |
BIN
computer_networks/labs/lab1/assets/11.png
Normal file
|
After Width: | Height: | Size: 157 KiB |
BIN
computer_networks/labs/lab1/assets/12.png
Normal file
|
After Width: | Height: | Size: 242 KiB |
BIN
computer_networks/labs/lab1/assets/13.png
Normal file
|
After Width: | Height: | Size: 195 KiB |
BIN
computer_networks/labs/lab1/assets/14.png
Normal file
|
After Width: | Height: | Size: 306 KiB |
BIN
computer_networks/labs/lab1/assets/15.png
Normal file
|
After Width: | Height: | Size: 322 KiB |
BIN
computer_networks/labs/lab1/assets/16.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
computer_networks/labs/lab1/assets/17.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
computer_networks/labs/lab1/assets/18.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
computer_networks/labs/lab1/assets/19.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
computer_networks/labs/lab1/assets/2.png
Normal file
|
After Width: | Height: | Size: 204 KiB |
BIN
computer_networks/labs/lab1/assets/20.png
Normal file
|
After Width: | Height: | Size: 142 KiB |
BIN
computer_networks/labs/lab1/assets/21.png
Normal file
|
After Width: | Height: | Size: 164 KiB |
BIN
computer_networks/labs/lab1/assets/22.png
Normal file
|
After Width: | Height: | Size: 174 KiB |
BIN
computer_networks/labs/lab1/assets/23.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
computer_networks/labs/lab1/assets/24.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
computer_networks/labs/lab1/assets/25.png
Normal file
|
After Width: | Height: | Size: 276 KiB |
BIN
computer_networks/labs/lab1/assets/26.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
computer_networks/labs/lab1/assets/27.png
Normal file
|
After Width: | Height: | Size: 207 KiB |
BIN
computer_networks/labs/lab1/assets/28.png
Normal file
|
After Width: | Height: | Size: 161 KiB |
BIN
computer_networks/labs/lab1/assets/29.png
Normal file
|
After Width: | Height: | Size: 472 KiB |
BIN
computer_networks/labs/lab1/assets/3.png
Normal file
|
After Width: | Height: | Size: 610 KiB |
BIN
computer_networks/labs/lab1/assets/30.png
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
computer_networks/labs/lab1/assets/31.png
Normal file
|
After Width: | Height: | Size: 310 KiB |
BIN
computer_networks/labs/lab1/assets/32.png
Normal file
|
After Width: | Height: | Size: 331 KiB |
BIN
computer_networks/labs/lab1/assets/33.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
computer_networks/labs/lab1/assets/34.png
Normal file
|
After Width: | Height: | Size: 178 KiB |
BIN
computer_networks/labs/lab1/assets/35.png
Normal file
|
After Width: | Height: | Size: 494 KiB |
BIN
computer_networks/labs/lab1/assets/36.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
computer_networks/labs/lab1/assets/37.png
Normal file
|
After Width: | Height: | Size: 246 KiB |
BIN
computer_networks/labs/lab1/assets/38.png
Normal file
|
After Width: | Height: | Size: 283 KiB |
BIN
computer_networks/labs/lab1/assets/39.png
Normal file
|
After Width: | Height: | Size: 186 KiB |
BIN
computer_networks/labs/lab1/assets/4.png
Normal file
|
After Width: | Height: | Size: 237 KiB |
BIN
computer_networks/labs/lab1/assets/40.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
computer_networks/labs/lab1/assets/41.png
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
computer_networks/labs/lab1/assets/42.png
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
computer_networks/labs/lab1/assets/43.png
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
computer_networks/labs/lab1/assets/44.png
Normal file
|
After Width: | Height: | Size: 120 KiB |
BIN
computer_networks/labs/lab1/assets/45.png
Normal file
|
After Width: | Height: | Size: 137 KiB |
BIN
computer_networks/labs/lab1/assets/46.png
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
computer_networks/labs/lab1/assets/47.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
computer_networks/labs/lab1/assets/48.png
Normal file
|
After Width: | Height: | Size: 116 KiB |
BIN
computer_networks/labs/lab1/assets/49.png
Normal file
|
After Width: | Height: | Size: 94 KiB |
BIN
computer_networks/labs/lab1/assets/5.png
Normal file
|
After Width: | Height: | Size: 210 KiB |
BIN
computer_networks/labs/lab1/assets/50.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
computer_networks/labs/lab1/assets/6.png
Normal file
|
After Width: | Height: | Size: 214 KiB |
BIN
computer_networks/labs/lab1/assets/7.png
Normal file
|
After Width: | Height: | Size: 204 KiB |
BIN
computer_networks/labs/lab1/assets/8.png
Normal file
|
After Width: | Height: | Size: 394 KiB |
BIN
computer_networks/labs/lab1/assets/9.png
Normal file
|
After Width: | Height: | Size: 298 KiB |
54
computer_networks/labs/lab1/code/netcfg.cmd
Normal file
@@ -0,0 +1,54 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
setlocal EnableExtensions EnableDelayedExpansion
|
||||
|
||||
set MODE=%1
|
||||
set IFACE=%2
|
||||
set IP=%3
|
||||
set MASK=%4
|
||||
set GW=%5
|
||||
set DNS1=%6
|
||||
set DNS2=%7
|
||||
|
||||
if /i "%MODE%"=="dhcp" goto dhcp
|
||||
if /i "%MODE%"=="static" goto static
|
||||
|
||||
echo 1) DHCP
|
||||
echo 2) Static
|
||||
set /p MODESEL=Select mode [1/2]:
|
||||
if "%MODESEL%"=="1" set MODE=dhcp
|
||||
if "%MODESEL%"=="2" set MODE=static
|
||||
|
||||
if not defined IFACE set /p IFACE=Interface name [Ethernet]:
|
||||
if "%IFACE%"=="" set IFACE=Ethernet
|
||||
|
||||
if /i "%MODE%"=="dhcp" goto dhcp
|
||||
if /i "%MODE%"=="static" goto static
|
||||
echo Invalid selection
|
||||
exit /b 1
|
||||
|
||||
:dhcp
|
||||
if not defined IFACE set /p IFACE=Interface name [Ethernet]:
|
||||
if "%IFACE%"=="" set IFACE=Ethernet
|
||||
netsh interface ip set address name="%IFACE%" source=dhcp
|
||||
netsh interface ip set dns name="%IFACE%" source=dhcp
|
||||
ipconfig /flushdns
|
||||
echo Done
|
||||
exit /b 0
|
||||
|
||||
:static
|
||||
if not defined IFACE set /p IFACE=Interface name [Ethernet]:
|
||||
if "%IFACE%"=="" set IFACE=Ethernet
|
||||
if not defined IP set /p IP=IPv4 address:
|
||||
if not defined MASK set /p MASK=Subnet mask:
|
||||
if not defined GW set /p GW=Gateway:
|
||||
if not defined DNS1 set /p DNS1=DNS1:
|
||||
if not defined DNS2 set /p DNS2=DNS2 (optional):
|
||||
netsh interface ip set address name="%IFACE%" static %IP% %MASK% %GW% 1
|
||||
netsh interface ip set dns name="%IFACE%" static %DNS1% primary
|
||||
if defined DNS2 netsh interface ip add dns name="%IFACE%" %DNS2% index=2
|
||||
ipconfig /flushdns
|
||||
echo Done
|
||||
exit /b 0
|
||||
|
||||
|
||||
95
computer_networks/labs/lab1/code/netcfg.ps1
Normal file
@@ -0,0 +1,95 @@
|
||||
param(
|
||||
[ValidateSet('DHCP','STATIC','INFO')] [string]$Mode,
|
||||
[string]$Interface = 'Ethernet',
|
||||
[string]$IP,
|
||||
[string]$Mask,
|
||||
[string]$Gateway,
|
||||
[string[]]$Dns
|
||||
)
|
||||
|
||||
function MaskToPrefix($m){
|
||||
$b = ($m -split '\.') | ForEach-Object {[Convert]::ToString([int]$_,2).PadLeft(8,'0')}
|
||||
($b -join '').ToCharArray() | Where-Object {$_ -eq '1'} | Measure-Object | Select-Object -ExpandProperty Count
|
||||
}
|
||||
|
||||
function EnsureInterface($alias){
|
||||
$a = Get-NetAdapter -InterfaceAlias $alias -ErrorAction SilentlyContinue
|
||||
if(-not $a){ throw "Interface not found: $alias" }
|
||||
}
|
||||
|
||||
function ConfigureDhcp($alias){
|
||||
EnsureInterface $alias
|
||||
Set-NetIPInterface -InterfaceAlias $alias -AddressFamily IPv4 -Dhcp Enabled
|
||||
Set-DnsClientServerAddress -InterfaceAlias $alias -ResetServerAddresses
|
||||
ipconfig /flushdns | Out-Null
|
||||
}
|
||||
|
||||
function ConfigureStatic($alias,$ip,$mask,$gw,$dns){
|
||||
EnsureInterface $alias
|
||||
$prefix = MaskToPrefix $mask
|
||||
Get-NetIPConfiguration -InterfaceAlias $alias | Get-NetIPAddress -AddressFamily IPv4 -ErrorAction SilentlyContinue | Remove-NetIPAddress -Confirm:$false -ErrorAction SilentlyContinue
|
||||
Get-NetIPConfiguration -InterfaceAlias $alias | Get-DnsClientServerAddress -AddressFamily IPv4 -ErrorAction SilentlyContinue | ForEach-Object { Set-DnsClientServerAddress -InterfaceAlias $alias -ResetServerAddresses }
|
||||
New-NetIPAddress -InterfaceAlias $alias -IPAddress $ip -PrefixLength $prefix -DefaultGateway $gw | Out-Null
|
||||
if($dns){ Set-DnsClientServerAddress -InterfaceAlias $alias -ServerAddresses $dns }
|
||||
ipconfig /flushdns | Out-Null
|
||||
}
|
||||
|
||||
function ShowNicInfo($alias){
|
||||
$na = Get-NetAdapter -InterfaceAlias $alias -ErrorAction SilentlyContinue
|
||||
if(-not $na){ throw "Interface not found: $alias" }
|
||||
$adv = Get-NetAdapterAdvancedProperty -InterfaceDescription $na.InterfaceDescription -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName -match 'Duplex|Speed' }
|
||||
[pscustomobject]@{
|
||||
Name = $na.Name
|
||||
InterfaceAlias = $na.InterfaceAlias
|
||||
InterfaceDescription = $na.InterfaceDescription
|
||||
Status = $na.Status
|
||||
MediaConnection = $na.MediaConnectionState
|
||||
LinkSpeed = $na.LinkSpeed
|
||||
DuplexSetting = ($adv | Where-Object { $_.DisplayName -match 'Duplex' } | Select-Object -First 1 -ExpandProperty DisplayValue)
|
||||
}
|
||||
}
|
||||
|
||||
if(-not $Mode){
|
||||
Write-Host "1) DHCP 2) STATIC 3) INFO"
|
||||
$sel = Read-Host "Select mode [1/2/3]"
|
||||
if($sel -eq '1'){ $Mode='DHCP' }
|
||||
elseif($sel -eq '2'){ $Mode='STATIC' }
|
||||
elseif($sel -eq '3'){ $Mode='INFO' }
|
||||
}
|
||||
|
||||
if($Mode -eq 'DHCP'){
|
||||
if(-not $PSBoundParameters.ContainsKey('Interface')){
|
||||
$Interface = Read-Host "Interface alias (default: Ethernet)"
|
||||
if([string]::IsNullOrWhiteSpace($Interface)){ $Interface='Ethernet' }
|
||||
}
|
||||
ConfigureDhcp -alias $Interface
|
||||
Get-NetIPConfiguration -InterfaceAlias $Interface
|
||||
exit
|
||||
}
|
||||
|
||||
if($Mode -eq 'STATIC'){
|
||||
if(-not $PSBoundParameters.ContainsKey('Interface')){
|
||||
$Interface = Read-Host "Interface alias (default: Ethernet)"
|
||||
if([string]::IsNullOrWhiteSpace($Interface)){ $Interface='Ethernet' }
|
||||
}
|
||||
if(-not $IP){ $IP = Read-Host "IPv4 address" }
|
||||
if(-not $Mask){ $Mask = Read-Host "Subnet mask" }
|
||||
if(-not $Gateway){ $Gateway = Read-Host "Gateway" }
|
||||
if(-not $Dns){
|
||||
$DnsStr = Read-Host "DNS (comma-separated, optional)"
|
||||
if($DnsStr){ $Dns = $DnsStr -split '\s*,\s*' }
|
||||
}
|
||||
ConfigureStatic -alias $Interface -ip $IP -mask $Mask -gw $Gateway -dns $Dns
|
||||
Get-NetIPConfiguration -InterfaceAlias $Interface
|
||||
exit
|
||||
}
|
||||
|
||||
if($Mode -eq 'INFO'){
|
||||
if(-not $PSBoundParameters.ContainsKey('Interface')){
|
||||
$Interface = Read-Host "Interface alias (default: Ethernet)"
|
||||
if([string]::IsNullOrWhiteSpace($Interface)){ $Interface='Ethernet' }
|
||||
}
|
||||
ShowNicInfo -alias $Interface | Format-List
|
||||
exit
|
||||
}
|
||||
|
||||
53
computer_networks/labs/lab1/code/netcfg_commented.cmd
Normal file
@@ -0,0 +1,53 @@
|
||||
@echo off // отключаем отображение выполеняемых команд в консольке
|
||||
chcp 65001 >nul // меняем кодировку на utf8 (вывод команды отправляется в nul)
|
||||
setlocal EnableExtensions EnableDelayedExpansion // включили расширенные возможности cmd и отложенную подстановку переменных
|
||||
|
||||
set MODE=%1 // первый параметр (statis/dhcp)
|
||||
set IFACE=%2 // второй параметр (имя интерфейса)
|
||||
set IP=%3 // третий параметр (ipv4 адрес)
|
||||
set MASK=%4 // четвертый параметр (маска подсети)
|
||||
set GW=%5 // пятый параметр (gateway)
|
||||
set DNS1=%6 // шестой параметр (первый DNS-сервер)
|
||||
set DNS2=%7 // седьмой параметр (второй DNS-сервер)
|
||||
|
||||
if /i "%MODE%"=="dhcp" goto dhcp // если параметр режима dhcp перейти по метке dhcp
|
||||
if /i "%MODE%"=="static" goto static // аналогично со static
|
||||
|
||||
echo 1) DHCP
|
||||
echo 2) Static // если режим не задан в параметрах то распечатаем 2 варианта и дадим пользователю выбрать
|
||||
set /p MODESEL=Select mode [1/2]: // спросим у пользователя вариант
|
||||
if "%MODESEL%"=="1" set MODE=dhcp // если введено 1, то MODE=dhcp
|
||||
if "%MODESEL%"=="2" set MODE=static // иначе MODE=static
|
||||
|
||||
if not defined IFACE set /p IFACE=Interface name [Ethernet]: // если не указано имя интерфейса запросим ввод
|
||||
if "%IFACE%"=="" set IFACE=Ethernet // если пользователь ничего не ввел (пустая строка), то используем Ethernet по умолчанию
|
||||
|
||||
if /i "%MODE%"=="dhcp" goto dhcp // опять же если выбран dhcp переходим на соответствующую метку
|
||||
if /i "%MODE%"=="static" goto static // аналогично
|
||||
echo Invalid selection // иначе выводим текст ошибки
|
||||
exit /b 1 // и выходим из программы (код ошибки 1)
|
||||
|
||||
:dhcp // метка для настройки DHCP
|
||||
if not defined IFACE set /p IFACE=Interface name [Ethernet]: // опять же если имя интерфейса не задано, запрашиваем
|
||||
if "%IFACE%"=="" set IFACE=Ethernet // по умолчанию ставим Ethernet
|
||||
netsh interface ip set address name="%IFACE%" source=dhcp // переводим интерфейс в получение ip через dhcp
|
||||
netsh interface ip set dns name="%IFACE%" source=dhcp // аналогично для dns
|
||||
ipconfig /flushdns // очищаем dns-кэш
|
||||
echo Done // оповещаем юзера о завершении операции
|
||||
exit /b 0 // выходим с кодом ошибки 0
|
||||
|
||||
:static
|
||||
if not defined IFACE set /p IFACE=Interface name [Ethernet]: // спрашиваем имя интерфеса если оно не установлено уже
|
||||
if "%IFACE%"=="" set IFACE=Ethernet // по умолчанию ставим Ethernet
|
||||
if not defined IP set /p IP=IPv4 address: // запрашиваем пользователя ввести ip
|
||||
if not defined MASK set /p MASK=Subnet mask: // маску
|
||||
if not defined GW set /p GW=Gateway: // шлюз
|
||||
if not defined DNS1 set /p DNS1=DNS1: // dns1
|
||||
if not defined DNS2 set /p DNS2=DNS2 (optional): // dns2
|
||||
netsh interface ip set address name="%IFACE%" static %IP% %MASK% %GW% 1 // назначаем все переданные пользователем параметры
|
||||
netsh interface ip set dns name="%IFACE%" static %DNS1% primary // задаем основной dns сервер
|
||||
if defined DNS2 netsh interface ip add dns name="%IFACE%" %DNS2% index=2 // если пользователем был задан второй dns то устанавливаем его как второй
|
||||
ipconfig /flushdns // очищаем dns-кэш
|
||||
echo Done // оповещаем пользователя об успешном завершении программы
|
||||
exit /b 0 // выходим с нулевым кодом ошибки
|
||||
|
||||
86
computer_networks/labs/lab1/code/netcfg_commented.ps1
Normal file
@@ -0,0 +1,86 @@
|
||||
param(
|
||||
[ValidateSet('DHCP','STATIC','INFO')] [string]$Mode, # параметр режима (DHCP/STATIC/INFO)
|
||||
[string]$Interface = 'Ethernet', # сетевой интерфейс (Ethernet - значение по умолчанию)
|
||||
[string]$IP, # ipv4 адрес
|
||||
[string]$Mask, # маска подсети
|
||||
[string]$Gateway, # шлюз
|
||||
[string[]]$Dns # массив dns серверов
|
||||
)
|
||||
|
||||
function MaskToPrefix($m){ # переводим маску в длину префикса (255.255.255.0 -> 24)
|
||||
$b = ($m -split '\.') | ForEach-Object {[Convert]::ToString([int]$_,2).PadLeft(8,'0')} # сплитим по точкам и переводим в воьсмибитные числа (двоичные)
|
||||
($b -join '' -split '1').Count - 1 | Out-Null # кусок тестов остался ((
|
||||
($b -join '').ToCharArray() | Where-Object {$_ -eq '1'} | Measure-Object | Select-Object -ExpandProperty Count # считаем количество единиц
|
||||
}
|
||||
|
||||
function EnsureInterface($alias){ # проверяем есть ли интерфейс с данным именем
|
||||
$a = Get-NetAdapter -InterfaceAlias $alias -ErrorAction SilentlyContinue
|
||||
if(-not $a){ throw "Interface not found: $alias" } # если нет, выбрасываем соответсвующую ошибку
|
||||
}
|
||||
|
||||
function ConfigureDhcp($alias){ # проводим настройку через dhcp сервер
|
||||
EnsureInterface $alias # проверяем есть ли интерфейс с таким именем
|
||||
Set-NetIPInterface -InterfaceAlias $alias -AddressFamily IPv4 -Dhcp Enabled # включаем получение IP по DHCP
|
||||
Set-DnsClientServerAddress -InterfaceAlias $alias -ResetServerAddresses # аналогично для dns
|
||||
ipconfig /flushdns | Out-Null # очищаем dns кэш
|
||||
}
|
||||
|
||||
function ConfigureStatic($alias,$ip,$mask,$gw,$dns){ # статическая настройка
|
||||
EnsureInterface $alias # проверяем валидность имени интерфейса
|
||||
$prefix = MaskToPrefix $mask # считаем префикс маски
|
||||
Get-NetIPConfiguration -InterfaceAlias $alias | Get-NetIPAddress -AddressFamily IPv4 -ErrorAction SilentlyContinue | Remove-NetIPAddress -Confirm:$false -ErrorAction SilentlyContinue # удалим существующие ip на этом интерфейсе
|
||||
Get-NetIPConfiguration -InterfaceAlias $alias | Get-DnsClientServerAddress -AddressFamily IPv4 -ErrorAction SilentlyContinue | ForEach-Object { Set-DnsClientServerAddress -InterfaceAlias $alias -ResetServerAddresses } # сбрасываем текущие dns настройки
|
||||
New-NetIPAddress -InterfaceAlias $alias -IPAddress $ip -PrefixLength $prefix -DefaultGateway $gw | Out-Null # создаем новый ip и шлюз
|
||||
if($dns){ Set-DnsClientServerAddress -InterfaceAlias $alias -ServerAddresses $dns } # если заданы dns сервера, пропишем их
|
||||
ipconfig /flushdns | Out-Null # чистим dns кэш
|
||||
}
|
||||
|
||||
function ShowNicInfo($alias){ # выводим информацию о сетевом интерфейсе
|
||||
$na = Get-NetAdapter -InterfaceAlias $alias -ErrorAction SilentlyContinue
|
||||
if(-not $na){ throw "Interface not found: $alias" } # проверяем имя интерфейса
|
||||
$adv = Get-NetAdapterAdvancedProperty -InterfaceDescription $na.InterfaceDescription -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName -match 'Duplex|Speed|дуплекс|скорост' } # получаем расширенные свойства адаптера, ищем строки со словом Duplex/Speed
|
||||
$info = [pscustomobject]@{
|
||||
Name = $na.Name
|
||||
InterfaceAlias = $na.InterfaceAlias
|
||||
InterfaceDescription= $na.InterfaceDescription
|
||||
Status = $na.Status
|
||||
MediaConnection = $na.MediaConnectionState
|
||||
LinkSpeed = $na.LinkSpeed
|
||||
DuplexSetting = ($adv | Where-Object { $_.DisplayName -match 'Duplex|дуплекс' } | Select-Object -First 1 -ExpandProperty DisplayValue)
|
||||
} # формируем объект с нужными полями
|
||||
$info # и выводим его
|
||||
}
|
||||
|
||||
# если параметр $Mode не передан, показываем меню выбора
|
||||
if(-not $Mode){
|
||||
Write-Host "1) DHCP 2) STATIC 3) INFO"
|
||||
$sel = Read-Host "Select mode [1/2/3]"
|
||||
if($sel -eq '1'){ $Mode='DHCP' }
|
||||
elseif($sel -eq '2'){ $Mode='STATIC' }
|
||||
elseif($sel -eq '3'){ $Mode='INFO' }
|
||||
} # пользователь выбрал мод
|
||||
|
||||
if($Mode -eq 'DHCP'){
|
||||
if(-not $PSBoundParameters.ContainsKey('Interface')){ $Interface = Read-Host "Interface alias (default: Ethernet)"; if([string]::IsNullOrWhiteSpace($Interface)){ $Interface='Ethernet' } } # если интерфейс не передан в качестве параметра, просим у пользователя
|
||||
ConfigureDhcp -alias $Interface # вызывыаем настройку dhcp
|
||||
Get-NetIPConfiguration -InterfaceAlias $Interface # показываем результат
|
||||
exit
|
||||
}
|
||||
|
||||
if($Mode -eq 'STATIC'){ # статическая конфигурация
|
||||
if(-not $PSBoundParameters.ContainsKey('Interface')){ $Interface = Read-Host "Interface alias (default: Ethernet)"; if([string]::IsNullOrWhiteSpace($Interface)){ $Interface='Ethernet' } } # если интерфейс не передан, просим у пользователя
|
||||
if(-not $IP){ $IP = Read-Host "IPv4 address" } # аналогично
|
||||
if(-not $Mask){ $Mask = Read-Host "Subnet mask" } # аналогично
|
||||
if(-not $Gateway){ $Gateway = Read-Host "Gateway" } # аналогично
|
||||
if(-not $Dns){ $DnsStr = Read-Host "DNS (comma-separated, optional)"; if($DnsStr){ $Dns = $DnsStr -split '\s*,\s*' } } # аналогично
|
||||
ConfigureStatic -alias $Interface -ip $IP -mask $Mask -gw $Gateway -dns $Dns # вызываем функцию статической настройки
|
||||
Get-NetIPConfiguration -InterfaceAlias $Interface # показываем результат
|
||||
exit
|
||||
}
|
||||
|
||||
if($Mode -eq 'INFO'){
|
||||
if(-not $PSBoundParameters.ContainsKey('Interface')){ $Interface = Read-Host "Interface alias (default: Ethernet)"; if([string]::IsNullOrWhiteSpace($Interface)){ $Interface='Ethernet' } } # если не задан интерфейс, спросим у юзера
|
||||
ShowNicInfo -alias $Interface | Format-List # показываем результат
|
||||
exit
|
||||
}
|
||||
|
||||
BIN
computer_networks/labs/lab1/report.pdf
Normal file
438
computer_networks/labs/lab1/report.typ
Normal file
@@ -0,0 +1,438 @@
|
||||
#set text(size: 1.3em)
|
||||
|
||||
// title
|
||||
|
||||
#align(center)[Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики]
|
||||
\
|
||||
\
|
||||
\
|
||||
#align(center)[Факультет инфокоммуникационных технологий]
|
||||
#align(center)[Направление подготовки 11.03.02]
|
||||
\
|
||||
\
|
||||
#align(center)[Практическая работа №1]
|
||||
#align(center)[Консольные средства настройки Windows]
|
||||
\
|
||||
\
|
||||
\ //#align(center)[Вариант 19]
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
#align(right)[Выполнил:]
|
||||
#align(right)[Дощенников Никита Андреевич]
|
||||
#align(right)[Группа: К3121]
|
||||
#align(right)[Проверил:]
|
||||
#align(right)[Антон Харитонов]
|
||||
\
|
||||
\
|
||||
#align(center)[Санкт-Петербург]
|
||||
#align(center)[2025]
|
||||
|
||||
#pagebreak()
|
||||
|
||||
// page 1
|
||||
|
||||
=== Цель работы
|
||||
|
||||
Освоить практические навыки настройки сетевых параметров в ОС Windows (или другой операционной системе), изучить консольные инструменты для диагностики и администрирования сети, научиться создавать скрипты для автоматической конфигурации сетевого интерфейса и ознакомиться с форматом записи сетевых путей UNC.
|
||||
|
||||
=== Сетевые компоненты
|
||||
|
||||
Control Panel -> Network and Internet -> Network and Sharing Center -> Change adapter settings -> Ethernet -> Properties
|
||||
|
||||
#align(center)[#image("assets/1.png")]
|
||||
|
||||
На снимке экрана мы видим сетевые компоненты, такие как Client for Microsoft Networks (позволяет ПК подключаться к общим папкам, принтерам и другим ресурсам в сети (клиентская часть SMB/CIFS)), File and Printer Sharing for Microsoft Networks (позволяем другим ПК подключаться к ресурсам моего компьютера (серверная часть SMB/CIFS)), Internet Protocol Version 4 / 6 (обеспечивает работу сети и интернета через IPv4/IPv6 адреса).
|
||||
|
||||
Я отключил File and Printer Sharing for Microsoft Networks, чтобы предотвратить удалённый доступ к файлам, принтерам и другим ресурсам моего компьютера по протоколу Server Message Block.
|
||||
|
||||
=== Утилиты.
|
||||
|
||||
`ping` - консольная утилита для проверки доступности узла в сети и измерения времени отклика. Она отправляет ICMP-эхо-запросы на указанный IP-адрес или доменное имя и выводит ответы (если узел доступен).
|
||||
|
||||
#align(center)[#image("assets/2.png")]
|
||||
|
||||
Если установлен параметр `-t`, пакеты отправляются бесконечно, например:
|
||||
|
||||
#align(center)[#image("assets/3.png")]
|
||||
|
||||
Пинг, в данном случае, прерывается сочетанием клавиш Ctrl+C.
|
||||
|
||||
Для установки определенного количества запросов используется параметр `-n <number>`:
|
||||
|
||||
#align(center)[#image("assets/4.png")]
|
||||
|
||||
Чтобы установить размер пакета (в байтах), можно использовать параметр `-l <size>`.
|
||||
|
||||
#align(center)[#image("assets/5.png")]
|
||||
|
||||
Параметр `-f` позволяет не фрагментировать пакет.
|
||||
|
||||
#align(center)[#image("assets/6.png")]
|
||||
|
||||
Параметры `-4` и `-6` позволяют принудительно использовать IPv4 и IPv6 соответственно.
|
||||
|
||||
#align(center)[#image("assets/7.png")]
|
||||
|
||||
Пример записи результата в файл:
|
||||
|
||||
#align(center)[#image("assets/8.png")]
|
||||
|
||||
`tracert` - утилита, показывающая маршрут следования пакетов от компьютера-исполнителя до указанного хоста (список всех промежуточных узлов, через которые проходит пакет).
|
||||
|
||||
#align(center)[#image("assets/9.png")]
|
||||
|
||||
Параметр `-d` позволяет программе не пытаться определять имена узлов и тем самым ускоряет работу программы.
|
||||
|
||||
#align(center)[#image("assets/10.png")]
|
||||
|
||||
Параметр `-h <number>` устанавливает максимальное число прыжков, через которое программа завершает свою работу.
|
||||
|
||||
#align(center)[#image("assets/11.png")]
|
||||
|
||||
Параметр `-w <time>` задает таймаут ожидания ответа в мс.
|
||||
|
||||
#align(center)[#image("assets/12.png")]
|
||||
|
||||
`ipconfig` - утилита, используемая для работы с сетевыми настройками. Она выводит и управляет конфигурацией сетевых интерфейсов на ПК.
|
||||
|
||||
#align(center)[#image("assets/13.png")]
|
||||
|
||||
`ipconfig /all` показывает расширенную информацию (физический адрес, dhcp-настройки, и т.д.)
|
||||
|
||||
#align(center)[#image("assets/14.png")]
|
||||
#align(center)[#image("assets/15.png")]
|
||||
|
||||
Чтобы освободить текущий IP можно использовать `ipconfig /release`
|
||||
|
||||
#align(center)[#image("assets/16.png")]
|
||||
#align(center)[#image("assets/17.png")]
|
||||
|
||||
Чтобы запросить новый IP используется команда `ipconfig /renew`
|
||||
|
||||
#align(center)[#image("assets/18.png")]
|
||||
#align(center)[#image("assets/19.png")]
|
||||
|
||||
Чтобы посмотреть содержимое DNS-кэша можно использовать команду `ipconfig /displaydns`
|
||||
|
||||
#align(center)[#image("assets/20.png")]
|
||||
#align(center)[#image("assets/21.png")]
|
||||
#align(center)[#image("assets/22.png")]
|
||||
#align(center)[#image("assets/23.png")]
|
||||
|
||||
Чтобы сбросить DNS-кэш используем `ipconfig /flushdns`:
|
||||
|
||||
#align(center)[#image("assets/24.png")]
|
||||
|
||||
Чтобы повторно зарегистрировать компьютер в DNS используем команду `ipconfig /registerdns`
|
||||
|
||||
#align(center)[#image("assets/25.png")]
|
||||
|
||||
|
||||
`net` - утилита для администрирования, работы с сетью, пользователями, сервисами и ресурсами.
|
||||
|
||||
Для подключения, отображения и отключения сетевых ресурсов используем `net use`.
|
||||
|
||||
#align(center)[#image("assets/26.png")]
|
||||
|
||||
Для просмотра компьютеров и общих ресурсов в локальной сети используем `net view`.
|
||||
|
||||
#align(center)[#image("assets/27.png")]
|
||||
|
||||
Команды `net start` и `net stop` используются для управления службами Windows.
|
||||
|
||||
#align(center)[#image("assets/28.png")]
|
||||
|
||||
Для управления общими ресурсами используем команду `net share`.
|
||||
|
||||
#align(center)[#image("assets/29.png")]
|
||||
|
||||
Для демонстрации и настройки параметров сетевых служб Server и Workstation используем команды `net config server` и `net config workstation` соответственно.
|
||||
|
||||
#align(center)[#image("assets/30.png")]
|
||||
#align(center)[#image("assets/31.png")]
|
||||
#align(center)[#image("assets/32.png")]
|
||||
|
||||
Для демонстрации и управления сетевыми сессиями (т.е. соединения удаленных пользователей с компьютером) используем команду `net session`.
|
||||
|
||||
#align(center)[#image("assets/33.png")]
|
||||
|
||||
Для работы с локальными пользователями Windows используем команду `net user`.
|
||||
|
||||
#align(center)[#image("assets/34.png")]
|
||||
#align(center)[#image("assets/35.png")]
|
||||
|
||||
Для демонстрации статистики работы сетевых служб Windows используем команду `net statistics`.
|
||||
|
||||
#align(center)[#image("assets/36.png")]
|
||||
#align(center)[#image("assets/37.png")]
|
||||
|
||||
Для управления локальными группами пользователей в Windows используем команду `net localgroup`.
|
||||
|
||||
#align(center)[#image("assets/38.png")]
|
||||
#align(center)[#image("assets/39.png")]
|
||||
|
||||
=== Скрипты.
|
||||
|
||||
Исходный код для `netcfg.cmd`:
|
||||
|
||||
```bat
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
setlocal EnableExtensions EnableDelayedExpansion
|
||||
|
||||
set MODE=%1
|
||||
set IFACE=%2
|
||||
set IP=%3
|
||||
set MASK=%4
|
||||
set GW=%5
|
||||
set DNS1=%6
|
||||
set DNS2=%7
|
||||
|
||||
if /i "%MODE%"=="dhcp" goto dhcp
|
||||
if /i "%MODE%"=="static" goto static
|
||||
|
||||
echo 1) DHCP
|
||||
echo 2) Static
|
||||
set /p MODESEL=Select mode [1/2]:
|
||||
if "%MODESEL%"=="1" set MODE=dhcp
|
||||
if "%MODESEL%"=="2" set MODE=static
|
||||
|
||||
if not defined IFACE set /p IFACE=Interface name [Ethernet]:
|
||||
if "%IFACE%"=="" set IFACE=Ethernet
|
||||
|
||||
if /i "%MODE%"=="dhcp" goto dhcp
|
||||
if /i "%MODE%"=="static" goto static
|
||||
echo Invalid selection
|
||||
exit /b 1
|
||||
|
||||
:dhcp
|
||||
if not defined IFACE set /p IFACE=Interface name [Ethernet]:
|
||||
if "%IFACE%"=="" set IFACE=Ethernet
|
||||
netsh interface ip set address name="%IFACE%" source=dhcp
|
||||
netsh interface ip set dns name="%IFACE%" source=dhcp
|
||||
ipconfig /flushdns
|
||||
echo Done
|
||||
exit /b 0
|
||||
|
||||
:static
|
||||
if not defined IFACE set /p IFACE=Interface name [Ethernet]:
|
||||
if "%IFACE%"=="" set IFACE=Ethernet
|
||||
if not defined IP set /p IP=IPv4 address:
|
||||
if not defined MASK set /p MASK=Subnet mask:
|
||||
if not defined GW set /p GW=Gateway:
|
||||
if not defined DNS1 set /p DNS1=DNS1:
|
||||
if not defined DNS2 set /p DNS2=DNS2 (optional):
|
||||
netsh interface ip set address name="%IFACE%" static %IP% %MASK% %GW% 1
|
||||
netsh interface ip set dns name="%IFACE%" static %DNS1% primary
|
||||
if defined DNS2 netsh interface ip add dns name="%IFACE%" %DNS2% index=2
|
||||
ipconfig /flushdns
|
||||
echo Done
|
||||
exit /b 0
|
||||
```
|
||||
|
||||
В начале пользователь выбирает вариант настройки:
|
||||
|
||||
#align(center)[#image("assets/40.png")]
|
||||
|
||||
При выборе DHCP пользователю предлагается выбрать имя интерфейса (по умолчанию Ethernet), а затем настройки устанавливаются автоматически.
|
||||
|
||||
#align(center)[#image("assets/41.png")]
|
||||
|
||||
При выборе опции Static происходит следующая настройка.
|
||||
|
||||
#align(center)[#image("assets/42.png")]
|
||||
|
||||
Аналогичные настройки можно произвести при помощи аргументов командной строки.
|
||||
|
||||
#align(center)[#image("assets/43.png")]
|
||||
#align(center)[#image("assets/44.png")]
|
||||
|
||||
Исходный код для `netcfg.ps1`:
|
||||
|
||||
```powershell
|
||||
param(
|
||||
[ValidateSet('DHCP','STATIC','INFO')] [string]$Mode,
|
||||
[string]$Interface = 'Ethernet',
|
||||
[string]$IP,
|
||||
[string]$Mask,
|
||||
[string]$Gateway,
|
||||
[string[]]$Dns
|
||||
)
|
||||
|
||||
function MaskToPrefix($m){
|
||||
$b = ($m -split '\.') | ForEach-Object {[Convert]::ToString([int]$_,2).PadLeft(8,'0')}
|
||||
($b -join '' -split '1').Count - 1 | Out-Null
|
||||
($b -join '').ToCharArray() | Where-Object {$_ -eq '1'} | Measure-Object | Select-Object -ExpandProperty Count
|
||||
}
|
||||
|
||||
function EnsureInterface($alias){
|
||||
$a = Get-NetAdapter -InterfaceAlias $alias -ErrorAction SilentlyContinue
|
||||
if(-not $a){ throw "Interface not found: $alias" }
|
||||
}
|
||||
|
||||
function ConfigureDhcp($alias){
|
||||
EnsureInterface $alias
|
||||
Set-NetIPInterface -InterfaceAlias $alias -AddressFamily IPv4 -Dhcp Enabled
|
||||
Set-DnsClientServerAddress -InterfaceAlias $alias -ResetServerAddresses
|
||||
ipconfig /flushdns | Out-Null
|
||||
}
|
||||
|
||||
function ConfigureStatic($alias,$ip,$mask,$gw,$dns){
|
||||
EnsureInterface $alias
|
||||
$prefix = MaskToPrefix $mask
|
||||
Get-NetIPConfiguration -InterfaceAlias $alias | Get-NetIPAddress -AddressFamily IPv4 -ErrorAction SilentlyContinue | Remove-NetIPAddress -Confirm:$false -ErrorAction SilentlyContinue
|
||||
Get-NetIPConfiguration -InterfaceAlias $alias | Get-DnsClientServerAddress -AddressFamily IPv4 -ErrorAction SilentlyContinue | ForEach-Object { Set-DnsClientServerAddress -InterfaceAlias $alias -ResetServerAddresses }
|
||||
New-NetIPAddress -InterfaceAlias $alias -IPAddress $ip -PrefixLength $prefix -DefaultGateway $gw | Out-Null
|
||||
if($dns){ Set-DnsClientServerAddress -InterfaceAlias $alias -ServerAddresses $dns }
|
||||
ipconfig /flushdns | Out-Null
|
||||
}
|
||||
|
||||
function ShowNicInfo($alias){
|
||||
$na = Get-NetAdapter -InterfaceAlias $alias -ErrorAction SilentlyContinue
|
||||
if(-not $na){ throw "Interface not found: $alias" }
|
||||
$adv = Get-NetAdapterAdvancedProperty -InterfaceDescription $na.InterfaceDescription -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName -match 'Duplex|Speed|дуплекс|скорост' }
|
||||
$info = [pscustomobject]@{
|
||||
Name = $na.Name
|
||||
InterfaceAlias = $na.InterfaceAlias
|
||||
InterfaceDescription= $na.InterfaceDescription
|
||||
Status = $na.Status
|
||||
MediaConnection = $na.MediaConnectionState
|
||||
LinkSpeed = $na.LinkSpeed
|
||||
DuplexSetting = ($adv | Where-Object { $_.DisplayName -match 'Duplex|дуплекс' } | Select-Object -First 1 -ExpandProperty DisplayValue)
|
||||
}
|
||||
$info
|
||||
}
|
||||
|
||||
if(-not $Mode){
|
||||
Write-Host "1) DHCP 2) STATIC 3) INFO"
|
||||
$sel = Read-Host "Select mode [1/2/3]"
|
||||
if($sel -eq '1'){ $Mode='DHCP' }
|
||||
elseif($sel -eq '2'){ $Mode='STATIC' }
|
||||
elseif($sel -eq '3'){ $Mode='INFO' }
|
||||
}
|
||||
|
||||
if($Mode -eq 'DHCP'){
|
||||
if(-not $PSBoundParameters.ContainsKey('Interface')){ $Interface = Read-Host "Interface alias (default: Ethernet)"; if([string]::IsNullOrWhiteSpace($Interface)){ $Interface='Ethernet' } }
|
||||
ConfigureDhcp -alias $Interface
|
||||
Get-NetIPConfiguration -InterfaceAlias $Interface
|
||||
exit
|
||||
}
|
||||
|
||||
if($Mode -eq 'STATIC'){
|
||||
if(-not $PSBoundParameters.ContainsKey('Interface')){ $Interface = Read-Host "Interface alias (default: Ethernet)"; if([string]::IsNullOrWhiteSpace($Interface)){ $Interface='Ethernet' } }
|
||||
if(-not $IP){ $IP = Read-Host "IPv4 address" }
|
||||
if(-not $Mask){ $Mask = Read-Host "Subnet mask" }
|
||||
if(-not $Gateway){ $Gateway = Read-Host "Gateway" }
|
||||
if(-not $Dns){ $DnsStr = Read-Host "DNS (comma-separated, optional)"; if($DnsStr){ $Dns = $DnsStr -split '\s*,\s*' } }
|
||||
ConfigureStatic -alias $Interface -ip $IP -mask $Mask -gw $Gateway -dns $Dns
|
||||
Get-NetIPConfiguration -InterfaceAlias $Interface
|
||||
exit
|
||||
}
|
||||
|
||||
if($Mode -eq 'INFO'){
|
||||
if(-not $PSBoundParameters.ContainsKey('Interface')){ $Interface = Read-Host "Interface alias (default: Ethernet)"; if([string]::IsNullOrWhiteSpace($Interface)){ $Interface='Ethernet' } }
|
||||
ShowNicInfo -alias $Interface | Format-List
|
||||
exit
|
||||
}
|
||||
```
|
||||
|
||||
При запуске скрипта, пользователю предлагается выбрать одну из трех опций: DHCP, STATIC, INFO.
|
||||
|
||||
При выборе опции INFO пользователю предлагается выбрать имя интерфейса (по умолчанию Ethernet).
|
||||
|
||||
#align(center)[#image("assets/45.png")]
|
||||
|
||||
Пользователю, при помощи функции `ShowNicInfo`, находит указанный адаптер (`Get-NetAdapter`), затем его расширенные настройки (`Get-NetAdapterAdvancedProperty`) и выводит их через `Format-List`.
|
||||
|
||||
Если выбрать режим DHCP, то автоматически будут получены IP и DNS через DHCP. `Set-NetIPInterface -InterfaceAlias <name> -AddressFamily IPv4 -Dhcp Enabled` включает DHCP-клиент для IPv4 у выбранного интерфейса. `Set-DnsClientServerAddress -InterfaceAlias <name> -ResetServerAddresses` сбрасывает настройки DNS. `ipconfig /flushdns` очищает DNS-кэш.
|
||||
|
||||
#align(center)[#image("assets/46.png")]
|
||||
|
||||
Если же выбран режим STATIC, то производится ручная настройка сети. `Remove-NetIPAddress` удаляет старые IP-настройки интерфейса, чтобы не было конфликтов. `Set-DnsClientServerAddress -InterfaceAlias <name> -ResetServerAddresses` очищает предыдущие записи DNS. `New-NetIPAddress -InterfaceAlias <name> -IPAddress <ip> -PrefixLength <length> -DefaultGateway <gateway>` создаёт новую конфигурацию для IPv4. `Set-DnsClientServerAddress -InterfaceAlias <name> -ServerAddresses <dns1,dns2>` прописывает DNS-сервера вручную. `ipconfig /flushdns` сбрасывает DNS-кэш.
|
||||
|
||||
#align(center)[#image("assets/47.png")]
|
||||
|
||||
Аналогичную настройку можно произвести при помощи аргументов командной строки.
|
||||
|
||||
#align(center)[#image("assets/48.png")]
|
||||
#align(center)[#image("assets/49.png")]
|
||||
#align(center)[#image("assets/50.png")]
|
||||
|
||||
|
||||
=== Ответы на вопросы
|
||||
|
||||
Как с помощью графической оболочки Windows можно запретить доступ через определенный сетевой интерфейс к ресурсам используемого компьютера? Как можно запретить используемому компьютеру доступ к ресурсам других компьютеров в сети Microsoft?
|
||||
|
||||
Чтобы запретить доступ через определённый сетевой интерфейс к ресурсам локального компьютера, необходимо отключить компонент File and Printer Sharing for Microsoft Networks в свойствах этого интерфейса
|
||||
|
||||
|
||||
Чтобы запретить компьютеру обращаться к общим ресурсам других компьютеров, необходимо отключить компонент Client for Microsoft Networks.
|
||||
|
||||
|
||||
Опишите назначение команды net с директивами use, view, stop, start, share, config, session, user, statistics, localgroup. Приведите примеры.
|
||||
|
||||
- `net use` — подключение сетевых дисков или принтеров.
|
||||
Пример: `net use Z: \\server\docs`
|
||||
- `net view` — просмотр доступных в сети компьютеров и их общих ресурсов.
|
||||
Пример: `net view \\PC-NAME`
|
||||
- `net start` — запуск службы.
|
||||
Пример: `net start spooler`
|
||||
- `net stop` — остановка службы.
|
||||
Пример: `net stop spooler`
|
||||
- `net share` — управление общими папками и принтерами.
|
||||
Пример: `net share docs=C:\Users\Public\Documents`
|
||||
- `net config` — параметры служб Workstation и Server.
|
||||
Пример: `net config server`
|
||||
- `net session` — просмотр и управление сетевыми сессиями.
|
||||
Пример: `net session \\192.168.1.5 /delete`
|
||||
- `net user` — управление локальными пользователями.
|
||||
Пример: `net user student 12345 /add`
|
||||
- `net statistics` — статистика работы сетевых служб.
|
||||
Пример: `net statistics workstation`
|
||||
- `net localgroup` — управление локальными группами пользователей.
|
||||
Пример: `net localgroup Administrators student /add`
|
||||
|
||||
|
||||
Как с помощью командной строки в Windows узнать адрес DNS, на который настроен ваш компьютер?
|
||||
|
||||
В командной строке можно выполнить:
|
||||
|
||||
```
|
||||
ipconfig /all
|
||||
```
|
||||
|
||||
В выводе будет раздел DNS Servers, где перечислены все настроенные DNS-адреса.
|
||||
|
||||
|
||||
Зачем нужна команда net use? Как с помощью этой утилиты подключить на локальный диск R: папку TEST на компьютере SRV (приведите командную строку)?
|
||||
|
||||
`net use` используется для подключения сетевых ресурсов (папок и принтеров).
|
||||
|
||||
Пример для подключения:
|
||||
```
|
||||
net use R: \SRV\TEST
|
||||
```
|
||||
|
||||
Как в Windows из PowerShell переименовать сетевое соединение?
|
||||
|
||||
Для переименования используется команда:
|
||||
```powershell
|
||||
Rename-NetAdapter -Name "old name" -NewName "new name"
|
||||
```
|
||||
|
||||
Какие существуют и чем отличаются режимы работы адаптера (duplex)?
|
||||
|
||||
|
||||
- Half-Duplex — данные передаются только в одном направлении в каждый момент времени (либо приём, либо передача). Используется в старых сетях, более низкая производительность.
|
||||
- Full-Duplex — одновременная передача и приём данных. Современный стандарт, обеспечивает более высокую скорость.
|
||||
- Auto-Negotiation — автоматическое согласование режима (по умолчанию на большинстве адаптеров).
|
||||
|
||||
|
||||
=== Вывод
|
||||
|
||||
В ходе работы я ознакомился с графическими и консольными средствами настройки сети в Windows. Были рассмотрены базовые сетевые утилиты (`ping`, `tracert`, `ipconfig`) и возможности системной команды `net` с её основными подкомандами. Также были реализованы скрипты для автоматической настройки сетевых интерфейсов через CMD и PowerShell.
|
||||
BIN
computer_networks/labs/lab2/assets/1.jpg
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
computer_networks/labs/lab2/assets/10.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
computer_networks/labs/lab2/assets/11.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
computer_networks/labs/lab2/assets/12.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
computer_networks/labs/lab2/assets/13.png
Normal file
|
After Width: | Height: | Size: 72 KiB |
BIN
computer_networks/labs/lab2/assets/14.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
computer_networks/labs/lab2/assets/15.png
Normal file
|
After Width: | Height: | Size: 262 KiB |
BIN
computer_networks/labs/lab2/assets/16.png
Normal file
|
After Width: | Height: | Size: 263 KiB |
BIN
computer_networks/labs/lab2/assets/17.png
Normal file
|
After Width: | Height: | Size: 263 KiB |
BIN
computer_networks/labs/lab2/assets/18.png
Normal file
|
After Width: | Height: | Size: 265 KiB |
BIN
computer_networks/labs/lab2/assets/19.png
Normal file
|
After Width: | Height: | Size: 266 KiB |
BIN
computer_networks/labs/lab2/assets/2.jpg
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
computer_networks/labs/lab2/assets/3.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
computer_networks/labs/lab2/assets/4.png
Normal file
|
After Width: | Height: | Size: 173 KiB |
BIN
computer_networks/labs/lab2/assets/5.png
Normal file
|
After Width: | Height: | Size: 173 KiB |
BIN
computer_networks/labs/lab2/assets/6.png
Normal file
|
After Width: | Height: | Size: 173 KiB |
BIN
computer_networks/labs/lab2/assets/7.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
computer_networks/labs/lab2/assets/8.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
computer_networks/labs/lab2/assets/9.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
computer_networks/labs/lab2/report.pdf
Normal file
376
computer_networks/labs/lab2/report.typ
Normal file
@@ -0,0 +1,376 @@
|
||||
#import "@preview/tablex:0.0.9": tablex, rowspanx
|
||||
#set text(size: 1.3em)
|
||||
|
||||
// title
|
||||
|
||||
#align(center)[Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики]
|
||||
\
|
||||
\
|
||||
\
|
||||
#align(center)[Факультет инфокоммуникационных технологий]
|
||||
#align(center)[Направление подготовки 11.03.02]
|
||||
\
|
||||
\
|
||||
#align(center)[Практическая работа №2]
|
||||
#align(center)[Изучение общих принципов построения IP сетей]
|
||||
\
|
||||
\
|
||||
#align(center)[Вариант 19]
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
#align(right)[Выполнил:]
|
||||
#align(right)[Дощенников Никита Андреевич]
|
||||
#align(right)[Группа: К3121]
|
||||
#align(right)[Проверил:]
|
||||
#align(right)[Антон Харитонов]
|
||||
\
|
||||
\
|
||||
#align(center)[Санкт-Петербург]
|
||||
#align(center)[2025]
|
||||
|
||||
#pagebreak()
|
||||
|
||||
// page 1
|
||||
|
||||
=== Цель работы.
|
||||
|
||||
Освоить принципы построения и настройки IP-сетей с использованием маршрутизаторов и коммутаторов, а также закрепить навыки конфигурации сетевых интерфейсов и проверки работоспособности сети с помощью базовых инструментов диагностики.
|
||||
|
||||
=== Структура сети.
|
||||
|
||||
В соответствии с вариантом 19, необходимо использовать маршрутизаторы 1, 3 и 7 и сети с номерами 1, 3(5), 6(5) (числа в скобках - кол-во подсетей). На рисунке 1 изображена структура сети.
|
||||
|
||||
#figure(
|
||||
image("assets/1.jpg"),
|
||||
caption: "Рисунок 1. Структура сети.",
|
||||
supplement: none
|
||||
)
|
||||
|
||||
Разобьём сети. Сеть 3 - сеть вида 192.168.32.0/19. Определим минимальное возможное количество разрядов в маске для получения 5 подсетей.
|
||||
|
||||
$
|
||||
N = ceil.l log_2(K + 1) ceil.r
|
||||
$
|
||||
|
||||
где $K$ - количество подсетей. Подставив 5 получим:
|
||||
|
||||
$
|
||||
N = log_2(5 + 1) = 3
|
||||
$
|
||||
|
||||
Длина маски 19. Так как мы добавляем еще 3 разряда для подсети, то длина получается 22 единицы.
|
||||
|
||||
#align(center)[#table(columns: 4)[№][код][двоичный адрес][десятичный адрес][1][001][11000000.10101000.00100100.00000000][192.168.36.0][2][010][11000000.10101000.00101000.00000000][192.168.40.0][3][011][11000000.10101000.00101100.00000000][192.168.44.0][4][100][11000000.10101000.00110000.00000000][192.168.48.0][5][101][11000000.10101000.00110100.00000000][192.168.52.0]]
|
||||
|
||||
Маска имеет длину 22 единицы, то есть
|
||||
|
||||
$
|
||||
11111111.11111111.11111100.0000000 " или " 255.255.252.0
|
||||
$
|
||||
|
||||
Для сети 1. Широковещательный адрес = (IP адрес) | (инвертированная маска). Где знаком "|" обозначается побитовое или.
|
||||
|
||||
Получим
|
||||
|
||||
$
|
||||
11000000.10101000.00100100.00000000 | 00000000.00000000.00000011.11111111 =
|
||||
$
|
||||
|
||||
$
|
||||
11000000.10101000.00100111.11111111
|
||||
$
|
||||
|
||||
или в десятичном виде:
|
||||
|
||||
$
|
||||
192.168.36.0 | 0.0.3.255 = 192.168.39.255
|
||||
$
|
||||
|
||||
Так как в нашей маске 22 единицы, то под узел останется 32 - 22 = 10 разрядов. Тогда максимум узлов - $2^10 - 2 = 1024 - 2 = 1022$. Получаем соответствующий диапазон:
|
||||
|
||||
$
|
||||
192.168.36.1 – 192.168.39.254
|
||||
$
|
||||
|
||||
Проделав разбивку для других сетей, мы получили сеть на рисунке 2.
|
||||
|
||||
#figure(
|
||||
image("assets/2.jpg"),
|
||||
caption: "Рисунок 2. Структура сети.",
|
||||
supplement: none
|
||||
)
|
||||
|
||||
Таблица маршрутизации:
|
||||
|
||||
/*
|
||||
#align(center)[
|
||||
#tablex(
|
||||
columns: 3,
|
||||
stroke: 0.5pt + black,
|
||||
align: center,
|
||||
inset: (x: 6pt, y: 4pt),
|
||||
|
||||
[Router], [Interface], [IP],
|
||||
rowspanx(5)[1], [1], [194.44.183.17/28],
|
||||
(), [2], [192.168.36.254/22],
|
||||
(), [3], [192.168.40.254/22],
|
||||
(), [4], [192.168.44.254/22],
|
||||
(), [5], [192.168.48.254/22],
|
||||
(), [6], [192.168.52.254/22],
|
||||
(), [7], [9.2.0.254/16],
|
||||
rowspanx(5)[3], [1], [9.2.0.253/16],
|
||||
(), [2], [193.10.20.254/22],
|
||||
(), [3], [193.10.24.254/22],
|
||||
(), [4], [9.10.0.253/16],
|
||||
rowspanx(5)[7], [1], [9.10.0.254/16],
|
||||
(), [2], [10.1.18.254/23],
|
||||
(), [3], [10.1.20.254/23],
|
||||
(), [4], [10.1.22.254/23],
|
||||
(), [5], [10.1.24.254/23],
|
||||
(), [6], [10.1.26.254/23]
|
||||
)
|
||||
]
|
||||
|
||||
*/
|
||||
|
||||
#import "@preview/tablex:0.0.9": tablex, rowspanx
|
||||
|
||||
#align(center)[
|
||||
#tablex(
|
||||
columns: 3,
|
||||
stroke: 0.5pt + black,
|
||||
align: center,
|
||||
inset: (x: 6pt, y: 4pt),
|
||||
|
||||
[M], [Int], [IP],
|
||||
|
||||
rowspanx(7)[1], [1], [194.44.183.17/28],
|
||||
(), [2], [192.168.36.254/22],
|
||||
(), [3], [192.168.40.254/22],
|
||||
(), [4], [192.168.44.254/22],
|
||||
(), [5], [192.168.48.254/22],
|
||||
(), [6], [192.168.52.254/22],
|
||||
(), [7], [9.2.0.254/16],
|
||||
|
||||
rowspanx(4)[3], [1], [9.2.0.253/16],
|
||||
(), [2], [193.10.20.254/22],
|
||||
(), [3], [193.10.24.254/22],
|
||||
(), [4], [9.10.0.253/16],
|
||||
|
||||
rowspanx(6)[7], [1], [9.10.0.254/16],
|
||||
(), [2], [10.1.18.254/23],
|
||||
(), [3], [10.1.20.254/23],
|
||||
(), [4], [10.1.22.254/23],
|
||||
(), [5], [10.1.24.254/23],
|
||||
(), [6], [10.1.26.254/23],
|
||||
)
|
||||
]
|
||||
|
||||
|
||||
Для M1:
|
||||
|
||||
#align(center)[
|
||||
#table(columns: 4)[Network][Mask][Gateway][Int][194.44.183.17][255.255.255.240][0.0.0.0][1][192.168.36.0][255.255.252.0][0.0.0.0][2][192.168.40.0][255.255.252.0][0.0.0.0][3][192.168.44.0][255.255.252.0][0.0.0.0][4][192.168.48.0][255.255.252.0][0.0.0.0][5][192.168.52.0][255.255.252.0][0.0.0.0][6][9.2.0.0][255.255.0.0][0.0.0.0][7][193.10.16.0][255.255.240.0][9.2.0.253][7][10.1.16.0][255.255.240.0][9.2.0.253][7][0.0.0.0][0.0.0.0][194.44.183.17][1]
|
||||
]
|
||||
|
||||
Для M3:
|
||||
|
||||
#align(center)[
|
||||
#table(columns: 4)[Network][Mask][Gateway][Int][192.168.32.0][255.255.224.0][9.2.0.254][1][9.2.0.0][255.255.0.0][0.0.0.0][1][193.10.20.0][255.255.252.0][0.0.0.0][3][10.1.16.0][255.255.240.0][9.10.0.254][4][9.10.0.0][255.255.0.0][0.0.0.0][4][0.0.0.0][0.0.0.0][9.2.0.254][1]
|
||||
]
|
||||
|
||||
Для M7:
|
||||
|
||||
#align(center)[
|
||||
#table(columns: 4)[Network][Mask][Gateway][Int][192.168.32.0][255.255.224.0][9.10.0.253][1][193.10.16.0][255.255.240.0][9.10.0.253][1][9.10.0.0][255.255.0.0][0.0.0.0][1][10.1.18.0][255.255.254.0][0.0.0.0][2][10.1.20.0][255.255.254.0][0.0.0.0][3][10.1.22.0][255.255.254.0][0.0.0.0][4][10.1.24.0][255.255.254.0][0.0.0.0][5][10.1.26.0][255.255.254.0][0.0.0.0][6][0.0.0.0][0.0.0.0][9.10.0.253][1]
|
||||
]
|
||||
|
||||
=== Cisco Packet Tracer
|
||||
|
||||
Для начала я добавил 3 маршрутизатора M1, M3 и M7 типа Router-PT-Empty.
|
||||
|
||||
#align(center)[#image("assets/3.png")]
|
||||
|
||||
Затем, при отключенном питании я добавил модули PT-ROUTER-NM-1CFE в каждый из маршрутизаторов.
|
||||
|
||||
Для M1:
|
||||
|
||||
#align(center)[#image("assets/4.png")]
|
||||
|
||||
Для M3:
|
||||
|
||||
#align(center)[#image("assets/5.png")]
|
||||
|
||||
Для M7:
|
||||
|
||||
#align(center)[#image("assets/6.png")]
|
||||
|
||||
Для настройки маршрутизаторов использовались команды `enable` (`en`) для перехода в привилегированный режим, а также `configure terminal` (или сокращенно `conf t`) для перехода в режим глобальной конфигурации.
|
||||
|
||||
После этого для каждого из портов были указаны нужные IP.
|
||||
|
||||
Для M1:
|
||||
|
||||
```
|
||||
enable
|
||||
conf t
|
||||
|
||||
interface fa0/0
|
||||
ip address 192.168.36.254 255.255.252.0
|
||||
no shutdown
|
||||
|
||||
interface fa1/0
|
||||
ip address 192.168.40.254 255.255.252.0
|
||||
no shutdown
|
||||
|
||||
interface fa2/0
|
||||
ip address 192.168.44.254 255.255.252.0
|
||||
no shutdown
|
||||
|
||||
interface fa3/0
|
||||
ip address 192.168.48.254 255.255.252.0
|
||||
no shutdown
|
||||
|
||||
interface fa4/0
|
||||
ip address 192.168.52.254 255.255.252.0
|
||||
no shutdown
|
||||
|
||||
interface fa5/0
|
||||
ip address 9.2.0.254 255.255.0.0
|
||||
no shutdown
|
||||
```
|
||||
|
||||
Получилось:
|
||||
|
||||
#align(center)[#image("assets/7.png")]
|
||||
|
||||
Для M3:
|
||||
|
||||
```
|
||||
enable
|
||||
conf t
|
||||
|
||||
interface fa0/0
|
||||
ip address 9.2.0.253 255.255.0.0
|
||||
no shutdown
|
||||
|
||||
interface fa1/0
|
||||
ip address 193.10.20.254 255.255.252.0
|
||||
no shutdown
|
||||
|
||||
interface fa2/0
|
||||
ip address 193.10.24.254 255.255.252.0
|
||||
no shutdown
|
||||
|
||||
interface fa3/0
|
||||
ip address 9.10.0.253 255.255.0.0
|
||||
no shutdown
|
||||
```
|
||||
|
||||
Получилось:
|
||||
|
||||
#align(center)[#image("assets/8.png")]
|
||||
|
||||
Для M7:
|
||||
|
||||
```
|
||||
enable
|
||||
conf t
|
||||
|
||||
interface fa0/0
|
||||
ip address 9.10.0.254 255.255.0.0
|
||||
no shutdown
|
||||
|
||||
interface fa1/0
|
||||
ip address 10.1.18.254 255.255.254.0
|
||||
no shutdown
|
||||
|
||||
interface fa2/0
|
||||
ip address 10.1.20.254 255.255.254.0
|
||||
no shutdown
|
||||
|
||||
interface fa3/0
|
||||
ip address 10.1.22.254 255.255.254.0
|
||||
no shutdown
|
||||
|
||||
interface fa4/0
|
||||
ip address 10.1.24.254 255.255.254.0
|
||||
no shutdown
|
||||
|
||||
interface fa5/0
|
||||
ip address 10.1.26.254 255.255.254.0
|
||||
no shutdown
|
||||
```
|
||||
|
||||
Получилось:
|
||||
|
||||
#align(center)[#image("assets/9.png")]
|
||||
|
||||
Затем добавим компьютеры (я соединил их проводами Copper Cross-Over):
|
||||
|
||||
#align(center)[#image("assets/10.png")]
|
||||
|
||||
Для каждого компьютера я добавил IP, Mask и Gateway.
|
||||
|
||||
#align(center)[
|
||||
#table(columns: 4)[PC][IP][Mask][Gateway][PC0][192.168.36.1][255.255.252.0][192.168.36.254][PC1][192.168.40.1][255.255.252.0][192.168.40.254][PC2][192.168.44.1][255.255.252.0][192.168.44.254][PC3][192.168.48.1][255.255.252.0][192.168.48.254][PC4][192.168.52.1][255.255.252.0][192.168.52.254][PC5][193.10.20.1][255.255.252.0][193.10.20.254][PC6][193.10.24.1][255.255.252.0][193.10.24.254][PC7][10.1.18.1][255.255.254.0][10.1.18.254][PC8][10.1.20.1][255.255.254.0][10.1.20.254][PC9][10.1.22.1][255.255.254.0][10.1.22.254][PC10][10.1.24.1][255.255.254.0][10.1.24.254][PC11][10.1.26.1][255.255.254.0][10.1.26.254]
|
||||
]
|
||||
|
||||
Также добавим маршруты на маршрутизаторах.
|
||||
|
||||
Для M1:
|
||||
|
||||
```
|
||||
ip route 193.10.16.0 255.255.240.0 9.2.0.253
|
||||
ip route 10.1.16.0 255.255.240.0 9.2.0.253
|
||||
ip route 0.0.0.0 0.0.0.0 9.2.0.253
|
||||
```
|
||||
|
||||
#align(center)[#image("assets/11.png")]
|
||||
|
||||
Для M3:
|
||||
|
||||
```
|
||||
ip route 192.168.32.0 255.255.224.0 9.2.0.254
|
||||
ip route 10.1.16.0 255.255.240.0 9.10.0.254
|
||||
ip route 0.0.0.0 0.0.0.0 9.2.0.254
|
||||
```
|
||||
|
||||
#align(center)[#image("assets/12.png")]
|
||||
|
||||
Для M7:
|
||||
|
||||
```
|
||||
ip route 192.168.32.0 255.255.224.0 9.10.0.253
|
||||
ip route 193.10.16.0 255.255.240.0 9.10.0.253
|
||||
ip route 0.0.0.0 0.0.0.0 9.10.0.253
|
||||
```
|
||||
|
||||
#align(center)[#image("assets/13.png")]
|
||||
|
||||
Попробуем пингануть PC11 с PC0.
|
||||
|
||||
#align(center)[#image("assets/14.png")]
|
||||
|
||||
Теперь визуализируем работу нашей сети с помощью режима Simulation.
|
||||
|
||||
Отправим PDU с PC0 до PC11.
|
||||
|
||||
#align(center)[#image("assets/15.png")]
|
||||
#align(center)[#image("assets/16.png")]
|
||||
#align(center)[#image("assets/17.png")]
|
||||
#align(center)[#image("assets/18.png")]
|
||||
#align(center)[#image("assets/19.png")]
|
||||
|
||||
|
||||
Как можно видеть пакет был успешно доставлен.
|
||||
|
||||
|
||||
=== Заключение.
|
||||
|
||||
В ходе работы была спроектирована и настроена IP-сеть из трёх маршрутизаторов в Cisco Packet Tracer, выполнена адресация интерфейсов и конечных устройств, а также настройка статической маршрутизации. Связность между всеми узлами проверена.
|
||||
BIN
computer_networks/labs/lab2/res.pkt
Normal file
BIN
computer_networks/labs/lab2/task.pdf
Normal file
BIN
computer_networks/labs/lab3/assets/1.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
computer_networks/labs/lab3/assets/10.png
Normal file
|
After Width: | Height: | Size: 254 KiB |
BIN
computer_networks/labs/lab3/assets/11.png
Normal file
|
After Width: | Height: | Size: 88 KiB |
BIN
computer_networks/labs/lab3/assets/12.png
Normal file
|
After Width: | Height: | Size: 276 KiB |
BIN
computer_networks/labs/lab3/assets/13.png
Normal file
|
After Width: | Height: | Size: 157 KiB |
BIN
computer_networks/labs/lab3/assets/14.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
computer_networks/labs/lab3/assets/15.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
computer_networks/labs/lab3/assets/2.png
Normal file
|
After Width: | Height: | Size: 249 KiB |
BIN
computer_networks/labs/lab3/assets/3.png
Normal file
|
After Width: | Height: | Size: 248 KiB |
BIN
computer_networks/labs/lab3/assets/4.png
Normal file
|
After Width: | Height: | Size: 258 KiB |
BIN
computer_networks/labs/lab3/assets/5.png
Normal file
|
After Width: | Height: | Size: 255 KiB |
BIN
computer_networks/labs/lab3/assets/6.png
Normal file
|
After Width: | Height: | Size: 255 KiB |
BIN
computer_networks/labs/lab3/assets/7.png
Normal file
|
After Width: | Height: | Size: 254 KiB |
BIN
computer_networks/labs/lab3/assets/8.png
Normal file
|
After Width: | Height: | Size: 254 KiB |
BIN
computer_networks/labs/lab3/assets/9.png
Normal file
|
After Width: | Height: | Size: 254 KiB |
BIN
computer_networks/labs/lab3/report.pdf
Normal file
136
computer_networks/labs/lab3/report.typ
Normal file
@@ -0,0 +1,136 @@
|
||||
#set text(size: 1.3em)
|
||||
|
||||
// title
|
||||
|
||||
#align(center)[Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики]
|
||||
\
|
||||
\
|
||||
\
|
||||
#align(center)[Факультет инфокоммуникационных технологий]
|
||||
#align(center)[Направление подготовки 11.03.02]
|
||||
\
|
||||
\
|
||||
#align(center)[Практическая работа №3]
|
||||
#align(center)[Хабы. Коммутаторы. DHCP.]
|
||||
\
|
||||
\
|
||||
\
|
||||
//#align(center)[Вариант 19]
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
#align(right)[Выполнил:]
|
||||
#align(right)[Дощенников Никита Андреевич]
|
||||
#align(right)[Группа: К3121]
|
||||
#align(right)[Проверил:]
|
||||
#align(right)[Антон Харитонов]
|
||||
\
|
||||
\
|
||||
#align(center)[Санкт-Петербург]
|
||||
#align(center)[2025]
|
||||
|
||||
#pagebreak()
|
||||
|
||||
// page 1
|
||||
|
||||
=== Цель работы.
|
||||
|
||||
Изучить принципы работы концентраторов и коммутаторов второго уровня, освоить настройку и применение VLAN, а также организовать автоматическую выдачу IP-адресов с использованием DHCP-сервера в локальной сети.
|
||||
|
||||
=== Концентраторы.
|
||||
|
||||
Была выбрана сеть 3 из второй лабораторной, то есть все устройства будут находиться в подсети `192.168.32.0/22`. В качестве коммутатора был выбран 2960-24TT, а также 6 компьютеров типа PC-PT. Я подключил компьютеры к коммутатору проводами Copper Straight-Through. Также я задал каждому ПК IP адрес в соответствии с таблицей ниже.
|
||||
|
||||
#align(center)[
|
||||
#table(columns: 2)[PC][IP][0][192.168.32.1][1][192.168.32.2][2][192.168.32.3][3][192.168.32.4][4][192.168.32.5][5][192.168.32.6]
|
||||
]
|
||||
|
||||
Получилась схема ниже.
|
||||
|
||||
#align(center)[#image("assets/1.png")]
|
||||
|
||||
Для проверки работоспособности отправим PDU с PC0 на PC5 (ICMP запрос).
|
||||
|
||||
|
||||
#align(center)[#image("assets/2.png")]
|
||||
|
||||
Так как PC0 не знает MAC адрес PC4, то совершает ARP запрос всем своим компьютерам.
|
||||
|
||||
#align(center)[#image("assets/3.png")]
|
||||
#align(center)[#image("assets/4.png")]
|
||||
#align(center)[#image("assets/5.png")]
|
||||
#align(center)[#image("assets/6.png")]
|
||||
#align(center)[#image("assets/7.png")]
|
||||
#align(center)[#image("assets/8.png")]
|
||||
#align(center)[#image("assets/9.png")]
|
||||
#align(center)[#image("assets/10.png")]
|
||||
|
||||
|
||||
=== Виртуальные сети.
|
||||
|
||||
Ниже показана физическая схема.
|
||||
|
||||
#align(center)[#image("assets/11.png")]
|
||||
|
||||
А также логический вид.
|
||||
|
||||
#align(center)[#image("assets/12.png")]
|
||||
|
||||
При помощи команды `vlan x` (`x` обозначает номер VLAN) для всех коммутаторов была добавлена информация о всех VLAN. Например, для `fa0/1`:
|
||||
|
||||
```
|
||||
int fa0/1
|
||||
switchport access vlan 10
|
||||
```
|
||||
|
||||
Для тех портов, которые связываются с другими сетевыми устройствами использовался мод `trunk`. Например:
|
||||
|
||||
```
|
||||
int fa0/23
|
||||
switchport mode trunk
|
||||
```
|
||||
|
||||
Затем в настройках Server-PT (DHCP сервер) был включен DHCP service. И добавлены pool для каждого из 6 vlan'ов.
|
||||
|
||||
#align(center)[#image("assets/13.png")]
|
||||
|
||||
Затем при помощи команд `vlan database` и `vlan x` (где `x` опять таки номер vlan'а) в коммутатор третьего уровня (3560-24PS) была добавлена информация о VLAN. Например:
|
||||
|
||||
```
|
||||
interface vlan 20
|
||||
ip address 10.20.0.254 255.255.255.0
|
||||
ip helper-address 10.60.0.1
|
||||
```
|
||||
|
||||
Затем для порта другого коммутатора был включен мод `trunk`.
|
||||
|
||||
```
|
||||
int fa0/2
|
||||
switchport trunk encapsulation dot1q
|
||||
switchport mode trunk
|
||||
```
|
||||
|
||||
Затем порт DHCP сервера:
|
||||
|
||||
```
|
||||
int fa0/1
|
||||
switchport access vlan 10
|
||||
```
|
||||
|
||||
Затем для всех устройств в настройках IP адреса была переключена опция Static на DHCP и устройство получило свои настройки.
|
||||
|
||||
Попробуем пингануть PC5 с PC2. Так как они находятся в одном VLAN, то пинг должен пройти.
|
||||
|
||||
#align(center)[#image("assets/14.png")]
|
||||
|
||||
А для, например, пинга с PC0 до Laptop0 ничего не должно произойти, так как они находятся в разных VLAN.
|
||||
|
||||
#align(center)[#image("assets/15.png")]
|
||||
|
||||
=== Заключение.
|
||||
|
||||
В ходе выполнения работы были изучены принципы работы концентраторов и коммутаторов второго уровня, выполнена настройка VLAN и реализована автоматическая выдача IP-адресов с помощью DHCP-сервера. Полученные результаты подтвердили корректную работу сети: устройства внутри одного VLAN успешно обменивались данными, а взаимодействие между различными VLAN было ограничено в соответствии с настройками.
|
||||