• Geschlossen

Eigener Router mit ArchLinux und EspressobinV7 mit Firewall (IPTables)

Morta
Level 1
1 von 4

Hallo Leute...

 

Mein Projekt ist ein eigener Router hinter dem TPLink Mediakonverter

 

 

 

- DNSMASQ Config vendor class 100008,0001

- IPtables Routing & Firewall

- VLAN ID 10 for WAN

- Mediakonverter mit SPF Modul

 

TO GO

- INTERNET

- IPV6SUPPORT

- IGMP SNOOPING FOR SWISSCOMTV

- 1 GIGABIT BETWEEN LAN AND WAN

 

Die Config für den DHCP-Server. Die wichtigsten Funktionen es wäre noch viel mehr möglich!

[alarm@alarm ~]$ cat /etc/dnsmasq.conf # Configuration file for dnsmasq.


# If you want dnsmasq to listen for DHCP and DNS requests only on
# specified interfaces (and the loopback) give the name of the
# interface (eg eth0) here.
# Repeat the line for more than one interface.
interface=br0



# Send extra options which are tagged as "red" to any machine whose
# DHCP vendorclass string includes the substring "Linux"
dhcp-vendorclass=set:100008,0001


# Or you can specify which interface _not_ to listen on
#except-interface=
# Or which to listen on by address (remember to include 127.0.0.1 if
# you use this.)
listen-address=127.0.0.1
listen-address=192.168.1.1


# Uncomment this to enable the integrated DHCP server, you need
# to supply the range of addresses available for lease and optionally
# a lease time. If you have more than one network, you will need to
# repeat this for each network on which you want to supply DHCP
# service.
dhcp-range=192.168.1.5,192.168.1.250,255.255.255.0,24h

 

 

 

Hier dhcpcd für das VLAN mit ID 10 und NAME wan10

[code][root@alarm etc]#  dhcpcd -U wan10
broadcast_address=100.86.23.255
dhcp_lease_time=7200
dhcp_message_type=5
dhcp_rebinding_time=600
dhcp_renewal_time=300
dhcp_server_identifier=213.3.239.224
domain_name_servers='195.186.1.162 195.186.4.162'
ip_address=100.86.17.230
network_number=100.86.16.0
routers=100.86.16.1
subnet_cidr=21
subnet_mask=255.255.248.0[/code]

Hier das ifconfig für ArchLinux mit ip addr

[code][root@alarm etc]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1508 qdisc mq state UP group default qlen 1024
    link/ether f0:ad:4e:09:6a:7f brd ff:ff:ff:ff:ff:ff
    inet6 fe80::f2ad:4eff:fe09:6a7f/64 scope link 
       valid_lft forever preferred_lft forever
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:ea:a8:06:0b:6a brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::50ea:a8ff:fe06:b6a/64 scope link 
       valid_lft forever preferred_lft forever
4: wan@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether f0:ad:4e:09:6a:7f brd ff:ff:ff:ff:ff:ff
    inet6 fe80::f2ad:4eff:fe09:6a7f/64 scope link 
       valid_lft forever preferred_lft forever
5: lan0@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br0 state LOWERLAYERDOWN group default qlen 1000
    link/ether f0:ad:4e:09:6a:7f brd ff:ff:ff:ff:ff:ff
6: lan1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP group default qlen 1000
    link/ether f0:ad:4e:09:6a:7f brd ff:ff:ff:ff:ff:ff
7: wan10@wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether f0:ad:4e:09:6a:7f brd ff:ff:ff:ff:ff:ff
    inet 100.86.17.230/21 brd 100.86.23.255 scope global dynamic wan.10
       valid_lft 7156sec preferred_lft 7156sec
    inet6 fe80::f2ad:4eff:fe09:6a7f/64 scope link 
       valid_lft forever preferred_lft forever
[/code]

Hier mein Shellscrpit für den Firewall und auch das Routing

[code]#!/bin/sh
iptables -A FORWARD -i br0 -s 192.168.1.0/255.255.255.0 -j ACCEPT
#iptables -A FORWARD -i wan -d 192.168.1.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i wan10 -d 192.168.1.0/255.255.255.0  -j ACCEPT
#iptables -t nat -A POSTROUTING -o wan10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o wan -j MASQUERADE
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -I INPUT 1 -i br0 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[/code]

Test der Internet Verbindung

[quote][root@alarm etc]# ping google.ch
PING google.ch (172.217.168.67) 56(84) bytes of data.

--- google.ch ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 162ms

[root@alarm etc]# ping 100.86.17.230
PING 100.86.17.230 (100.86.17.230) 56(84) bytes of data.

--- 100.86.17.230 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 103ms

