Добавить README.md
This commit is contained in:
182
README.md
Normal file
182
README.md
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
# Домашнее задание 28
|
||||||
|
|
||||||
|
## Архитектура сетей
|
||||||
|
Для выполнение задания используется vagrant box Ubuntu 22.04
|
||||||
|
За основу взят Vagranfile https://github.com/erlong15/otus-linux/tree/network
|
||||||
|
|
||||||
|
В оригинальный Vagranfile внесены следующие изменения
|
||||||
|
1. Все VM будут на Ubuntu 22.04
|
||||||
|
2. Весь provision перенесен в Ansible
|
||||||
|
|
||||||
|
### Создание Vagrantfile
|
||||||
|
|
||||||
|
Зададим следующие характеристики для всех VM
|
||||||
|
|
||||||
|
- CPU - 1
|
||||||
|
- Memory - 512mb
|
||||||
|
|
||||||
|
|
||||||
|
Бедет создано 7 VM
|
||||||
|
|
||||||
|
- inetRouter
|
||||||
|
- centralRouter
|
||||||
|
- office1Router
|
||||||
|
- office2Router
|
||||||
|
- centralServer
|
||||||
|
- office1Server
|
||||||
|
- office2Server
|
||||||
|
|
||||||
|
|
||||||
|
Будут добавлены следующие сети и следующая адресация:
|
||||||
|
|
||||||
|
1. **inetRouter**
|
||||||
|
- **router-net** ip **192.168.255.1/30** link to **centralRouter**
|
||||||
|
|
||||||
|
2. **centralRouter**
|
||||||
|
- **router-net** ip **192.168.255.2/30** link to **inetRouter**
|
||||||
|
- **router-off01-net** ip **192.168.255.5/30** link to **office1Router**
|
||||||
|
- **router-off02-net** ip **192.168.255.9/30** link to **office2Router**
|
||||||
|
- **dir-net** ip **192.168.0.1/28** link to **centralServer**
|
||||||
|
- **hw-centr-net** ip **192.168.0.33/28** **no link**
|
||||||
|
- **wifi-net** ip **192.168.0.65/26** **no link**
|
||||||
|
|
||||||
|
3. **centralServer**
|
||||||
|
- **dir-net** ip **192.168.0.2/28** link to **centralRouter**
|
||||||
|
|
||||||
|
4. **office1Router**
|
||||||
|
- **router-off01-net** ip **192.168.255.6/30** link to **centralRouter**
|
||||||
|
- **dev01-net** ip **192.168.2.1/26** link to **office1Server**
|
||||||
|
- **test01-srv-net** ip **192.168.2.65/26** **no link**
|
||||||
|
- **managers-net** ip **192.168.2.129/26** **no link**
|
||||||
|
- **hw01-net** ip **192.168.2.193/26** **no link**
|
||||||
|
|
||||||
|
5. **office1Server**
|
||||||
|
- **dev01-net** ip **192.168.2.2/26** link to **office1Router**
|
||||||
|
|
||||||
|
6. **office2Router**
|
||||||
|
- **router-off02-net** ip **192.168.255.10/30** link to **centralRouter**
|
||||||
|
- **dev02-net** ip **192.168.1.1/25** link to **office2Server**
|
||||||
|
- **test02-srv-net** ip **192.168.1.129/26** **no link**
|
||||||
|
- **hw02-net** ip **192.168.1.193/26** **no link**
|
||||||
|
|
||||||
|
5. **office2Server**
|
||||||
|
- **dev02-net** ip **192.168.1.2/25** link to **office2Router**
|
||||||
|
|
||||||
|
|
||||||
|
Карта сети
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Готовый [Vagrantfile](Vagrantfile)
|
||||||
|
|
||||||
|
|
||||||
|
### Cоздание ansible.yml
|
||||||
|
|
||||||
|
Сценарий для Ansible будет выполнять следующие действия:
|
||||||
|
|
||||||
|
1. На всех VM (кроме inetRouter), будет отключен маршрут по умолчанию, который создает vagrant
|
||||||
|
2. На inetRouter будет установлен iptables-persistent, для сохранения правил iptables
|
||||||
|
3. На inetRouter будет установлен iptables-persistent, для сохранения правил iptables
|
||||||
|
4. На всех VM, которые будут выполнять роль роутеров включен net.ipv4.ip_forward, для разрешения роутинга
|
||||||
|
5. Добавлены маршруты:
|
||||||
|
- На **centralRouter** маршруты до office1 и office2
|
||||||
|
- На **office1Router** маршруты до умолчанию на centralRouter
|
||||||
|
- На **office1Server** маршруты до умолчанию на office1Router
|
||||||
|
- На **office2Router** маршруты до умолчанию на centralRouter
|
||||||
|
- На **office2Server** маршруты до умолчанию на office2Router
|
||||||
|
|
||||||
|
|
||||||
|
Готовый [ansible.yml](ansible.yml)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Проверка
|
||||||
|
|
||||||
|
Запускаем vagrant
|
||||||
|
```bash
|
||||||
|
alex@ubuntu-pc:~/Документы/28$ vagrant up
|
||||||
|
Bringing machine 'inetRouter' up with 'virtualbox' provider...
|
||||||
|
Bringing machine 'centralRouter' up with 'virtualbox' provider...
|
||||||
|
Bringing machine 'centralServer' up with 'virtualbox' provider...
|
||||||
|
Bringing machine 'office1Router' up with 'virtualbox' provider...
|
||||||
|
Bringing machine 'office1Server' up with 'virtualbox' provider...
|
||||||
|
Bringing machine 'office2Router' up with 'virtualbox' provider...
|
||||||
|
Bringing machine 'office2Server' up with 'virtualbox' provider...
|
||||||
|
==> inetRouter: You assigned a static IP ending in ".1" or ":1" to this machine.
|
||||||
|
==> inetRouter: This is very often used by the router and can cause the
|
||||||
|
==> inetRouter: network to not work properly. If the network doesn't work
|
||||||
|
==> inetRouter: properly, try changing this IP.
|
||||||
|
==> inetRouter: Importing base box 'ubuntu/jammy64'...
|
||||||
|
==> inetRouter: Matching MAC address for NAT networking...
|
||||||
|
==> inetRouter: You assigned a static IP ending in ".1" or ":1" to this machine.
|
||||||
|
==> inetRouter: This is very often used by the router and can cause the
|
||||||
|
==> inetRouter: network to not work properly. If the network doesn't work
|
||||||
|
==> inetRouter: properly, try changing this IP.
|
||||||
|
==> inetRouter: Checking if box 'ubuntu/jammy64' version '20241002.0.0' is up to date...
|
||||||
|
==> inetRouter: Setting the name of the VM: 28_inetRouter_1773580566544_92349
|
||||||
|
==> inetRouter: Clearing any previously set network interfaces...
|
||||||
|
==> inetRouter: Preparing network interfaces based on configuration...
|
||||||
|
inetRouter: Adapter 1: nat
|
||||||
|
inetRouter: Adapter 2: intnet
|
||||||
|
==> inetRouter: Forwarding ports...
|
||||||
|
inetRouter: 22 (guest) => 2222 (host) (adapter 1)
|
||||||
|
==> inetRouter: Running 'pre-boot' VM customizations...
|
||||||
|
==> inetRouter: Booting VM...
|
||||||
|
==> inetRouter: Waiting for machine to boot. This may take a few minutes...
|
||||||
|
inetRouter: SSH address: 127.0.0.1:2222
|
||||||
|
inetRouter: SSH username: vagrant
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
TASK [Gathering Facts] *********************************************************
|
||||||
|
ok: [office2Server]
|
||||||
|
|
||||||
|
TASK [add default gateway netplan] *********************************************
|
||||||
|
changed: [office2Server]
|
||||||
|
|
||||||
|
RUNNING HANDLER [apply netplan] ************************************************
|
||||||
|
changed: [office2Server]
|
||||||
|
|
||||||
|
PLAY RECAP *********************************************************************
|
||||||
|
office2Server : ok=6 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
После запуска всех машин, поключимся к office1Server и с помощью tracepath посмотрим, по какому маршруту идут пакеты до 8.8.8.8
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vagrant@office1Server:~$ ping 8.8.8.8
|
||||||
|
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
|
||||||
|
64 bytes from 8.8.8.8: icmp_seq=1 ttl=252 time=30.3 ms
|
||||||
|
64 bytes from 8.8.8.8: icmp_seq=2 ttl=252 time=25.1 ms
|
||||||
|
^C
|
||||||
|
--- 8.8.8.8 ping statistics ---
|
||||||
|
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
|
||||||
|
rtt min/avg/max/mdev = 25.128/27.691/30.254/2.563 ms
|
||||||
|
vagrant@office1Server:~$ tracepath 8.8.8.8 -n -m 11
|
||||||
|
1?: [LOCALHOST] pmtu 1500
|
||||||
|
1: 192.168.2.1 1.031ms
|
||||||
|
1: 192.168.2.1 2.782ms
|
||||||
|
2: 192.168.255.5 1.928ms
|
||||||
|
3: 192.168.255.1 1.004ms
|
||||||
|
4: 10.0.2.2 1.419ms
|
||||||
|
5: 192.168.50.1 5.875ms asymm 4
|
||||||
|
6: 212.1.254.233 18.778ms asymm 4
|
||||||
|
7: 212.1.241.238 5.011ms asymm 4
|
||||||
|
8: 212.1.251.35 3.846ms asymm 4
|
||||||
|
9: 178.176.150.27 6.001ms asymm 4
|
||||||
|
10: no reply
|
||||||
|
11: no reply
|
||||||
|
Too many hops: pmtu 1500
|
||||||
|
Resume: pmtu 1500
|
||||||
|
```
|
||||||
|
|
||||||
|
Видим, что пакеты проходят **office1Router** -> **centralRouter** -> **inetRouter** -> **other**
|
||||||
|
|
||||||
|
Все готово!
|
||||||
Reference in New Issue
Block a user