Eu encontrei a solução em /etc/sysctl.conf
:
net.ipv4.ip_forward=1
Agora tudo funciona perfeitamente!
Atualmente, estou criando uma rede baseada no Ubuntu Server.
Ele é implementado como VM no VirtualBox e se parece com isso:
enp0s3
, conexão com a internet. 2ª - enp0s9
, room_two
- rede interna do VBox. enp0s3
, conectada a room_two
. O que eu quero alcançar: Roteamento de servidor de enp0s3
para room_two
rede interna.
O que eu já fiz:
# /etc/netplan/50-cloud-init.yaml
network:
ethernets:
enp0s3:
addresses: []
dhcp4: true
enp0s8:
addresses: [192.168.1.1/16]
dhcp4: false
version: 2
Configuração Shorewall para dois roteadores de interface.
/etc/shorewall/zones
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
net ipv4
loc ipv4
/etc/shorewall/rules
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK CONNLIMIT TIME HEADERS SWITCH HELPER
# PORT PORT(S) DEST LIMIT GROUP
?SECTION ALL
?SECTION ESTABLISHED
?SECTION RELATED
?SECTION INVALID
?SECTION UNTRACKED
?SECTION NEW
# Don't allow connection pickup from the net
#
Invalid(DROP) net all tcp
#
# Accept DNS connections from the firewall to the network
#
DNS(ACCEPT) $FW net
DNS(ACCEPT) loc $FW
#
# Accept SSH connections from the local network for administration
#
SSH(ACCEPT) loc $FW
SSH(ACCEPT) net $FW
#
# Allow Ping from the local network
#
Ping(ACCEPT) loc $FW
Ping(ACCEPT) $FW loc
#
# Drop Ping from the "bad" net zone.. and prevent your log from being flooded..
#
Ping(DROP) net $FW
ACCEPT $FW loc icmp
ACCEPT $FW net icmp
#
/etc/shorewall/policy
#SOURCE DEST POLICY LOGLEVEL RATE CONNLIMIT
$FW net ACCEPT
loc net ACCEPT
net all DROP $LOG_LEVEL
# THE FOLOWING POLICY MUST BE LAST
all all REJECT $LOG_LEVEL
/etc/shorewall/interfaces
#ZONE INTERFACE OPTIONS
net NET_IF dhcp,tcpflags,nosmurfs,routefilter,logmartians,sourceroute=0,physical=enp0s3
loc LOC_IF dhcp,tcpflags,nosmurfs,routefilter,logmartians,physical=enp0s8
/etc/shorewall/snat
# Rules generated from masq file /home/teastep/shorewall/trunk/Shorewall/Samples/two-interfaces/masq by Shorewall 5.0.13-RC1 - Sat Oct 15 11:41:40 PDT 2016
#
MASQUERADE 10.0.0.0/8,\
169.254.0.0/16,\
172.16.0.0/12,\
192.168.0.0/16 NET_IF
Meu servidor Ubuntu funciona bem, as solicitações de DNS são armazenadas em cache e eu posso acessar a Internet. No meu cliente ArchLinux eu recebo um endereço IP do servidor DHCP e quando eu 'ping google.com' eu recebo o endereço IP correto, mas recebo 100% de perda de pacotes. Onde devo procurar informações e que tipo? O que posso ter feito de errado? Não há muitos recursos sobre a configuração do Shorewall + Netplan, pois o último é bem novo.