[root@alarm etc]# ping 100.86.23.255
Do you want to ping broadcast? Then -b. If not, check your local firewall rules.
[root@alarm etc]# 
[/quote]

Hier was ip r s von sich gibt sieht man die Resultate....

root@alarm alarm]# ip r s        
default via 100.86.16.1 dev wan.10 proto dhcp src 100.86.17.230 metric 207 
100.86.16.0/21 dev wan.10 proto dhcp scope link src 100.86.17.230 metric 207 
100.86.16.1 dev wan.10 proto dhcp scope link src 100.86.17.230 metric 1024 
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1 

Die Konfiguration der Interfaces br0 lan eth0 wan

[NetDev]
Name=br0
Kind=bridge
-------------------------------
[Match]
Name=br0

[Network]
Address=192.168.1.1/24
IPForward=ipv4
#IPMasquerade=yes
ConfigureWithoutCarrier=yes
-------------------------
[Match]
Name=eth0
----------------
[Match]
Name=lan*

[Network]
Bridge=br0
BindCarrier=eth0
-----------------------
[Match]
Name=wan


[Network]
DHCP=ipv4
DNSSEC=no
BindCarrier=eth0
IPForward=ipv4

;these are arbitrary names, but must match the *.netdev and *.network files
VLAN=wan10
---------------------
[NetDev]
Name=wan10
Kind=vlan

[VLAN]
Id=10
-------------------
[Match]
Name=wan10

[Network]
DHCP=ipv4

[DHCP]
UseRoutes=false

Müssen die  lan ports 1&2 (br0) im gleichen VLAN10 how wan10 ? ( Und macht es etwas das die WAN Schnittstelle wan10 heisst?)

 

Muss das SPF Modul mit dem Swisscomrouter identisch sein oder kann ich auch das Modul von Init7 mit Flexoptik brauchen?

- Das SPF-Modul ist für Fiber7 und Swisscom tauglich


espresssobin.net for link to device

 

@Tux0nehabe schon per Mail probiert hier vielleicht ein bisschen mehr Glück

Editiert
3 Kommentare 3
Tux0ne
Level 9
2 von 4

Also wie ich deine Konfig verstehe ist diese falsch.

Die DHCP Option muss nicht in dnsmasq (DHCP Server) in der bridge für das LAN sondern in dhcpd (DHCP Client) auf dem WAN Interface geschrieben werden.

So ähnlich wie hier beschrieben:

https://community.swisscom.ch/t5/Archiv-Internet/Ipfire-mittels-SFP-PCI-Karte-betreiben/td-p/315023

Jeder ist beim Provider den er verdient
Jeder ist beim Provider den er verdient
Morta
Level 1
3 von 4

Dank dir für die prompte Antwort! Ich habe nun die Line auskommentiert in der dnsmasq.conf mit der DHCP Options 60 und habe im networkd von systemd das wan.network file folgend angepasst:

 

[Match]
Name=wan

[Network]
DHCP=ipv4
DNSSEC=no
BindCarrier=eth0
IPForward=ipv4


;these are arbitrary names, but must match the *.netdev and *.network files
VLAN=wan.10

[DHCP]
VendorClassIdentifier=100008,0001

Morta
Level 1
4 von 4
 
 

Hallo!

Ich habe ein VLAN mit ID 10 gemacht mit einem DHCP-Client. Das VLAN eth0.10 bezieht die IP vom ISP nun sehe ich aber am Port eth0 keine IP oder Internet zugriff.
Kann ich irgendwie ein VLAN 10 direkt aufs Interface eth0 machen oder der Traffic von eth0.10 zur bridge br0 weiterleiten?

iptables -A FORWARD -i br0 -s 192.168.1.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i eth0 -d 192.168.1.0/255.255.255.0 -j ACCEPT

# Kann ich statt einer IP-Adresse auch VLAN 10 Interface  eth0.10 sagen er soll den Traffic auf eth0 weiterleiten so das ich Internet zugriff habe auf dem ganzen Netzwerk?

iptables -t nat -A POSTROUTING -s ip.add.re.ss/24 ! -d ip.add.re.ss/24 -m comment --comment "Kann das Interface eth0.10 zu eth0 weiterleiten? oder muss ich beiden eine statische IP geben zusätzlich der dynamischen des ISP" -j MASQUERADE
iptables -t filter -A FORWARD -o eth0.10 -m comment --comment "NAT Output für VLAN 10 eth0.10" -j ACCEPT #Mit oder ohne -t filter?
iptables -t filter -A FORWARD -i eth0.10 -m comment --comment "NAT Input für VLAN 10 eth0.10" -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


echo 1 > /proc/sys/net/ipv4/ip_forward

Kann mir hier jemand weiterhelfen? Wäre sehr dankbar...

 

