Gateway mit Openwrt: Unterschied zwischen den Versionen

Aus Freifunk Franken
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
Eine Anleitung, ein dezentrales/lokales Gateway mit OpenWrt einzurichten.
Eine Anleitung, ein dezentrales/lokales Gateway mit OpenWrt einzurichten.


Hier am Beispiel eines TP-Link c2600.
Hier am Beispiel eines TP-Link Archer C2600.


Der Router wird dezentrales Gateway  
Der Router wird dezentrales Gateway.


Wir können viel aus der Anleitung [[Freifunk-Gateway aufsetzen]] ableiten.
Wir können viel aus der Anleitung [[Freifunk-Gateway aufsetzen]] ableiten.
Zeile 12: Zeile 12:


* Als erstes ein aktuelles OpenWrt flashen.
* Als erstes ein aktuelles OpenWrt flashen.
* Am Webinterface anmelden und ein Rootpasswort vergeben. Ev. ssh an allen Devices erlauben, macht es leichter drauf zu kommen, während wir konfigurieren. Man kann auch gleich seinen ssh-key hinterlegen.
* Am Webinterface anmelden und ein Rootpasswort vergeben. Eventuell ssh an allen Devices erlauben, macht es leichter drauf zu kommen, während wir konfigurieren. Man kann auch gleich seinen ssh-key hinterlegen.
* Hostname festlegen, Zeitzone  
* Hostname festlegen und Zeitzone setzen.


Jetzt sollte man sich via ssh am Router einloggen können.
Jetzt sollte man sich via ssh am Router einloggen können.
Zeile 27: Zeile 27:
=== Routingtabelle deklarieren ===
=== Routingtabelle deklarieren ===


Tabellennummer und Name in /etc/iproute2/rt_tables eintragen:
Tabellennummer und Name in /etc/iproute2/rt_tables eintragen.


  10    fff
  10    fff


== Vorbereitung zur Installation der Pakete ==
=== Vorbereitung zur Installation der Pakete ===


Es können nur Pakete via Internet installiert werden, wenn zuvor die Paketquellen, die in /etc/opkg definiert sind, aktualisiert werden.
Es können nur Pakete via Internet installiert werden, wenn zuvor die Paketquellen, die in /etc/opkg definiert sind, aktualisiert werden.
Zeile 39: Zeile 39:
== Konfiguration ==
== Konfiguration ==


