inter VLAN routing with Ubuntu
I have 4 VLANs created and I’m trying to use my Ubuntu machine as the DNS,DHCP, and L3 router. I want my 4 VLANs separated but still able to talk each other. Here is a bit about my setup. Cable modem (Bridged)—>Ubuntu Server box (see below)—>Dell Power connect 2824 (in Managed mode) — L2 switch w/ IP address of 192.168.1.1 (4 VLANs setup within the Dell L2 switch) vlan1 (Mgmt) 192.168.1.0/24 vlan10 (home network) 192.168.10.0/24 vlan20 (Storage/Backups/Media server) 192.168.20.0/24 vlan30 (Work) 192.168.30.0/24 Ubuntu server 14.4 LTS eth0 — Cable modem IP (WAN) Netmask 255.255.224.0 eth1 — LAN side — 192.168.10.2 Netmask 255.255.255.0 I can NOT get the static routes setup on this to save my life. On Ubuntu server DNS works great. DHCP hands out addresses fine only for the 192.168.10.x network. It will not hand out addresses for the other VLANs. I assume that will work once we get all of the VLANs talking properly. I understand the concepts but need specifics of what to change to get this working and routes should be persistent upon reboot. Thank you for the assist.
ip address show 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:23:7d:f3:10:d2 brd ff:ff:ff:ff:ff:ff inet 70.115.129.7/19 brd 255.255.255.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::223:7dff:fef3:10d2/64 scope link valid_lft forever preferred_lft forever 3: eth1: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:23:7d:f3:10:d0 brd ff:ff:ff:ff:ff:ff inet 192.168.10.2/24 brd 192.168.10.255 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::223:7dff:fef3:10d0/64 scope link valid_lft forever preferred_lft forever ip route show default via 70.115.128.1 dev eth0 70.115.128.0/19 dev eth0 proto kernel scope link src 70.115.129.7 192.168.10.0/24 dev eth1 proto kernel scope link src 192.168.10.2
$ ip r s default via 70.115.128.1 dev eth0 70.115.128.0/19 dev eth0 proto kernel scope link src 70.115.129.7 192.168.1.0/24 dev eth1.1 proto kernel scope link src 192.168.1.10 192.168.10.0/24 dev eth1.10 proto kernel scope link src 192.168.10.2 192.168.20.0/24 dev eth1.20 proto kernel scope link src 192.168.20.1
Маршрутизация между Vlan
Суть в том что бы разрулить внутренние локалки по разным интернет каналам, допустим вот так:
-------------------- |интернет| Сеть | -------------------- | vlan10 | vlan100 | | vlan11 | vlan101 | --------------------
#/bin/sh # Интерфейс, подключенный к провайдеру: IF_OUT_VLAN100="vlan10" IF_OUT_VLAN101="vlan10" # Сбрасываем все правила во всех таблицах: iptables -F iptables -F -t nat iptables -F -t mangle # Игнорировать входящие, # Разрешить исходящие, # Игнорировать пересыламые (запрещать): iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP # Разрешаем входящие в ответ на исходящие: iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # Разрешаем весь трафик на loopback-интерфейсе: iptables -A INPUT -i lo -j ACCEPT #--------| #VLAN100:| #--------| # Разрешаем пересылку пакетов из этого влана наружу: iptables -A FORWARD -i vlan100 -o $ -s 192.168.0.0/255.255.255.0 -j ACCEPT # Разрешаем пересылку пакетов снаружи в этот влан, но только в ответ на исходящие запросы: iptables -A FORWARD -i $ -o vlan100 -d 192.168.0.0/255.255.255.0 -m state --state RELATED,ESTABLISHED -j ACCEPT # NAT для подсети из этого влана: iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j MASQUERADE -o $ # Разрешаем использование нашего DNS из этого влана: iptables -A INPUT -m udp -p udp --dport 53 -s 192.168.0.0/255.255.255.0 -i vlan100 -j ACCEPT #--------| #VLAN101:| #--------| iptables -A FORWARD -i vlan101 -o $ -s 192.168.1.0/255.255.255.0 -j ACCEPT iptables -A FORWARD -i $ -o vlan101 -d 192.168.1.0/255.255.255.0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -j MASQUERADE -o $ iptables -A INPUT -m udp -p udp --dport 53 -s 192.168.1.0/255.255.255.0 -i vlan101 -j ACCEPT
В данном случае у меня стоит IF_OUT_VLAN101=«vlan10», если я ставлю IF_OUT_VLAN101=«vlan11» — доступ в интернет пропадает через VLAN101. Но если ставлю IF_OUT_VLAN101=«vlan11» и отключаю vlan10 down — то vlan101 сразу начинает работать через шлюз vlan11. Я полагаю из-за ip route — не настроивал, по дефолту выглядет так:
# ip route 194.190.203.16/28 dev vlan10 proto kernel scope link src 194.190.203.21 62.100.133.240/28 dev vlan11 proto kernel scope link src 62.100.133.245 192.168.0.0/24 dev vlan100 proto kernel scope link src 192.168.0.1 192.168.1.0/24 dev vlan101 proto kernel scope link src 192.168.1.1 default via 194.190.203.17 dev vlan10 metric 100 default via 62.100.133.241 dev vlan11 metric 100
Подскажите или посоветуйте как быть, куда копать? Заранее спасибки.