[root@ROUTER morta]# cat /proc/net/vlan/config
VLAN Dev name	 | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.10         | 10  | eth0
[root@ROUTER morta]# cat /proc/net/vlan/eth0.10
eth010  VID: 10	 REORDER_HDR: 1  dev->priv_flags: 1021
         total frames received           36
          total bytes received         2540
      Broadcast/Multicast Rcvd           11

      total frames transmitted           24
       total bytes transmitted         2412
Device: eth0
INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
 EGRESS priority mappings: 
[root@ROUTER morta]# tcpdump -n -p -i eth0.10
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0.10, link-type EN10MB (Ethernet), capture size 262144 bytes
13:04:10.680190 IP 185.153.196.25.45327 > 85.7.118.85.15389: Flags [S], seq 3407261449, win 1024, length 0
13:04:13.024933 IP 1.1.1.1 > 224.0.0.1: igmp query v3 [max resp time 5.0s]
13:04:43.025262 IP 1.1.1.1 > 224.0.0.1: igmp query v3 [max resp time 5.0s]
13:04:54.733157 IP 80.82.78.104.56504 > 85.7.118.85.3394: Flags [S], seq 2362323755, win 1024, length 0
13:05:13.025558 IP 1.1.1.1 > 224.0.0.1: igmp query v3 [max resp time 5.0s]
13:05:28.048375 IP 95.57.218.103.44512 > 85.7.118.85.445: Flags [S], seq 2229049148, win 1024, length 0
13:05:33.851660 IP 198.108.67.107.25280 > 85.7.118.85.9070: Flags [S], seq 3114394712, win 1024, length 0
13:05:41.662582 IP 185.153.196.25.45325 > 85.7.118.85.5366: Flags [S], seq 3805977832, win 1024, length 0
13:05:42.345363 IP 198.108.66.209.45248 > 85.7.118.85.8080: Flags [S], seq 2870134667, win 65535, length 0
13:05:43.025872 IP 1.1.1.1 > 224.0.0.1: igmp query v3 [max resp time 5.0s]
13:05:56.393898 IP 80.82.78.104.56504 > 85.7.118.85.3388: Flags [S], seq 2452477312, win 1024, length 0
13:06:00.992614 IP6 fe80::f2ad:4eff:fe09:6a7f > ff02::2: ICMP6, router solicitation, length 16
13:06:10.225369 IP 185.176.27.34.57886 > 85.7.118.85.19284: Flags [S], seq 661451054, win 1024, length 0
13:06:13.026204 IP 1.1.1.1 > 224.0.0.1: igmp query v3 [max resp time 5.0s]
13:06:19.590666 IP 77.28.171.80.12154 > 85.7.118.85.23: Flags [S], seq 1576914261, win 14600, length 0
13:06:43.026483 IP 1.1.1.1 > 224.0.0.1: igmp query v3 [max resp time 5.0s]
13:07:13.026840 IP 1.1.1.1 > 224.0.0.1: igmp query v3 [max resp time 5.0s]
13:07:22.008003 IP 80.82.78.104.56504 > 85.7.118.85.3399: Flags [S], seq 2801711594, win 1024, length 0
13:07:25.629032 IP 185.153.196.25.45321 > 85.7.118.85.30003: Flags [S], seq 3401250207, win 1024, length 0
13:07:33.148229 IP 185.176.26.105.59073 > 85.7.118.85.2800: Flags [S], seq 1603400972, win 1024, length 0
13:07:36.241248 IP 175.163.96.40.56153 > 85.7.118.85.22: Flags [S], seq 1426552405, win 28030, length 0
13:07:43.027145 IP 1.1.1.1 > 224.0.0.1: igmp query v3 [max resp time 5.0s]
^C
22 packets captured
22 packets received by filter
0 packets dropped by kernel

Hier noch die config von eth0 und eth0.10

[root@ROUTER network]# cat eth0.network
[Match]
Name=eth0

[Network]
DHCP=ipv4
DNSSEC=no
BindCarrier=eth0
IPForward=ipv4

#[DHCP]
#VendorClassIdentifier="100008,0001,,Router"

;these are arbitrary names, but must match the *.netdev and *.network files
VLAN=eth0.10
[root@ROUTER network]# cat eth0.10.network
[Match]
Name=eth0.10

[Network]
DHCP=ipv4

[DHCP]
UseRoutes=false #richtig?
VendorClassIdentifier="100008,0001,,Router" #bei eth0 oder eth0.10 ?
[root@ROUTER network]# cat eth0.10.netdev 
[NetDev]
Name=eth0.10
Kind=vlan

[VLAN]
Id=10

Ich muss irgendwie auf die Seite swisscom.ch/registration kommen und der Anschluss dort registrieren

 

@Tux0ne 

 

Nach oben