* Ip Adressen Reservieren. Siehe Gatewayanleitung [[Freifunk-Gateway_aufsetzen#Konfigurieren_des_Freifunk-Gateways]]
* IP-Adressen reservieren. Siehe Gatewayanleitung: [[Freifunk-Gateway_aufsetzen#Konfigurieren_des_Freifunk-Gateways]]
* Netzwerktools installieren
* Netzwerktools installieren.


  opkg install ip-bridge ip-full iptables ip6tables
  opkg install ip-bridge ip-full iptables ip6tables
Zeile 48: Zeile 48:
=== Netzwerkinterfaces ===
=== Netzwerkinterfaces ===


Die Konfiguration der Interfaces, das Routing und des Switches erfolgt in /etc/config/network und die wifi-interfaces in /etc/config/wireless
Die Konfiguration der Interfaces, das Routing und des Switches erfolgt in /etc/config/network und die Wifi-Interfaces in /etc/config/wireless


Hier ein Beispiel mit Freifunk c2600.  
Hier ein Beispiel mit dem TP-Link Archer C2600.  


* Die /etc/config/wireless
* Die /etc/config/wireless
Zeile 94: Zeile 94:
option hidden '0'
option hidden '0'
option network 'mesh'
option network 'mesh'
</pre>
</pre>


* Die /etc/config/network . Hier die Grundkonfiguration
* Die /etc/config/Network; hier die Grundkonfiguration


<pre>
<pre>
Zeile 136: Zeile 134:
option reqaddress 'try'
option reqaddress 'try'
option reqprefix 'auto'
option reqprefix 'auto'
</pre>
</pre>
* Die Switchkonfiguration  
* Die Switchkonfiguration


<pre>
<pre>
Zeile 161: Zeile 156:
</pre>
</pre>


=== Wireguard ===
=== WireGuard ===


Wir brauchen eine Anbindung an das Freifunknetz. Dafür eignet sich Wireguard hervorragend. Alternativ geht natürlich auch eine Richtfunkstrecke oder ein Kabel o.ä. Dazu mit Peeringpartner absprechen
Wir brauchen eine Anbindung an das Freifunknetz. Dafür eignet sich WireGuard hervorragend. Alternativ geht natürlich auch eine Richtfunkstrecke oder ein Kabel o.&nbsp;ä. Dazu mit Peeringpartner absprechen.


* Wireguard installieren
* WireGuard installieren


  opkg install wireguard
  opkg install wireguard


* Die konfiguration erfolgt auch in /etc/config/network
* Die Konfiguration erfolgt auch in /etc/config/Network.


Man benötigt einen Peeringpartner im Freifunknetz, zu dem man einen Wireguardtunnel aufbauen kann. Dazu auf der Mailingliste anfragen, oder man kennt schon jemanden persönlich. Da tauscht man dann die Keys aus.
Man benötigt einen Peeringpartner im Freifunknetz, zu dem man einen WireGuard-Tunnel aufbauen kann. Dazu auf der Mailingliste anfragen, oder man kennt schon jemanden persönlich. Da tauscht man dann die Keys aus.


In dieser Beispielkonfiguration gibt es noch einen Wireguardtunnel nach Schweden zu azire-vpn, über den der Internettraffic raus geht.
In dieser Beispielkonfiguration gibt es noch einen WireGuard-Tunnel nach Schweden zu azire-vpn, über den der Internettraffic raus geht.


<pre>
<pre>
Zeile 197: Zeile 192:
=== Babel ===
=== Babel ===


Damit das Routing funktioniert brauchen wir noch Babel
Damit das Routing funktioniert brauchen wir noch Babel.


* Installieren
* Installieren
Zeile 252: Zeile 247:
=== Routing ===
=== Routing ===


Das Routing wird auch in der /etc/config/network eingetragen
Das Routing wird auch in der /etc/config/network eingetragen.


<pre>config rule
<pre>config rule
Zeile 308: Zeile 303:
option target 'fd43:5602:29bd:27::/64'
option target 'fd43:5602:29bd:27::/64'
option table 'fff'
option table 'fff'
</pre>
</pre>


* TCP clamping und.
* TCP clamping
Bis die Firewall fertig ist, kommt das erst mal in die /etc/rc.local
Bis die Firewall fertig ist, kommt das erst mal in die /etc/rc.local.


<pre>
<pre>
# clamping
# clamping
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o fff -j TCPMSS --clamp-mss-to-pmtu
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o fff -j TCPMSS --clamp-mss-to-pmtu
</pre>
</pre>


Zeile 362: Zeile 355:
</pre>
</pre>


== Besonderheit TP c2600 ==
== Besonderheit TP-Link Archer C2600 ==


Mit dem Standard wifimodul und wifi-Firmware kann der c2600 kein mesh. Falls man nas braucht, muss man diese austauschen. Die funktionierenden sind auch im OpenWrt Repo.
Mit dem Standard Wifimodul und Wifi-Firmware kann der Archer C2600 kein Mesh. Falls man Mesh braucht, muss man diese austauschen. Die funktionierenden sind auch im OpenWrt Repo.


<pre>
<pre>

Version vom 24. Februar 2019, 10:31 Uhr

Gateway mit OpenWrt einrichten

Eine Anleitung, ein dezentrales/lokales Gateway mit OpenWrt einzurichten.

Hier am Beispiel eines TP-Link Archer C2600.

Der Router wird dezentrales Gateway.

Wir können viel aus der Anleitung Freifunk-Gateway aufsetzen ableiten.

Grundinstallation

  • Als erstes ein aktuelles OpenWrt flashen.
  • Am Webinterface anmelden und ein Rootpasswort vergeben. Eventuell ssh an allen Devices erlauben, macht es leichter drauf zu kommen, während wir konfigurieren. Man kann auch gleich seinen ssh-key hinterlegen.
  • Hostname festlegen und Zeitzone setzen.

Jetzt sollte man sich via ssh am Router einloggen können.

Firewall

Erst mal ausschalten. Kann Probleme beim Testen und Konfigurieren machen.

/etc/init.d/firewall stop
/etc/init.d/firewall disable


Routingtabelle deklarieren

Tabellennummer und Name in /etc/iproute2/rt_tables eintragen.

10     fff

Vorbereitung zur Installation der Pakete

Es können nur Pakete via Internet installiert werden, wenn zuvor die Paketquellen, die in /etc/opkg definiert sind, aktualisiert werden.

opkg update

Konfiguration

opkg install ip-bridge ip-full iptables ip6tables
auch hilfreich
opkg install tcpdump iperf3

Netzwerkinterfaces

Die Konfiguration der Interfaces, das Routing und des Switches erfolgt in /etc/config/network und die Wifi-Interfaces in /etc/config/wireless

Hier ein Beispiel mit dem TP-Link Archer C2600.

  • Die /etc/config/wireless
config wifi-device 'radio0'
	option type 'mac80211'
	option hwmode '11a'
	option path 'soc/1b500000.pci/pci0000:00/0000:00:00.0/0000:01:00.0'
	option country 'DE'
	option legacy_rates '1'
	option disabled '0'
	option channel '40'
	option htmode 'VHT40'
	option txpower '16'

config wifi-iface 'w5ap'
	option device 'radio1'
	option ifname 'w5ap'
	option mode 'ap'
	option ssid 'freifunk.xxx.net'
	option encryption 'none'
	option hidden '0'
	option network 'mesh'

config wifi-device 'radio1'
	option type 'mac80211'
	option hwmode '11g'
	option path 'soc/1b700000.pci/pci0001:00/0001:00:00.0/0001:01:00.0'
	option htmode 'HT20'
	option country 'DE'
	option legacy_rates '1'
	option disabled '0'
	option channel '13'
	option txpower '16'


config wifi-iface 'w2ap'
	option device 'radio1'
	option ifname 'w2ap'
	option mode 'ap'
	option ssid 'freifunk.xxx.net'
	option encryption 'none'
	option hidden '0'
	option network 'mesh'
  • Die /etc/config/Network; hier die Grundkonfiguration
config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fdff:0::/64'

config interface 'lan'    #### mit dem Interface haengt man im Home-LAN
	option type 'bridge'
	option proto 'static'
	option ipaddr 'local IP'  ### meistens 192.168.xxx.xxx
	option netmask '255.255.255.0'
	option ip6assign '64'
	option gateway 'local default route'
	option dns 'x.x.x.x 9.9.9.9'
	option ifname 'eth1.1'

config interface 'mesh'
	option type 'bridge'
	option macaddr 'ec:08:6b:xx:xx:xx'
	option proto 'static'
	option ipaddr 'your fff IP'
	option netmask '255.255.255.xxx'
	option broadcast '10.83.xx.255'
	list ip6addr 'fd43:5602:29bd:your fff IP/64'
	list ip6addr 'fe80::1/64'
	option ifname 'eth0.2'

config interface 'lan6'
	option proto 'dhcpv6'
	option ifname 'eth1.1'
	option reqaddress 'try'
	option reqprefix 'auto'
  • Die Switchkonfiguration
config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option vid '1'
	option ports '1 6t' ### Hier den Uplink anstecken

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '2 3 4 5 0t'  ### auf den Ports faellt das fff-Netz raus
	option vid '2'

WireGuard

Wir brauchen eine Anbindung an das Freifunknetz. Dafür eignet sich WireGuard hervorragend. Alternativ geht natürlich auch eine Richtfunkstrecke oder ein Kabel o. ä. Dazu mit Peeringpartner absprechen.

  • WireGuard installieren
opkg install wireguard
  • Die Konfiguration erfolgt auch in /etc/config/Network.

Man benötigt einen Peeringpartner im Freifunknetz, zu dem man einen WireGuard-Tunnel aufbauen kann. Dazu auf der Mailingliste anfragen, oder man kennt schon jemanden persönlich. Da tauscht man dann die Keys aus.

In dieser Beispielkonfiguration gibt es noch einen WireGuard-Tunnel nach Schweden zu azire-vpn, über den der Internettraffic raus geht.


config interface 'fff'
	option proto 'wireguard'
	option listen_port '31337'
	list addresses '10.83.252.xx/32'
	list addresses 'fe80::babe:xx:xx/64'
	list addresses 'fd43:5602:29bd:ffff::xx'
	option private_key 'Der ist auch geheim'

config wireguard_fff
	option ifname 'fff'
	option public_key 'cG9uIgQqVf9BCxHtAeaVBxnvyc5iHpoHoh82h9dv63w='
	option allowed_ips '0.0.0.0/0 ::/0'
	option endpoint_host 'yor peering partner IP'
	option endpoint_port '31337'
	option persistent_keepalive '60'

Babel

Damit das Routing funktioniert brauchen wir noch Babel.

  • Installieren
opkg install babeld
  • Konfiguration in /etc/config/babeld
config general
	option export_table '10'
	option import_table '10'
	option first_table_number '100'
	option local_port '33123'


config interface
	option type 'wired'

config interface 'fff'
	option ifname 'fff'
	option type 'wired'

config filter
	option type 'redistribute'
	option local 'true'
	option ip '10.0.0.0/8'

config filter
	option type 'redistribute'
	option local 'true'
	option ip 'fd43:5602:29bd::/48'

config filter
	option type 'redistribute'
	option local 'true'
	option ip '2a0b:f4c0::/32'

config filter
	option type 'redistribute'
	option local 'true'
	option action 'deny'

config filter
	option type 'redistribute'
	option ip '10.0.0.0/8'

config filter
	option type 'redistribute'
	option ip 'fd43:5602:29bd::/48'

Routing

Das Routing wird auch in der /etc/config/network eingetragen.

config rule
	option in 'mesh'
	option dest '0.0.0.0/0'
	option lookup 'fff'

config rule
	option in 'fff'
	option dest '0.0.0.0/0'
	option lookup 'fff'

config rule
	option dest '10.0.0.0/8'
	option lookup 'fff'

config rule6
	option in 'mesh'
	option dest '::/0'
	option lookup 'fff'

config rule6
	option in 'fff'
	option dest '::/0'
	option lookup 'fff'

config rule6
	option dest 'fc00::/7'
	option lookup 'fff'

config rule6
	option src 'fc00::/7'
	option lookup 'fff'


config route 'fffclient'
	option interface 'mesh'
	option target '10.83.85.0'
	option netmask '255.255.255.192'
	option table 'fff'

config route6 'fffdefault6'
	option interface 'wg0'
	option target '::/0'
	option gateway '2a03:8600:1001:4000::1'
	option table 'fff'

config route6 'fffclient6'
	option interface 'mesh'
	option target '2a03:8600:1001:5b2a::/64'
	option table 'fff'

config route6 'ffffd43'
	option interface 'mesh'
	option target 'fd43:5602:29bd:27::/64'
	option table 'fff'
  • TCP clamping

Bis die Firewall fertig ist, kommt das erst mal in die /etc/rc.local.

# clamping
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o fff -j TCPMSS --clamp-mss-to-pmtu

dhcp und Nameserver

  • Konfiguration von dnsmasq in /etc/config/dhcp
config dnsmasq
	option domainneeded '1'
	option boguspriv '1'
	option filterwin2k '0'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option nonegcache '0'
	option authoritative '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option resolvfile '/tmp/resolv.conf.auto'
	option nonwildcard '1'
	option localservice '1'

config dhcp 'mesh'
	option leasetime '12h'
	option interface 'mesh'
	option start '11'
	option limit '52'
	option ra 'server'
	list dhcp_option '6,10.50.252.0'
	option dhcpv6 'disabled'
	option ra_default '0'

config dhcp 'lan'
	option interface 'lan'
	option ignore '1'

config dhcp 'wan'
	option interface 'wan'
	option ignore '1'

Besonderheit TP-Link Archer C2600

Mit dem Standard Wifimodul und Wifi-Firmware kann der Archer C2600 kein Mesh. Falls man Mesh braucht, muss man diese austauschen. Die funktionierenden sind auch im OpenWrt Repo.


opkg remove ath10k-firmware-qca4019 
opkg install kmod-ath10k-ct ath10k-firmware-qca99x0-ct