diff --git a/README.md b/README.md new file mode 100644 index 0000000..bbd5e87 --- /dev/null +++ b/README.md @@ -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** + + +Карта сети +![28_1](images/28_1.png) + + + +Готовый [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** + +Все готово! \ No newline at end of file